論文:
EXPLORING ARCHITECTURES, DATA AND UNITS FOR STREAMING END-TO-END SPEECH RECOGNITION WITH RNN-TRANSDUCER,2018
CTC的一個問題在於,其假設當前幀的輸出與歷史輸出之間的條件獨立性;RNN-T引入預測網絡來彌補CTC這種條件獨立性假設帶來的問題




思想:
1)針對CTC網絡的條件獨立性假設(當前時刻輸出與之前的輸出條件獨立),引入語言模型預測網絡分支,通過聯合前饋神經網絡將二者結合,在預測最終輸出時能夠同時利用聲學和語言特征信息;
2)在grapheme作為建模單元基礎上,引入了詞組單元wordpieces,能夠捕獲更長的文本信息,有利於減少替換錯誤;
模型:
- CTC網絡: 采用多級任務CTC,建模單元包括音素phoneme、字母grapheme、詞條wordspieces,音素CTC結構采用5層LSTM(700cell)、字母CTC采用10層LSTM(700cell)、詞條CTC采用12層LSTM(700cell);此外,在字母LSTM輸出時,通過時域卷積(kenel size=3)來縮短時間片長度,減少參數量,加速訓練的同時對效果不造成影響
- 預測網絡: 對於字母建模單元,預測網絡采用兩層LSTM(1000cell);對於詞條單元,因為詞條標簽數目較多,在LSTM之前引入一個較短的embedding層,維度為500
- 聯合網絡:采用前饋神經網絡結構,即一層全連接層(700)+softmax+CTC損失

細節:
- 輸入特征:聲學特征輸入特征80logfbank+一階差分+二階差分=240維;語言模型特征采用詞組詞典對應的one-hot向量
- 訓練數據采用[2]中的數據增強,添加噪聲和混響,每個樣本得到20個左右的混響或噪聲增強數據
- CTC網絡預訓練采用多級(phonemes、graphemes、wordspieces)多任務CTC目標損失/預測網絡預訓練采用交叉熵損失/聯合網絡采用詞條單元wordspieces CTC目標損失
- 音素級CTC的輸出單元個數為61個phoneme+blank;字母級CTC的輸出單元個數為44grapheme+blank;詞條級CTC的輸出單元個數為1000~30000有效詞條+blank

grapheme

wordspiece
- 解碼:beam search,輸出單元為grapheme beam width=100;輸出單元為詞條時beam width=25
訓練:
- 聲學模型訓練數據集:18000小時voice-search、voice-dictation+混響和噪聲增強;語言模型訓練數據集:10億句文本數據,來源於voice-search、voice-dictation、匿名化google搜索等日志;測試集15000voice-search utts+15000voice-dictation utts
- CTC網絡和預測網絡采用預訓練進行初始化,聯合網絡隨機初始化
- grapheme beam width=100,wordpieces beam width=25
預測:當前步輸出yu = p(y|xt,yu-1),如果yu為non-blank,那么下一步預測輸出為p(y|xt,yu),否則下一步輸出為p(y|xt+1,yu-1);當最后一個時間步T輸出為blank時終止
實驗:
- 論文中RNN-T取得了接近state-of-the-art的效果WER :voicesearch 8.5% voice-dictation 5.2%
- CTC網絡和語言模型預訓練,均有助於提升效果
- 提升LSTM深度從5層到8層,帶來10%相對提升
- wordspiece RNN-T相對於grapheme RNN-T實際效果更好,原因在於wordspiece作為輸出單元能夠降低替換錯誤
- grapheme LSTM輸出,通過時域卷機操作(kernel size=3),在不影響實際效果的情況下,有效減少wordpiece輸入的時間片維度,節省wordpiece LSTM參數訓練和解碼的時間
- wordspiece作為輸出單元時,相對於grapheme,語言模型困惑度更低
- 增加wordspiece輸出單元個數1k->30k,有助於進一步降低語言模型困惑度,提升實際效果,但也相應的增大了參數量


https://github.com/ZhengkunTian/rnn-transducer/blob/master/rnnt/model.py
環境:
- kaldi特征提取+CMVN
- pytorch模型構建及訓練
數據集:aishell1 178h train/dev/test
輸入:3*left-context+current frame+0*right-context=4*40=160維
模型:
- CTC網絡4*Bi-LSTM(320)
- 預測網絡:1*LSTM(512)
- 聯合網絡:1*full_connect(512)+tanh+softmax(4232)

訓練:
- SGD
- max_gram=200
- lr=0.0001
- momentum=0.9
- weight_ratio=0.5

解碼:貪心搜索,每一個時間步取最大概率對應的輸出
效果:aishell dev:10.13/test:11.82
