ESP-IDF で wav再生

ESP-IDF 環境で、 wav の再生をやってみました。
先日の WebRadio のもので I2S の配線済みだったので、wav の再生にも I2S へ書き込むようにしました。単なる wav の I2S 再生を ESP-IDF でやっているサンプルってあまりなさそうだったのは、簡単すぎて需要が無いのかも。

myvoice.h には、 wav ファイルのヘッダ部分を除去した波形データ部分だけを、配列化したもので準備しています。
本来なら wav ファイルを解析しつつ、再生のサンプリング周波数や量子化ビット数などを取得、I2S 側へのセットが必要でしょう。今回のコードでは手抜きをしています。波形データをどうセットすれば音がスムーズになるかを確認するのが目的だったためです。

また、細切れにバッファリングしつつ少しずつ I2S へ送るという実験もしています。

コードとしては次のようになります。

wav ファイルの波形データ部分をC言語の配列とするのには、 HxD というバイナリエディタを使用しました。このエディタではデータを C言語スタイルで書き出せるのでこういうときに便利ですね。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする