構建 CTC 語音識別解碼網路

本文介紹 kaldi-ctc 構建 CTC[1, 2, 3, 4] 語音識別加權有限狀態機(WFST)解碼網路的方式。

示例相關資源 lifeiteng/codingmath/CTC-decoding-graph

構建語言模型

以 單句 「how are you are」 作為文本語料,訓練 bi-gram(order=2)語言模型

生成 G.fst [data/lang_2/G.pdf],如下圖

準備"發音" 詞典

不同單元 phone[1, 2] / character[3, 4],都可以抽象為「發音」詞典的形式,以 phone 詞典為例

其中 !SIL SIL 為額外添加,作為 OOV 的替換符號使用,亦可使用其他記號 e.g. UNK NSN

其中 --num-sil-states 1 --num-nonsil-states 1 用於構建單狀態TransitionModel(HMM)。

生成 L.fst [data/lang_2/L.pdf]

Optinal 的 SIL(SIL : <eps> / 2_1)使得發音詞典與語言模型 Composition 之後的搜索空間允許單詞間停頓而不影響語言模型概率計算。

構建HCLG

像 DNN-HMM hybrid 系統一樣構建HCLG[5]:

kaldi-ctc 可以方便構建CI[1] phone / CD[2] phone / character[3, 4] 的 CTC 系統,只需構建相應 CI-phone / CD-phone / character 的決策樹和訓練數據即可。

HCLG [exp/mono_ctc_decoding_graph/HCLG.pdf] 網路:

修改HCLG 構建CTC解碼網路

修改 HCLG 的 input label(即 TransitionId)並插入 blank loop 構建CTC解碼網路。

arc.ilabel++, 添加 blank loop

最終 CTC 解碼網路如下: [exp/mono_ctc_decoding_graph/CTC.pdf]

解碼時從解碼網路獲得TransitionId轉為對應的PdfId做為 RNN 輸出層索引獲得

log_likelihood = log(RNN output[pdf_id]) - log(prior[pdf_id])

尖峰現象

以 CTC 準則訓練的 RNN 模型輸出概率有明顯的尖峰現象[1]: [images/pink.png]

解碼時跳過blank概率接近1的幀可以極大提升實時率[6]

[1] Sak H, Senior A, Rao K, et al. Learning acoustic frame labeling for speech recognition with recurrent neural networks[C]//2015 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2015: 4280-4284.

[2] Rao K, Senior A. Flat start training of CD-CTC-SMBR LSTM RNN acoustic models[C]//2016 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2016: 5405-5409.

[3] Hannun A, Case C, Casper J, et al. Deep speech: Scaling up end-to-end speech recognition[J]. arXiv preprint arXiv:1412.5567, 2014.

[4] Amodei D, Anubhai R, Battenberg E, et al. Deep speech 2: End-to-end speech recognition in english and mandarin[J]. arXiv preprint arXiv:1512.02595, 2015.

[5] Decoding-graph creation recipe (test time)

[6] Chen Z, Deng W, Xu T, et al. Phone Synchronous Decoding with CTC Lattice[J]. Interspeech 2016}, 2016: 1923-1927.

推薦閱讀:

阿里智能工作軟體機器人——碼棧應用教程,讓一切變得自動化
CES Asia旅遊和科技行業的全新跨界時代:聚焦人工智慧和大數據
寫在李世石3:0負於AlphaGo之後
黃士傑離開 AlphaGo 項目,意味 AlphaGo 落下帷幕了嗎?DeepMind 下一步是什麼?
打響新年第一炮,Gary Marcus提出對深度學習的系統性批判

TAG:语音识别 | 深度学习DeepLearning | 人工智能 |