chain在线解码可以参考https://blog.youkuaiyun.com/it_king1/article/details/80109398
我补充一下nnet3在线解码:
nnet3跟chain不同之处在于nnet3没有HCLG.fst,用的还是tri5a的HCLG.fst(也就是hmm所代表的信息)
这倒是证明了dnn只是代替gmm,可以参考如下的图示(来源http://www.jianshu.com/p/c5fb943afaba)
steps/online/nnet3/prepare_online_decoding.sh --mfcc-config conf/mfcc_hires.conf --add_pitch true data/lang_chain exp/nnet3/extractor exp/nnet3/tdnn_sp exp/nnet3/tdnn_sp_online
kaldi/src/online2bin/online2-wav-nnet3-latgen-faster --do-endpointing=false --frames-per-chunk=20 --extra-left-context-initial=0 --online=true --frame-subsampling-factor=3 --config=exp/nnet3/tdnn_sp_online/conf/online.conf --min-active=200 --max-active=7000 --beam=15.0 --lattice-beam=6.0 --acoustic-scale=1.0 --word-symbol-table=data/lang_chain/words.txt exp/nnet3/tdnn_sp/final.mdl exp/tri5a/graph/HCLG.fst ark:data/test2/spk2utt 'ark,s,cs:kaldi/src/featbin/wav-copy scp,p:data/test2/wav1.scp ark:- |' 'ark:|kaldi/src/latbin/lattice-scale --acoustic-scale=10.0 ark:- ark:- | gzip -c >lat.1.gz'
要解码的语音放在data/test2目录下,用到的是spk2utt和wav1.scp,照着data/train下面的同名文件修改一下就可以。