ml_t

minimal; manual; machine learning

3『音ファイルの構造』

音ファイルのデータ化についてです。soundfileというライブラリをインポートしています。別に用意しておいた音ファイル(.wavファイル)をsoundfile.read文で読み込みます。すると、170762行×2列のnumpyファイルになります。前回、画像を読んだ時もnumpyファイルでした。2列というのはステレオだから2なわけで、モノラルだと170762行×1列となります(ラジオでもそうですがモノラルでもちゃんと音楽とか音声とか聞くに堪えるものができますね)。したがって、モノラルの音データは、[[0.0013], [0.0010], [0.0026], …]というような単純な数列になります。単純な数列がどうして、楽器の音とか、声とか、風のささやきとか、いろんな音を表現できるのが不思議でなりませんが、実際そういう音がなるからそうなのです。じつに不思議です。気づかれてきたかと思いますが、データは、数値であれ、カテゴリであれ、画像であれ、音であれ、numpyの (n×m)行列(要素は整数だったり、0/1だったり、小数点だったり、いろいろな型がありますが)として格納されているということです。したがって、この行列を入力inputとして、いろいろな計算過程をへて出力outputへもっていきます。outputが実際の観察値と誤差Lossを持ちますが、このLossが0に近づくように、偏微分法による誤差逆伝播により計算過程の変数(パラメータ)を調整していくことを繰り返していく(イテレーション→エポック)のがニューラルネットワーク機械学習ということになろうかと思います。