ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

一个晚上点亮的 ESP32 语音助手:离线唤醒加一句话开灯,一次走通

一个晚上点亮的 ESP32 语音助手:离线唤醒加一句话开灯,一次走通 一个晚上点亮的 ESP32 语音助手离线唤醒加一句话开灯一次走通【免费下载链接】xiaozhi-esp32An MCP-based chatbot | 一个基于MCP的聊天机器人项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32昨晚对着面包板上那只小喇叭说了句开灯几秒后 LED 真的亮了。不是什么展会灯光秀就是接了几根线、改了几处设置的结果。这套玩法来自开源项目 xiaozhi-esp32小智板子上做离线语音唤醒再通过 WebSocket 或 MQTT 连上大模型进行语音对话还能借 MCP 协议控制挂在设备上的 GPIO 和智能硬件。本文不讲原理推导只讲怎么点通、让它干活。先把这几样东西摆出来部件推荐规格为什么选它 / 可换什么主控ESP32-S3带 PSRAM带 AFE 回声消除的唤醒需要 S3/P4 级芯片加 PSRAMC3 系只有更简的 Wakenet麦克风I2S 麦INMP441 等项目面包板方案已按 I2S 麦布线三根信号线直连喇叭I2S DAC 加小喇叭MAX98357A 等I2S 直接驱动省掉一颗功放芯片屏幕0.96 寸 OLED 或任意小 LCD只显示状态嫌麻烦可以省家电5mm LED 加 220Ω 电阻第一个被控制的目标反馈最直接面包板加杜邦线任意杜邦线多买十套后面一定用得上手里要是已经有 ESP32-S3-BOX-3、CoreS3 这类成品板麦克风和喇叭都在板上前面三行可以整段跳过。先让板子上线别管细节两条路任选其一省事路线直接刷官方提供的预编译固件电脑不用装开发环境。设备配网靠热点或 BluFi把 Wi-Fi 密码递过去就行。定制路线装 VSCode 加 ESP-IDF 插件推荐 6.0.2克隆仓库后用idf.py menuconfig选板型——main/boards/下有约 170 个官方变体面包板方案对应bread-compact-esp32。git clone https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32成功标准只有两条串口日志里看到 Wi-Fi 连上并拿到 IP屏幕有画面。其余一律先不动。就像点外卖饭到了才谈得上研究菜单饭都没到就研究菜单没有意义。让它听懂人话唤醒词只动三处刷完固件对着板子喊你好小智LED 开始闪、屏幕切到聆听态就算走通了一半。想改口menuconfig 里动三处唤醒实现类型Wake Word Implementation Type。ESP32-S3 加 PSRAM 时默认选中Wakenet model with AFE自带你好小智开箱即用换名字改选Multinet model (Custom Wake Word)Custom Wake Word填拼音空格分隔比如xiao tu dou再把Custom Wake Word Display设成小土豆喊它时对方会按这个名字打招呼灵敏度Custom Wake Word Threshold默认 20取值 1–99越小越敏感。喊不应就降到 15 试试自己乱醒就调高。其余全部保持默认。预期效果安静房间一两米内稳定唤醒客厅开电视不轻易误触——后者是加分项跟麦克风摆放位置关系很大。提示测试唤醒先关电视、关门做一遍再开电视复测。一旦开电视就误醒先挪麦克风位置别急着动阈值。让它动手干活开灯的一句话走了哪几站MCP 配完对之后大模型像一个完成对码的遥控器清楚这台设备上有哪几个按键按名字调用即可。一句话说出去后的链路语音被唤醒引擎放行麦克风数据打成 Opus 包经 WebSocket 上传上行消息顺序详见 docs/websocket_zh.md服务端大模型听懂意图决定调用工具把 JSON-RPC 2.0 请求包在mcp消息里发回设备设备端mcp_server.cc收到tools/call按工具名分发给对应处理函数GPIO18 拉高LED 亮起屏幕显示正在执行。灯的工具在面包板方案的esp32_bread_board.cc里已注册LampController引脚定义在config.h的LAMP_GPIO默认 18。想换引脚改这一处再重刷。消息结构细节可查 docs/mcp-protocol_zh.md。唤不醒、灯不亮先查这三处 第一处刷完固件屏幕全黑。第一反应是固件坏了实际是 USB 线只供电不传数。换数据线串口日志立刻刷出来——十个板子死了九个是线的问题。 第二处贴脸喊小土豆没反应。怀疑麦克风坏了半个晚上实际是板子没 PSRAM唤醒类型悄悄回落成了Disabled等于根本没开。重选 Multinet、阈值降到 15一次就醒。 第三处说开灯回一句做不了。先查了服务器半天实际是选的板型变体没注册灯的工具LampController只出现在部分面包板方案里。换到bread-compact-esp32一句话解决。三处坑的共性先怀疑硬件最后发现全是配置项选错了。所以出问题时先看 menuconfig 的实际生效值再动烙铁。点通之后还有三件小事值得做把继电器或智能插座接到 GPIO18LED 换成真·房间灯反馈感完全不同换一块带摄像头的板型问桌上放着什么它会拍照丢给大模型回答把传输换成 MQTT UDP弱网局域网里听一听语音链路的延迟差多少麦克风接上喊出第一声小土豆剩下的交给串口日志。【免费下载链接】xiaozhi-esp32An MCP-based chatbot | 一个基于MCP的聊天机器人项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进