1. 注意事項
- 首先要訓練好模型,用到3個文件,分別是:
final.mdl
(訓練模型得到的模型文件)final.mat
(用來特征轉換)HCLG.fst
(fst文件)
- 此外要提供待解碼音頻文件或路徑.scp文件:
wav.scp
(音頻路徑.scp文件)
2. 流程圖:
st=>start: 開始
op1=>operation: compute-mfcc-feats
op2=>operation: copy-feats
op3=>operation: compute-cmvn-stats
op4=>operation: apply-cmvn
op5=>operation: splice-feats
op6=>operation: transform-feats
op7=>operation: nnet-latgen-faster
st->op1->op2->op3->op4->op5->op6->op7
流程每一步意義如下:
- 使用
compute-mfcc-feats
提取特征,生成對應的特征文件feats.ark
; - 使用
copy-feats
來拷貝特征文件,並創建特征的scp文件,生成feat.scp
feat.ark
; - 使用
compute-cmvn-stats
計算CMVN歸一化,得到cmvn.scp
cmvn.ark
; - 使用
apply-cmvn
得到了applycmvn.ark
文件; - 使用
splice-feats
來繼續變換特征 ,拼接相鄰幀的特征; - 使用
transform-feats
來進行特征轉換,為了解碼調用 ; - 最后通過得到的
transform.ark
進行解碼的操作,得到解碼后的lattice文件 。
3. 具體流程指令:
- 首先列出具體文件,這里我就按照自己的文件給出了,如果用別的,改相應文件就行了
2.wav.scp
(里面是保存了wav的絕對路徑)
3.final.mdl
(訓練模型得到的模型文件)
4.final.mat
(用來特征轉換)
5.HCLG.fst
(fst文件,用於解碼) - 使用compute-mfcc-feats生成對應的特征文件feats.ark:
compute-mfcc-feats --use-energy=false scp:wav.scp ark:feats.ark
- 使用copy-feats來拷貝特征文件,並創建特征的scp文件,生成feat.scp feat.ark
copy-feats ark:feats.ark ark,scp:feat.ark,feat.scp
- 使用compute-cmvn-stats計算CMVN歸一化,得到cmvn.scp cmvn.ark
compute-cmvn-stats scp:feat.scp ark,scp:cmvn.ark,cmvn.scp
- 使用apply-cmvn,得到了applycmvn.ark文件
apply-cmvn scp:cmvn.scp scp:feat.scp ark:applycmvn.ark
- 使用splice-feats來繼續變換特征
splice-feats --left-context=3 --right-context=3 ark:applycmvn.ark ark:splice.ark
- 使用transform來進行特征轉換,為了解碼調用
transform-feats final.mat ark:splice.ark ark:transform.ark
- 最后通過得到的transform.ark進行解碼的操作,得到一個晶格文件
nnet-latgen-faster [options] <nnet-in> <fst-in|fsts-rspecifier> <features-rspecifier> <lattice-wspecifier>
版權聲明:轉載請注明出處,謝謝