项目简介
本项目围绕为嵌入式设备(以树莓派为例)构建精确的机器学习模型,实现智能助行器的语音激活。借助Python语言和相关机器学习库,完成音频处理、机器学习模型的训练和转换,进而在嵌入式设备上识别语音命令,控制助行器执行相应动作。
项目的主要特性和功能
- 音频数据处理:当标准数据集缺乏特定训练词汇或数量不足时,能生成音频文件与背景噪音。对音频预处理,提取Mel频率倒谱系数(MFCC)特征并转为二进制编码的CSV文件。
- 模型训练:构建并训练机器学习模型,可依据数据集大小调整隐藏层数量,采用推荐的激活函数和损失函数进行二元分类。
- 模型转换与部署:把训练好的模型保存为不同格式,如
.keras
供普通计算机使用,.tflite
适用于树莓派等嵌入式设备,.h
适用于Arduino Nano ESP32等小型设备。 - 语音识别与控制:在嵌入式设备上实时识别语音唤醒词,根据识别结果通过GPIO引脚输出控制信号,控制助行器启动、停止、左右转向、前后移动等动作。
安装使用步骤
安装环境
确保系统安装Python,推荐版本为3.11.9。安装以下必要的Python包: - numpy - pandas - scikit-learn - tensorflow(仅支持v2.15.0) - keras(仅支持v2.15.0) - sounddevice - librosa - matplotlib - scikeras(在完成tensorflow-lite模型制作后安装,因该包与keras v3.2.0及以上版本兼容,而转换tensorflow lite模型时使用keras v2.15.0)
下载数据集
从链接https://download.tensorflow.org/data/speech_commands_v0.02.tar.gz 下载Google命令数据集用于音频处理。
数据准备
使用preparing_data.py
生成音频文件,使用preprocessing.py
对音频进行预处理,提取MFCC特征并保存为CSV文件。
模型训练
运行training.py
脚本,训练机器学习模型,并保存为.keras
文件。
模型转换
若需在嵌入式设备上运行模型,使用相关工具将.keras
模型转换为.tflite
格式。
模型测试
使用prediction.py
脚本测试模型的准确性,根据数据集大小和训练得分设置阈值。
嵌入式设备部署
将.tflite
模型部署到树莓派上,运行embedded_prediction_final.py
脚本,通过USB麦克风实时识别语音唤醒词,并根据识别结果通过GPIO引脚输出控制信号。若脚本在树莓派启动时立即崩溃,可能是USB端口索引瞬间改变导致,请根据实际情况更新索引。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】