基于kaldi的thchs30训练实践V1.5
6-24-2019_slip_v1.0
6-25-2019_slip_v1.1
6-26-2019_slip_v1.2
6-28-2019_slip_v1.3
7-1-2019_slip_v1.4
7-8-2019_slip_v1.5
首先在老师给的机器上看一下,到/voice_rec/kaldi/egs/thchs30/s5下,不出所料没有data文件,但是有一个download_and_untar.sh,看了一下代码太多,所以还是直接自己动手丰衣足食。
download_and_untar.sh
下载的处理过程:
wget http://cn-mirror.openslr.org/resources/18/data_thchs30.tgz
wget http://cn-mirror.openslr.org/resources/18/test-noise.tgz
wget http://cn-mirror.openslr.org/resources/18/resource.tgz
完成后mkdir thchs30-openslr并解压到./s5/thchs30-openslr。
修改./s5/cmd.sh为:
#export train_cmd=queue.pl
#export decode_cmd="queue.pl --mem 4G"
#export mkgraph_cmd="queue.pl --mem 8G"
#export cuda_cmd="queue.pl --gpu 1"
export train_cmd=run.pl
export decode_cmd="run.pl --mem 4G"
export mkgraph_cnd="run.pl --mem 8G"
export cuda_cmd="run.pl --gpu 1"
修改./s5/run.sh为:
#n=8 #parallel jobs
n=4 #change by num of cpuCores
#thchs=/nfs/public/materials/data/thchs30-openslr
thchs=/home/model/voice_rec/kaldi/egs/thchs30/s5/thchs30-openslr
bash run.sh 便开始训练了。它大概有几个过程:数据准备,monophone单音素训练, tri1三因素训练, trib2进行lda_mllt特征变换,trib3进行sat自然语言适应,trib4做quick,后面就是dnn了 。
先到这里,让他跑着。
今天一早上去一看,发现并没有进程。
因为如果成功运行结束,thchs30/s5/exp中会有变化,我们可以进去看一下:
tri1/final.mdl即为输出的模型,此外graph_word文件夹下面有words.txt.和HCLG.fst,一个是字典,一个是有限状态机。
然后在kaldi/src下
make ext
编译扩展程序。经过几分钟的编译后,可以在src/onlinebin下看到
online-wav-gmm-decode-faster 用来回放wav文件来识别的,online-gmm-decode-faster用来从麦克风输入声音来识别的。
现在配置一个demo:
cd egs/voxforge/
cp -r ./online_demo/ ../thchs30/#将voxforge下的online_demo cp 到thchs30下
cd ../thchs30/