🧪 新教程持續更新中 · 由機械臂到傳感器,跟隨教程從零搭建
跳到主要內容

第 9 章:語音對話(XiaoZhi AI) ​

淘寶店鋪

本章目標:接入小智 AI 雲端服務,與 NanoCam 進行自然語音對話。

關於本章 ​

本章涉及 XiaoZhi AI 模式(ai_mode:6)。重要:模式 6(語音對話)與模式 7(ESP-Claw)共用同一份固件(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 等) 激活只需一次,之後每次上電都會自動連接。

9.3 首次對話 ​

聽到提示音後即可對話:

Plain
你: "你好小智,今天天氣怎麼樣?"
NanoCam: "我幫你查一下今天的天氣..."

喚醒詞為 「你好小智」(預設)。

9.4 常用對話場景 ​

Plain
💬 "講個笑話"              → AI 語音回答
💬 "幫我設個5分鐘的鬧鐘"    → 鬧鐘功能
💬 "現在幾點了"             → 報時
💬 "播放一首輕音樂"         → 連網播放音樂
💬 "什麼是黑洞"             → 知識問答

自行架設伺服器(可選) ​

如果對隱私有所要求,或希望使用自行架設的 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 模式在此基礎上,視覺分析功能由伺服器端在 MCP 握手階段下發 Vision API URL 和 token,固件無須自行設定。

故障排除 ​

症狀可能原因解決
聽不到聲音揚聲器未連接檢查底板揚聲器介面
語音辨識不準環境噪音太大靠近麥克風說話(距離 < 1m)
無法連接WiFi 未設定先用串列埠配網 sta_ssid:xxx
沒有激活碼首次啟動未完成等待 30 秒,裝置會自動播報
回答很慢LLM 伺服器端延遲xiaozhi.me 選擇更快的模型,或自行架設伺服器

串口配網等完整指令見串口協議手冊。

下一章:第 10 章:AI 視覺理解