自己レスです ( No.1 ) |
- 日時: 2020/06/02 16:41
- 名前: taka matsu
- 参照: http://south-alps.sakura.ne.jp/m5stack/music.html
- Qiitaの 1969 od さんの「ESP32で外付けDACを使う」という記事とAquesTalkについての「N.Yamazaki's blog」での山崎さんの説明が解決策でした。
1.i2s_config.modeでI2S_MODE_DAC_BUILT_INフラグを外す 2.i2s_set_pin()で使用するピンの設定を行なう 3.符号無しデータに変換している処理(92行目)をしない。 この3点について、AquesTalkTTS.cppファイルの中で変更します。ファイルの後ろの方、I2S DAC についての記述があるところ。//i2s configuration から3行目、「 | I2S_MODE_DAC_BUILT_IN」をそのまま切り取ってしまいます。これがフラグを外すこと。
static i2s_config_t i2s_config = {....}; が終わった後に、次の項目を挿入。
static const i2s_pin_config_t pin_config = { .bck_io_num = 26, .ws_io_num = 25, .data_out_num = 22, .data_in_num = I2S_PIN_NO_CHANGE };
これは、1969 od さんの真似をしました。GPIOは自分の環境に合わせています。
static void DAC_create() { の中では、
//i2s_set_pin((i2s_port_t)i2s_num, NULL); i2s_set_pin((i2s_port_t)i2s_num, &pin_config);
としています。これらがピンの設定。
最後に、符号無しデータに変換している処理(92行目)をしない。もともとのAquesTalkTTS.cppに記載があってコメントアウトされている for External SPI-DAC の行に入れ替えることで完了です。アバターと組み合わせるとコンパイルエラーが出ますが、他では今のところエラーなく動いてくれます。I2S-DACでなくSPI-DACなのが気になりますが。 課題としては、音が、声がビジューという音と重なってしまい、聞きつらいことですね。これもどうにかしたいものです。
|
|