基于 xiaozhi-esp32 开源项目,适配 ICECAT K2 开发板,深度体验端云协同 AI 语音交互。
本项目是一个基于 ESP32-S3 的 AI 语音交互机器人固件,采用「端侧唤醒 + 云端智能处理」的端云协同架构。
| 版本 | 说明 |
|---|---|
| 固件版本 | v2.2.2(基于上游主分支) |
| 硬件平台 | ICECAT K2(ESP32-S3 + 8MB PSRAM + OV2640) |
| 开发框架 | ESP-IDF 5.1 + FreeRTOS |
| 大模型 | DeepSeek V3.2 |
| 功能 | 状态 |
|---|---|
| ESP-SR 离线语音唤醒(自定义唤醒词) | ✅ 已验证 |
| I2S + DMA 音频采集(16kHz/16bit) | ✅ 已验证 |
| Opus 音频编解码 | ✅ 已验证 |
| WebSocket / MQTT 双协议通信 | ✅ 已验证 |
| 离线语音命令识别(Local ASR 扩展) | ✅ 已开发,代码开源 |
| 低功耗自动休眠(3分钟超时) | ✅ 已验证 |
| 功能 | 说明 |
|---|---|
| 声纹识别(3D Speaker) | 可识别不同说话人身份,实测能准确识别本人声音 |
| 声音克隆(CosyVoice) | 曾使用定制音色,后因自然度问题切回默认 |
| 大模型对话(DeepSeek V3.2) | 当前使用的 LLM 引擎,中文理解能力强 |
| 流式 TTS 语音合成 | 低延迟语音合成反馈 |
| SenseVoice 多语言识别 | 支持中英日韩粤等多种语言 |
用户说出唤醒词
→ ESP-SR 端侧唤醒检测
→ 与云端建立 WebSocket 连接
→ I2S+DMA 采集音频 → Opus 编码 → 上传
→ 云端: ASR 转文字 → LLM 理解 → TTS 合成
→ 音频下发 → Opus 解码 → I2S 播放
→ 完成语音交互闭环
main/
├── application.cc/h # 主控逻辑、事件循环、状态机
├── audio/ # 音频服务:采集、播放、编解码
│ ├── audio_service.cc # 音频任务调度(3个并行任务)
│ ├── codecs/ # ES7210、ES8311 等 Codec 驱动
│ └── wake_words/ # ESP-SR 唤醒词引擎
├── local_asr/ # [新增] 离线命令识别模块
│ ├── local_asr.cc # 10条中文指令 + ESP-SR multinet
│ └── include/ # 头文件
├── protocols/ # WebSocket / MQTT 协议
├── display/ # OLED / LCD 显示与表情
├── led/ # LED 状态指示
├── boards/ # 板级支持包(70+ 开发板)
└── mcp_server.cc # MCP 协议设备控制
在网络不可用时,系统自动降级为本地命令识别模式。实现代码在 main/local_asr/ 目录。
核心改动:
| 文件 | 改动内容 |
|---|---|
main/local_asr/local_asr.cc/h |
新增 LocalAsr 类,封装 ESP-SR multinet 命令识别 |
main/audio/audio_service.h/cc |
新增 AS_EVENT_LOCAL_ASR_RUNNING 事件 + 音频路由 |
main/application.h/cc |
新增离线模式状态管理和命令执行逻辑 |
main/device_state.h |
新增 kDeviceStateOfflineListening 状态 |
main/Kconfig.projbuild |
新增 LOCAL_ASR_ENABLE 等菜单配置项 |
支持的命令:
| 拼音指令 | 功能 |
|---|---|
| da kai deng | 打开灯 |
| guan bi deng | 关闭灯 |
| da kai feng shang | 打开风扇 |
| guan bi feng shang | 关闭风扇 |
| zhan ting | 暂停 |
| ji xu | 继续 |
| xian zai shi jian | 现在时间 |
独立开发的声音克隆工具链,实现「浏览器录音 → AI 克隆 → 部署到 ESP32」的全流程。
📍 github.com/Liwuyuee/esp32-voice-cloner
- 完成 ICECAT K2 开发板的系统移植和驱动调试
- 完成分场景、分距离的性能测试(唤醒率/功耗/稳定性)
- 项目代码和文档完全开源
本项目基于 ICECAT K2 开发板:
| 组件 | 型号 |
|---|---|
| 主控 | ESP32-S3(双核 Xtensa LX7 @ 240MHz) |
| PSRAM | 8MB |
| Flash | 16MB |
| 音频 ADC | ES7210 |
| 麦克风 | ZTS6216 MEMS 硅麦 |
| 扬声器 | 8Ω / 3W |
| 电池 | 3.7V / 1000mAh 锂电池 |
| 摄像头 | OV2640 |
| 指标 | 测试结果 |
|---|---|
| 1m 安静环境唤醒率 | 99% |
| 3m 安静环境唤醒率 | 97% |
| 3m 强噪音唤醒率(优化前) | 75% |
| 3m 强噪音唤醒率(优化后) | 82%+ |
| 云端识别准确率(安静) | 98% |
| 端到端响应时间 | 650-710ms |
| 待机电流 | 8.5mA |
| 待机续航(1000mAh) | 约 117h |
| 72h 稳定性 | 全部指标 > 90% |
git clone https://github.com/Liwuyuee/xiaozhi-esp32-local.git
cd xiaozhi-esp32-local
idf.py set-target esp32s3
idf.py menuconfig
→ Xiaozhi Assistant → Board Type → ICECAT K2
idf.py build
idf.py -p PORT flash monitor默认连接官方服务器 xiaozhi.me,注册即用。 如需自建服务器,修改
Kconfig.projbuild中的 WebSocket 地址并重新编译。
- 框架: ESP-IDF 5.1 + FreeRTOS
- 语言: C / C++
- 语音唤醒: ESP-SR (WakeNet + MultiNet)
- 音频: I2S + DMA + Opus
- 通信: WebSocket / MQTT + UDP
- 云侧: SenseVoice ASR + DeepSeek LLM + CosyVoice TTS + 3D Speaker
- CI/CD: GitHub Actions 自动构建
- xiaozhi-esp32 — 虾哥开源项目
- xiaozhi-esp32-server — 后端服务器
- ESP-SR — 乐鑫语音识别框架
- ESP-IDF — 乐鑫 IoT 开发框架
MIT License