rnn中文语音识别java_语音识别算法阅读之RNN-T-2018
論文:
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,有助于進一步降低語言模型困惑度,提升實際效果,但也相應的增大了參數量
環境:
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
總結
以上是生活随笔為你收集整理的rnn中文语音识别java_语音识别算法阅读之RNN-T-2018的全部內容,希望文章能夠幫你解決所遇到的問題。