kaldi DNN在線解碼 aishell爲例

在kaldi 的工具集裏有好幾個程序能夠用於在線識別。這些程序都位在src/onlinebin文件夾裏,他們是由src/online文件夾裏的文件編譯而成(你如今能夠用make ext 命令進行編譯)。這些程序大多還須要tools文件夾中的portaudio 庫文件支持,portaudio 庫文件能夠使用tools文件夾中的相應腳本文件下載安裝。shell

# 安裝portaudio
yum -y install *alsa*
cd kaldi/tools
./install_portaudio.sh
# 編譯在線識別工具
cd src/
make ext

注:online官方再也不維護,新版本爲online2,不過先從簡單的online開始。bash

下面以aishell的chain模型爲例,學習使用online2-wav-nnet3-latgen-faster對訓練好的aishell模型進行解碼。工具

  • 首先,生成解碼所需配置文件:
# 注意:須要[ --add_pitch=true ]加入pitch特徵。
steps/online/nnet3/prepare_online_decoding.sh --add_pitch=true data/lang_chain exp/nnet3/extractor exp/chain/tdnn_1a_sp exp/chain/nnet_online
  • 若是直接解碼會提示出錯:
LOG (wav-copy[5.3]:main():wav-copy.cc:68) Copied 1 wave files
ERROR (online2-wav-nnet3-latgen-faster[5.3]:OnlineTransform():online-feature.cc:421)Dimension mismatch: source features have dimension 91 and LDA #cols is 281
  • 沒關係張,是由於特徵維度不匹配。咱們生成的配置文件裏的特徵類型是MFCC,而aishell訓練nnet和chain模型輸入的是更高維度的MFCC,叫mfcc_hire,hire是high resolution單詞的縮寫[引用文章]。因此咱們要修改第一步生成的MFCC配置文件,打開mfcc.conf文件,咱們看到:
# 原文件內容:
--use-energy=false   # only non-default option.
--sample-frequency=16000
# 咱們須要添加新內容,以下:
--num-mel-bins=40     # similar to Google's setup.
--num-ceps=40     # there is no dimensionality reduction.
--low-freq=40    # low cutoff frequency for mel bins
--high-freq=-200 # high cutoff frequently,relative to Nyquist of 8000 (=3800)
  • 完成後就能夠解碼了,使用在線解碼工具online2-wav-nnet3-latgen-faster進行解碼:
online2-wav-nnet3-latgen-faster --config=exp/chain/nnet_online/conf/online.conf --do-endpointing=false --frames-per-chunk=20 --extra-left-context-initial=0 --online=true --frame-subsampling-factor=3 --max-active=7000 --beam=15.0 --lattice-beam=6.0 --online=false --acoustic-scale=0.1 --word-symbol-table=data/lang/words.txt exp/chain/tdnn_1a_sp/final.mdl exp/chain/tdnn_1a_sp/graph/HCLG.fst ark:data/test/spk2utt scp:data/test/wav.scp ark,t:20180803.txt
  • 獲得識別結果!!!!:
BAC009S0764W0121 甚至 出現 交易 幾乎 停滯 的 狀況 
LOG (online2-wav-nnet3-latgen-faster[5.4.208~1-6f214]:main():online2-wav-nnet3-latgen-faster.cc:286) Decoded utterance BAC009S0764W0121
BAC009S0764W0122 一二 線 城市 雖然 也 處於 調整 中 
LOG (online2-wav-nnet3-latgen-faster[5.4.208~1-6f214]:main():online2-wav-nnet3-latgen-faster.cc:286) Decoded utterance BAC009S0764W0122
BAC009S0764W0123 但 由於 彙集 了 過多 公共 四元 
LOG (online2-wav-nnet3-latgen-faster[5.4.208~1-6f214]:main():online2-wav-nnet3-latgen-faster.cc:286) Decoded utterance BAC009S0764W0123
BAC009S0764W0124 爲了 規避 三四 線 城市 明顯 過剩 的 市場 風險 
LOG (online2-wav-nnet3-latgen-faster[5.4.208~1-6f214]:main():online2-wav-nnet3-latgen-faster.cc:286) Decoded utterance BAC009S0764W0124
BAC009S0764W0125 標杆 房企 必然 調整 市場 戰略 
LOG (online2-wav-nnet3-latgen-faster[5.4.208~1-6f214]:main():online2-wav-nnet3-latgen-faster.cc:286) Decoded utterance BAC009S0764W0125
BAC009S0764W0126 所以 土地 儲備 相當 重要 
LOG (online2-wav-nnet3-latgen-faster[5.4.208~1-6f214]:main():online2-wav-nnet3-latgen-faster.cc:286) Decoded utterance BAC009S0764W0126
BAC009S0764W0127 中原 地產 首席 分析 師 張大 偉 說 
LOG (online2-wav-nnet3-latgen-faster[5.4.208~1-6f214]:main():online2-wav-nnet3-latgen-faster.cc:286) Decoded utterance BAC009S0764W0127
BAC009S0764W0128 一 線 城市 土地 供應 量 減小 
LOG (online2-wav-nnet3-latgen-faster[5.4.208~1-6f214]:main():online2-wav-nnet3-latgen-faster.cc:286) Decoded utterance BAC009S0764W0128
BAC009S0764W0129 也 助推 了 土地 市場 的 火爆

參考:IT_King1《DNN在線解碼(以aishell的chain模型爲例)》學習

相關文章
相關標籤/搜索