天天看點

95188:BLSTM-DNN hybrid語音識别聲學模型的第一個工業應用

雙十一當天,螞蟻金服客戶中心整體服務量超過500萬人次,94%以上都是通過人工智能技術驅動的自助服務解決。在整個自助服務中,非常重要的一環是呼叫中心的語音轉文本服務,這是一個典型的電話語音識别問題。

電話語音識别是當今語音識别領域最複雜最困難的問題之一。對話過程中說話人風格自然随意、口音、不流利(重複、修改自己的說法)、傳輸信道複雜多樣等各種不利因素都集中在這個場景中。随着深度學習等技術的發展,當今電話語音識别的準确率已經達到了不錯的水準,這在幾年前都是難以想象的。

我們使用的是基于lc-blstm-dnn hybrid的語音識别聲學模型,為了檢測該模型的效果,我們特别邀請一位技術特别牛、國語口音也挺牛的同學,撥打支付寶95188客服熱線,體驗了一次阿裡巴巴idst于不久前更新上線的最新語音識别技術。結果讓人驚訝。據我們所知(to the best of our knowledge),這也是該種模型結構在語音識别領域上線的第一個工業界應用。本文将會介紹這一聲學模型的背景,及我們的具體實作工作。

傳統上語音識别聲學模型一般采用gmm-hmm進行模組化。近年來,随着深度學習技術的發展,基于dnn-hmm的模組化方法取得了長足發展,相比傳統方法可以使語音識别的準确率相對提升20%-30%,已取代前者成為學術界和工業界的主流配置。dnn的優點在于通過增加神經網絡的層數和節點數,擴充了網絡對于複雜資料的抽象和模組化能力,但同時dnn也存在一些不足,例如dnn中一般采用拼幀來考慮上下文相關資訊對于目前語音幀的影響,這并不是反映語音序列之間相關性的最佳方法。自回歸神經網絡(rnn)在一定程度上解決了這個問題,它通過網絡節點的自連接配接達到利用序列資料間相關性的目的。進一步有研究人員提出一種長短時記憶網絡(lstm-rnn),它可以有效減輕簡單rnn容易出現的梯度爆炸和梯度消散問題,而後研究人員又對lstm進行了擴充,使用雙向長短時記憶網絡(blstm-rnn)進行聲學模型模組化,以充分考慮上下文資訊的影響。

blstm可以有效地提升語音識别的準确率,相比于dnn模型,相對性能提升可以達到15%-20%。但同時blstm也存在兩個非常重要的問題:

句子級進行更新,模型的收斂速度通常較慢,并且由于存在大量的逐幀計算,無法有效發揮gpu等并行計算工具的計算能力,訓練會非常耗時;

由于需要用到整句遞歸計算每一幀的後驗機率,解碼延遲和實時率無法得到有效保證,很難應用于實際服務。

對于這兩個問題,文獻[1]首先提出context-sensitive-chunk blstm(csc-blstm)的方法加以解決,而此後文獻[2]又提出了latency controlled blstm(lc-blstm)這一改進版本,更好、更高效的減輕了這兩個問題。我們在此基礎上采用lc-blstm-dnn混合結構配合多機多卡、16bit量化等訓練和優化方法進行聲學模型模組化,取得了相比于dnn模型約17-24%的相對識别錯誤率下降。目前該套模型已在電話語音識别中率先應用,并将陸續在我們支援的其他語音識别業務上線。

典型的lstm節點結構下圖所示,與一般dnn或simple rnn采用簡單的激活函數節點不同,lstm由3個gate:input gate、forget gate、output gate和一個cell組成,輸入、輸出節點以及cell同各個門之間都存在連接配接;input gate、forget gate同cell之間也存在連接配接,cell内部還有自連接配接。這樣通過控制不同門的狀态,可以實作更好的長短時資訊儲存和誤差傳播。

95188:BLSTM-DNN hybrid語音識别聲學模型的第一個工業應用

lstm可以像dnn一樣逐層堆積成為deep lstm,為了更好的利用上下文資訊,還可以使用blstm逐層堆積構造deep lstm,其結構如下圖所示,網絡中沿時間軸存在正向和反向兩個資訊傳遞過程,每一個時間幀的計算都依賴于前面所有時間幀和後面所有時間幀的計算結果,對于語音信号這種時序序列,該模型充分考慮了上下文對于目前語音幀的影響,能夠極大的提高音素狀态的分類準确率。

95188:BLSTM-DNN hybrid語音識别聲學模型的第一個工業應用

然而由于标準的blstm是對整句語音資料進行模組化,訓練和解碼過程存在收斂慢、延遲高、實時率低等問題,針對這些弊端我們采用了latency controlled blstm進行解決,與标準的blstm使用整句語音進行訓練和解碼不同,latency control blstm使用類似truncated bptt的更新方式,并在cell中間狀态處理和資料使用上有着自己的特點,如下圖所示,訓練時每次使用一小段資料進行更新,資料由中心chunk和右向附加chunk構成,其中右向附加chunk隻用于cell中間狀态的計算,誤差隻在中心chunk上進行傳播。時間軸上正向移動的網絡,前一個資料段在中心chunk結束時的cell中間狀态被用于下一個資料段的初始狀态,時間軸上反向移動的網絡,每一個資料段開始時都将cell中間狀态置為0。該方法可以很大程度上加快網絡的收斂速度,并有助于得到更好的性能。解碼階段的資料處理與訓練時基本相同,不同之處在于中心chunk和右向附加chunk的次元可以根據需求進行調節,并不必須與訓練采用相同配置。

95188:BLSTM-DNN hybrid語音識别聲學模型的第一個工業應用

一般的基于dnn的語音識别聲學模型結構如下圖所示,dnn 的輸入一般采用傳統頻譜特征及其改進特征 (如 mfcc、plp、filterbank 等) 經過幀拼接得到,拼接長度一般選擇 9-15 幀之間,時間上約 10ms左右。而輸出則一般采用各種粒度的音素聲學單元,常見的有單音子音素 (monophone)、單音子音素的狀态以及三音子音素 (triphone) 綁定狀态等。輸出層的标注一般采用 gmm-hmm 基線系統經強對齊( forced-alignment)得到。

95188:BLSTM-DNN hybrid語音識别聲學模型的第一個工業應用

與dnn類似,我們可以通過堆積lc-blstm得到deep lc-blstm,但是單純使用多層lc-blstm來構成聲學模型不僅在計算複雜度上會帶來很大壓力,更為重要的是并不能取得最優的識别性能。經過多組實驗嘗試,我們決定采用lc-blstm-dnn混合模型結構,輸入語音特征先經過3層節點數為1000(正向+反向) lc-blstm變換,再經過2層節點數為2048的dnn全連接配接和softmax層得到輸出,如下圖所示。識别結果與最好的dnn基線比較如下表所示,目前網絡規模和參數配置還在不斷優化中。

95188:BLSTM-DNN hybrid語音識别聲學模型的第一個工業應用

cer%

産品線a

産品線b

産品線c

dnn

15.4

11.1

12.4

lc-blstm-dnn

12.7(17.5%)

8.51(23.4%)

9.4(24.2%)

我們采用團隊内部同學開發的多機多卡訓練工具進行lc-blstm-dnn聲學模型訓練,在使用6機12卡,訓練資料集大小為2100小時的情況下,加速效果如下表所示:

處理一個 epoch 所需時間(小時)

單機單卡 (baseline)

65.6

6機12卡(middleware)

6.5(10.1x加速)

可以看到6機12卡的加速比約為10.1倍,通常在5-6次epoch疊代後即可收斂,即一天半以内即可完成模型的訓練,可以預期即使未來達到一萬小時的訓練資料,模型訓練也可以在一周内完成。如果進一步增加機卡數目,加速比還會進一步的提高。可以說lc-blstm-dnn的訓練高耗時問題已認證該多機多卡訓練工具很好的解決。

dnn由于需要使用拼幀技術,解碼延遲通常在5-10幀,大約50-100ms。标準的blstm則需要整句的延遲,而在lc-blstm-dnn中由于使用了chunk資料計算的技術,解碼的延遲可以控制在20幀左右,大約200ms,對于對延遲要求更為嚴格的線上服務類任務,還可以在少量損失識别性能的情況下(0.2%-0.3%絕對值左右),将延遲控制在100ms,完全可以滿足各類任務的需求。

在解碼實時率方面,雖然我們設計的lc-blstm-dnn模型結構相比普通deep blstm已經減少了很多的計算複雜度,但未經任何優化的lc-blstm-dnn仍不能滿足需求,為此我們從兩方面着手嘗試解決這一問題。一方面,我們通過許多工程技術進行優化,包括使用16bit量化技術對特征資料和網絡權重進行處理,在基本不損失識别性能的情況下,大大提高了計算效率;我們還使用了lazy技術對最後一個softmax層的計算進行優化,進一步提高了實時率。現有的模型在一台普通筆記本電腦上已經可以取得約1.1倍實時率。另一方面,我們從模型結構和算法層面入手,嘗試使用跳幀、projection層、svd分解、模型分辨率調整等技術來加速模型的計算,初步已取得不錯的效果,目前許多工作正在進行中。

近一兩年語音識别技術在原有dnn技術基礎上又取得了可喜的進展。例如ctc技術,一般認為ctc與lstm結合可以有助于模型學習到下文context資訊,取得與blstm相當的識别效果,而由于blstm已經可以學習到下文的context資訊,是以ctc與blstm結合并不能再帶來明顯的性能提升。lstm+ctc在計算複雜度和解碼速度上相比blstm具有一定的優勢,但許多研究人員也發現lstm+ctc模型存在對音素時間邊界估計不準确的問題,這對某些需要準确估計音素邊界的任務,如語音資料脫敏等,是一個不小的問題。還有一些諸如attention-based模型等技術同樣在研究中取得了不錯的進展。相信未來會有更為優異的模型結構和算法來不斷的提高語音識别的準确率,智能語音互動亦會在此基礎上取得不斷的進步。

[1] chen k, yan z j, huo q. a context-sensitive-chunk bptt approach to training deep lstm/blstm recurrent neural networks for offline handwriting recognition[c]. 2015 13th international conference on document analysis and recognition (icdar). ieee computer society, 2015:411-415.

[2] yu zhang, guoguo chen, dong yu, kaisheng yao, sanjeev khudanpur, james glasshighway long short-term memory rnns for distant speech recognition. http://arxiv.org/abs/1510.08983

繼續閱讀