每日最新頭條.有趣資訊

論文解讀:對端到端語音識別網絡的兩種全新探索

雷鋒網 AI 科技評論按:語音識別技術歷史悠久,早在上世紀 50 年代,貝爾研究所就研究出了可以識別十個英文數字的簡單系統。從上世紀 70 年代起,傳統的基於統計的 HMM 聲學模型,N 元組語言模型的發明,已經使得語音識別技術可以在小規模詞匯量上使用。在新世紀伊始,GMM-HMM 模型的序列鑒別性訓練方法的提出又進一步提升了語音識別的準確率。最近 5-10 年間,隨著深度學習的快速發展,算力的快速增長,數據量的急速擴張,深度學習開始大規模應用於語音識別領域並取得突破性進展,深度模型已經可以在乾淨標準的獨白類音頻上達到 5% 以下的錯詞率。此外,端到端的模型可以輕鬆的將各種語言揉合在一個模型中,不需要做額外的音素詞典的準備,這將大大推動業界技術研究與應用落地的進度。

在現在主流的利用深度學習的語音識別模型中仍在存在多種派系,一種是利用深度學習模型取代原來的 GMM 部分,即 DNN-HMM 類的模型,另一種則是端到端的深度學習模型。

第一種模型需要先實現 HMM 結構與語音的對齊,然後才能進一步地訓練深度神經網絡。除此之外,在訓練這一類的模型時,訓練樣本的標注不僅僅是原本的文本,還需要對文本進一步拆解成為音素投入訓練,這對於標注部分的工作就會造成極大的挑戰。在解碼的時候,這種模型同樣還需要依賴這個發音詞典。

端到端的模型旨在一步直接實現語音的輸入與解碼識別,從而不需要繁雜的對齊工作與發音詞典製作工作,具有了可以節省大量的前期準備時間的優勢,真正的做到數據拿來就可用。

端到端的模型的另一個優點是,更換識別語言體系時可以利用相同的框架結構直接訓練。例如同樣的網絡結構可以訓練包含 26 個字元的英文模型,也可以訓練包含 3000 個常用漢字的中文模型,甚至可以將中英文的詞典直接合在一起,訓練一個混合模型。

此外,最重要的一點是,端到端的模型在預測時的速度更快,對於一個 10 秒左右的音頻檔案,端到端的模型在一塊 GPU 的伺服器上僅需 0.2 秒左右的時間便可給出預測結果。

現在的語音識別問題有如下幾個難點:

對自然語言的識別和理解;

語音資訊量大。語音模式不僅對不同的說話人不同,對同一說話人也是不同的,一個說話人在隨意說話和認真說話時的語音資訊是不同的;

語音的模糊性。說話者在講話時,不同的詞可能聽起來是相似的;

單個字母或詞、字的語音特性受上下文的影響,以致改變了重音、音調、音量和發音速度等。

端到端的模型由於不引入傳統的音素或詞的概念,直接訓練音頻到文本的模型,可以有效地規避上述難點。

雲從科技基於端到端的語音識別網絡進行了兩種方法的探索,一種是基於原有的 CNN-RNN-CTC 網絡的改進,一種是基於 CTC loss 與 attention loss 結合機制的網絡。下面是對這兩種方法的詳細解讀。

第一種方法

地址:https://arxiv.org/abs/1810.12001

作者基於百度之前提出的 Deep Speech 2 的模型框架結構,提出了三個改進的點。

第一是把循環神經網絡中的長短時記憶層(LSTM)變成了雙向的殘差長短時記憶層(resBiLSTM)。此舉可以更好地保留之前卷積神經網絡所提取出的音素資訊和之後每一個雙向的殘差長短時記憶層更好的結合。因為循環神經網絡中的每一層主要是負責提取句子中的語義資訊,但語義資訊的理解也和音素資訊緊密相關。隨著循環神經網絡的深入,原本更底層的層很難接收到卷積神經網絡所給出的資訊,對於複雜的長句子中音素和語義資訊的結合較差,新提出的殘差網絡可以較好地修正這一問題。

第二點是引入了級聯的訓練結構,即對於第一個網絡中難分(分錯)的樣本進行二次訓練。在實驗中我們發現,在第一層網絡結構中被分錯的樣本比全部的樣本的平均句長多出了 11% 以上。隨著句子的變長,強語法和語義相關的單詞會距離更遠,那麽對於較淺的循環神經網絡來說就會更難捕捉到這一個資訊。在發現這一區別後,作者在在第二層的級聯結構中使用了更深的循環神經網絡 (7 層到 13 層),但同時縮減了每一層的隱含節點數(對應樣本量的減少,防止出現複雜模型的過擬合問題)。下圖是對這兩點改進後具體的模型圖。

最後一點,是作者提出了新的訓練方式來提升訓練速度。深度學習中的模型一般都會採用隨機梯度下降的方式來訓練,每一次隻訓練其實其中一批數據(mini batch)。原來的訓練模式是固定批量的大小從一而終。但是對於語音識別這樣的問題來說,輸入的數據是不定長的,這就會導致訓練時,每一批和每一批的數據中最長的那一條是不一樣的。為了防止訓練時記憶體溢出,固定批量的方式必然需要遷就數據集中最長的那一個音頻。在我們的訓練數據集中,最長的音頻是最短的音頻的 10 倍左右,這樣就會帶來在訓練短音頻時的記憶體浪費。作者提出一種對全部訓練集從低到高排序的方式,每次取排序後的一批音頻,之後根據批次內最長的音頻片段來實時調整批量的大小,從而提升記憶體利用率並使得訓練時間下降了約 25%。在 LibriSpeech 960 小時的訓練數據集上,利用在 8 塊 1080Ti 上訓練一次的時間從 24500 秒降到 18400 秒左右,減少 25%。且此方法並未因排序失去數據選取的隨機性而顯得效果變差。

作者在前處理上仍舊採用傳統簡單的快速傅裡葉變換(FFT)來提取頻譜特徵輸入改進後的深度學習網絡,並采取了基於統計的 N 元組語言模型來對模型輸出的文本進行解碼和修正。選取這兩種方法的原因是處理簡單且不需要經過複雜的訓練。作者提出的語音模型配合簡單的前後處理機制仍舊可以取得很好的效果,更進一步證明了語音模型的優勢。最終,在語音識別數據集 Librispeech 上,取得了 3.41% 的錯詞率。

在語音識別領域,LibriSpeech 是朗讀語音類的主流數據集,包含 960 小時的訓練集數據。錯詞率(Word Error Rate)則是衡量語音識別技術的關鍵指標。預測文本通過替換、刪除、增加單詞這三種操作可以達到與標注文本完全一致所需要的操作步數即為該句子的錯詞數,錯詞率=錯詞數/總詞數。

第二種方法

地址:https://arxiv.org/abs/1810.12020

目前比較流行的端到端的語音識別模型主要包括:單獨依賴 CTC 解碼的模型,單獨依賴 attention 解碼的模型,以及混合 CTC 與 attention 共同解碼的模型。純 CTC 解碼通過預測每個幀的輸出來識別語音,算法的實現基於假設每幀的解碼保持彼此獨立,因而缺乏解碼過程中前後語音特徵之間的聯繫,比較依賴語言模型的修正。純 attention 解碼過程則與輸入語音的幀的順序無關,每個解碼單元是通過前一單元的解碼結果與整體語音特徵來生成當前的結果,解碼過程忽略了語音的單調時序性。為了兼顧兩種方法的優缺點,作者採用混合解碼的框架模型。網絡結構是卷積層加 BiLSTM 層的 Encoder 結構後分別連接基於 Attention 以及 CTC 的 Decoder 結構,由兩種解碼器共同輸出識別結果。

混合模型的 Loss 計算是 CTC-Loss 與 Attention-Loss 做權重相加。作者在實驗中發現,在混合模型中 CTC 權重越低效果會越好。當把 CTC-Loss 的權重降低時,整體網絡在計算反向梯度時由 Attention 部分得到的梯度會佔主要部分,這樣的結果就是網絡優先朝著優化 Attention 解碼的方向進行參數調整,最後訓練得到的 CTC 解碼效果就相對較差。考慮這一點,作者在 CTC 解碼器部分單獨增加了一個 BiLSTM 層,該層不與 Attention 部分共享,單獨依靠 CTC-Loss 的反向梯度進行優化,從而彌補了 CTC 權重低帶來的不足,使 Attention 解碼效果最優的情況下盡可能提升 CTC 部分的效果。

在本文中,作者使用了基於子詞(subword)的編解碼方式。子詞是介於字母與單詞之間的一種表征方式。由於英文單詞中的常常出現不發音的字母,在不同單詞中相同字母的發音也千差萬別,這就給基於字母的編解碼模型帶來了不小的麻煩,這種模型也更需要依賴語言模型的修正。基於單詞的模型則只能解碼出參與訓練的已有標簽的單詞,因而完全無法解決 OOV 的問題。將文本按照子詞分割開來,就可以同時改善以上兩種方法中存在的問題。另一方面,作者為了網絡更好的適應對子詞的解碼,使用了 smoothing-attention 的方法:

通常的 attention 方法(包括本文使用的 Loc-Aware)在計算 attention energy 中會使用 softmax,這樣使得 attention 得分的分布變得比較尖銳,最終從 attention 得到的特徵會集中在某一幀的位置上。和字母級別的解碼相比,子詞需要相對更寬的上下文特徵。作者將 attention 中的 softmax 改為 sigmoid,使 attention 得分的分布變得相對平滑,從而使解碼器每個 LSTM 單元的輸入特徵包含更多的語音上下文特徵資訊。

最後,作者使用基於 14600 本書的 Librispeech 公開語言模型擴充數據集訓練了兩層 LSTM 作為語言模型(LM),在語音識別數據集 Librispeech 上,取得了目前已公開的端到端語音識別網絡中的最好效果。目前 Espnet 在 github 的模型,使用該擴充語言模型數據集訓練的 LM 後在 test-clean 的表現為 WER=4.0%。相比之下,作者的方法效果提升 16.5%。

(完)

獲得更多的PTT最新消息
按讚加入粉絲團