news 2026/9/4 13:41:19

把一块 ESP32 变成会说话的 AI 伙伴:xiaozhi-esp32 完整上手指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
把一块 ESP32 变成会说话的 AI 伙伴:xiaozhi-esp32 完整上手指南

把一块 ESP32 变成会说话的 AI 伙伴:xiaozhi-esp32 完整上手指南

【免费下载链接】xiaozhi-esp32An MCP-based chatbot | 一个基于MCP的聊天机器人项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32

想让家里那块闲置的 ESP32-S3 开发板,变成一个能被语音唤醒、会显示表情、还能反过来帮你按灯的 AI 小助手?xiaozhi-esp32(小智 AI 聊天机器人)就是为这件事准备的开源固件。它把离线唤醒、语音识别、大模型对话、MCP 多设备控制这些能力全部塞进几块钱的芯片里,覆盖 ESP32 到 S3、P4 共六类芯片平台,适配 130 多种开发板。

先想清楚:你拿它想做什么

在动手前,先按使用场景挑一条主线,后面选型、接线、写代码都会更顺。

三种典型玩法

  • 桌面聊天伙伴:用带屏幕的开发板(M5Stack CoreS3、ESP32-S3-BOX-3、LILYGO T-Circle-S3 等),日常闲聊、问答、讲冷笑话,屏幕上同步显示表情与歌词。
  • 机器人 / 舵机控制:参考 main/boards/otto-robot/ 示例,让大模型通过 MCP 调用self.otto.jump这类工具,让机器狗真的跳起来。
  • 智能家居入口:把固件跑在带 4G 的板子上,用语音控制家里的灯和插座,通过云端 MCP 扩展到桌面操作、邮件查询等能力。

它是什么:给 ESP32 装上"大脑"和"手脚"

xiaozhi-esp32 的核心思路是把设备端做成"薄客户端",把算力压力留给云端。

架构分两层:

  • 感官层(设备本地):麦克风拾音、离线唤醒词检测(ESP-SR,默认"你好小智",可自定义)、Opus 编码上行;同时负责 TTS 下行解码、OLED/LCD 表情渲染、电池与按键管理。相关源码集中在 main/audio/。
  • 决策层(云端):ASR、LLM(Qwen / DeepSeek 等)、TTS 全部放在服务端,设备只做流式收发,延迟低、对芯片算力要求小。

两种传输通道可选:WebSocket(默认,低延迟全双工)与MQTT + UDP(音频走 UDP、指令走 MQTT,弱网更稳)。详细说明见 docs/websocket.md 与 docs/mqtt-udp.md。

一次对话如何走完:协议与数据流

从"你好小智"到回答出声

  1. 本地 AFE 唤醒词引擎在静音/闲聊中命中唤醒词,触发 main/audio/wake_words/ 下的回调。
  2. 设备与后台握手,hello消息里声明能力,例如"features": { "mcp": true, ... }
  3. 你说话 → Opus 流上行 → 云端 ASR → LLM 推理 → TTS → Opus 流下行 → 扬声器播放。
  4. 大模型想调用设备能力时,通过tools/call发起请求,设备执行后返回结果。

MCP:给大模型配一把"万能遥控器"

MCP(Model Context Protocol)本质是 JSON-RPC 2.0 的一套约定:设备把自己能做的事包装成"工具"(Tool),大模型通过工具名加参数就能"隔空遥控"你的硬件。想控制灯、想摇舵机、想读电池,都用同一套消息格式。完整消息结构见 docs/mcp-protocol.md,实战示例见 docs/mcp-usage.md。

三条上手路径,选一条就能开工

按你手上有什么、想改多深,走对应路径。

路径一:官方固件,5 分钟通电

最简单:注册官方控制台账号,下载对应板子的官方固件直接刷入。默认连官方服务器,个人免费使用 Qwen 实时模型,适合只想体验、不想搭环境的读者。

路径二:面包板 DIY,理解每一根线

没有成品开发板?用 ESP32-S3 模组加 I2S 麦克风、I2S 扬声器,杜邦线直连即可。

接线与音频链路细节见 docs/v0/ 与 docs/v1/ 里的示例图,麦克风和扬声器都是 I2S 接口,插对方向就能出声。

路径三:从源码构建,改到满意为止

需要 ESP-IDF v6.0.2(主线推荐)加 C/C++ 工具链,Linux 下编译更快、驱动问题更少。

git clone https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32 cd xiaozhi-esp32

选目标芯片,然后一键编译烧录:

idf.py set-target esp32s3 idf.py build flash monitor

板子选型在 main/boards/,每个目录一份config.json加若干.cc文件,menuconfig里切一下目标板即可。

进阶玩法:让机器人听懂你的指令

注册一个 MCP 工具

想让大模型说"让 Otto 跳两次"时它真的跳,只需在板级代码里加一段:

mcp_server.AddTool("self.otto.jump", "让机器人跳跃", PropertyList({ Property("steps", kPropertyTypeInteger, 1, 5), Property("period", kPropertyTypeInteger, 1000, 3000) }), [](const PropertyList& p) { Otto().Jump(p["steps"].value<int>(), p["period"].value<int>()); return true; });

云端调用长这样:

{ "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "self.otto.jump", "arguments": { "steps": 2, "period": 1500 } }, "id": 1 }

实现入口在 main/mcp_server.cc,完整机器人示例在 main/boards/otto-robot/otto_robot.cc。

自定义唤醒词与表情

  • 唤醒词:用 ESP-SR 训练工具重训任意短语,替换 main/assets/locales/ 下对应语种的提示音。
  • 表情 / 背景:LVGL 图像转换脚本在 scripts/Image_Converter/,OGG 语音打包在 scripts/ogg_converter/,改完重新编译即可替换。

常见问题排查

现象大概率原因处理
唤醒不到麦克风太远或背景太吵靠近声源,先在安静环境验证
语音卡顿网络抖动切到 MQTT+UDP 通道,或改走有线
舵机 / 灯不响应工具未注册或参数类型错先用tools/list确认工具存在
编译失败ESP-IDF 版本不对升级到 v6.0.2,参考 docs/esp-idf-6-migration.md

调试音频用 scripts/audio_debug_server.py,能实时看到唤醒与 VAD 状态;排查蓝牙配网看 docs/blufi_zh.md。


MIT 协议开源,免费商用。项目仓库:

GitHub_Trending/xia/xiaozhi-esp32

如果你也做出了有意思的玩法,欢迎提 Issue 或 PR,把新板子、新工具、新教程贡献进来,一起把 ESP32 的语音生态做大。

【免费下载链接】xiaozhi-esp32An MCP-based chatbot | 一个基于MCP的聊天机器人项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 13:39:02

微信小程序云开发搭建便利店商城,低成本实现线上下单与支付

想给家门口的便利店或社区超市加一个“微信商城小程序”&#xff0c;又不希望一开口就是几千上万的定制开发费&#xff0c;这可能吗&#xff1f;能&#xff0c;而且有两条比较务实的路线&#xff1a;一条是直接用微信官方“小商店”类的能力快速开店&#xff0c;另一条是结合微…

作者头像 李华
网站建设 2026/9/4 13:35:35

用MCP+Claude自然语言驱动Unity/Unreal游戏开发

先说我最近的一个真实工作流&#xff1a;策划上午丢来一句话&#xff0c;“把大厅里那圈装饰灯改成根据在线人数改变颜色和闪烁节奏&#xff0c;顺便在关卡边缘画一条动态警示线。”以前接到这种需求&#xff0c;从打开Unity、定位预制体、写生命周期逻辑、连UI事件到反复调参&…

作者头像 李华
网站建设 2026/9/4 13:33:12

三步把文档变成原生可编辑 PPT:PPT Master 完整实战

三步把文档变成原生可编辑 PPT&#xff1a;PPT Master 完整实战 【免费下载链接】ppt-master AI turns documents or topics into real, native PowerPoint decks—with native shapes, transitions and animations, data-backed charts and tables on demand, audio narration…

作者头像 李华
网站建设 2026/9/4 13:32:33

从演示到生产:AI大模型工程化实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/4 13:30:13

计算机单片机毕设实战-基于单片机的多路病床呼叫与温湿度实时监测终端设计 基于 NRF24L01 通信的医患双向呼叫报警装置设计(020206)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机&#xff0c;Java、小程序技术领域和毕业项目实战 ✌️…

作者头像 李华