概要
M5StackCoreでM5Stack_avatarを試したら、ちょっと古いせいかいろいろと躓いたのでメモ。
IDEはAruduino IDE2.3.7を使う。
参照
以下を参照させていただいた。
m5stack-avatar
AquesTalk ESP32
小型万能マイコン「M5Stack」の野良アプリを色々試してみる方法(VS Code + Platform IO)
やったこと
Libraryのインストール
ここを見て、M5Stack_Avatarをインストールする。

次に、TTS用のライブラリ(Zip形式)をダウンロードする。
ESP32用を選ぶと、aquestalk-esp32_0244.zipが取得できるので、
IDEの[Sketch]->[include library]->[Add .Zip Library]を選ぶ。
完了後、Arduinoのワークスペースの
libraries/AquesTalk_ESP32
がインストールされている。
sampleスケッチ作成
IDEの[File]->[Examples]->[M5Stack_Avatar]->[talk]を選ぶ。
Examples from Cusstom Librariesのセクションで見つけられる。
スケッチ作成されたら、
#include <AquesTalkTTS.h>
↓
#include <aquestalk.h>
に変えて、ヘッダーが見つからないコンパイルエラーを回避。
次に、
libraries/M5Stack_Avatar/src/tasks/LipSync.hで以下を修正する。
24c24
< float open = min(1.0f, f);
---
> float open = min(1.0, f);
これを変えないと、GCC 14系 + C++標準の std::min が使われている環境では、minの使い方が違うというコンパイルエラーが出る。
LipSync.h:24:21: error: no matching function for call to 'min(double, float&)'
24 | float open = min(1.0, f);
コンパイルが通ったら、M5Stack Coreに書き込む。
すると、シリアル(1152000)にこういったエラーが出る。
E (235) esp_core_dump_elf: Elf write init failed!
E (239) esp_core_dump_common: Core dump write failed with error=-1
Rebooting...
ets Jun 8 2016 00:22:57
rst:0xc (SW_CPU_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:4888
load:0x40078000,len:16456
load:0x40080400,len:4
load:0x40080404,len:3476
entry 0x400805b4
E (207) ADC: CONFLICT! driver_ng is not allowed to be used with the legacy driver
abort() was called at PC 0x400fcb3b on core 0
Backtrace: 0x40082604:0x3ffe3b30 0x4008a915:0x3ffe3b50 0x40090889:0x3ffe3b70 0x400fcb3b:0x3ffe3bf0 0x400ece56:0x3ffe3c10 0x400829b5:0x3ffe3c40 0x40079832:0x3ffe3c90 |<-CORRUPTED
これはESP32 core 3.x から:
✅ 新ADCドライバ(driver_ng)
❌ 旧ADCドライバ(legacy)
が 同時使用禁止 になったための様子。
ESP32 core を 2.0.14 に下げる
Arduino IDE →
ボードマネージャ →
ESP32 →
バージョン 2.0.14 を選択
で解消するみたい。時間ができたらTry予定。
本当は、新しいCoreに対応すべきだけど。