0
本文作者: AI科技評論 | 2018-11-08 10:42 |
雷鋒網(wǎng) AI 科技評論按:語音識別技術歷史悠久,早在上世紀 50 年代,貝爾研究所就研究出了可以識別十個英文數(shù)字的簡單系統(tǒng)。從上世紀 70 年代起,傳統(tǒng)的基于統(tǒng)計的 HMM 聲學模型,N 元組語言模型的發(fā)明,已經使得語音識別技術可以在小規(guī)模詞匯量上使用。在新世紀伊始,GMM-HMM 模型的序列鑒別性訓練方法的提出又進一步提升了語音識別的準確率。最近 5-10 年間,隨著深度學習的快速發(fā)展,算力的快速增長,數(shù)據(jù)量的急速擴張,深度學習開始大規(guī)模應用于語音識別領域并取得突破性進展,深度模型已經可以在干凈標準的獨白類音頻上達到 5% 以下的錯詞率。此外,端到端的模型可以輕松的將各種語言揉合在一個模型中,不需要做額外的音素詞典的準備,這將大大推動業(yè)界技術研究與應用落地的進度。
在現(xiàn)在主流的利用深度學習的語音識別模型中仍在存在多種派系,一種是利用深度學習模型取代原來的 GMM 部分,即 DNN-HMM 類的模型,另一種則是端到端的深度學習模型。
第一種模型需要先實現(xiàn) HMM 結構與語音的對齊,然后才能進一步地訓練深度神經網(wǎng)絡。除此之外,在訓練這一類的模型時,訓練樣本的標注不僅僅是原本的文本,還需要對文本進一步拆解成為音素投入訓練,這對于標注部分的工作就會造成極大的挑戰(zhàn)。在解碼的時候,這種模型同樣還需要依賴這個發(fā)音詞典。
端到端的模型旨在一步直接實現(xiàn)語音的輸入與解碼識別,從而不需要繁雜的對齊工作與發(fā)音詞典制作工作,具有了可以節(jié)省大量的前期準備時間的優(yōu)勢,真正的做到數(shù)據(jù)拿來就可用。
端到端的模型的另一個優(yōu)點是,更換識別語言體系時可以利用相同的框架結構直接訓練。例如同樣的網(wǎng)絡結構可以訓練包含 26 個字符的英文模型,也可以訓練包含 3000 個常用漢字的中文模型,甚至可以將中英文的詞典直接合在一起,訓練一個混合模型。
此外,最重要的一點是,端到端的模型在預測時的速度更快,對于一個 10 秒左右的音頻文件,端到端的模型在一塊 GPU 的服務器上僅需 0.2 秒左右的時間便可給出預測結果。
現(xiàn)在的語音識別問題有如下幾個難點:
對自然語言的識別和理解;
語音信息量大。語音模式不僅對不同的說話人不同,對同一說話人也是不同的,一個說話人在隨意說話和認真說話時的語音信息是不同的;
語音的模糊性。說話者在講話時,不同的詞可能聽起來是相似的;
單個字母或詞、字的語音特性受上下文的影響,以致改變了重音、音調、音量和發(fā)音速度等。
端到端的模型由于不引入傳統(tǒng)的音素或詞的概念,直接訓練音頻到文本的模型,可以有效地規(guī)避上述難點。
云從科技基于端到端的語音識別網(wǎng)絡進行了兩種方法的探索,一種是基于原有的 CNN-RNN-CTC 網(wǎng)絡的改進,一種是基于 CTC loss 與 attention loss 結合機制的網(wǎng)絡。下面是對這兩種方法的詳細解讀。
第一種方法
地址:https://arxiv.org/abs/1810.12001
作者基于百度之前提出的 Deep Speech 2 的模型框架結構,提出了三個改進的點。
第一是把循環(huán)神經網(wǎng)絡中的長短時記憶層(LSTM)變成了雙向的殘差長短時記憶層(resBiLSTM)。此舉可以更好地保留之前卷積神經網(wǎng)絡所提取出的音素信息和之后每一個雙向的殘差長短時記憶層更好的結合。因為循環(huán)神經網(wǎng)絡中的每一層主要是負責提取句子中的語義信息,但語義信息的理解也和音素信息緊密相關。隨著循環(huán)神經網(wǎng)絡的深入,原本更底層的層很難接收到卷積神經網(wǎng)絡所給出的信息,對于復雜的長句子中音素和語義信息的結合較差,新提出的殘差網(wǎng)絡可以較好地修正這一問題。
第二點是引入了級聯(lián)的訓練結構,即對于第一個網(wǎng)絡中難分(分錯)的樣本進行二次訓練。在實驗中我們發(fā)現(xiàn),在第一層網(wǎng)絡結構中被分錯的樣本比全部的樣本的平均句長多出了 11% 以上。隨著句子的變長,強語法和語義相關的單詞會距離更遠,那么對于較淺的循環(huán)神經網(wǎng)絡來說就會更難捕捉到這一個信息。在發(fā)現(xiàn)這一區(qū)別后,作者在在第二層的級聯(lián)結構中使用了更深的循環(huán)神經網(wǎng)絡 (7 層到 13 層),但同時縮減了每一層的隱含節(jié)點數(shù)(對應樣本量的減少,防止出現(xiàn)復雜模型的過擬合問題)。下圖是對這兩點改進后具體的模型圖。
最后一點,是作者提出了新的訓練方式來提升訓練速度。深度學習中的模型一般都會采用隨機梯度下降的方式來訓練,每一次只訓練其實其中一批數(shù)據(jù)(mini batch)。原來的訓練模式是固定批量的大小從一而終。但是對于語音識別這樣的問題來說,輸入的數(shù)據(jù)是不定長的,這就會導致訓練時,每一批和每一批的數(shù)據(jù)中最長的那一條是不一樣的。為了防止訓練時內存溢出,固定批量的方式必然需要遷就數(shù)據(jù)集中最長的那一個音頻。在我們的訓練數(shù)據(jù)集中,最長的音頻是最短的音頻的 10 倍左右,這樣就會帶來在訓練短音頻時的內存浪費。作者提出一種對全部訓練集從低到高排序的方式,每次取排序后的一批音頻,之后根據(jù)批次內最長的音頻片段來實時調整批量的大小,從而提升內存利用率并使得訓練時間下降了約 25%。在 LibriSpeech 960 小時的訓練數(shù)據(jù)集上,利用在 8 塊 1080Ti 上訓練一次的時間從 24500 秒降到 18400 秒左右,減少 25%。且此方法并未因排序失去數(shù)據(jù)選取的隨機性而顯得效果變差。
作者在前處理上仍舊采用傳統(tǒng)簡單的快速傅里葉變換(FFT)來提取頻譜特征輸入改進后的深度學習網(wǎng)絡,并采取了基于統(tǒng)計的 N 元組語言模型來對模型輸出的文本進行解碼和修正。選取這兩種方法的原因是處理簡單且不需要經過復雜的訓練。作者提出的語音模型配合簡單的前后處理機制仍舊可以取得很好的效果,更進一步證明了語音模型的優(yōu)勢。最終,在語音識別數(shù)據(jù)集 Librispeech 上,取得了 3.41% 的錯詞率。
在語音識別領域,LibriSpeech 是朗讀語音類的主流數(shù)據(jù)集,包含 960 小時的訓練集數(shù)據(jù)。錯詞率(Word Error Rate)則是衡量語音識別技術的關鍵指標。預測文本通過替換、刪除、增加單詞這三種操作可以達到與標注文本完全一致所需要的操作步數(shù)即為該句子的錯詞數(shù),錯詞率=錯詞數(shù)/總詞數(shù)。
第二種方法
地址:https://arxiv.org/abs/1810.12020
目前比較流行的端到端的語音識別模型主要包括:單獨依賴 CTC 解碼的模型,單獨依賴 attention 解碼的模型,以及混合 CTC 與 attention 共同解碼的模型。純 CTC 解碼通過預測每個幀的輸出來識別語音,算法的實現(xiàn)基于假設每幀的解碼保持彼此獨立,因而缺乏解碼過程中前后語音特征之間的聯(lián)系,比較依賴語言模型的修正。純 attention 解碼過程則與輸入語音的幀的順序無關,每個解碼單元是通過前一單元的解碼結果與整體語音特征來生成當前的結果,解碼過程忽略了語音的單調時序性。為了兼顧兩種方法的優(yōu)缺點,作者采用混合解碼的框架模型。網(wǎng)絡結構是卷積層加 BiLSTM 層的 Encoder 結構后分別連接基于 Attention 以及 CTC 的 Decoder 結構,由兩種解碼器共同輸出識別結果。
混合模型的 Loss 計算是 CTC-Loss 與 Attention-Loss 做權重相加。作者在實驗中發(fā)現(xiàn),在混合模型中 CTC 權重越低效果會越好。當把 CTC-Loss 的權重降低時,整體網(wǎng)絡在計算反向梯度時由 Attention 部分得到的梯度會占主要部分,這樣的結果就是網(wǎng)絡優(yōu)先朝著優(yōu)化 Attention 解碼的方向進行參數(shù)調整,最后訓練得到的 CTC 解碼效果就相對較差??紤]這一點,作者在 CTC 解碼器部分單獨增加了一個 BiLSTM 層,該層不與 Attention 部分共享,單獨依靠 CTC-Loss 的反向梯度進行優(yōu)化,從而彌補了 CTC 權重低帶來的不足,使 Attention 解碼效果最優(yōu)的情況下盡可能提升 CTC 部分的效果。
在本文中,作者使用了基于子詞(subword)的編解碼方式。子詞是介于字母與單詞之間的一種表征方式。由于英文單詞中的常常出現(xiàn)不發(fā)音的字母,在不同單詞中相同字母的發(fā)音也千差萬別,這就給基于字母的編解碼模型帶來了不小的麻煩,這種模型也更需要依賴語言模型的修正?;趩卧~的模型則只能解碼出參與訓練的已有標簽的單詞,因而完全無法解決 OOV 的問題。將文本按照子詞分割開來,就可以同時改善以上兩種方法中存在的問題。另一方面,作者為了網(wǎng)絡更好的適應對子詞的解碼,使用了 smoothing-attention 的方法:
通常的 attention 方法(包括本文使用的 Loc-Aware)在計算 attention energy 中會使用 softmax,這樣使得 attention 得分的分布變得比較尖銳,最終從 attention 得到的特征會集中在某一幀的位置上。和字母級別的解碼相比,子詞需要相對更寬的上下文特征。作者將 attention 中的 softmax 改為 sigmoid,使 attention 得分的分布變得相對平滑,從而使解碼器每個 LSTM 單元的輸入特征包含更多的語音上下文特征信息。
最后,作者使用基于 14600 本書的 Librispeech 公開語言模型擴充數(shù)據(jù)集訓練了兩層 LSTM 作為語言模型(LM),在語音識別數(shù)據(jù)集 Librispeech 上,取得了目前已公開的端到端語音識別網(wǎng)絡中的最好效果。目前 Espnet 在 github 的模型,使用該擴充語言模型數(shù)據(jù)集訓練的 LM 后在 test-clean 的表現(xiàn)為 WER=4.0%。相比之下,作者的方法效果提升 16.5%。
(完)
雷峰網(wǎng)版權文章,未經授權禁止轉載。詳情見轉載須知。