欢迎光临
我们一直在努力

ESP32-S3小智AI制作教程

从零打造属于你的 AI 语音助手:ESP32-S3 制作「小智 AI」保姆级教程

本文将手把手教你使用 ESP32-S3 开发板 + 面包板,复刻开源爆火项目 小智 AI(xiaozhi-esp32)——一个可以语音唤醒、自由对话、接入 DeepSeek / Qwen 等大模型的桌面 AI 伙伴。全程照做即可复刻成功,总成本约 50~80 元。


目录

  • 一、项目简介
  • 二、实现原理
  • 三、硬件清单(BOM)
  • 四、硬件接线
  • 五、方案 A:免开发环境,直接烧录官方固件(推荐新手)
  • 六、方案 B:源码编译固件(进阶玩家)
  • 七、配网与设备激活
  • 八、控制台配置:给小智换"人设"和大模型
  • 九、常见问题排查(FAQ)
  • 十、进阶玩法
  • 十一、资源汇总

一、项目简介

小智 AI(xiaozhi-esp32) 是由开发者"虾哥"开源的 AI 语音聊天机器人项目,GitHub 上已获得数万 Star,社区极其活跃。

它具备以下能力:

功能说明
🎤 离线语音唤醒 默认唤醒词"你好小智"(基于 ESP-SR)
🗣️ 流式语音对话 支持连续对话、可打断(WebSocket 全双工)
🧠 大模型接入 云端可切换 DeepSeek、Qwen、豆包等大模型
🌍 多语言识别 普通话、粤语、英语、日语等
🔊 声纹识别 能分辨出是谁在和它说话
🎭 自定义人设 在控制台自由设定角色性格、音色
📺 屏幕显示(可选) OLED / LCD 显示表情与对话内容
🏠 IoT 控制 通过 MCP 协议控制智能家居设备

工作前提:小智必须联网才能使用(语音识别与大模型推理在云端完成),无法完全离线运行。


二、实现原理

整体架构如下:

┌──────────────────────────────┐
│ 云端服务器 │
│ ASR(语音识别) → LLM(大模型) │
│ → TTS(语音合成) │
└────────────▲─────────────────┘
│ WebSocket (Opus 音频流)

┌─────────────┐ I2S ┌────────┴────────┐ I2S ┌──────────────┐
│ INMP441 ├────────►│ ESP32-S3 ├────────►│ MAX98357A │───► 🔈 喇叭
│ 数字麦克风 │ 录音 │ · 离线唤醒词 │ 播放 │ I2S 功放 │
└─────────────┘ │ · Opus 编解码 │ └──────────────┘
│ · WiFi 联网 │
└─────────────────┘

流程说明:

  • ESP32-S3 本地运行离线唤醒词检测(ESP-SR),听到"你好小智"后开始工作;
  • INMP441 麦克风通过 I2S 总线采集音频,芯片将其编码为 Opus 格式;
  • 音频流经 WebSocket 上传云端,完成 ASR(语音转文字)→ LLM(大模型生成回复)→ TTS(文字转语音);
  • 云端将合成语音回传,ESP32-S3 解码后通过 MAX98357A 功放驱动喇叭播放。
  • 这也是为什么开发板需要 PSRAM:唤醒词模型和音频缓冲都需要较大内存。


    三、硬件清单(BOM)

    序号组件推荐型号参考价格备注
    1 开发板 ESP32-S3-DevKitC-1(N16R8 模组) ¥35~50 Flash ≥ 8MB、PSRAM ≥ 2MB,强烈推荐 N16R8(16MB Flash + 8MB PSRAM)
    2 麦克风 INMP441 MEMS 数字麦克风模块 ¥3~5 I2S 接口
    3 功放 MAX98357A I2S 音频放大模块 ¥5~8 3W D类功放
    4 喇叭 8Ω 2~3W 小喇叭(腔体喇叭音质更好) ¥3~10 4Ω 3W 也可以
    5 面包板 400 孔面包板 ×1~2 ¥3
    6 杜邦线 公对公 / 公对母若干 ¥3
    7 数据线 Type-C 数据线 ⚠️ 必须是能传数据的线,不能用充电线!
    8 显示屏(可选) 0.91" I2C OLED(SSD1306) ¥8 显示表情和文字

    💡 选购避坑提示:

    • 买开发板时认准模组丝印 ESP32-S3-WROOM-1 N16R8。有些便宜板子是 N8R2 甚至无 PSRAM 的 N4,无 PSRAM 将无法使用语音唤醒。
    • 部分仿制板天线较差,可能导致后续配网时手机搜不到热点,尽量选带板载天线且做工好的。

    四、硬件接线

    以下为源码/官方"面包板 WiFi 版"固件的默认 GPIO 定义,照着接即可,无需改代码。

    4.1 INMP441 麦克风 → ESP32-S3

    INMP441 引脚接到 ESP32-S3说明
    VDD 3.3V ⚠️ 切勿接 5V,切勿与 GND 接反,否则烧毁麦克风!
    GND GND
    SD GPIO 3 音频数据输出
    WS GPIO 10 字选择(左右声道时钟)
    SCK GPIO 11 串行时钟
    L/R GND 接地 = 左声道

    4.2 MAX98357A 功放 → ESP32-S3

    MAX98357A 引脚接到 ESP32-S3说明
    VIN 3.3V 或 5V 接 5V 音量更大
    GND GND
    DIN GPIO 6 音频数据输入
    BCLK GPIO 5 位时钟
    LRC GPIO 4 左右声道时钟
    GAIN GND 增益设置(觉得音量太大可改接 3.3V)
    SD 3.3V 使能引脚
    喇叭 + / − 接喇叭两根线 螺丝端子或焊接

    4.3 OLED 显示屏(可选)

    OLED 引脚接到 ESP32-S3
    VCC 3.3V
    GND GND
    SDA GPIO 41
    SCL GPIO 42

    ⚠️ 接线三查: ① 电源正负极是否接反;② 杜邦线是否插紧(面包板接触不良是玄学问题之王);③ 所有 GND 是否共地。 如果你的接线与上表不同,就必须走方案 B 源码编译,并在配置中同步修改 GPIO。


    五、方案 A:免开发环境,直接烧录官方固件(推荐新手)

    不用装任何开发环境,10 分钟搞定,适合只想"用起来"的同学。

    5.1 下载固件

    前往项目 GitHub 仓库 78/xiaozhi-esp32 的 Releases 页面,下载与你板子对应的固件包(面包板方案选 bread-compact-wifi 类型的合并固件 merged-binary.bin),解压得到 .bin 文件。

    ⚠️ 固件存放路径不要包含中文,例如放在 D:\\xiaozhi\\ 下。

    5.2 安装串口驱动

    用 Type-C 数据线连接开发板与电脑,打开 设备管理器 → 端口(COM 和 LPT):

    • 能看到 USB-Enhanced-SERIAL CH343 (COMx) 或 Silicon Labs CP210x (COMx) → 驱动正常,记下 COM 号;
    • 出现黄色感叹号 → 需安装 CH340/CH343 或 CP210x 驱动(官网搜索下载安装即可)。

    💡 ESP32-S3 板子通常有两个 Type-C 口,优先插丝印为 COM / UART 的那个。

    5.3 使用乐鑫 Flash Download Tool 烧录

  • 到乐鑫官网下载 Flash Download Tool,解压运行;
  • 启动界面选择:ChipType = ESP32-S3,WorkMode = Develop,LoadMode = UART;
  • 主界面配置:
    • 第一行勾选 ✔,点 … 选择解压出来的 merged-binary.bin;
    • 右侧地址栏填 0x0;
    • SPI SPEED:80MHz;SPI MODE:DIO;
    • COM:选择刚才记下的端口;BAUD:921600(失败就降到 115200);
  • 先点击 ERASE 擦除 Flash(可选但推荐),再点击 START 开始烧录;
  • 进度条走完显示 FINISH(完成) 即烧录成功,按一下板上 RST 键重启。
  • 🔧 如果一直显示"正在连接…(CONNECTING)": 按住板上 BOOT 键不放 → 按一下 RST 键 → 松开 BOOT 键,手动进入下载模式后再点 START。

    5.4 备选:esptool 命令行烧录

    # 安装 esptool
    pip install esptool

    # 擦除 Flash(COM 号换成你自己的)
    python -m esptool –chip esp32s3 –port COM5 erase_flash

    # 烧录固件
    python -m esptool –chip esp32s3 –port COM5 –baud 921600 write_flash 0x0 merged-binary.bin

    烧录完成后跳到 第七节:配网与设备激活。


    六、方案 B:源码编译固件(进阶玩家)

    想改 GPIO、换唤醒词、改人设逻辑甚至自建服务器,就需要自己编译。

    6.1 搭建 ESP-IDF 开发环境

  • 安装 VSCode;
  • 在 VSCode 扩展市场安装 ESP-IDF 插件;
  • 插件内选择安装 ESP-IDF v5.3 及以上版本(EXPRESS 模式,下载服务器选 Espressif 国内源更快);
  • 等待工具链自动下载安装完成(约 10~20 分钟)。
  • 💡 Windows 用户也可以直接安装官方的 “ESP-IDF 5.3 PowerShell” 离线安装包;Linux(Ubuntu)下编译速度更快且免驱动烦恼,有条件推荐。

    6.2 拉取源码

    git clone https://github.com/78/xiaozhi-esp32.git
    cd xiaozhi-esp32

    (网络不佳可在 GitHub 页面 Code → Download ZIP,或使用国内镜像加速。)

    6.3 设置目标芯片

    这一步不能省,否则默认按普通 ESP32 编译会失败:

    idf.py set-target esp32s3

    6.4 menuconfig 配置

    idf.py menuconfig

    重点检查以下配置项(方向键移动、回车进入、S 保存、Q 退出):

    配置路径设置值
    Xiaozhi Assistant → Board Type 面包板新版接线(WiFi)/ Breadboard Compact WiFi
    Serial flasher config → Flash size 按实际模组选(N16R8 选 16MB)
    Partition Table 默认 partitions.csv(4MB Flash 才需换 partitions_4M.csv)
    Component config → ESP PSRAM 启用(无 PSRAM 模组则关闭,但会失去语音唤醒)
    Xiaozhi Assistant → 唤醒词 默认"你好小智",可换其他 ESP-SR 支持的唤醒词

    如果你的接线和第四节默认 GPIO 不同,在源码 main/boards/ 对应板子的 config.h 中修改引脚定义。

    6.5 编译、烧录、监视

    idf.py build # 编译(首次约 5~15 分钟)
    idf.py flash monitor # 烧录并打开串口监视器

    串口监视器中能看到启动日志,看到 WiFi 配网提示即成功。(退出监视器:Ctrl + ])


    七、配网与设备激活

    7.1 WiFi 配网

  • 首次启动(或长按 BOOT 键重置网络后),设备会开启热点,播报"进入配网模式";
  • 手机 WiFi 列表中连接名为 Xiaozhi-xxxxxx 的热点;
  • 浏览器访问 http://192.168.4.1;
  • 在页面中选择你家的 WiFi(⚠️ 只支持 2.4GHz 频段,5G 频段搜不到),输入密码,点击连接;
  • 设备自动重启并联网成功。
  • 7.2 绑定设备到控制台

  • 对设备说 “你好,小智” 唤醒它,随便说句话,它会播报一个 6 位验证码(屏幕版会直接显示);
  • 电脑/手机浏览器访问官方控制台 https://xiaozhi.me,注册并登录账号;
  • 进入 控制台 → 添加设备,输入刚才的 6 位验证码;
  • 绑定成功后,设备会自动刷新,此时就可以正式对话了!
  • 🎉 到这里,你的小智 AI 已经完全可用了。 试试对它说:“你好小智,给我讲个笑话。”


    八、控制台配置:给小智换"人设"和大模型

    登录 xiaozhi.me 控制台,点击你的设备进入配置页:

    配置项玩法
    角色设定(Prompt) 自由撰写人设,例如"你是一个毒舌但暖心的猫娘助手"……
    角色音色 多种 TTS 音色可选(男声/女声/童声/方言等)
    大模型选择 可切换 Qwen、DeepSeek 等;绑定 GitHub 账号可获得开发者权限,免费解锁更多模型(如 DeepSeek 满血版)
    记忆功能 开启后小智能记住你们的历史对话
    OTA 升级 开启后固件自动保持最新,无需重新烧录

    九、常见问题排查(FAQ)

    现象原因与解决办法
    电脑识别不到 COM 口 ① 换 数据线(充电线是重灾区);② 装 CH340/CP210x 驱动;③ 换 USB 口,插板上 UART 那个口
    烧录一直 “CONNECTING…” 按住 BOOT → 点按 RST → 松开 BOOT 进入下载模式;波特率降到 115200
    烧录成功但无法启动/反复重启 固件与板型不匹配;先 ERASE 全片擦除再重烧;检查供电(换 USB 口或用带供电的 HUB)
    手机搜不到 Xiaozhi 热点 板子天线太差(仿板通病);靠近一点再搜;长按 BOOT 重置网络配置
    配网页面找不到自家 WiFi 路由器是 5GHz 频段——请连 2.4GHz
    喊"你好小智"没反应 ① 检查 INMP441 六根线(尤其 VDD/GND 是否接反);② 无 PSRAM 的板子不支持唤醒;③ 面包板接触不良,重新插紧
    有对话但没声音 检查 MAX98357A 的 SD 是否接 3.3V、喇叭线是否接好、DIN/BCLK/LRC 是否插错位
    声音太大/破音 GAIN 引脚从 GND 改接 3.3V,或在控制台调低音量
    想完全离线使用 做不到,ASR/LLM/TTS 都在云端,必须联网
    编译报错 target 不对 忘了执行 idf.py set-target esp32s3

    十、进阶玩法

    • 加个 OLED/LCD 屏:显示可爱表情、对话文字,menuconfig 里换成带屏板型即可;
    • 换唤醒词:menuconfig → ESP Speech Recognition 中选择其他离线唤醒词;
    • 自建服务器:社区提供了开源的 xiaozhi-esp32-server 项目,可以把 ASR/LLM/TTS 全部换成自己的 API(如本地 Ollama),彻底掌控数据;
    • MCP 控制智能家居:通过 MCP 协议让小智帮你开灯、查天气、操作电脑;
    • 打印外壳:社区有大量 3D 打印外壳模型(立创开源硬件平台、MakerWorld 搜"小智"),把面包板变成精致桌搭;
    • 换 4G 版本:使用 ML307 Cat.1 模块,让小智摆脱 WiFi 随身携带。

    十一、资源汇总

    • 官方开源仓库:https://github.com/78/xiaozhi-esp32
    • 官方控制台:https://xiaozhi.me
    • 官方常见问题 Q&A:小智AI聊天机器人常见问题
    • Windows ESP-IDF 编译官方教程:Windows ESP IDF 5.3 编译小智
    • 微雪小智 AI 应用文档:https://docs.waveshare.net/XiaoZhi_AI/
    • 乐鑫烧录工具下载:Flash Download Tools

    写在最后: 小智 AI 是入门 AIoT(AI + 物联网)最好的实战项目之一——五十块钱、一块面包板,就能体验到"语音唤醒 → 云端大模型 → 语音合成"的完整链路。动手做出来的那一刻,你会由衷感叹:AI 硬件的门槛,真的被打下来了。

    如果本文对你有帮助,欢迎点赞、收藏、关注三连!有问题请在评论区留言,看到都会回复。

    (本文基于 xiaozhi-esp32 开源项目撰写,感谢虾哥及社区所有贡献者。)

    赞(0)
    未经允许不得转载:171主机测评 » ESP32-S3小智AI制作教程
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址