🧪 新教程持续更新中 · 从机械臂到传感器,跟着教程从零搭建
跳到主要内容

第 9 章:语音对话

淘宝店铺

本章目标:接入小智 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 视觉理解