本文分享基于 Titan Mini Board实现KWS语音关键字识别测试,分享应用Demo。代码详见附件完整工程, 导入Titan_Mini_wavplayer到打开工程即可。
download.eeworld.com.cn/detail/qinyunti/639204
目录

过程
测试
总结
获取同款硬件
1 过程
参考https://github.com/ARM-software/ML-KWS-for-MCU.git基于该项目训练的模型进行。
先下载该项目代码git clone https://github.com/ARM-software/ML-KWS-for-MCU.git
然后下载CMSIS 5.4.0:https://www.keil.arm.com/packs/cmsis-arm/versions/
项目中新建kws文件夹
添加以下代码到自己的工程
Deployment\Source下除了KWS_F746NG的所有子文件夹
CMSIS/DSP CMSIS/NN 都只要Include和Source子目录
simple_test main.cpp改为kws_app.cpp
工程目录如下

代码中使用了C++需要按照以下支持C++编译
使能C++支持

有编译报错按照如下处理
//__COMPILER_BARRIER();
改为
__ASM volatile("":::"memory");
rt-thread\components\libc\cplusplus\cxx_crt_init.c中
改为
#elif defined(__GNUC__)
如果工程目录看不到子文件夹和c++文件,按照如下配置



并设置对应的头文件包含路径,C和C++都要配置


工程中定义宏C和C++都要配置
ARM_MATH_CM7
__FPU_PRESENT=1
HAVE_CONFIG_H


其他详见代码
2 测试
添加shell命令
shell_func.c中添加
staticvoidkwstestfunc(uint8_t* param);
Shell中输入kws_test输入结果如下


还可以录音不同测试文件,通过shell导入到开发板
这里使用Audacity录音单声道16k的语音
"yes","no","up","down","left","right","on","off","stop","go"
波录->录制->录制
文件->导出音频

将文件导入到开发板
rxfile /yes.wav 55884

其他文件类似

增加测试命令
static void kwstestwavfunc(uint8_t* param);
Shell中输入kwstestwav /yes.wav
打印如下

其他关键字测试


3 总结
以上分享了KWS语音关键字识别测试,分享应用Demo。实践中可以将上述测试数据改为实时获取MIC数据。
评论区
登录后即可参与讨论
立即登录