K230 自定义唤醒词,模型训练,训练出来的模型无法识别关键词。

Viewed 176

问题描述


使用https://github.com/kendryte/K230_training_scripts/tree/main/end2end_kws_doc的例程进行语音唤醒kws模型训练,训练中的模型,在第一轮acc就异常,一直为1,训练后的模型无法准确识别关键词。请问是什么原因?

复现步骤


使用https://github.com/kendryte/K230_training_scripts/tree/main/end2end_kws_doc进行语音唤醒关键词识别模型训练,K230 kws 语音唤醒,使用自定义的唤醒词,

硬件板卡


01 studio mini k230

软件版本


https://github.com/kendryte/K230_training_scripts/tree/main/end2end_kws_doc

4 Answers

用了多少数据

三个关键词,每个关键词大概是12条数据,每条15s,

训练从第一轮acc=1,感觉不是很合理

感觉是数据量太少了,原demo训练时一个唤醒词大概15s的数据就有100条,可以再增加一些数据试试

未识别的置信度image.png
识别关键词后的置信度:image.png

昨天训练的过程有一个参数没有改,我又重新挂起来了,训好了告诉你

感谢

https://c.wss.cc/f/i9t7apg26lg 复制链接到浏览器打开,下载这个模型试一下吧

你是怎么执行的命令,我这边都很正常,训练完一个epoch也不是1:
image.png

(./run.sh -1 5 /root/Prjs/end_kws_end backward2_closed2_forward2_openled2_stop2_turnleft2_turnright2 8 0 )命令如上,大量数据确实刚开始acc在0.8多,然后就是0.9-1了。最终结果没有效果,都识别为了背景噪声

部署代码怎么写的

您看下面评论

您看一下
image.png
image.png
image.png

你参考multi_kws.py那个脚本,这个相当于是二分类,那个是多分类,修改一下返回值

这个就是multi_kws.py脚本,然后我增加了一个打印max_logits看置信度。

正常情况下,静态,max_logits[0]应该在0.9左右接近,而我训练的模型是正常0.0几,在识别到声音后,到了0.9以上,结果来看是将所有的声音识别为背景了