新闻中心
新闻中心

29

2025

-

03

零知开源——ESP32语音交互系统(AI小智)开发教程

浏览:467  

发布:2025-03-29 18:00:22


一(yī)、功能介绍

小智AI聊天机器人是一个基于嵌入式硬件与人工智能技术深度融合的智能交互系统。该项目以ESP32开发板为核心,结合语音唤醒、自然语言处理、音频解码播放图形化交互界面四大核心模块,实现人机交互功能

二、扩展板设计

1. 硬件清单

主控单元:零知ESP32(双核处理器,支持Wi-Fi/BLE,丰富外设接口

语音输入:INMP441数字麦克风(I2S接口,高信噪比)

音频输出:MAX9857A Class D功放(驱动4Ω喇叭,输出功率3W)

交互界面:240x320 TFT_ST7789 LCD(SPI接口)

唤醒控制:ASRPRO-01模块(关键词检测,GPIO触发)

2.关键引脚连接

模块 零知ESP32引脚 模块引脚
MAX9857A GPIO33 DIN
GPIO14 BCLK
GPIO27 LRCK
INMP441 GPIO32 SD
GPIO26 SCK
GPIO25 WS
TFT_ST7789 LCD GPIO15 SCL
GPIO4 SDA
GPIO21 DC
GPIO22 CS
ASRPRO-01 GPIO19 PA2

3.原理图设计

(1) 关键模块原理图设计

wKgZO2fnjz-ANL_uAAD41H1yqlg134.png主控模块接线图

wKgZO2fnj2uAVpiMAABOIHaVKgM566.png音频放大模块接线图

wKgZO2fnj7WAcQG_AACF34cBY6g458.png麦克风模块和LCD显(xiǎn)示(shì)屏(píng)接(jiē)线(xiàn)图(tú)

(2) 电(diàn)源(yuán)设(shè)计(jì)规(guī)范(fàn)

模(mó)块(kuài) 供电电压
ESP32 5V→3.3V
ASRPRO-01 5V
LCD、MAX98357A、INMP441 3.3V

4.PCB设计

将零知ESP32通过PCB布线连接到各个模块组成扩展板

wKgZPGfnkCyAbOQmAADeT8HYJR8110.png

5.扩展板实物图

wKgZPGfnkGaALvu8ACBBd0-o1Zs176.png

三、软件配置

1、环境搭建

使用VScode搭建ESP-IDF开发环境,具体操作可参考以下文章:

VScode下玩转ESP32S3并成功编译XIAOZHI-ESP32-MAIN代码_xiaozhi-esp32 编译-CSDN博客

VSCode + ESP-IDF 项目搭建及配置_vscode esp-idf-CSDN博(bó)客(kè)

(1)导(dǎo)入(rù)github上(shàng)项(xiàng)目(mù)源(yuán)码(mǎ)并(bìng)解(jiě)压(yā)到(dào)自(zì)定(dìng)义(yì)的(de)目(mù)录(lù)下(xià)

ESP32驱(qū)动(dòng)小(xiǎo)智(zhì)AI仓(cāng)库(kù)源(yuán)码(mǎ)

https://github.com/78/xiaozhi-esp32
(2)VScode打开项目工程并配置编译信息

wKgZO2fnkTWAD079AAJLqGvqRJs925.png

配置Serial flasher config、Partition Table

wKgZPGfnkWyAWqwnABB2smNoxnM630.png

配置开发板和(hé)LCD类(lèi)型(xíng)

wKgZO2fnkZ2AAoCvABB2sqAJeBc618.png

(3)根(gēn)据(jù)之(zhī)前(qián)的(de)原(yuán)理(lǐ)图(tú)设(shè)计(jì)配(pèi)置(zhì)config.h扩(kuò)展(zhǎn)板(bǎn)对(duì)应(yīng)的(de)引(yǐn)脚(jiǎo)

2、 程(chéng)序(xù)编(biān)译(yì)并(bìng)上(shàng)传(chuán)

idf.py fullclean#将build目录删除,点击编译并上传代码

wKgZPGfnkdGAez6HABB2ssrhQGg282.png

3、天问Block代码编写和烧录

(1) 识别唤醒词通过PA2输出低脉冲驱动唤醒AI

wKgZPGfnoCOAeFLCAALcJKxuD7o016.png

(2)点击生成模型,选择端口并通过2M编译下载到ASRPRO

wKgZO2fnoDiAV4R0ABGmBNlwCfA842.png

四、固件烧录

1、.bin文件合并生成烧录固件

(1)打(dǎ)开(kāi)PowerShell下(xià)的(de)ESP-IDF 5.3,查(chá)看(kàn)编(biān)译(yì)后(hòu)build目(mù)录(lù)存(cún)放(fàng)的(de)路径并(bìng)修(xiū)改(gǎi)以(yǐ)下(xià)代(dài)码(mǎ)

E:ProgramFilesEspressifxiaozhi-esp32-main-1 路径修改为你自己定义的

命令行编译的代码:

esptool.py --chip esp32 merge_bin -o E:ProgramFilesEspressifxiaozhi-esp32-main-1buildlzesp32_xiaozi.bin 0x1000 E:ProgramFilesEspressifxiaozhi-esp32-main-1buildbootloaderbootloader.bin 0x8000 E:ProgramFilesEspressifxiaozhi-esp32-main-1buildpartition_tablepartition-table.bin 0xd000 E:ProgramFilesEspressifxiaozhi-esp32-main-1buildota_data_initial.bin 0x100000 E:ProgramFilesEspressifxiaozhi-esp32-main-1buildxiaozhi.bin

(2)通过PowerShell烧录生成的lzesp32_xiaozi.bin固件

选择端口和波特率编译相对路径下的固件

esptool.py --port COM13 --baud 921600 write_flash 0x0 E:ProgramFilesEspressifxiaozhi-esp32-main-1buildlzesp32_xiaozi.bin     
wKgZPGfnoM2AIzl1AAEITDR03G4868.png

2、flash_download_tool烧录工具

(1) flash工具下载地址:

flash烧录工具 https://dl.espressif.com/public/flash_download_tool.zip%C2%A0

(2)选择输出的bin文件并确认起始地址为0x0

选择SPI的频率和模式,确定具体连接的串口号和上传的波特率,ERASE擦除芯片然后START开始上传。(可能出现上传错误,尝试修改波特率和端口号)

wKgZO2fnoVWAf7WFAAmJvbILEHQ105.png

flash烧(shāo)录(lù)详(xiáng)细(xì)教(jiào)程(chéng)

https://ccnphfhqs21z.feishu.cn/wiki/Zpz4wXBtdimBrLk25WdcXzxcnNS

五、 功能展(zhǎn)示(shì)

b站(zhàn)视(shì)频(pín)演示:https://www.bilibili.com/video/BV18VZcYKEL4?share_source=copy_web

六、项目资源汇总

6.1 烧录工具和固件(jiàn)
链接: https://pan.baidu.com/s/1D2pDvIOdCdcQsgoRbjnslg?pwd=bir5 提取码: bir5

6.2天问及VScode ESP-IDF项目源码
链接: https://pan.baidu.com/s/1HcAsEeGyS_E63BeRO1huzg?pwd=8g5w 提取码: 8g5w