区分性训练

    声学模型的初始模型训练都是基于MLE(Maximum Likelihood Estimation)准则的,该方法简单,训练速度快,但是没有考虑到模型之间的区分性,导致识别中易发生混淆.

解决:区分性训练(MMI  Maximum Mutual Information,MCE Minimum Classification Error,MPE,Minimum Phone Error)

区分性训练需要的资源:

1. 初始的MMF模型,一般为MLE训练的模型

2. 标注信息

3. 语言模型,一般是基于训练语生成的1-gram

4. 单行字典

5. 训练数据

区分性训练的步骤(分子和分母)


1. 分子

a. HLRescore 语言模型 +标注->单词的语言得分

HLRescore -A -D -V -T 3 -q tvalr -w -s 14.0 -p -10.0 -C ./lib/cfgs/config.hlr -n ./lib/lmdb/train.ug -I ./lib/wlabs/train.wrd.mlf -f -i ./lattices/feats-tjoiner_00_88/wlat.num/feats-tjoiner_00_88.mlf -l ./lattices/feats-tjoiner_00_88/wlat.num -S lib/flists.fixed/feats-tjoiner_00_88.scp ./lib/dicts/train.hd.dict

注意: train.ug是训练语料生成的.train.hd.dict是train.ug中字对应的发音,train.hd.dict中的字和train.ug中一致否则会报错;train.hd.dict包含 sil; sil;

下面是生成train.ug的脚本

      ./mlf2lmdata.sh wlabs/train.wrd.mlf > train.wrd.dat
      awk '{for(i=1;i<=NF;i++){print $i;}}' train.wrd.dat | sort -u > train.wlist
     ./ngram-count -vocab train.wlist -order 1 -gt1min 1 -debug 1 -interpolate -text train.wrd.dat -lm train.ug
      gzip -c train.ug >train.ug.gz

b. HDecode.mod 声学模型+单词的语言得分-> phone级别的强制对齐

HDecode.mod -A -D -V -T 1 -t 175.0 -s 1.0 -p 0.0 -n 8 -C ./lib/cfgs/config.xwrd.hd -C ./lib/cfgs/config.hd.mod -i ./lattices/feats-tjoiner_00_88/plat.num/feats-tjoiner_00_88_err.mlf -H ./hmm320/MMF -d ./hmm320 -q tvaldm -o M -z lat -w -L ./lattices/feats-tjoiner_00_88/wlat.num -l ./lattices/feats-tjoiner_00_88/plat.num -X lat -S ./lattices/feats-tjoiner_00_88/train2.lat_err.scp ./lib/dicts/train.hd.dict ./lib/mlists/tri.xwrd.cluster.list 

2. 分母

a. HDecode 声学模型+语言模型->解码结果

HDecode -A -D -V -T 1 -t 175.0 -s 14.0 -p -10.0 -n 8 -C ./lib/cfgs/config.xwrd.hd -i ./lattices/feats-tjoiner_00_88/wlat.den/feats-tjoiner_00_88.mlf -H ./hmm320/MMF -d ./hmm320 -o M -z lat -w ./lib/lmdb/train.ug -l ./lattices/feats-tjoiner_00_88/wlat.den -X lat -S lib/flists.fixed/feats-tjoiner_00_88.scp ./lib/dicts/train.hd.dict ./lib/mlists/tri.xwrd.cluster.list

b. 合并解码中重复的结点和弧

HLRescore -A -D -V -T 3 -q tvalr -w -s 14.0 -p -10.0 -C ./lib/cfgs/config.hlr -t 200.0 -m f -L ./lattices/feats-tjoiner_00_88/wlat.den -l ./lattices/feats-tjoiner_00_88/wlat.den.det -S ./lattices/feats-tjoiner_00_88/train2.lat_err.scp ./lib/dicts/train.hd.dict

c. HDecode.mod  声学模型+2.b>phone级别的格

HDecode.mod -A -D -V -T 1 -t 175.0 -s 14.0 -p -10.0 -n 8 -C ./lib/cfgs/config.xwrd.hd -C ./lib/cfgs/config.hd.mod -i ./lattices/feats-tjoiner_00_88/plat.den/feats-tjoiner_00_88_err.mlf -H ./hmm320/MMF -d ./hmm320 -q tvaldm -o M -z lat -w -L ./lattices/feats-tjoiner_00_88/wlat.den.det -l ./lattices/feats-tjoiner_00_88/plat.den -X lat -S ./lattices/feats-tjoiner_00_88/train2.lat_err.scp ./lib/dicts/train.hd.dict ./lib/mlists/tri.xwrd.cluster.list

4. phont级的lattice合并,分为den和num合并

./makeLLF.sh lattices/${sub_lat}/plat.den ${j} lattices.LLF/den

5. HMMIRest  分子+分母->区分性训练

你可能感兴趣的:(区分性训练)