💇‍♂️

M5Stack LLM Moduleを試してみる

2025/02/26に公開

事の始まり

今更ながらM5Stack用LLM moduleの存在を知りました。発売日は2024/11だそうで、発見までに時間がかかってしまいました。
https://docs.m5stack.com/en/module/Module-LLM
ChatGPTに代表されるような自然言語処理(人間の言葉をコンピュータが理解する)というのは複雑な処理が必要になるためマイコンなどに組み込むのは難しいと思っていたのですが、どうやらいつの間にか実現していたようです。技術の進歩が凄まじいですね。

セットアップ

まず適当なM5Stackに履かせます。
対応しているM5Stackは「Core(basic)」「Core2」「CoreS3」の三種類だそうです。
私はCore2 For AWSがありましたのでこちらを使います。

公式のチュートリアルのとおりにArduino環境からサンプルを書き込んでいきます。。。
https://docs.m5stack.com/en/guide/llm/llm/arduino
。。。が、私はArduino CLIを使っているので、コマンドで進めます。

$ arduino-cli lib install M5ModuleLLM # サンプルのインストール

今回はせっかくなので機能てんこ盛りの「voice_assistant」を試します。
これはKWS(起動ワードで起動)+ASR(音声を文字起こし)+LLM(人間の言葉を解釈し回答)+TTS(音声にして再生)を一度に試せます。
下記はM5Stack Core2の場合サンプルの44行目付近を編集します。

// 44行目
/* Init module serial port */
//Serial2.begin(115200, SERIAL_8N1, 16, 17);  // Basic <- コメントアウト
Serial2.begin(115200, SERIAL_8N1, 13, 14);  // Core2 <- アンコメント
// Serial2.begin(115200, SERIAL_8N1, 18, 17);  // CoreS3

コンパイルして書き込み

$ mkdir your/working/space/VoiceAssistant # 作業フォルダの作成
$ cd your/working/space/VoiceAssistant/ # 作業フォルダへ移動
$ cp /Users/"<YOUR NAME>"/Documents/Arduino/libraries/M5ModuleLLM/examples/VoiceAssistant ./ # サンプルファイルのコピー
$ arduino-cli compile --fqbn m5stack:esp32:m5stack_core2 --upload --port "<DEVICE_PORT>" VoiceAssistant # コンパイルと書き込み

試遊

デフォルトの起動ワードは「Hello」となっています。
「Hello」と話しかけると[Hi.]と応答するので適当に質問してみます。

対応している言語が英語か中国語なので英語でしばらく遊んでいましたが、なかなか認識してくれません。私の英語発音はひどいものなので仕方ないかと思いChatGPT経由で質問をしてみました。
しかし、良くはなったものの、認識精度はぼちぼちといったところでした。
とはいえ回答は一昔前のAIといった感じでそれっぽい回答を返してくれます。
簡単な会話であれば問題ないのではないでしょうか。
写真は「What is the name of the highest mountain in Japan?(日本で一番高い山の名前はなんですか?)」と質問したところ。一部正しく認識できてはいませんが、うまくLLM側で解釈して、正しい答えである富士山がかえってきていますね。(Hikoneとして知られているとは知りませんでしたが。。。)

感想

高度なAIは凄まじい盛り上がりを見せていますが、こういったローレベルな、私のような底辺組み込み遊び人にも試せるぐらいなところにも入り込んできてくれるのは、非常に嬉しいですね。
未来を見た気がしました。
今後も乗り遅れ気味についていきたいと思います。

Discussion