波動と機械学習

人間の声を色相の変化を利用して3次元プロットした図に美しさを感じて、そのまま音声解析の道を進んでいます。自分なりに調べて実装できたものから更新していきます。アドバイス、アイデアなどあれば是非お願いします。

音声データ(waveファイル)の基礎知識

ここでは音声データを扱う上で知っておくべき用語や知識を整理します。

 

基本的な用語

  • 音源

解析・処理対象となるデータを指す。基本的には全てバイナリデータである。

 

  • 静的な音源

ファイルに保存された非リアルタイム 音源のこと。(wav、mp3、rawなど) 

ここでは主にwavファイルを使用して解析を行う。

  • 動的な音源

マイクなどのセンサから入力されたリアルタイム 音源のこと。

  • ストリーム

センサなどによって生成される継続的なデータのことである。または、スピーカなどに与えるための継続的なデータを指す。

これらのデータはレコード、またはチャンク単位、もしくはスライドした時間窓で連続的に処理する。データストリームとも呼ぶ。

 

パラメータに関する用語

  • チャンク

音源から1回読み込むときのデータサイズ。またはRIFF形式におけるデータの論理的な単位のこと。

2のn乗とする場合が多い。

 

  • サンプリング周波数

1秒間にデータを取得するデータ点数を決める値である。

音声データに記録できる音源の周波数はサンプリング周波数の2分の1の値までとなっている。

(標本化定理で調べると詳しく理解できます。ここでは説明を省きます。)

 

  • フレーム数

Pythonモジュール上ではバイナリデータの個数を表す値である。

他分野(映像関連など)では用語の使われ方が違うので注意が必要である。

 

wavデータの構造について

音声データを自身で記録・処理しようとすると、多くの場合wav形式を採用することになる。そこで、ここではwavのデータ構造について簡単に学ぶ。

 

wavはWindows標準の音声データファイルである。

wavはRIFF形式で作られており、wavを理解するためにはこのRIFFを理解する必要がある。

 

  • RIFF形式とは

RIFF(Resouce Interchange File Format)形式とは、画像や音声などのデータを1つのファイルに格納するための共通フォーマットである。RIFFにはチャンクと呼ばれる考え方があり、データの論理的な単位とされる。wavファイルはチャンクを1つにまとめた集合体である。

 

チャンクの例)

f:id:araitbs007:20200504221606j:plain

 

  • wavファイルのデータフォーマット

wavファイルの基本構造は上述のRIFF形式でRIFFヘッダ、fmtチャンク、dataチャンクの3つから構成される。そこに必要に応じてfactチャンク、cueチャンクなどが追加される。

 

  • RIFFヘッダ

該当ファイルが「wavファイル」であることを示す。

 

  • fmtチャンク

wavファイルの設定情報が保存されている。サンプリング周波数、チャネル数、音声フォーマットなどの情報が保存されている。

 

  • dataチャンク

音声の波形データが保存されている。

本体部分である。