本系列预计包括3篇文章,分别如下:
1、链式模型下载与运行测试
2、脚本主要涉及工具参数分析
3、在线识别系统搭建
=================================================
1、链式模型下载与运行测试
研究完yesno例程后,感觉应该再看一些例程后再开始系统的学习kaldi结构和源代码更为靠谱,所以仔细分析了一下kaldi的例程目录,发现本例程较为简单,且有现成的模型可以下载,故开始了apiai_decode的学习。下面是具体的学习过程。
打开readme.md文件,发现首先应运行download-model.sh文件,下载链式模型文件,并完成解压工作。
然后回到win10系统,按照readme.md文件里面的提示录制了如下两句音频
(1)wake me up at 7 am
(2)wake me up at 4 pm
从readme.md文件可以看出,要求音频应为16kHz, 16 bit little-endian 格式,故用ffmpeg完成格式转换工作。
#!/bin/bash
for FILE in *.m4a;
do ffmpeg -i "$FILE" -ar 16000 "wav/${FILE%.*}.wav";
done
按照提示,执行语音识别
./recognize-wav.sh 1.wav
系统输出如下:
lattice-scale --acoustic-scale=10.0 ark:- ark:-
apply-cmvn --norm-means=false --norm-vars=false --utt2spk=ark:data/test-corpus/utt2spk scp:data/test-corpus/cmvn.scp scp:data/test-corpus/feats.scp ark:-
LOG (apply-cmvn[5.5.748~1-65ae41]:main():apply-cmvn.cc:81) Copied 1 utterances.
LOG (nnet3-latgen-faster[5.5.748~1-65ae41]:CheckAndFixConfigs():nnet-am-decodable-simple.cc:294) Increasing --frames-per-chunk from 50 to 51 to make it a multiple of --frame-subsampling-factor=3
1.wav WAKE ME OFF ON SALE IN AM
LOG (nnet3-latgen-faster[5.5.748~1-65ae41]:DecodeUtteranceLatticeFaster():decoder-wrappers.cc:375) Log-like per frame for utterance 1.wav is 1.17882 over 140 frames.
LOG (nnet3-latgen-faster[5.5.748~1-65ae41]:main():nnet3-latgen-faster.cc:256) Time taken 2.73988s: real-time factor assuming 100 frames/sec is 0.652352
LOG (nnet3-latgen-faster[5.5.748~1-65ae41]:main():nnet3-latgen-faster.cc:259) Done 1 utterances, failed for 0
LOG (nnet3-latgen-faster[5.5.748~1-65ae41]:main():nnet3-latgen-faster.cc:261) Overall log-likelihood per frame is 1.17882 over 140 frames.
LOG (nnet3-latgen-faster[5.5.748~1-65ae41]:~CachingOptimizingCompiler():nnet-optimize.cc:710) 0.00654 seconds taken in nnet3 compilation total (breakdown: 0.00384 compilation, 0.00195 optimization, 0 shortcut expansion, 0.000373 checking, 3.1e-06 computing indexes, 0.000372 misc.) + 0 I/O.
LOG (lattice-scale[5.5.748~1-65ae41]:main():lattice-scale.cc:107) Done 1 lattices.
如输出,可看到识别为 wake me off on sale in am
对于上文第二句,识别为:wake me up at four pm
需要注意的是,如果要多次识别,每次识别前需要删除test-corpus目录,当然修改recognize-wav.sh脚本更方便。
来源:oschina
链接:https://my.oschina.net/u/4302946/blog/4549275