把 AI 装进一块 ESP32:它不只会聊天,还能控制灯和舵机
一个基于 ESP32 的开源语音助手项目:从唤醒、识别、对话到设备控制,给你一条适合入门者的上手路线。

先说结论:这是把“语音助手”做成了一个小盒子
如果你想做一个能听懂人话、能回答问题、还能控制灯光或舵机的小设备,通常要把几件事分别接起来:唤醒词、语音识别、大模型、语音合成,再加上硬件驱动。
难点不在某一个模块,而在它们之间的衔接。只要其中一段延迟高、协议不兼容,最后做出来的就不是助手,而是一套需要不断调试的零件。
xiaozhi-esp32 提供了一条已经打通的路线:让 ESP32 负责采集声音、播放语音和控制外设,把对话能力接入模型服务,再通过 MCP 把“聊天”变成“做事”。
它能做什么?
根据仓库当前的功能说明,这个项目已经覆盖了几类关键能力:
- 语音唤醒:支持基于 ESP-SR 的离线唤醒,也可以自定义唤醒词。
- 连续对话:支持传统的“语音识别 → 大模型 → 语音合成”链路,也支持实时端到端语音模型。
- 设备控制:设备侧可以控制扬声器、LED、舵机、GPIO 等外设。
- 多种联网方式:支持 Wi-Fi、有线以太网、USB RNDIS,以及部分 4G 模组。
- 更多交互组件:支持 OLED/LCD 显示、摄像头输入、说话人识别、电量显示和电源管理。
- 多芯片、多开发板:当前仓库列出了 138 个开发板目录和 171 个发布变体,覆盖 ESP32、C3、C5、C6、S3、P4 等平台。
项目还提供了 39 种界面语言。换句话说,它不是只给某一块固定硬件写的 Demo,而是试图做成一套可以移植到不同开发板上的语音硬件底座。

MCP 在这里到底有什么用?
可以把 MCP 理解成一套“让模型调用设备能力”的接口。
没有 MCP 时,你只能让设备播放一句话;有了设备侧 MCP,模型可以进一步调用已经注册好的能力,例如:
“把灯打开。”
设备收到指令后,执行对应的 LED 或 GPIO 操作,再把结果反馈回来。云端还可以继续扩展能力,比如连接智能家居、桌面操作、知识搜索或邮件服务。
这里要分清两件事:
- 模型负责理解意图、生成回复或决定调用哪个能力。
- ESP32 负责执行已经写好的硬件动作。
它不会凭空获得控制任何设备的能力。你仍然需要接线、配置引脚,并为每个外设实现安全的控制逻辑。

新手怎么开始?
第一步:先买一块被支持的开发板
最省事的方式,不是从裸芯片开始焊,而是从仓库支持列表里选择一块已有完整配置的板子。常见方向包括 ESP32-S3-BOX、M5Stack CoreS3、LILYGO 系列,以及一些带屏幕、麦克风和扬声器的开发板。
选购时重点看四件事:
- 有没有麦克风和扬声器;
- 是否有可直接使用的固件或刷写说明;
- 板子使用哪一种 ESP32 芯片;
- 是否需要额外购买电池、扩展板或 USB 数据线。
同样叫 ESP32,板子的音频芯片、屏幕、按键和引脚布局可能完全不同。不要只看芯片名称,先对照仓库的支持列表。
第二步:优先刷现成固件
如果只是想体验效果,建议先走“免开发环境刷写”路线。仓库给新手提供了固件刷写指南,设备默认连接官方服务;完成注册和配网后,可以先验证唤醒、对话和基础设置。
这一步的目标不是立刻改代码,而是确认三件事:
- 麦克风能否正常采集;
- 扬声器能否正常播放;
- 设备能否稳定联网并完成一次对话。
先把硬件链路跑通,后面再改唤醒词、界面或 GPIO 控制,排错会轻松很多。
第三步:再搭建开发环境
需要改源码时,再安装 Cursor 或 VSCode,并配置 ESP-IDF。当前主线推荐 ESP-IDF 6.0 及以上版本,仓库特别推荐 6.0.2;部分旧开发板仍保留旧版 ESP-IDF 的兼容路径。
开发环境主要用于三类事情:
- 编译适配某块开发板的固件;
- 修改界面、唤醒词、音频参数和外设逻辑;
- 研究 WebSocket、MQTT+UDP 以及 MCP 的通信实现。
第一次尝试不建议同时改网络协议、音频链路和硬件驱动。先复制一个已有板卡配置,改一个 LED 或按键动作,确认编译、刷写、运行都没有问题,再逐步增加功能。
它不是什么?
这不是一个“刷完就拥有万能机器人”的项目,几个边界需要提前说清楚:
- 它不是完全离线的大模型。仓库提供的是设备端固件和通信能力,实际对话通常仍依赖官方服务或你配置的模型服务。
- 硬件动作不会自动出现。灯、舵机、GPIO 能不能控制,取决于你的接线、驱动和权限配置。
- 171 个变体不等于 171 块板子都一样好装。不同板卡的音频、屏幕、电源和引脚差异,仍然需要按具体型号验证。
- 实时语音不等于零延迟。网络质量、模型服务、音频编解码和硬件能力都会影响体验。
- 开源不等于没有成本。硬件要购买,云端模型或服务可能有额度、账号和资费限制。
项目采用 MIT 许可证,允许个人和商业使用,但仍要遵守所连接的模型服务、硬件平台和第三方组件各自的条款。
适合谁?
它比较适合三类人:
- 想快速做出语音硬件原型的开发者;
- 想学习 ESP32 音频、联网和 MCP 设备控制的学生或爱好者;
- 想把语音交互接到实体设备上的产品原型团队。
如果你只是想在手机上聊天,它可能有点“绕”;但如果你想让一个桌面小盒子听懂指令、开灯、播报信息,或者成为家里某个设备的语音入口,这条路线值得试试。
最后:先做一个小而确定的实验
不要一上来就做“全屋智能”。更稳妥的第一个项目是:
唤醒设备 → 说一句话 → 让板载 LED 改变状态 → 设备用语音确认结果。
这个实验同时覆盖了语音输入、模型调用、MCP 指令和硬件输出四个环节,规模足够小,出了问题也容易定位。
等这条链路稳定后,再加显示屏、舵机、摄像头或其他智能家居设备。那时你做的就不再只是一个会聊天的开发板,而是一台真正能执行动作的语音终端。
项目地址: