🧪 新しいチュートリアルを公開中 — ロボットアームからセンサーまで
コンテンツへスキップ
この製品を購入公式ストア公式サイト

第 9 章:音声対話

ストアで購入

この章の目標:小智 AI クラウドサービスに接続し、NanoCam と自然な音声対話を行います。

本章について

本章では XiaoZhi AI モード(ai_mode:6)を扱います。重要:モード 6(音声対話)とモード 7(ESP-Claw)は同じ 1 つのファームウェア(nanocam_espclaw/)を共用し、デバイス起動時に NVS に保存された ai_mode 値に応じて異なる MCP ツールセットをロードするだけの違いです。

比較項目XiaoZhi AI (mode 6)ESP-Claw (mode 7)
音声対話✅ ASR→LLM→TTS✅ 同じ音声パイプライン
MCP ツール汎用ツール(音量/撮影など)汎用ツール + 5 つのハードウェア専用ツール
視覚理解self.camera.take_photoself.camera.inspect_image (マルチモーダル視覚)
LED 制御✅ 音声で色調整
適用シーン汎用 AI 対話、子供の教育ハードウェア制御、ビジュアル点検、スマートホーム

本章は XiaoZhi AI(モード 6) の音声対話の中核機能に焦点を当てます。ESP-Claw のハードウェア制御機能については第 11 章:ESP-Claw 音声制御をお読みください。

原理

NanoCam は小智 AI オープンソースフレームワークを統合し、WebSocket / MQTT プロトコルで LLM サーバーに接続して完全な音声対話パイプラインを実現します:

Plain
ユーザーが話す → ES8311 マイクで収音 → Opus エンコード
  → WebSocket → クラウド ASR 音声認識
  → LLM 大規模モデルが返答を生成
  → TTS 音声合成 → Opus デコード
  → NS4150B アンプ → スピーカー再生

全二重設計:AI が話している最中でもユーザーが直接割り込め(barge-in)、まるで人と会話しているかのような体験が得られます。

ハードウェア要件

本章は音声機能を扱うため、以下のハードウェアが必要です:

  • NanoCam コアボード(ES8311 Codec + AP2718AT マイク搭載)

  • NanoCam ベースボード(NS4150B アンプ + CH340K 搭載)

  • スピーカー(ベースボードのスピーカーインターフェース、VON/VOP に接続)

コアボードのみでもテストできます(ES8311 のヘッドホン出力でモニタリング)。マイクは AP2718AT アナログ MEMS シリコンマイクで、C26 の直流阻止コンデンサを介して ES8311 MIC1P に接続されています。

手順

9.1 XiaoZhi AI ファームウェアの書き込み

XiaoZhi AI は nanocam_espclaw/ という独立したファームウェアプロジェクトを使用します:

Bash
cd nanocam_espclaw
idf.py set-target esp32s3
idf.py build
idf.py -p COMx flash monitor

起動後はデフォルトで XiaoZhi AI モードになります。

9.2 xiaozhi.me クラウドサービスへの接続

NanoCam は出荷時から xiaozhi.me 公式クラウドサービス(無料)に接続する設定で、自前サーバーの構築は不要です。

  1. xiaozhi.me でアカウントを登録

  2. デバイスの電源を入れると、自動的に 6 桁のアクティベーションコードを読み上げます

  3. xiaozhi.me コンソールでアクティベーションコードを入力 → デバイスをバインド

  4. コンソールで LLM モデル(Qwen / DeepSeek など)を選択

アクティベーションは 1 回だけで、以降は電源投入ごとに自動接続されます。

9.3 初回の対話

プロンプト音が聞こえたら会話できます:

Plain
あなた: "你好小智、今日の天気はどう?"
NanoCam: "今日の天気を調べてみますね..."

ウェイクワードは 「你好小智」(デフォルト)です。

9.4 よく使う対話シーン

Plain
💬 "ジョークを言って"        → AI が音声で回答
💬 "5 分後にアラームをセットして" → アラーム機能
💬 "今何時?"                 → 時刻の読み上げ
💬 "軽い音楽をかけて"        → ネット経由で音楽再生
💬 "ブラックホールとは?"     → 知識 Q&A

自前サーバーの構築(任意)

プライバシー上の要件がある場合、または自前の LLM を使いたい場合は、小智 AI オープンソースサーバーをデプロイできます:

Bash
git clone https://github.com/xinnan-tech/xiaozhi-esp32-server
cd xiaozhi-esp32-server
pip install -r requirements.txt
python app.py

ファームウェアのサーバーアドレスは OTA システム(sdkconfig の CONFIG_OTA_URL)を通じて配信され、デバイスは電源投入後に自動的にサーバーアドレスを要求します。

XiaoZhi AI は小智 AI オープンソースサーバー(WebSocket 私有プロトコル + ASR/LLM/TTS パイプライン)を使用します。ESP-Claw モードではこれに加え、視覚分析機能の Vision API URL と token が MCP ハンドシェイク段階でサーバーから配信され、ファームウェア側で独自に設定する必要はありません。

トラブルシューティング

症状考えられる原因解決方法
音が聞こえないスピーカーが未接続ベースボードのスピーカーインターフェースを確認
音声認識が不正確環境ノイズが大きいマイクに近づいて話す(距離 < 1m)
接続できないWiFi が未設定まずシリアルで設定 sta_ssid:xxx
アクティベーションコードがない初回起動が未完了30 秒待つと、デバイスが自動的に読み上げます
応答が遅いLLM サーバー側の遅延xiaozhi.me でより高速なモデルを選択、またはサーバーを自前構築

シリアル設定などの完全なコマンドはシリアルプロトコルマニュアルを参照。

次の章:第 10 章:AI 視覚理解