しゃべる何か / .wavファイルを2ビットDPCM化する
pp.410-413
テキストには、.wavファイルを2ビットDPCM化するためのPython2スクリプトが掲載してある。そのままだとPython3では動かない。ここではLabVIEWで作ってみる。テキストと同じく、複数の.wavファイルからヘッダーファイルを生成するところまで一気に実行する。
手順は下のとおりである。
- サンプリング周波数8kHz、モノラルの.wavファイルを用意する。電話程度の音質である。
- その.wavファイルから個々のサンプルを取り出し、
-32768
~32767
のsigned int
で表現されていた各サンプルを-1.0
~1.0
のfloat
に正規化して排列に収める。 - その排列の隣接要素同士の差を求める。
- 差が-0.05以下であったら0を割り当てる。
差が-0.05超、0以下であったら1を割り当てる。
差が0超、0.05以下であったら2を割り当てる。
差が0.05超であったら3を割り当てる。
これで、元々16ビットで表現されていた一個一個のサンプルが0b00
~0b11
の2ビットDPCM値で表現されたことになる。しきい値は、えいやで決める。 - 求まった2ビット値を4つずつ順番にMSBから並べて1個の8ビット値にする。
- 以上の手順を.wavファイルの数だけ繰り返す。
- 最後にヘッダーファイルとして書き出す。
https://github.com/ti-nspire/vi/tree/master/wave2DPCM
テキストは、ADCに入力された電圧値を音声で鳴らすところまで進めているが、Chapter 18: Using Flash Program Memoryはここまでにする。