人機交互新進展:LFR-DFSMN語音識別聲學模型介紹
前言:語音識別技術是人機交互技術的重要組成部分,而語音識別中的聲學模型是語音識別技術中的核心所在,堪稱重中之重。阿裏巴巴iDST智能語音交互團隊最新的LFR-DFSMN模型相對於之前的LFR-LCBLSTM模型可以達到訓練加速3倍、識別加速2倍、識別錯誤率降低20%和最終模型大小壓縮50%的效果,實現了語音識別的迭代速度、識別成本、服務質量的全麵提升。
語音識別技術一直都是人機交互技術的重要組成部分。有了語音識別技術,機器就可以像人類一樣聽懂說話,進而能夠思考、理解和反饋。近幾年隨著深度學習技術的使用,基於深度神經網絡的語音識別係統性能獲得了極大的提升,開始走向實用化。基於語音識別的語音輸入、語音轉寫、語音檢索和語音翻譯等技術得到了廣泛的應用。
阿裏巴巴iDST智能語音交互團隊一直以來也致力於語音識別技術的研究,同時注重技術的產品落地,在工業界大規模的問題上將技術真正發揚光大去解決實際的問題。2016年年初iDST就在工業界第一次上線了基於Latency Controlled-BLSTM-DNN hybrid的語音識別係統,這也是BLSTM模型在工業界第一次進行實時語音識別服務。相對於早期基於DNN的聲學模型,以及現在工業界大規模采用的基於LSTM的聲學模型,iDST的這種聲學模型既保持了BLSTM聲學模型的高準確率的優點,又通過Latency Control設計避免了BLSTM聲學模型帶來的高延時的缺點,可謂是“一舉兩得(更多閱讀請查閱之前的分享博客[1])。2016年底,通過結合Lower Frame Rate技術,iDST智能語音交互團隊進一步優化了該聲學模型,一舉將解碼時間加速了三倍以上,通俗點說就是把語音識別服務成本降低了三倍以上,為語音識別技術走入各行各業成為基礎設施打下堅實基礎。
在剛剛結束的雲棲大會上,提到了iDST智能語音交互團隊關於語音識別聲學模型的一個最新的技術進展,即LFR-DFSMN(Lower Frame Rate-Deep Feedforward Sequential Memory Networks)。本文將介紹這一聲學模型的研究背景,以及我們的具體實現工作。
二、語音識別聲學模型回顧
目前主流的語音識別係統普遍采用基於深度神經網絡和隱馬爾可夫(Deep Neural Networks-Hidden Markov Model, DNN-HMM)的聲學模型,其模型結構如圖 1所示。聲學模型的輸入是傳統的語音波形經過加窗、分幀,然後提取出來的頻譜特征,如 PLP, MFCC 和 FBK等。而模型的輸出⼀般采用不同粒度的聲學建模單元,例如單音素 (mono-phone)、單音素狀態、綁定的音素狀態 (tri-phone state) 等。從輸入到輸出之間可以采用不同的神經網絡結構,將輸入的聲學特征映射得到不同輸出建模單元的後驗概率,然後再結合HMM進行解碼得到最終的識別結果。
最早采用的網絡結構是前饋全連接神經網路(Feedforward Fully-connected Neural Networks, FNN)。FNN實現固定輸入到固定輸出的一對一映射,其存在的缺陷是沒法有效利用語音信號內在的長時相關性信息。一種改進的方案是采用基於長短時記憶單元(Long-Short Term Memory,LSTM)的循環神經網絡(Recurrent Neural Networks,RNN)。LSTM-RNN通過隱層的循環反饋連接,可以將曆史信息存儲在隱層的節點中,從而可以有效的利用語音信號
的長時相關性。進一步的通過使用雙向循環神經網絡(Bidirectional
RNN),可以有效的利用語音信號曆史以及未來的信息,更有利於語音的聲學建模。基於循環神經網絡的語音聲學模型相比於前饋全連接神經網絡可以獲得顯著的性能提升。但是循環神經網絡相比於前饋全連接神經網絡模型更加複雜,往往包含更多的參數,這會導致模型的訓練以及測試都需要更多的計算資源。另外基於雙向循環神經網絡的語音聲學模型,會麵臨很大的時延問題,對於實時的語音識別任務不適用。現有的一些改進的模型例如基於時延可控的雙向長短時記憶單元(Latency Controlled LSTM,LCBLSTM )[2-3],以及前饋序列記憶神經網絡(Feedforward Sequential
Memory Networks,FSMN)[3-5]。去年我們在工業界第一個上線了基於LCBLSTM的語音識別聲學模型。配合阿裏的大規模計算平台和大數據,采用多機多卡、16bit量化等訓練和優化方法進行聲學模型建模,取得了相比於FNN模型約17-24%的相對識別錯誤率下降。
三、FSMN模型的前世今生
1. FSMN模型
FSMN是近期被提出的一種網絡結構,通過在FNN的隱層添加一些可學習的記憶模塊,從而可以有效的對語音的長時相關性進行建模。FSMN相比於LCBLSTM不僅可以更加方便的控製時延,而且往往也能獲得更好的性能,需要的計算資源也更少。但是標準的FSMN很難訓練非常深的結構,會由於梯度消失問題導致訓練效果不好。而深層結構的模型目前在很多領域被證明具有更強的建模能力。因而針對此我們提出了一種改進的FSMN模型,稱之為深層的FSMN(Deep-FSMN, DFSMN)。進一步的我們結合LFR(lower frame rate)技術構建了一種高效的實時語音識別聲學模型,相比於去年我們上線的LCBLSTM聲學模型可以獲得超過20%的相對性能提升,同時可以獲得2-3倍的訓練以及解碼的加速,可以顯著的減少我們的係統實際應用時所需要的計算資源。
圖 2. FSMN模型結構以及和RNN的對比
2. FSMN到cFSMN的發展曆程
最早提出的FSMN的模型[3]結構如圖 2(a)所示,其本質上是一個前饋全連接神經網絡,通過在隱層旁添加一些記憶模塊(memory block)來對周邊的上下文信息進行建模,從而使得模型可以對時序信號的長時相關性進行建模。記憶模塊采用如圖 2(b)所示的抽頭延遲結構將當前時刻以及之前 N 個時刻的隱層輸出通過⼀組係數編碼得到⼀個固定的表達。FSMN的提出是受到數字信號處理中濾波器設計理論的啟發:任何無限響應衝擊(Infinite Impulse Response, IIR)濾波器可以采用高階的有限衝擊響應(Finite Impulse Response, FIR)濾波器進行近似。從濾波器的角度出發,如圖 2(c)所示的RNN模型的循環層就可以看作如圖 2(d)的一階IIR濾波器。而FSMN采用的采用如圖 2(b)所示的記憶模塊可以看作是一個高階的FIR濾波器。從而FSMN也可以像RNN一樣有效的對信號的長時相關性進行建模,同時由於FIR濾波器相比於IIR濾波器更加穩定,因而FSMN相比於RNN訓練上會更加簡單和穩定。
根據記憶模塊編碼係數的選擇,可以分為:1)標量FSMN(sFSMN);2)矢量FSMN(vFSMN)。sFSMN 和 vFSMN 顧名思義就是分別使用標量和矢量作為記憶模塊的編碼係數。sFSMN和vFSMN記憶模塊的表達分別如下公式:
以上的FSMN隻考慮了曆史信息對當前時刻的影響,我們可以稱之為單向的FSMN。當我們同時考慮曆史信息以及未來信息對當前時刻的影響時,我們可以將單向的FSMN進行擴展得到雙向的FSMN。雙向的sFSMN和vFSMN記憶模塊的編碼公式如下:
這裏N1和N2分別代表回看(look-back)的階數和向前看(look-ahead)的階數。我們可以通過增大階數,也可以通過在多個隱層添加記憶模塊來增強FSMN對長時相關性的建模能力。
圖 3. cFSMN結構框圖
FSMN相比於FNN,需要將記憶模塊的輸出作為下一個隱層的額外輸入,這樣就會引入額外的模型參數。隱層包含的節點越多,則引入的參數越多。研究[4]結合矩陣低秩分解(Low-rank matrix factorization)的思路,提出了一種改進的FSMN結構,稱之為簡潔的FSMN(Compact FSMN,cFSMN)。如圖3所示,是一個第l個隱層包含記憶模塊的cFSMN的結構框圖。
對於cFSMN,通過在網絡的隱層後添加一個低維度的線性投影層,並且將記憶模塊添加在這些線性投影層上。進一步的,cFSMN對記憶模塊的編碼公式進行了一些改變,通過將當前時刻的輸出顯式的添加到記憶模塊的表達中,從而隻需要將記憶模塊的表達作為下一層的輸入。這樣可以有效的減少模型的參數量,加快網絡的訓練。具體的,單向和雙向的cFSMN記憶模塊的公式表達分別如下:
四、LFR-DFSMN聲學模型
1. Deep-FSMN (DFSMN)網絡結構

如圖 4是我們進一步提出的Deep-FSMN(DFSMN)的網絡結構框圖,其中左邊第一個方框代表輸入層,右邊最後一個方框代表輸出層。我們通過在cFSMN的記憶模塊(紅色框框表示)之間添加跳轉連接(skip connection),從而使得低層記憶模塊的輸出會被直接累加到高層記憶模塊裏。這樣在訓練過程中,高層記憶模塊的梯度會直接賦值給低層的記憶模塊,從而可以克服由於網絡的深度造成的梯度消失問題,使得可以穩定的訓練深層的網絡。我們對記憶模塊的表達也進行了一些修改,通過借鑒擴張(dilation)卷積[6]的思路,在記憶模塊中引入一些步幅(stride)因子,具體的計算公式如下:
對於實時的語音識別係統我們可以通過靈活的設置未來階數來控製模型的時延,在極端情況下,當我們將每個記憶模塊的未來階數都設置為0,則我們可以實現無時延的一個聲學模型。對於一些任務,我們可以忍受一定的時延,我們可以設置小一些的未來階數。
相比於之前的cFSMN,我們提出的DFSMN優勢在於,通過跳轉連接可以訓練很深的網絡。對於原來的cFSMN,由於每個隱層已經通過矩陣的低秩分解拆分成了兩層的結構,這樣對於一個包含4層cFSMN層以及兩個DNN層的網絡,總共包含的層數將達到13層,從而采用更多的cFSMN層,會使得層數更多而使得訓練出現梯度消失問題,導致訓練的不穩定性。我們提出的DFSMN通過跳轉連接避免了深層網絡的梯度消失問題,使得訓練深層的網絡變得穩定。需要說明的是,這裏的跳轉連接不僅可以加到相鄰層之間,也可以加到不相鄰層之間。跳轉連接本身可以是線性變換,也可以是非線性變換。具體的實驗我們可以實現訓練包含數十層的DFSMN網絡,並且相比於cFSMN可以獲得顯著的性能提升。
從最初的FSMN到cFSMN不僅可以有效的減少模型的參數,而且可以獲得更好的性能[4]。進一步的在cFSMN的基礎上,我們提出的DFSMN,可以更加顯著的提升模型的性能。如下表是在一個2000小時的英文任務上基於BLSTM,cFSMN,DFSMN的聲學模型性能對比。
Model |
BLSTM |
cFSMN |
DFSMN |
WER% |
10.9 |
10.8 |
9.4 |
從上表中可以看到,在2000小時這樣的任務上,DFSMN模型可以獲得比BLSTM聲學模型相對14%的錯誤率降低,顯著提高了聲學模型的性能。
2. 基於LFR-DFSMN的語音識別聲學模型
圖 5. LFR-DFSMN聲學模型結構框圖
目前的聲學模型,輸入的是每幀語音信號提取的聲學特征,每幀語音的時長通常為10ms,對於每個輸入的語音幀信號會有相對應的一個輸出目標。最近有研究提出一種低幀率(Low Frame Rate,LFR)[7]建模方案:通過將相鄰時刻的語音幀進行綁定作為輸入,去預測這些語音幀的目標輸出得到的一個平均輸出目標。具體實驗中可以實現三幀(或更多幀)拚接而不損失模型的性能。從而可以將輸入和輸出減少到原來的三分之一甚至更多,可以極大的提升語音識別係統服務時聲學得分的計算以及解碼的效率。我們結合LFR和以上提出的DFSMN,構建了如圖 5的基於LFR-DFSMN的語音識別聲學模型,經過多組實驗我們最終確定了采用一個包含10層cFSMN層+2層DNN的DFSMN作為聲學模型,輸入輸出則采用LFR,將幀率降低到原來的三分之一。識別結果和去年我們上線的最好的LCBLSTM基線比較如下表所示。通過結合LFR技術,我們可以獲得三倍的識別加速。從上表中可以看到,在實際工業規模應用上,LFR-DFSMN模型比LFR-LCBLSTM模型可以獲得20%的錯誤率下降,展示了對大規模數據更好的建模特性。
CER% |
產品線A |
產品線B |
|
LFR-LCBLSTM |
18.92 |
10.21 |
|
LFR-DFSMN |
15.00(+20.72%) |
8.04(21.25%) |
實際的語音識別服務通常會麵對非常複雜的語音數據,語音識別聲學模型一定要盡可能的覆蓋各種可能的場景,包括各種對話、各種聲道、各種噪音甚至各種口音,這就意味著海量的數據。而如何應用海量數據快速的訓練聲學模型並上線服務,就直接關係到業務相應速度。
我們利用阿裏的Max-Compute計算平台和多機多卡並行訓練工具,在使用8機16GPU卡、訓練數據為5000小時的情況下,關於LFR-DFSMN聲學模型和LFR-LCBLSTM的訓練速度如下表:
|
處理一個epoch需要的時間 |
LFR-LCBLSTM |
10.8小時 |
LFR-DFSMN |
3.4小時 |
相比於基線LCBLSTM模型,每個epoch DFSMN可以獲得3倍的訓練速度提升。在2萬小時的數據量上訓練LFR-DFSMN,模型收斂一般隻需要3-4個epoch,因此在16GPU卡的情況下,我們可以在2天左右完成2萬小時數據量的LFR-DFSMN聲學模型的訓練。
設計更為實用化的語音識別係統,我們不僅需要盡可能的提升係統的識別性能,而且需要考慮係統的實時性,這樣才能給用戶提供更好的體驗。此外在實際應用中我們還需要考慮服務成本,因而對於語音識別係統的功耗也有一定的要求。傳統的FNN係統,需要使用拚幀技術,解碼延遲通常在5-10幀,大約50-100ms。而去年上線的LCBLSTM係統,解決了BLSTM的整句延遲的問題,最終可以將延時控製在20幀左右,大約200ms。對於一些對延時有更高要求的線上任務,還可以在少量損失識別性能的情況下(0.2%-0.3%絕對值左右),將延遲控製在100ms,完全可以滿足各類任務的需求。LCBLSTM相比於最好的FNN可以獲得超過20%的相對性能提升,但是相同CPU上識別速度變慢(即功耗高),這主要是由模型的複雜度導致。
我們最新的LFR-DFSMN,通過LFR技術可以將識別速度加速3倍以上,進一步的DFSMN相比於LCBLSTM在模型複雜度上可以再降低3倍左右。如下表是我們在一個測試集上統計的不同的模型需要的識別時間,時間越短則表示我們所需要的計算功耗越低:
模型 |
整個測試集識別所需要的時間 |
LCBLSTM |
956秒 |
DFSMN |
377秒 |
LFR-LCBLSTM |
339秒 |
LFR-DFSMN |
142秒 |
關於LFR-DFSMN的解碼時延問題,我們可以通過減小記憶模塊濾波器的向未來看的階數來減小時延。具體實驗中我們驗證了不同的配置,當我們將LFR-DFSMN的延時控製在5-10幀時,大致隻損失相對3%的性能。
此外,相對於複雜的LFR-LCBLSTM模型,LFR-DFSMN模型具有模型精簡的特點,雖然有10層DFSMN,但整體模型大小隻有LFR-LCBLSTM模型的一半,模型大小壓縮了50%。
參考文獻
- [1] https://yq.aliyun.com/articles/2308?spm=5176.100244.teamhomeleft.53.ifFpZn
- [2] Yu Zhang, Guoguo Chen, Dong Yu, and Kaisheng Yao, ng Yao, long short term memory RNNs for distant speech recognition, in IEEE International Conference of Acoustics,Speech and Signal Processing (ICASSP), 2016, pp. 5755-5759.
- [3] Xue S, Yan Z. Improving latency-controlled BLSTM acoustic models for online speech recognition[C], Acoustics, Speech and Signal Processing (ICASSP), 2016 IEEE International Conference on. IEEE. 2017.
- [4] Zhang S, Liu C, Jiang H, et al. Feedforward sequential memory networks: A new structure to learn long-term dependency[J]. arXiv preprint arXiv:1512.08301, 2015.
- [5] Zhang S, Jiang H, Xiong S, et al. Compact Feedforward Sequential Memory Networks for Large Vocabulary Continuous Speech Recognition[C], INTERSPEECH. 2016: 3389-3393.
- [6] Zhang S, Liu C, Jiang H, et al. Non-recurrent Neural Structure for Long-Term Dependency[J]. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 2017, 25(4): 871-884.
- [7] Oord A, Dieleman S, Zen H, et al. Wavenet: A generative model for raw audio[J]. arXiv preprint arXiv:1609.03499, 2016.
- [8] Pundak G, Sainath T N. Lower Frame Rate Neural Network Acoustic Models[C],INTERSPEECH. 2016: 22-26.
最後更新:2017-10-20 15:03:31