[语音识别] kaldi -- aidatatang_200zh脚本解析:音素训练

2021-07-19 14:44:55 浏览数 (1)

输入:

输出:

代码语言:javascript复制
steps/train_mono.sh --cmd "$train_cmd" --nj 10 
  data/train data/lang exp/mono || exit 1;

流程:

代码语言:javascript复制
1. apply-cmvn # 对feats.scp做归一化处理
2. add-deltas # 训练数据增加差分量,比如16维度mfcc特征增加2阶差分量后变成48维度
2. gmm-init-mono # 初始化单音素模型,生成0.mdl、tree
3. compile-train-graphs # 编译训练时的图,生成text中每句文本对应的fst,存放在fsts.JOB.gz中
4. align-equal-compiled # 第一次对齐数据,生成对齐状态序列,通过管道传递给gmm-acc-stats-ali,得到更新参数时用到的统计量
5. gmm-est # 第一次更新模型参数
# 进入训练模型的主循环
6. gmm-align-compiled # 在指定的对齐轮数,使用gmm-align-compiled对齐特征数据,得到新的对齐状态序列。(维特比算法)
7. gmm-acc-states-ali & gmm-est# 每一轮都调用gmm-acc-stats-ali计算更新模型参数所用到的统计量, 每次模型参数的迭代都需要成对地使用gmm-acc-states-ali 和 gmm-est工具。 分开成2个工具的原因;1. 可以并行。2. gmm-est兼具高斯分量分裂的功能。
8. gmm-sum-accs

备注:

  1. apply-cmvn
  • 目录:src/featbin/apply-cmvn
  • 输入:data/{train,test,dev}/fe

0 人点赞