语音识别 · 2023年8月9日

单音素训练

1.首先是初始化GMM,使用的脚本是/kaldi-trunk/src/gmmbin/gmm-init-mono,输出是0.mdl和tree文件;

2.compile training graphs,使用的脚本是/kaldi-trunk/source/bin/compile-training-graphs,输入是tree,0.mdl和L.fst输出是fits.JOB.gz,其是在训练过程中构建graph的过程;

3.接下来是一个对齐的操作,kaldi-trunk/source/bin/align-equal-compiled;

4.然后是基于GMM的声学模型进行最大似然估计得过程,脚本为/kaldi-trunk/src/gmmbin/gmm-est;

5.然后进行迭代循环中进行操作,如果本步骤到了对齐的步骤,则调用脚本kaldi-kaldi/src/gmmbin/gmm-align-compiled;

6.重新估计GMM,累计状态,用脚本/kaldi-trunk/src/gmmbin/gmm-acc-states-ali;调用新生成的参数(高斯数)重新估计GMM,调用脚本/kaldi-trunk/src/gmmbin/gmm-est;

7.对分散在不同处理器上的结果进行合并,生成.mdl结果,调用脚本gmm-acc-sum;

8.增加高斯数,如果没有超过设定的迭代次数,则跳转到步骤5重新进行训练最后生成的.mdl即为声学模型文件

在离线识别阶段,即可以调用utils/mkgraph.sh;来对刚刚生成的声学文件进行构图之后解码,得到离线测试的识别率。

打赏作者