M5 Stack CoreS3 Lite でスタックチャンをつくってみようとした話 #スタックチャン #StackChan
スタックチャンを知ったきっかけ
Xで見かけた生成AIのイベントに行ったら各ブースで小型のロボットを展示してました。なんじゃらほいと思ってブースで紹介されていた記事などを追っかけました。
充分に情報が見つかったわけではないけど、機能を絞ればお手軽に作れそうだったので、組み立てとかいらないであろう、「M5 Stack CoreS3 Lite」をスイッチサイエンスさんで購入。2026年5月購入で¥8,151(税込)でした。
(公式がキットを$99+送料で売ってるのを見つけたけど、自分が購入を決意した時はsold。しかし数時間後に公式とスイッチサイエンスさんでキットが販売開始されるという運の無さ。。まぁ最低限の機能で良かったから良いんだけど)
やりたいこと
スタックチャンにAIを実装して、会話してみたい。
よしんば、AIコーディングの手助けをしてもらいたい
音声対話フロー

処理はこんな感じの流れ。音声のIN/OUTともにCoreS3で実行できるようにしたかったですが、技術力+時間不足で断念。INはPC側のマイクで行ってます。機能も、UI/UXもいろいろ課題がある実装。かなしみ。
技術スタックなど
今回実装してみた技術スタックはこんなかんじ。
初見で分からないことだらけだったので、作業時間は正味でいうと10~12時間くらい。
ちなみに自分はエンジニアでもなんでもなく、デバイスになにかをインストールするとかはほぼ未経験のIT畑の人です。
ハードウェア
M5Stack CoreS3 LITE (ESP32-S3)
ハードウェアは公式から仕様書公開されてます。コレは必読でした。
PC 側(Windows)
Vosk (音声認識、オープンソース)
モデル: vosk-model-small-ja-0.22
Flaskサーバー
Python 3.8+
Ollama (ローカル LLM)
モデル: qwen2.5-coder:7b
VOICEVOX (音声合成)
エンジン: vv-engine
話者: ずんだもん ノーマル
CoreS3 側(C++)
M5Unified (統合ライブラリ)
ArduinoJson (JSON パース)
M5Stack-Avatar (顔表現)
PlatformIO (ビルドツール)
PCはハイスペでもなんでも無くて、4年落ちくらいのGPUもオンボード以外ない機種。
ローカルLLMのモデルはPCで扱える最低限のものだったけど、それでも重いらしい。ローカルLLMはちょっとこれからお勉強が必要。
作業進行はすべてClaudeで行いました。ClaudeはCLIでの操作ではなくて、PCアプリで指示して実際の実装は本人がやってます。
最初はClaudeの指示通り、Arduino IDEで作業してましたが、オーディオ周りの対応が出来なさそうだった?ので、VS Codeのエクステンション(拡張機能)である、PlatformIOに切り替えました。
詰まったとこ
OllamaとVOICEVOXのポート指定でかなり詰まりました。VOICEVOXは音声生成では使ったことあったけど、コアな使い方するのは始めてで起動する度にポート番号が変わってしまい。
これだけで4、5時間使った気がする。。失敗から学ぶ方が多いではあるのでこれはこれで良かったのかもしれない。
出来たもの
使ったライブラリのライセンスなどを確認出来ていないのと今回は個人利用にとどめているので、Code自体は公開はしません。そもそもラーニングで未完成で実用性がゼロ。。

[ 動画撮れたら貼ります ]
所感とか
初見なので、そりゃあそりゃあ難しかった。。
公式のキットだとファームウェアが入った状態+スマホアプリで設定できるみたい。機能は限られるんだろうけど、お手軽さがヤバい。
他にもGithub上で個人の方が公開されているリポジトリがたくさんあるようなので、それを入念に調べれば欲しかった機能を盛り込んだものが見つかったかもしれない。
Twitterで共有してもらった「AI Stack-chan Ex」が自分の欲しい機能にバッチリで良いのかもしれないので、導入してみたし。
(有志のコミュニティサイトは見方がわからなくてそこから探すのは断念してしまった)
