tensorflow 语音识别_调研报告|在线语音识别改进方法之序列区分性训练
這篇文章主要調研的是一種常見的改進在線語音識別的方法:序列區分性訓練(Sequence Discriminative Training)。相信有很多人已經在 CTC/CE 的訓練上遇到了瓶頸,而一些新的框架如 RNN-T,End2End 的實現,對于工程上的改動比較大。這個時候考慮序列區分性訓練是一個非常實惠的方式,基于 CE/CTC 穩定下來的模型,接入序列區分性訓練,收益非常可觀且工程代碼不用修改,只需要后期 tune 一下參數就好。文末會給出我最近看到的一些有助于實現該功能的 Repo。
這篇文章可能文字講解的地方會比較少,因為圖片的內容信息量已經很大了,同時論文的出處我會一并放出,有興趣的朋友可以閱讀下原文。
實時系統的訓練準則對?
Frame-Level Criterion
Cross Entropy:
CE Loss 公式End-to-End Criteria
- Connectionist Temporal Classification:
- RNN-T:
Sequence-Level Criteria
- Maximum Mutual Information:
該 loss 出了對帶淺層語言聲學模型做基于詞序列的標準解優化之外,還對競爭路徑做了區分優化。
Ref:Sequence-discriminative training of deep neural networks
- Minimum Phone Error or state-level Minimum Bayes Risk:
基于MMI的進一步優化是,對標準路徑做了相似路徑優化擴充,引入了序列相似度打分,旨在縮小類內距離同時放大類外距離。
Ref:Sequence-discriminative training of deep neural networks
下面是谷歌在做區分訓練的實時訓練流程,
谷歌的 sMBR 訓練流程Ref: Sequence Discriminative Distributed Training of Long Short-Term Memory Recurrent Neural Networks
論?中的實驗對?
本章實驗內容主要分享中英文下各種設置對于 sMBR 準則訓練的影響。序列區分性方法可以基于 CE 或 CTC 預訓練穩定后接入,從下面的實驗來看收益在 5~10%。
Model Units
中文 Model Units 以及 CE/CTC sMBR 的實驗對比Ref: Investigation of Modeling Units for Mandarin Speech Recognition Using Dfsmn-ctc-smbr
Frame Rate
Frame Rate 對 CTC sMBR 的影響Ref: Investigation of Modeling Units for Mandarin Speech Recognition Using Dfsmn-ctc-smbr
SDT language model
不同的 N-GRAM 模型對于 sMBR 訓練的影響Ref: Sequence Discriminative Distributed Training of Long Short-Term Memory Recurrent Neural Networks
Training Strategy
不同的 CE 預訓練階段切換對于 MMI/sMBR 的影響Ref: Sequence Discriminative Distributed Training of Long Short-Term Memory Recurrent Neural Networks
Noisy Dataset
CE-sMBR 和 CTC-sMBR 在不同數據類型下的對比Ref: FLAT START TRAINING OF CD-CTC-SMBR LSTM RNN ACOUSTIC MODELS
開源項?
CTC-CRF
清華?學開源的項?,歐老師 和學生 Keyu An, Hongyu Xiang 共同研發并開源的一套 CTC-CRF 區分訓練方法,Hongyu Xiang 實現了 WFST 的解碼在 GPU 中并行運算,解碼速度非常快。目前在幾個標準集上都有 state-of-the-art 結果。
CTC-CRF 在各種標準集下的表現情況Ref:CAT: CRF-based ASR Toolkit
團隊完成了 PyTorch 的 binding。由于我主要是在 TensorFlow 上實現訓練流程,所以基于此,稍微重構了些代碼,完成了 Tensorflow 的 binding TeaPoly/warp-ctc-crf。另外 TensorFlow 的訓練工具也在最近上傳了,地址為 TeaPoly/cat_tensorflow。
使用公司內部的遠場的 2MB 左右的小模型也取得了一定的收益,具體如下:
遠場識別小模型引入 CTC-CRF 后的提升EESEN
Yajie Miao 基于 Kaldi 工具完善的?套 CTC 訓練框架。雖然沒有使用目前主流的 TensorFlow/PyTorch 框架,但放到現在任然有?定的參考價值,?前尚未?持區分訓練。
PyChain
小?語音組成員開發,Daniel Povey 參與,基于 LF-MMI chain model。基于 PyTorch 框架開發,提供了詳細的 Pipeline 樣例,同時完成了 FST 和 PyTorch 的 binding。
tf-code-acoustics
hubo 開發,從代碼看應該是 Sogou 成員,作者相當勤奮,完成了MMI/MPE/sMBR/CTC/CE 的 TensorFlow 下的訓練代碼。和原作者溝通下來,他基于 CE/CTC-sMBR 做了嘗試,相?于單純 CE/CTC 都有 5% 到 10% 的收益。系統里有 Pipeline 和樣例。 雖然目前沒有特別完備的開發?檔,但是作者的開源精神和勤奮程度讓人佩服。
總結
以上是生活随笔為你收集整理的tensorflow 语音识别_调研报告|在线语音识别改进方法之序列区分性训练的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tcpdump抓包命令_tcpdump实
- 下一篇: vhdl变量赋初值_1.6 C++变量