小智 AI 聊天机器人是一块 ESP32 上的开源语音助手:对着板子说话,它能唤醒、把话送去识别,再把回答从喇叭放出来。要拆开看,别把它当成「模型都烧在芯片里」。板子本地只稳稳做一件事——用 ESP-SR 听唤醒词;听懂、组织回答、合成声音,默认都在服务器上。刷进固件会出声,只说明链路通了,不说明脑子在 Flash 里。

仓库叫 xiaozhi-esp32,虾哥开源,协议 MIT。github.com/78/xiaozhi-esp32,设备默认可接 xiaozhi.me。麦、喇叭、屏做成语音入口,大模型走 Qwen / DeepSeek 一类云侧能力,设备用 MCP 控音量、灯、电机、GPIO。文档里上百个板级变体:面包板、立创实战派、乐鑫 BOX-3、M5Stack,以及带 Cat.1 的 4G 板。它是 ESP-IDF 固件,不是 Linux 音箱整机。

语音助手拆开:从唤醒到回答

在这里插入图片描述
图1:板子采音,云端回答

麦克风一直在听
  → 板子上 ESP-SR 命中唤醒词(可离线)
  → 开始采你的话,编成 Opus 流
  → Wi-Fi / 以太网 / 4G 送到服务器
       WebSocket    或    MQTT 信令 + UDP 音频
  → 服务器:识别(ASR)→ 大模型 → 合成(TTS)
     也可走 Realtime 端到端语音
  → Opus 流回板子,喇叭播放
  → 要动手:设备 MCP(灯、GPIO)或云端 MCP(家居、电脑)

唤醒用乐鑫 ESP-SR,可以自定义词,这一步可以不联网。后面整段对话默认要网:音频是 Opus,不是板子本地跑完整大模型。传输两条路——WebSocket 一条连到底,或 MQTT 管信令、UDP 跑音频。有回声消除(AEC)的硬件才能做得像全双工,便宜小板经常是你说完它再说。

屏(OLED/LCD)显示表情和状态,部分板带摄像头给视觉模型。声纹(3D Speaker)用来认人,同样多在服务侧配合。配网:板子开热点,或 BluFi;家里路由器请走 2.4G,5G 专频很多 ESP 进不去。

和树莓派上那类 Linux 语音助手不是同一条实现:小智把「听懂、组织回答」放在服务器,板子负责唤醒、压缩音频、播放和本地 GPIO。

助手拆成两截:板上有什么,云上有什么

在这里插入图片描述
图2:唤醒在本地,对话走服务器

在哪干什么
板子唤醒、录音、Opus、喇叭、屏、电量、MCP 控灯/电机
传输WebSocket,或 MQTT + UDP
官方云 xiaozhi.me个人可注册,文档写明可免费用 Qwen 实时模型
自建服务社区按同一套协议做的后端,不是官网源码原样开出来

自建常见仓库:Python 的 xinnan-tech/xiaozhi-esp32-server,还有 Java、Go 实现。自己搭要配 ASR/LLM/TTS 密钥、OTA 地址,配网高级项里改服务器,不必一上来改固件。只想先听它说话,用官方云最快。

MCP 分两层:设备上的工具改音量、GPIO;云上的工具去调家居、电脑、搜索。板子能「执行」,不表示模型权重在 Flash 里。

语言包、表情、唤醒词、聊天背景,可以用网页端的自定义资源生成器再灌进设备,不必为换一句唤醒词从零编译。真要改默认服务器、板级引脚、MCP 工具集,才值得自己编固件。

芯片覆盖 ESP32 / C3 / C5 / C6 / S3 / P4。内存小的 C3 能当聊天入口,带屏、摄像头、AEC 的 S3/P4 更像一只完整助手。4G 走 ML307、EC801E、NT26 一类 Cat.1,部分板能在 Wi-Fi 和蜂窝之间切。蜂窝模组耗电和天线比 Wi-Fi 苛刻,供电虚了会表现为「配上网又掉」。

拆完之后怎么跑起来

在这里插入图片描述
图3:刷对板型 → 配上 2.4G → 先唤醒再对话

1. 认准板型,烧对应固件。 对照仓库支持列表,不要拿「都是 S3」当同一份固件。新手跟飞书里的烧录教程走免开发环境烧录。USB 口要能进下载模式(很多板要按住 BOOT 再插、或按 RST)。自己从源码编,当前要 ESP-IDF 6.0.1 及以上(文档推荐 6.1,不再支持 5.x);idf.py set-target 选对芯片,menuconfig 里 Board Type 必须对上你的板。选错了屏、I2S、功放引脚全飞,花屏、无声、反复重启都像「助手坏了」,其实是拆错层。

2. 配网。 上电后手机连板子热点(名称常见带 Xiaozhi),浏览器打开配网页(常见 192.168.4.1),填家里 2.4G Wi-Fi。高级项里才改 OTA / 服务器地址。连上后串口或屏上应能看到 IP。

3. 绑定账号。 用官方云的,到 xiaozhi.me 按控制台把设备加进去,选模型。自建则把设备指到你的 WebSocket/MQTT 入口。

4. 先验证唤醒,再验证对话。 唤醒灯/屏有反应,说明 ESP-SR 和麦基本对。能问一句有回音,说明网和服务器通。无声先查板型、I2S、功放使能,再查是不是连了 5G、服务器拒绝、UDP 被路由器拦。同一房间里喇叭对着麦,没有 AEC 就会自己跟自己喊。

官方云个人账号能先把链路跑通;要换模型、知识库、本地 ASR,再上社区服务器。OTA 地址填错时,设备往往还能唤醒,只是再也不更新、也不上你的新后端——改完配网重启,看它到底连的是哪台主机。

现象优先排查
刷完黑屏 / 重启固件和板型、芯片是否匹配,下载模式是否进对
配不上网2.4G、密码、热点有没有起来
能唤醒不回答没出网、没绑定、服务器地址、防火墙
有声但啸叫麦和喇叭太近,板子没有可用 AEC
自己编不过IDF 是否 ≥ 6.0.1,组件是否按文档拉全
想换服务器配网高级项改 OTA,别先改唤醒词

板型选错、2.4G 没连上、服务器没通,听起来都是「助手不说话」——先按上面的拆法判断断在板子、网,还是云。别一上来改唤醒词。电源用稳定 USB;带屏、4G、功放同时开,口电不够会随机复位。面包板杜邦线虚焊,听起来也像「固件坏了」,先晃一晃线再怀疑软件。

边界

  • 唤醒可离线,完整对话默认要服务器,断网不等于本地大模型音箱。
  • 官方云面向个人试用;量大、商用、隐私敏感应自建,并自己承担模型与合规。
  • 社区后端按协议兼容,不是 xiaozhi.me 生产代码原仓。
  • 板型矩阵在变,以仓库当前 README 和发布固件为准。
  • MCP 能控灯、电机,仍要你自己接线和安全隔离,固件不是整屋中枢。

参考

https://github.com/78/xiaozhi-esp32
https://xiaozhi.me
https://github.com/espressif/esp-sr
https://github.com/78/xiaozhi-esp32/blob/main/docs/websocket_zh.md
https://github.com/78/xiaozhi-esp32/blob/main/docs/mqtt-udp_zh.md
https://github.com/78/xiaozhi-esp32/blob/main/docs/mcp-usage_zh.md
https://github.com/xinnan-tech/xiaozhi-esp32-server
https://ccnphfhqs21z.feishu.cn/wiki/Zpz4wXBtdimBrLk25WdcXzxcnNS

在这里插入图片描述

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐