语音助手(MCU独立完成)-MICROPYTHON方案YTH20240723
历史记录
日期 撰写 说明 备注
2024.7.23 YTH MICROPYTHON实现基本功能
目录
1 要求及系统方案 3
1.1 系统要求 3
1.2 系统方案 3
2 硬件原理 3
2.1 硬件原理框图 3
2.2 资源分配 4
2.3 接线实物图 5
3 MicroPython嵌入式软件设计 5
3.1 搭建硬件(下载BOOT) 5
3.2 程序结构 6
3.3 程序设计 7
4 系统测试验证 8
4.1 MICROPYTHON 调试跟踪记录 8
5 技术参考 8
5.1 音频采样及头格式 8
5.2 WAV文件格式 8
5.2.1 文件大小: 8
5.2.2 Wav文件头 9
6 视频观看及源代码: 9
1 要求及系统方案
1.1 系统要求
基于AI实现实现语音对话,代码用micropython实现
1.2 系统方案
数据流说明
- 声音采集:按键采集声音,抬起按键上传当前采集的声音数据。
- 声音识别:mcu将声音文件送到平台(百度)识别出TXT文本
- 人工对话:mcu将TXT文本送到人工智能(miniMixia)进行理解,回收得到的文本TXT
- 文本转WAV:mcu将文本送到到云平台(讯飞),将TXT转换成声音。
- 结果播报:终端获取云WAV文件,语音播报出结果。
2 硬件原理
2.1 硬件原理框图
2.2 资源分配
- INMP441
#define I2S_SCK 40
#define I2S_WS 41
#define I2S_SD 39
L/R----0 左声道。
2) 按键
#define button 10 //按键口线
- MAX98357:
#define I2S_PIN_SCK 12
#define I2S_PIN_LRC 14
#define I2S_PIN_DIN 13
2.3 接线实物图
3 MicroPython嵌入式软件设计
3.1 搭建硬件(下载BOOT)
1)BOOT下载
https://micropython.org/download/ESP32_GENERIC_S3/
2)烧写BOOT程序
https://blog.csdn.net/m0_63235356/article/details/136428924
继续用usart口。
3.2 程序结构
Main.py: 系统主流程
MyWiFi: 网络连接
MyKey.py: 按键检测程序
MyRecord: 录音
Minmaxi:语言模型
MyPlay.py:语音播报
3.3 程序设计
def MyAPP():
MyWiFi.do_connect()
while True:
# 1.等待键按下
if MyKey.Is_KeyClik()==False:
continue
# 2.音频采样
txt=MyRecord2.vtt()
print(txt)
# 3.等待PC处理
aitext=minimaxi.ai_txt2txt(txt)
# 4.播放音频数据
MyPlay2.play(aitext)
4 系统测试验证
4.1 MICROPYTHON 调试跟踪记录
视频观看:【基于ESP32的MicroPython语言开发的AI对讲助手】 https://www.bilibili.com/video/BV1i7eBeyEpY/?share_source=copy_web&vd_source=308a726b717fa4d423fa061267f25ce5
5 技术参考
5.1 音频采样及头格式
https://github.com/micronext/micropython-esp32-i2s-examples/blob/master/examples/read-mono-mic-write-internal-flash.py
5.2 WAV文件格式
5.2.1 文件大小:
Wav大小:TOTAL=HEADER:WAV头(44字节)+PCM (Body)
PCM就是音频文件.
:采样率 * 量化位宽 * 通道数,以及音频数据。
5.2.2 Wav文件头
6 视频观看及源代码:
视频观看:【基于ESP32的MicroPython语言开发的AI对讲助手】 https://www.bilibili.com/video/BV1i7eBeyEpY/?share_source=copy_web&vd_source=308a726b717fa4d423fa061267f25ce5
源代码获取:
https://item.taobao.com/item.htm?id=819764249736