开源项目
1、核心功能:该项目利用ESP32S3开发板,结合通义千问大模型,实现了一个AI语音聊天机器人。用户可以通过语音与机器人进行交互,机器人能够理解用户的语音指令并给出相应的语音回答。
2、技术架构:
(1)语音识别:使用语音转文字大模型,将用户的语音输入转换为文本信息。
(2)文本理解:将转换后的文本发送到通义千问大模型进行处理,模型会根据文本内容生成相应的回答。
(3)语音合成:将模型生成的文本答案通过文本转语音大模型转换为语音输出,供用户收听。
3、DIY硬件:
•开发板:ESP32-S3-DevKitC-1(选择 WROOM N16R8 模组)
•数字麦克风:INMP441
•功放:MAX98357A
•腔体喇叭:8Ω 2~3W 或 4Ω 2~3W
•导线:跳线一盒,杜邦线若干
•400 孔面包板 2 块
•12832 IIC 液晶显示屏,SSD1306 驱动(0.91寸)
•ML307R Cat.1 4G 模组,AT固件版(可选)
4、软件实现:
(1)连接WiFi:ESP32S3首先需要连接到WiFi网络,以便能够访问互联网。
(2)语音采集与播放:通过麦克风模块采集用户的语音输入,并通过扬声器播放机器人的语音回答。
(3)API调用:使用HTTP协议调用通义千问大模型的API,实现语音识别、文本理解、语音合成等功能。
(4)数据处理:将采集到的音频数据打包成JSON格式,发送到语音识别API;将模型生成的文本答案打包成JSON格式,发送到语音合成API。
5、应用场景
(1)智能家居控制:用户可以通过语音指令控制连接到ESP32S3的智能家居设备,如开关灯、调节温度等。
(2)信息查询:机器人可以回答用户的各种问题,如天气预报、新闻资讯等。
(3)娱乐互动:提供简单的娱乐功能,如讲故事、播放音乐等。
6、项目优势
(1)低成本:ESP32S3开发板价格相对较低,且项目开源,用户可以根据自己的需求进行二次开发。
(2)易操作:支持语音唤醒和连续对话,用户无需手动操作设备,即可实现便捷的语音交互。
(3)多功能:除了语音聊天功能外,还可以扩展其他功能,如音乐播放、显示屏实时显示等。
主要DIY硬件

400 孔面包板 2 块

导线:跳线一盒,杜邦线若干

腔体喇叭:8Ω 2~3W 或 4Ω 2~3W

3.7V1800mah 锂电池

大致的DIY实验布局

初步布线完成

1、麦克风 INMP441接线
ESP32S3开发板 麦克风 INMP441(I2S接口)
GPIO4 WS 数据选择
GPIO5 SCK 数据时钟
GPIO6 SD 数据输出
3V3 VDD 电源正 3.3V
GND GND 接地 短接 L/R 左/右声道
2、数字功放 MAX98357A接线
ESP32S3开发板 数字功放 MAX98357A
GPIO7 DIN 数字信号
GPIO15 BCLK 位时钟
GPIO16 LRC 左/右时钟
3V3 /3.3V VCC 电源正极 短接 SD 关机频道
GND GND 接地 短接 GAIN 增益和频道
3、0.91寸显示屏(IIC/I2C 接口)接线
ESP32S3开发板 显示屏(IIC/I2C 接口)
GPIO41 SDA 数据线
GPIO42 SCK 时钟线
3V3 3.3V VCC 电源正
GND GND 接地
接线参考图

二、Flash烧录ESP32 S3 开发板固件(无IDF开发环境)
此固件适用于 ESP32 S3 WROOM N16R8(最新为V0.98版本)
1、下载固件:https://github.com/78/xiaozhi-esp32/releases(选择下载文件:v0.9.8_bread-compact-wifi.zip)

2、安装 Flash 下载工具:https://www.espressif.com.cn/zh-hans/support/download/other-tools

3、下载后解压 flash_download_tool_3.9.7_1.zip 到硬盘自行指定目录即可,无需安装,进入目录直接双击 flash_download_tool_3.9.7.exe 即可运行。
注意,烧录工具也不要放在中文目录下,否则可能无法加载文件。
4、连接 ESP32 S3 开发板的 USB JTAG/serial 到电脑主机,运行 Flash 下载工具,使用 UART 模式把下载解压后的 merged-binary.bin 烧录到地址 0x0 。下载设置:
(1)芯片类型,选择 ESP32-S3
(2)工作模式,选择 Develop
(3)加载模式,建议选择 UART (备选USB模式,这里不做说明)

开发板正面TypeC接口朝下时,右边的接口为 UART 接口(如下图示),左边的为USB接口,注意不要接错了。

5、加载固件 & SPI下载设置
(1)在第一行空白框上 ... 按钮,选择bin文件目录导入bin文件,如下图示:

(2)在导入bin文件选择框前面勾选中(一定要勾选),在bin文件选择框后面的输入框中填写 0x0 或 0x00 或 0 (表示下载到开发板存储器1区起始位置)
注意:如果你不把bin文件放到flash download tool 程序的bin目录下,放到电脑硬盘其他地方时,请不要使用中文目录名,否则烧录程序加载bin文件会报错,将无法烧录。
(3)COM端口:先在桌面 此电脑 —》右键菜单属性 —》设备管理器(右侧菜单) —》端口(COM和LPT)点击展开,查看插入的开发板对应的COM端口号,(不确定的请插拔一下开发板USB接口,看卸载和新识别的COM端口号就是要选择的COM端口号),即为FLASH DOWNLOAD TOOL在SPI下载是要设置的对应COM端口号。

(4)其他:SPI速度SPEED 和SPI模式MODE 默认即可(不要选QOUT和DOUT),BAUD波特率可选速度高一点的。
烧录的bin文件前面复选框一定要勾选!
COM端口号根据自己电脑设备管理器里的COM端口选择。

(5)点击 START开始烧录,进度条开始出现,直到结束,状态显示 FINISH 完成。下载/烧录过程一般几分钟到十来分钟。

(6)烧录完成后,点击按钮上的 RST(Restart,如图位置)重启开发板,即可进入 WI-FI 配网模式。


三、配置设备 Wi-Fi 和登记设备
1、 WI-FI网络配置
1)启动设备
在bin固件下载/烧录后,将设备保持接通电源,按下开发板上的RST按钮,复位重启设备(如下图位置),设备将进入配网模式。
注:如果烧录0.3.1以上的固件,程序会自动运行,不需要手动按下RST按钮。
2)配网状态
如果 sRGB 彩灯为蓝色(开发板上的白色灯),并保持闪烁,表示设备处于配网状态。
如果设备不在配网状态或需要重新配网,请按住设备上的配网按键(连接 1 号引脚和GND,v0.2.2以下的旧版),同时按下开发板上的复位(RST)按键,然后先松开复位按键,再松开配网按键。
3)配网步骤
(1)使用手机或电脑连接到设备的 WiFi 网络,通常以 Xiaozhi-XXXXXX 命名。选中并连接,如下图示:


(2)打开浏览器,确保无线局域网(WIFI)连接的网络是 Xiaozhi-XXXXXX 不要切换,浏览器地址栏输入网址 http://192.168.4.1 进入设备的网络配置页面。


(3)在网络配置页面上,选择 WiFi 名称(仅支持 2.4G,iPhone 热点要打开“最大兼容性”选项),SSID将会自动填写,在下方输入密码,然后点击 “Connect” 按钮(如上右图所示)。
如果 WiFi 名称和密码正确,设备将自动连接到 Wi-Fi,并显示 “Done”,表示已经配置网络成功,设备将在 3 秒后自动重启。
如果配置失败,请检查 WiFi 名称和密码是否正确,或者尝试重新配置。


2、添加新设备到管理后台
你的设备在WI-FI或4G联网后,需要到 小智AI聊天机器人-控制面板 添加设备验证通过,才能正常使用设备进行AI语音聊天,请按照以下步骤操作:
确保设备已连接到互联网,能够通过“你好,小智”唤醒,并出现要求添加设备的提示语6位设备验证码(可以重复唤醒重听)。
手机或电脑浏览器访问 小智AI聊天机器人-控制面板 后台:https://xiaozhi.tenclass.net/ ,如未注册先注册账号。

在菜单选择“设备管理”,页面中找到“添加新设备”入口。
输入提示语中告知6位数字的设备 ID,然后点击“添加设备”按钮,如下图示。

在菜单选择“设备管理”,页面中找到“添加新设备”入口。
输入提示语中告知6位数字的设备 ID,然后点击“添加设备”按钮,如下图示。


目前版本,可以选择的角色音色大约有五十多种。

实验场景图

实验记录视频之一
【【花雕动手做】基于ESP32S3和通义千问大模型AI语音聊天机器人#电子爱好者 #人工智能 #编程 #科技改变生活】
实验记录视频之二
【【花雕动手做】尝试两个机器人聊天,他们老是互相打岔……】
实验记录视频之三
【[花雕动手做]看看两个机器人能聊出什么话题? #人工智能机器人 #电子爱好者 #单片机开发 #编程 #科技改变生活】
评论