一、简介
本项目的目的是制作一个简单常见的语音识别设备,识别出语音中的特定词汇以启动,并识别和完成特定指令。
二、硬件部分
硬件部分包括:ESP32,麦克风,扬声器,LED灯
三、语音识别模型
1.训练数据
使用包含 36 个声音类别的开源数据集,将音频分割成片段,并为每个片段生成频谱图。
![](https://i-blog.csdnimg.cn/direct/5c32501d802c44c5a6ee7427ec299f5e.png)
2.训练模型
使用卷积神经网络 (Convolutional Neural Network, CNN),两个卷积层(Convolutional Layer)、一个最大池化层(Max Pooling Layer)、一个展平层(Flatten Layer)、一个Dropout层以及多个全连接层(Dense Layers),Adam优化器。
![](https://i-blog.csdnimg.cn/direct/4482b44c711f4a0ca80fbd3a25ddedca.png)
3. 转换为TFLite(TensorFlow Lite)模型
量化:将 32 位浮点数转换为 8 位整数,使用紧凑参数缩小模型大小,定义生成器函数,提供具有代表性的数据集样本,生成器函数从完整的训练数据集中提取小批量数据,这些样本将提供给 TFLite 转换器,用于计算转换参数。
四、网络连接语音识别模型
1.利用应用程序接口进行语音识别
利用API(Application Programming Interface,应用程序编程接口),将捕捉到的音频输入转换为基于文本的命令,充分利用其先进的自然语言处理能力;将音频数据从 ESP32 传输到云服务端,确保可靠、准确的语音识别;定制语言模型,以识别特定的语音命令。
2.使用百度语音识别
![](https://i-blog.csdnimg.cn/direct/0a18917d126148d2b0309c81003d6f09.png)
检查 wi-fi 连接状态,使用 JSON 发送数据与返回结果,逐块发送数据,将数据合并在一起。
接收并解析来自 API 的文本命令,将识别到的命令映射到 ESP32 固件中的相应功能,根据识别到的语音命令触发相应的 ESP32 操作。
五、实物图
六、项目总结
1.工作内容
成功将音频识别与 ESP32 集成,利用 API 进行语音到文本的转换,实现语音控制智能功能。
2.不足
因为网络连接超时和ESP32内存的限制,我们无法在短时间内调用语音识别 API 并将数据导入 ESP32。
3.改进
探索和扩展语音控制功能,以包含更广泛的命令,与其他智能家居设备集成,并进一步优化系统性能和用户体验。
X. L. GUO, Y. X. YANG, H. X. Liu, J. X. Peng
Reference: https://github.com/atomic14/diy-alexa