区分性训练
? ? 聲學模型的初始模型訓練都是基于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包含<s> sil;</s> 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/den5. HMMIRest ?分子+分母->區分性訓練
總結
- 上一篇: c语言之——指针数组与数组指针
- 下一篇: 托米的位运算 牛客练习赛23 C