littlebot
Published on 2025-04-08 / 3 Visits
0

【源码】基于Arduino和TensorFlow Lite Micro的语音关键词识别系统

项目简介

本项目利用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】