第7章

M5StackにXiaoZhiを導入して音声で会話する

CoreS3-LiteにXiaoZhi(小智)のファームウェアを導入し、Wi-Fi設定と端末登録をして音声アシスタントを使います。

この章で学ぶこと

  • M5BurnerでXiaoZhi(小智)のファームウェアを書き込む
  • 本体のWi-Fi設定と、サービスへの端末登録を行う
  • 音声で質問し、スピーカーからの回答を確認する
  • 会話の設定を変え、UIFlow 2.0に戻す方法も理解する

XiaoZhiで作るもの

CoreS3-Liteに話しかけると、AIがスピーカーから返事をする音声アシスタントを作ります。XiaoZhiはESP32などを音声対話の端末として使うプロジェクトです。この章ではM5Burnerで配布されるCoreS3向けのファームウェアと、XiaoZhiのサービスを使って始めます。XiaoZhiプロジェクト

自分の声
    ↓
CoreS3-Liteのマイク
    ↓ Wi-Fi / インターネット
XiaoZhiのサービス(音声認識・AIの応答・音声生成)
    ↓
CoreS3-Liteのスピーカーと画面

AIモデル全体をCoreS3-Liteで実行する構成ではありません。通常の音声処理では、音声を文字にするASR、返答を考えるLLM、文字を音声にするTTSを組み合わせます。サービスやモデルによっては音声を直接扱う方式もあります。端末の起動語検出と、サーバーとの音声会話を区別して考えましょう。

1. 用意するものと保存しておくもの

  • CoreS3-Liteとデータ通信できるUSB Type-Cケーブル
  • M5Burnerを使うパソコン
  • インターネットにつながる2.4GHzのWi-Fi
  • Wi-Fi設定用のスマートフォンまたはパソコン
  • XiaoZhiの管理画面で使用するアカウント

CoreS3-Liteの製品ページから、CoreS3向けのXiaoZhi導入ガイドが案内されています。この章はその経路を使います。書き込む前に、M5Burner内の説明でも対象機種とバージョンを確認してください。Core2やAtom向けのファームウェアは選びません。

この作業では、UIFlow 2.0をXiaoZhi専用ファームウェアに入れ替えます。 センサーロガーやブロック崩しを同時には実行できません。書き込みで本体内のファイルや設定が消える場合に備え、次をパソコンに保存してください。

  • これまで作った .py や .m5f2 のファイル
  • 追加した画像・フォントなどの素材
  • 使用していたUIFlow 2.0のバージョンと設定のメモ

本体からファイルを取り出す操作はUIFlow 2.0のファイル管理を参照します。クラウド側のプロジェクトだけでなく、Pythonを直接編集した場合はその最新版も保存します。

2. M5Burnerでファームウェアを選ぶ

  1. M5StackのCoreS3向けXiaoZhi導入ガイドから、OSに合うM5Burnerを入手して起動します。
  2. 機種のカテゴリで CoreS3 を選びます。
  3. XiaoZhi Voice Assistant のCoreS3向けファームウェアを探します。
  4. 説明で対応機種と起動語を読み、使う版をダウンロードします。
  5. ファームウェア名・バージョン・起動語をメモします。

起動語は会話を始めるための呼びかけです。公式ガイドには、Hi, M5、Hi, lexin、nihaoxiaozhi に対応する版が掲載されています。配布されている版によって操作が異なるため、実際に選んだ版の説明を使います。起動語を覚えるまでは、画面タップで会話を始められるかも確認しましょう。

上流プロジェクトの最新版とM5Burnerの配布版は、機能やバージョンが一致するとは限りません。この教材ではM5Burnerの導入手順を使い、ソースコードからのビルドは行いません。

3. 本体へ書き込む

  1. UIFlow 2.0のWebTerminalなど、本体のシリアルポートを使う画面を閉じます。
  2. USBでCoreS3-Liteをパソコンにつなぎます。
  3. 本体のリセットボタンを長押しし、緑色LEDを目安にダウンロードモードへ入れます。公式ガイドでは約2秒が目安です。
  4. M5Burnerで本体のポートを選び、選択したファームウェアの Burn を押します。
  5. 書き込み完了までUSBを抜かず、完了後に本体を再起動します。

正しいポートが分からない場合は、本体を接続したときに追加されるポートを確認します。失敗が続く場合は、データ通信に対応した別のケーブルやUSBポートで試してください。操作の画像は公式の書き込み手順と照合します。

4. XiaoZhiのWi-Fiを設定する

初回起動時の画面に表示される案内に従って、ネットワークを設定します。

  1. 本体が案内する設定用のアクセスポイント(例:Xiaozhi-...)に、スマートフォンまたはPCを接続します。
  2. 本体画面に指定された設定ページを開きます。公式ガイドの例は http://192.168.4.1 です。
  3. 接続先の2.4GHz Wi-Fiを選び、パスワードを入力して保存します。
  4. 本体がそのWi-Fiへ接続したことを確認します。
  5. スマートフォンやPCを、普段使うWi-Fiへ戻します。

192.168.4.1 は本体の初期設定用ページです。XiaoZhiの管理画面や、Ollamaサーバーのアドレスではありません。スマートフォンに「インターネット接続なし」と表示されても、設定中は本体のアクセスポイントへの接続を維持します。

画面を開けないときは、モバイル回線や別のWi-Fiへ自動で切り替わっていないか確認します。SSIDや設定ページのアドレスは、本体に表示されているものを優先してください。

5. 管理画面で端末を登録する

XiaoZhi AIの管理画面を開き、画面の案内に沿ってアカウント登録・ログインします。登録方法や利用条件は変更されることがあるので、その時点の案内を確認します。

  1. 管理画面でエージェント(会話相手の設定)を作成します。
  2. 本体をタップ、または選択した版の起動語で起こします。
  3. 画面や音声で案内される認証コードを確認します。初回に起動語での呼びかけが必要な版もあります。
  4. エージェントの「デバイスを追加(Add Device)」から、本体の認証コードを入力します。
  5. 登録した端末が一覧に表示されることを確認します。

認証コードが表示されない場合は、本体の案内を確認し、必要に応じて認証コードを教えるよう話しかけます。コードが無効・期限切れなら本体側で再取得します。Wi-Fiへ接続できただけでは、アカウントへの端末登録は完了していません。

画面名や初回の操作は配布版によって異なります。M5Stackの端末登録手順を横に開き、自分の版と見比べて進めてください。

6. 音声で会話する

  1. 本体画面をタップするか、選択した起動語で呼びかけます。
  2. 聞き取り中の表示や音を確認してから、短く質問します。
  3. スピーカーから回答が返り、会話の表示が変わることを確認します。
  4. 続けて別の質問を試します。

最初は「こんにちは」「センサーとは何ですか」のような短い内容で試します。PCのマイクではなく、CoreS3-Liteのマイクに向かって話してください。

この章の構成では会話データが外部サービスへ送られます。実験ではWi-Fiパスワードや個人情報を話さず、一般的な質問を使います。自分の周囲の音もマイクに入るため、会話する場所も選びましょう。

日本語で会話しやすくする

管理画面のキャラクター・エージェント設定を開き、応答の指示に次のような内容を設定します。

あなたは電子工作を手伝うアシスタントです。
日本語で、初心者にも分かる短い言葉で答えてください。
最初の回答は2文以内にしてください。
分からないことは、分からないと伝えてください。

音声や言語を選べる場合は、日本語に対応したものを選んで保存し、本体を再起動して試します。利用できる音声・モデル・設定項目はサービスによって異なります。応答の指示だけでは、音声認識や音声合成の言語対応までは変更できない点に注意してください。

起動語も、返答の言語とは別の設定です。日本語で返答する設定にしても、Hi, M5 などの起動語は選んだファームウェアのものを使います。

7. 完成を確認する

確認すること 期待する結果
再起動する 設定したWi-Fiへ接続する
管理画面を見る 自分のエージェントに端末が登録されている
タップ・起動語で呼びかける 聞き取りを開始する
短い質問をする 回答が音声で返る
日本語の指示で質問する 選択したモデル・音声の対応範囲で日本語の応答を確認できる
設定を変えて再起動する 会話の口調や長さの変化を確認できる

「認識した質問が合っているか」「回答の内容が合っているか」「音声が聞こえるか」を分けて見ると、不具合がどこにあるか調べやすくなります。

うまく動かないとき

症状 確認すること
M5Burnerにポートが出ない ケーブル、USBポート、ダウンロードモード、ほかのシリアル接続の終了
書き込み後に動かない 選んだ機種・ファームウェア、書き込み完了、電源を確認する
UIFlow 2.0に接続できなくなった XiaoZhiへ入れ替えた後は正常。UIFlowの作業にはファームウェアを戻す
設定用Wi-Fiが見つからない 本体画面の案内を確認する。設定済みなら初回用アクセスポイントが出ない場合がある
設定ページを開けない 本体のAPにつながっているか、別回線へ切り替わっていないか、画面のURLを確認する
Wi-Fiに接続できない 2.4GHz、SSID・パスワード、認証ページが必要なネットワークでないか
Wi-Fiにはつながるが会話できない インターネット接続、端末登録、サービスの状態や利用制限
認証コードが通らない 最新のコードか、別アカウントに登録済みでないか。管理画面の案内を確認する
起動語が反応しない ファームウェアごとの起動語を確認し、画面タップでも試す
聞き取りが不安定 静かな場所で短く話し、マイクを手でふさがない
画面に回答があるのに音が出ない 音量設定、選択した音声、対応ファームウェアを確認する
日本語で返ってこない 応答指示と音声設定を確認し、保存後に再起動する

8. UIFlow 2.0に戻す

  1. XiaoZhiで使ったファームウェア名と設定をメモします。
  2. M5BurnerでCoreS3用のUIFlow 2.0ファームウェアを選びます。
  3. 本体をダウンロードモードへ入れ、UIFlow 2.0を書き込みます。
  4. Wi-Fiや起動方法を設定し、UIFlow 2.0から接続し直します。
  5. PCに保存しておいたプログラムと素材を書き戻して動作を確認します。

詳しい操作は環境構築の章とCoreS3のUIFlow 2.0公式手順を参照してください。ファームウェアを戻すだけでは、以前の自作プログラムまで自動復元されません。

端末をほかの人へ渡すときは、XiaoZhiの管理画面でも端末の登録を解除します。本体への書き込みと、サービス側の登録解除は別の作業です。

Ollamaとの関係

Ollamaの章は、M5StackからLAN内のPCへテキストを送る構成です。この章のXiaoZhiは、対応サーバーへ音声を送る構成です。両方を導入しても自動的には接続されません。

XiaoZhiからローカルのOllamaを使う発展構成では、XiaoZhiの通信方式を受け付けるサーバーと、音声認識・音声合成を含む設定が必要です。端末の接続先をOllamaの /api/chat に置き換えるだけでは動きません。また、クラウドのサービスから自宅PCの 192.168... へ直接接続することもできません。

自分でサーバーを構築する場合は、上流プロジェクトが紹介する xiaozhi-esp32-server などの対応構成を調べるところから始めます。これは本章のクラウドサービスを使う導入とは別の発展課題です。

やってみよう

  1. 「電子工作の先生」「英会話の練習相手」など、エージェントの役割を変えて回答を比較しましょう。
  2. タップと起動語での開始を試し、周囲の音によって使いやすさが変わるか調べましょう。
  3. 音声入力、応答生成、音声出力のどこに時間がかかるか、観察して説明しましょう。