一、CVTE模型简介及下载在前一篇文章中,我把Kaldi安装并编译了。相当于把利用Kaldi做语音识别的基本运行环境布置好了。这一篇文章记录我用CVTE开源的kaldi模型来进行语音识别模型的建立和使用。
友情提醒:最终我在虚拟机Ubuntu64上跑了一下,分配了8核CPU(主机是10代i7)、13.3GB内存,还是在最后一步因为内存不够被kill掉,建议配置不够好(据说是内存需要大于等于64G)的可以撤了,如果你还是有兴趣尝试的话,可以继续参考本文尝试。
CVTE Mandarin Model
Mandarin TDNN chain models trained on commercial data. The V1 model is deprecated; it is missing files needed to work with the current version of Kaldi. We recommended that you use the V2 model.
官方的介绍是说V1模型已经废弃,建议使用V2模型。本文中使用的就是V2模型。
下载地址:http://kaldi-asr.org/models/m2
将下载后的模型解压到kaldi目录中的egs,即egs/cvte,要保证文件kaldi/egs/cvte/s5的存在。
二、离线识别测试先准备需要测试的语音文件,格式要求16-bit位深,采样率16000Hz,单声道,wav格式(可以采用adobe audition软件录制),文件详细要求(可能是用sox工具来转换的):
$ sox --info data/wav/chat001/001.wav Input File : 'data/wav/chat001/001.wav' Channels : 1 Sample Rate : 16000 Precision : 16-bit Duration : 00:00:06.25 = 100000 samples ~ 468.75 CDDA sectors File Size : 200k Bit Rate : 256k Sample Encoding: 16-bit Signed Integer PCM
上式参考:https://blog.csdn.net/samurais/article/details/107733688
也可以利用ffmpeg实现语音格式转换的过程,可以参考我的另一篇文章:利用ffmpeg工具实现音频格式转换。
将测试语音文件.wav文件放置在/egs/cvte/s5/data/wav/00030/下。这里由于还没有语音格式转换的工具,先用thchs30数据集中的wav文件暂时代替一下,测试用。
将egs/wsj/s5中的steps和utils拷贝到egs/cvte/s5目录下
然后在Teminal中cd到egs/cvte/s5的目录中
执行指令:
./run.sh
会出现错误:
Error!Both of the two phones-symbol tables are absent.
Please check your command
这个ERROR的出现,原因是CVTE作者没有提供phones.txt, 不影响结果,忽略就好了。
这里需要自行打开utils/lang/check_phones_compatible.sh,将其中if语句中的 exit 1注释掉即可。
继续运行不知道为什么等了很久没有反应。。
若出现找不到score.sh,建立软连接即可
ln -s /home/keep/Keep/kaldi-master/egs/hkust/s5/local /home/keep/Keep/kaldi-master/egs/cvte/s5/local
回到egs/cvte/s5目录下,./run.sh即可。
我运行了一次,结果进程被kill掉了,尝试给虚拟机分配更多cpu和内存再试试。
若运行成功,结果在/../kaldi/egs/cvte/s5/exp/chain/tdnn/decode_test/scoring_kaldi文件夹下可找到
还没有完全成功,等我去搞下虚拟机再来补充。
感谢:重新分配了一下8核+13.3GB内存仍然跑不起来,看了其他人的博客,说是>=64G内存才能加载模型,散了散了。如果有人在16G环境下能跑通最后一步,欢迎评论区指正!
- kaldi使用cvte模型进行语音识别
- kaldi运行cvte开源chain模型
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)