项目简介
本项目利用Arduino Nano RP2040 Connect开发板实现语音关键词识别功能。借助TensorFlow Lite Micro框架,能识别预定义热词,并将识别结果通过USB串口和经SSL/TLS加密的WiFi网络发送至服务器。
项目的主要特性和功能
- 语音识别:基于TensorFlow Lite Micro框架,可识别“yes”“no”“up”“down”“left”“right”“on”“off”等预定义热词。
- USB串口通信:识别结果通过USB串口输出,方便本地调试与监控。
- WiFi网络通信:识别结果经WiFi网络发送至远程服务器,采用SSL/TLS加密保障数据安全。
- 自定义模型:支持加载自定义的TensorFlow Lite Micro模型,可按需训练和部署新的语音识别模型。
- 音频处理:支持从麦克风实时录制音频,并提取音频特征用于模型识别。
安装使用步骤
1. 安装依赖
运行以下命令安装项目所需的依赖:
bash
$ ./install-dependencies.sh
2. 手动安装PlatformIO
若需手动安装PlatformIO,在Python 3环境中执行以下命令:
bash
pip3 install platformio
并更新udev规则:
bash
sudo ~/.platformio/packages/framework-arduino-mbed/post_install.sh
3. 配置项目
在config.ini
文件中设置配置变量,然后运行配置脚本:
bash
$ ./configure.sh
SSL证书和密钥将根据config.ini
中提供的服务器URL生成,并上传至微控制器。
4. 构建项目
运行以下命令构建整个项目:
bash
$ ./build-all.sh
5. 启动服务
启动服务器:
bash
$ ./start-server.sh
通过串口连接启动客户端:
bash
$ ./start-client.sh
6. 使用串口监视器
使用cat
命令获取热词识别的输出:
bash
cat /dev/ttyACM0
当板载LED亮起且设备等待串口连接时,设备已初始化。输出包括识别的单词、得分和设备启动后的时间。
7. 修改参数
重要的可修改参数可在src/config.h
中找到,包含麦克风和识别配置。
8. 加载测试数据
若要加载测试数据而非使用麦克风,在src/audio_provider.cpp
中取消注释#define LOADDATA
。示例数据包含“yes”和“no”的音频样本。若要加载自定义数据,还需取消注释#define CUSTOMDATA
。
9. TensorFlow模型
TensorFlow Lite Micro模型使用speech commands dataset进行训练。项目中包含一个针对8个单词(“yes”“no”“up”“down”“left”“right”“on”“off”)训练的模型。训练脚本位于scripts/training
目录下。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】