はじめに
マイコンで音声を再生する場合、アナログ信号を生成する必要があります。つまりはDACが必要となり、外部のDACモジュールなどにデータを送信してデジタル→アナログ変換を実施します。その後、アンプやスピーカーを通して音を出すのですが、これが結構面倒です。
I2Sとは
I2Sとは音声データのデジタル通信規格です。そして、このI2Sを受信してアナログ信号に変換して出力してくれるモジュールがあります。これを使用すれば、比較的簡単にマイコンでの音声再生が実現できます。
モジュール
MAX98357Aが搭載されたモジュールをamazonやAliexpressで購入することができます。実際に使用したものは以下のものです。
他にも「MAX98357A」で検索すると同じようなものがたくさん出てきます。
使用方法
詳しくは以下のリポジトリを参照してください。
https://github.com/HASOLabo/Pico_I2S_Sample
また、その他の特記事項を記載しておきます。
- 音声ファイル
再生する音声ファイルはSDカードなどを追加してそこに配置してもいいですが、(PCMとして)ヘッダファイルに変換してビルドすれば実質プログラム内に格納することができます。お手軽ですがその反面、音声の同時再生などの複雑な処理はできず、再生する音声ファイルの時間にも制限があります。
その他
ここに書いてあることはAIに聞けば答えてくれるような内容なので特に重要ではありませんが、こんなこともできるという参考になればと思います。また、RaspberryPi PicoだけでなくESP32やArduinoでも同様のことが可能です。

