這是一篇深度研究的概述,論文全文可在頁末下載。今年七月, IEEE/CAA Journal of Automatica Sinica發表了騰訊 AI Lab 副主任兼西雅圖實驗室負責人俞棟博士,與微軟首席應用科學家兼技術負責人李錦宇聯合撰寫的論文。該論文回顧了過去兩年聲學模型方面的新進展。本文摘取該論文主幹部分進行編譯介紹,希望為讀者提供相關進展的概括性瞭解。欲知相關技術方法詳情,可參閱頁末論文及相關文獻。
引言
過去幾年裡,自動語音識別(ASR)已經取得了重大的進步 [1-21]。這些進步讓 ASR 系統越過了許多真實場景應用所需的門檻,催生出了 Google Now、微軟小娜和亞馬遜 Alexa 等服務。這些成就中很多都是由深度學習(Deep Learning)技術推動的。
在這篇論文中,我們調查了過去兩年的新進展,並重點關注了聲學模型。我們討論了所調查的每一項有趣研究成果的動機和核心思想。具體而言,第 2 節中,我們闡釋了使用深度迴圈神經網路(RNN)和深度卷積神經網路(CNN)的改進的 DL/HMM(深度學習-隱馬爾可夫模型)混合聲學模型。比起前饋深層神經網路(DNN),這些混合模型能更好地利用語境資訊,並由此得到了新的當前最佳的識別準確度。
第 3 節中,我們描述了僅使用很少或不使用不可學習元件的以端到端方式設計和最佳化的聲學模型。我們首先討論了直接使用音訊波形作為輸入特徵的模型,其特徵表徵層是自動學習到的,而不是人工設計的。然後我們描述了聯結主義時序分類(Connectionist Temporal Classification, CTC)標準最佳化的模型,該模型允許序列到序列的直接對映。之後我們分析了構建於注意機制之上的序列到序列翻譯模型。
第 4 節中,我們討論了可以提升穩健性的技術,並重點關注了自適應技術、語音增強和分離技術、穩健訓練技術。第 5 節中,我們描述了支援高效解碼的聲學模型並涵蓋了透過教師-學生訓練(teacher-student training)與量化實現的跳幀和模型壓縮。第 6 節中,我們提出了正待解決的核心問題以及有望解決這些問題的未來方向。
2. 利用可變長度語境資訊的聲學模型
DL/HMM 混合模型 [1-5] 是第一種在 ASR 上取得成功的深度學習架構,而且仍然是這一行業使用的主導模型。幾年前,大多數混合系統都是基於 DNN 的。
但是,由於音素和語速的不同,語境資訊的最優長度也可能各不相同。這說明像在 DNN/HMM 混合系統中一樣使用固定長度的語境視窗(context window)可能並非利用語音資訊的最佳選擇。近幾年,人們已經提出了一些可以更有效地利用可變長度語境資訊的新模型。其中最重要的兩個模型使用了深度 RNN 和 CNN。
A. 迴圈神經網路(RNN)
前饋 DNN 僅會考慮固定長度的幀的滑動視窗中的資訊,因此無法利用語音訊號中的長距離相關性。而 RNN 可以編碼自己內部狀態中的序列歷史,因此有望基於截止當前幀所觀察到的所有語音特徵來預測音素。但不幸的是,純粹的 RNN 難以訓練。
為了克服這些問題,研究人員開發了長短期記憶(LSTM)RNN [23]。LSTM-RNN 使用輸入門、輸出門和遺忘門來控制資訊流,使得梯度能在相對更長的時間跨度內穩定地傳播。
為了得到更好的建模能力,一種流行的做法是將 LSTM 層堆疊起來 [8]。但帶有太多 vanilla LSTM 層的 LSTM-RNN 非常難以訓練,而且如果網路太深,還會有梯度消失問題。這個問題可以使用 highway LSTM 或 residual LSTM 解決。
在 highway LSTM [29] 中,相鄰層的記憶單元透過門控的直接鏈路連線在一起,這為資訊提供了一種在層之間更直接且不衰減地流動的路徑。
residual LSTM [30,31] 在 LSTM 層之間使用了捷徑連線(shortcut connection),因此也提供了一種緩解梯度消失問題的方法。
另外還有一種二維時頻 LSTM(2-D, time-frequency (TF) LSTM)[35, 36],可以在時間和頻率軸上對語音輸入進行聯合掃描,以對頻譜時間扭曲(spectro-temporal warping)建模,然後再將其輸出的啟用(activation)用作傳統的時間 LSTM 的輸入。這種時間-頻率聯合建模能為上層的時間 LSTM 提供更好的規範化的特徵。
網格 LSTM(Grid LSTM) [38] 是一種將 LSTM 記憶單元排布成多維網格的通用 LSTM,可以被看作是一種將 LSTM 用於時間、頻譜和空間計算的統一方法。
儘管雙向 LSTM(BLSTM)透過使用過去和未來的語境資訊能得到比單向 LSTM 更好的表現,但它們並不適合實時系統,因為這需要在觀察到整個話語之後才能進行識別。因為這個原因,延遲受控 BLSTM(LC-BLSTM)[29] 和行卷積 BLSTM(RC-BLSTM)等模型被提了出來,這些模型構建了單向 LSTM 和 BLSTM 之間的橋樑。在這些模型中,前向 LSTM 還是保持原樣。但反向 LSTM 會被替代——要麼被帶有最多 N 幀前瞻量的反向 LSTM(如 LC-BLSTM 的情況)替代,要麼被整合了 N 幀前瞻量中的資訊的行卷積替代。
B.卷積神經網路(CNN)
卷積神經網路(CNN)是另一種可以有效利用可變長度的語境資訊的模型 [42],其核心是卷積運算(或卷積層)。
時延神經網路(time delay neural network/TDNN)是第一種為 ASR 使用多個 CNN 層的模型。這種模型在時間軸和頻率軸上都應用了卷積運算。
繼DNN 在 LVCSR 上的成功應用之後,CNN 又在 DL/HMM 混合模型架構下被重新引入。因為該混合模型中的 HMM 已經有很強的處理 ASR 中可變長度話語問題的能力了,所以重新引入 CNN 最初只是為了解決頻率軸的多變性 [5,7,44,45]。其目標是提升穩健性,以應對不同說話人之間的聲道長度差異。這些早期模型僅使用了一到兩個 CNN 層,它們和其它全連線 DNN 層堆疊在一起。
後來,LSTM 等其它 RNN 層也被整合到了該模型中,從而形成了所謂的 CNN-LSTM-DNN (CLDNN) [10]和 CNN-DNN-LSTM(CDL)架構。
研究者很快認識到處理可變長度的話語不同於利用可變長度的語境資訊。TDNN 會沿頻率軸和時間軸兩者同時進行卷積,因此能夠利用可變長度的語境資訊。基於此,這種模型又得到了新的關注,但這一次是在 DL/HMM 混合架構之下 [13,47],並且出現了行卷積 [15] 和前饋序列記憶網路(feedforward sequential memory network/FSMN) [16] 等變體。
最近以來,主要受影像處理領域的成功的激勵,研究者提出和評估了多種用於 ASR 的深度 CNN 架構 [14,17,46,48]。其前提是語譜圖可以被看作是帶有特定模式的影像,而有經驗的人能夠從中看出裡面說的內容。在深度 CNN 中,每一個更高層都是更低層的一個視窗的非線性變換的加權和,因此可以覆蓋更長的語境以及操作更抽象的模式。和有長延遲困擾的 BLSTM 不一樣,深度 CNN 的延遲有限,而且如果可以控制計算成本,那就更加適用於實時系統。
為了加速計算,我們可以將整個話語看作是單張輸入影像,因此可以複用中間計算結果。還不止這樣,如果深度 CNN 的設計能保證每一層的步幅(stride)長到能覆蓋整個核(kernel),比如基於逐層語境擴充套件和注意(layer-wise context expansion and attention/LACE)的 CNN [17]和dilated CNN [46],它僅需更少數量的層就能利用更長範圍的資訊,並且可以顯著降低計算成本。
3. 使用端到端最佳化的聲學模型
在 DNN/HMM 混合模型中,DNN 和 HMM 兩個元件通常是分別進行最佳化的。然而,語音識別是一個序列識別問題。如果模型中的所有元件都聯合進行最佳化,那就很可能得到更好的識別準確度。如果模型可以移除所有人工設計的元件(比如基本特徵表徵和詞典設計),那結果甚至可以更好。
A.自動學習到的音訊特徵表徵
對語音識別而言,人工設計的對數梅爾濾波器組特徵(log Mel-filter-bank feature)是否最優還存在爭議。受機器學習社群內端到端處理的啟發,研究者們一直在努力 [49-52] 試圖用直接學習濾波器替代梅爾濾波器組提取。直接學習濾波器就是使用一個網路來處理原始的語音波形,並且與識別器網路聯合訓練而得到濾波器。
遠場 ASR 領域當前的主導方法仍然是使用傳統的波束成形方法來處理來自多個麥克風的波形,然後再將經過波束成形處理過的訊號輸入給聲學模型 [54]。在使用深度學習執行波束成形以及波束成形和識別器網路的聯合訓練上,都已經有了一些研究工作 [55-58]。
B.聯結主義時序分類(CTC)
語音識別任務是一種序列到序列的翻譯任務,即將輸入波形對映到最終的詞序列或中間的音素序列。聲學模型真正應該關心的是輸出的詞或音素序列,而不是在傳統的交叉熵(CE)訓練中最佳化的一幀一幀的標註。為了應用這種觀點並將語音輸入幀對映成輸出標籤序列,聯結主義時序分類(CTC)方法被引入了進來 [9,60,61]。為了解決語音識別任務中輸出標籤數量少於輸入語音幀數量的問題,CTC 引入了一種特殊的空白標籤,並且允許標籤重複,從而迫使輸出和輸入序列的長度相同。
CTC 的一個迷人特點是我們可以選擇大於音素的輸出單元,比如音節和詞。這說明輸入特徵可以使用大於 10ms 的取樣率構建。CTC 提供了一種以端到端的方式最佳化聲學模型的途徑。在 deep speech [15, 63] 和 EESEN [64,65] 研究中,研究者探索了用端到端的語音識別系統直接預測字元而非音素,從而也就不再需要[9,60,61] 中使用的詞典和決策樹了。
確定用於 CTC 預測的基本輸出單元是一個設計難題。其中,預先確定的固定分解不一定是最優的。[68] 中提出了 gramCTC,可以自動學習最適合目標序列的分解。但是,所有這些研究都不能說是完全端到端的系統,因為它們使用了語言模型和解碼器。
因為 ASR 的目標是根據語音波形生成詞序列,所以詞單元(word unit)是網路建模的最自然的輸出單元。[18] 中表明透過使用 10 萬個詞作為輸出目標並且使用 12.5 萬小時資料訓練該模型,發現使用詞單元的 CTC 系統能夠超越使用音素單元的 CTC 系統。
圖 1:詞 CTC 的一個示例
受 CTC 研究的啟發,最近有研究者提出了無 lattice 最大互資訊(lattice-free maximum mutual information/LFMMI),可以無需從交叉熵網路進行初始化,就能從頭開始訓練深度網路。
總體來說,從 DNN 到 LSTM(時間建模)再到 CTC(端到端建模),聲學模型存在一個清晰的主要發展路徑。儘管使用音素作為建模單元時,LFMMI 等一些建模技術可以得到與 CTC 類似的表現,但它們可能並不非常符合端到端建模的趨勢,因為這些模型需要專家知識來設計,也需要語言模型和詞典等元件才能工作。
C.基於注意的序列到序列翻譯模型
基於注意(attention)的序列到序列模型是另一種端到端模型 [71,72]。它源自機器學習領域內一種成功的模型 [73,74],即使用注意解碼器(attention decoder)對編碼器-解碼器框架 [75] 進行了擴充套件。
這種基於注意的模型並沒有像 CTC 那樣假設幀是獨立的,這也是注意模型的一大優勢。這種基於注意的模型的訓練難度甚至比 CTC 模型還大。
基於注意的模型也有不能單調地從左到右對齊和收斂緩慢的缺點。在 [76] 中,透過將 CTC 目標函式用作輔助成本函式,注意訓練和 CTC 訓練以一種多工學習的方式結合到了一起。這樣一種訓練策略極大地改善了基於注意的模型的收斂,並且緩解了對齊問題。
4 聲學模型穩健性
當測試集和訓練集匹配時,尤其是當兩者處在相當接近的對話條件下時,當前最佳的系統能夠得到很出色的識別準確度。但是,在有更多噪聲(包括音樂或干擾性說話人)或帶有很強口音 [78,79] 等不匹配或複雜環境中時,系統的表現將大打折扣。這一問題的解決方案包括自適應、語音增強和穩健建模。
A.聲學模型自適應
鑑於自適應資料有限,所以與說話人相關(SD)模型和與說話人無關(SI)模型的差距應該不大。參考文獻 [82] 為訓練標準加入了Kullback-Leibler divergence(KLD)正則化,防止自適應的模型偏離 SI 模型太遠。這種 KLD 自適應標準已被證明可以非常有效地處理自適應資料有限的情況。
與其調整自適應標準,大多數研究關注的是如何使用非常少量的引數來表徵說話人的特徵。奇異值分解(SVD)瓶頸自適應 [84] 是解決方案之一,這種方法可以透過使用 SVD 重構的結構得到佔用資源低的 SD 模型 [85]。
k×k 的 SD 矩陣通常是對角主導矩陣,這一觀察啟發研究者提出了低秩加對角(low-rank plus diagonal/LRPD)分解,這種方法可以將 k×k 的 SD 矩陣分解成一個對角矩陣加上兩個低秩矩陣的乘積。
另一種旨在尋找變換的低維子空間的方法是子空間方法(subspace method),這種方法僅需少量引數就能指定每種變換。這一類別內的一種流行方法是使用輔助特徵,比如 i-vector [89,90]、說話人程式碼 [91] 和噪聲估計 [92],這些特徵會與標準的聲學特徵串接在一起。
其它子空間方法還包括聚類自適應訓練(CAT)[96,97] 和 factorized hidden layer(FHL),其中的變換會被侷限在說話人子空間中。
CAT 風格的方法有一個問題,就是它的基(base)是滿秩矩陣,這需要非常大量的的訓練資料。因此,CAT 中的基的數量通常侷限在少量幾個 [96,97]。使用 FHL [98,99] 是一種解決方案,這種方法將基限制為秩一矩陣。透過這樣的方式,能夠減少每個基所需的訓練資料,從而能在訓練資料固定的條件下增加基的數量。
B.語音增強和分離
眾所周知,當語音中摻雜了很強的噪聲或干擾語音時,當前的 ASR 系統的表現會變得很差 [105,106]。儘管人類聽者也會受到糟糕的音訊訊號的影響,但表現水平的下降程度比 ASR 系統要明顯小很多。
在單聲道語音增強和分離任務中,會假設只有線性混合的單麥克風訊號已知,其目標是恢復音訊源中的每一個音訊流。語音的增強和分離通常在時頻域進行。
研究者近來已經為語音的增強和分離開發了很多深度學習技術。這些技術的核心是將增強和分離問題轉化成一個監督學習問題。更具體來說,就是給定配對的(通常是人工)混合語音和聲源流,針對每個時頻區間(time-frequency bin),最佳化深度學習模型使其能預測聲源是否屬於目標類別。
與說話人無關的多說話人語音分離的難度在於標籤的模糊性或排列問題。因為在混合訊號中,音訊源是對稱的,所以在監督學習過程中,並不能預先確定的將正確源目標分配給對應輸出層。因此,模型將無法很好地訓練以分離語音。幸運的是,人們已經提出了幾種用於解決標籤模糊性問題的技術。
Hershey et al. [111, 112] 提出了一種被稱為深度聚類(deep clustering/DPCL)的全新技術。這種模型假設每個時頻區間都僅屬於一個說話人。在訓練過程中,每個時頻區間都被對映到了一個嵌入空間。然後對這個嵌入進行最佳化,使屬於同一個說話人的時頻區間在這個空間中相距更近,屬於不同說話人的則相距更遠。在評估過程中,該模型會在嵌入上使用一個聚類演算法來生成時頻區間的分割槽。
Yu et al. [20] 和 Kolbak et al. [21] 則提出了一種更簡單的技術排列不變訓練(permutation invariant training/PIT)來攻克與說話人無關的多說話人語音分離問題。在這種新方法中,源目標被當作一個集合進行處理(即順序是無關的)。在訓練過程中,PIT 首先根據前向結果在句子層面上確定誤差最小的輸出-目標分配。然後再最小化基於這一分配的誤差。這種策略一次性地簡單直接地解決了標籤排列問題和說話人跟蹤問題。PIT 不需要單獨的跟蹤步驟(因此可用於實時系統)。相反,每個輸出層都對應於源的一個流。
對於語音識別,我們可以將每個分離的語音流饋送給 ASR 系統。甚至還能做到更好,基於深度學習的聲學模型也許可以和分離元件(通常是 RNN)進行端到端的聯合最佳化。因為分離只是一箇中間步驟,Yu et al. [124]提出直接在 senone 標籤上使用 PIT 最佳化交叉熵標準,而不再需要明確的語音分離步驟。
C.穩健的訓練
深度學習網路的成功是因為可以將大量轉錄資料用於訓練數以百萬計的模型引數。但是,當測試資料來自一個新領域時,深度模型的表現仍然會下降。
最近,為了得到對噪聲穩健的 ASR,對抗訓練 [125] 的概念也得到了探索 [126-128]。這種解決方案是一種完全無監督的域適應方法,不會利用太多關於新域的知識。它的訓練是透過在編碼器網路的域鑑別器網路之間插入一個梯度反向層(gradient reverse layer/GRL)實現的。
最近,為了不使用轉錄資料執行自適應,研究者提出了教師/學生學習(teacher/student (T/S) learning)方法 [132]。來自源域的資料由源域模型(教師)處理,以生成對應的後驗機率或軟標籤(soft label)。這些後驗機率被用於替代源自轉錄資料的硬標籤(hard label),以使用來自目標域的並行資料訓練目標模型(學生)。
5 具有有效解碼的聲學模型
透過堆疊多層網路訓練深度網路有助於改善詞錯率(WER)。但是,計算成本卻是個麻煩,尤其是在實時性具有很高的優先順序的行業部署中。降低執行時成本的方法有好幾種。
第一種方法是使用奇異值分解(SVD)。SVD 方法是將一個滿秩矩陣分解成兩個更低秩的矩陣,因此可以在保證再訓練之後準確度不下降的同時顯著減少深度模型中的引數數量。
第二種方法是採用教師/學生(T/S)學習或知識精煉(knowledge distillation),從而透過最小化小規模 DNN 和標準的大規模 DNN 的輸出分佈之間的 KLD 來壓縮標準的 DNN 模型。
第三種方法是透過大量量化來壓縮模型,既可以應用非常低位元的量化,也可以用向量量化。
第四種解決方案是操作模型結構。為了降低計算成本,研究者提出了一種帶有投射層的 LSTM(LSTMP),即在 LSTM 層之後增加一個線性投射層 [8]。
最後,可以使用跨幀的相關性來降低評估深度網路分數的頻率。對於 DNN 或 CNN 而言,這可以透過使用跳幀(frame-skipping)策略完成,即每隔幾幀才計算一次聲學分數,並在解碼時將該分數複製到沒有評估聲學分數的幀 [149]。
6 未來方向
這一領域的研究前沿已經從使用近距離麥克風的 ASR 變成了使用遠場麥克風的 ASR,這種發展的推動力是使用者對無需佩戴或攜帶近距離麥克風就能與裝置進行互動的需求的日益增長。
儘管為近距離場景開發的很多語音識別技術都可以直接用於遠場場景,但這些技術在遠距離識別場景中的表現不佳。為了最終解決遠距離語音識別問題,我們需要最佳化從音訊捕獲(如麥克風陣列訊號處理)到聲學建模和解碼的整個流程。