(ICASSP 19)Streaming End-to-end Speech Recognition for Mobile Devices

會議:ICASSP 2019
論文:Streaming End-to-end Speech Recognition for Mobile Devices
作者:Yanzhang He, Tara N. Sainath, Rohit Prabhavalkar, Ian McGraw, Raziel Alvarez, Ding Zhao, David Rybach, Anjuli Kannan, Yonghui Wu, Ruoming Pang, Qiao Liang, Deepti Bhatia, Yuan Shangguan, Bo Li, Golan Pundak, Khe Chai Sim, Tom Bagby, Shuo-Yiin Chang, Kanishka Rao, Alexander Gruenstein

ABSTRACT

端到端(E2E)模型直接預測給定輸入語音的輸出字符序列,是設備語音識別的良好候選模型。然而,E2E模型提出了許多挑戰:爲了真正有用,這些模型必須實時地以流式方式解碼語音;它們必須對用例的長尾具有健壯性;它們必須能夠利用用戶特定的上下文(例如,聯繫人列表);最重要的是,它們必須非常精確。在這項工作中,我們描述了我們的努力,建立一個E2E語音記錄器使用遞歸神經網絡傳感器。在實驗評估中,我們發現在許多評估類別中,所提出的方法在延遲和準確性方面都優於傳統的基於CTC的模型

CONCLUSIONS

我們提出了一種基於RNN-T模型的緊湊型E2E語音識別器的設計,它在Google像素手機上的運行速度是實時的兩倍,在語音搜索和聽寫任務上比強大的嵌入式基線系統提高了20%以上的功耗。這是通過對RNN-T模型體系結構的一系列修改、量化推理和使用TTS爲E2E模型合成訓練數據來實現的。該系統具有流媒體、高精度、低延遲、上下文語音識別等特點,非常適合在設備上應用。

INTRODUCTION

在過去的十年中,深度神經網絡的研究推動了自動語音識別(ASR)技術的巨大進步[1]。伴隨着智能手機,平板電腦和其他消費類設備的迅猛發展和採用,這些改進已導致語音成爲與此類設備進行交互的主要方式之一[2],[3]。在移動設備上識別語音的主要範例是將音頻從設備流式傳輸到服務器,而將解碼結果流式傳輸回用戶。將這種基於服務器的系統替換爲可以完全在設備上運行的系統從可靠性,延遲和隱私角度來看,它具有重要意義,並已成爲研究的活躍領域。突出的示例包括喚醒詞檢測(即,識別特定的單詞或短語)[4],[5],[6],[7],以及大詞彙量連續語音識別(LVCSR)[8],[9]。

先前在設備上構建LVCSR系統的嘗試通常包括縮小整個系統的傳統組件(聲學(AM),發音(PM)和語言(LM)模型)以滿足計算和內存限制。雖然這可以實現語音命令和聽寫等狹窄域的準確性奇偶校驗[9],但與諸如語音搜索之類的具有挑戰性的任務的大型基於服務器的系統相比,性能明顯較差。

與以前的方法相反,我們將重點放在基於端到端(E2E)模型[10],[11],[12],[13],[14]的最新進展來構建流系統。這種模型用一個直接預測字符序列的端到端訓練有素的全神經模型代替了ASR系統的傳統組件,從而大大簡化了訓練和推理。因此,端到端模型對於設備上的應用極爲有吸引力。

早期的E2E工作使用字素或單詞目標[16],[17],[18]和[19]來檢查連接主義的時間分類(CTC)[15 ]。最近的工作表明,使用遞歸神經網絡換能器(RNN-T)模型[12],[20],[21]或基於注意力的編解碼器模型[10],[13]可以進一步提高性能。,[14],[22]。當在足夠大量的聲學訓練數據上進行訓練(10,000+小時)時,E2E模型的性能將優於傳統的混合RNN-HMM系統[21],[14]。大多數E2E研究都集中於在產生假設之前處理全部輸入話語的系統。如果需要流識別,則適合使用RNN-T [12],[20]等模型或基於流注意力的模型(例如MoChA [22])。因此,在這項工作中,我們基於RNN-T模型構建了流式E2E識別器。

在生產環境中在設備上運行端到端模型提出了許多挑戰:首先,該模型至少需要與常規系統一樣準確,而又不增加延遲(即,用戶講話與語音提示之間的延遲)。文字出現在螢幕上),因此在行動裝置上的執行速度或快於即時;第二,該模型應該能夠利用設備上的用戶上下文(例如聯繫人列表,歌曲名稱等)來提高識別準確性[23];最終,系統必須能夠正確識別可能的話語的“長尾巴”,這對於訓練有素的E2E系統直接在書面域中生成文本(例如,呼叫兩個雙四,三六,五→ 致電244-6665)。

爲了實現這些目標,我們探索了對基本RNN-T模型的許多改進:使用層歸一化[24]來穩定訓練;使用大批量[25];使用單詞目標[26];使用減少時間的層來加速訓練和推理;量化網絡參數以減少內存佔用並加快計算速度[27]。爲了使語境的識別,我們使用一個淺融合方法[28] ,[29] ,以向用戶特定上下文偏壓,這是我們發現是上面值與傳統型號[9] ,[23]。最後,我們描述了vanilla E2E模型的基本侷限性:當暴露於看不見的示例時,它們無法以正確的書面形式準確地對口語數字序列的歸一化建模。我們通過訓練使用文本轉語音(TTS)系統生成的綜合數據模型來解決此問題[30],該系統可將數字集的性能相對提高18-36%。綜合起來,這些創新使我們能夠在Google Pixel手機上以兩倍於實時的速度解碼語音,相對於傳統的CTC嵌入式語音搜索和聽寫任務模型,其字錯誤率(WER)提高了20%以上。
在這裏插入圖片描述

RECURRENT NEURAL NETWORK TRANSDUCER

略~
兩種模型的條件分佈都通過神經網絡進行參數化,如圖1所示。給定輸入功能,我們可以堆疊單向長短期存儲器(LSTM)[31]層來構造編碼器。對於CTC,編碼器增加了一個最終的softmax層,該層將編碼器輸出轉換爲相關的條件概率分佈。相反,RNN-T使用前饋聯合網絡,該網絡接受來自編碼器和僅依賴於標籤歷史的預測網絡的結果作爲輸入。可以使用前後算法[12],[15],[20]計算訓練兩個模型所需的梯度。

REAL-TIME SPEECH RECOGNITION USING RNN-T

本節描述了各種體系結構和優化方面的改進,這些改進提高了RNN-T模型的準確性,並使我們能夠在設備上運行模型的速度比實時運行的速度更快。

3.1. Model Architecture
爲了在移動設備上實現高效處理,我們爲RNN-T中的編碼器和預測網絡做出了許多架構設計選擇。我們採用由八層單向LSTM單元組成的編碼器網絡[31]。我們在編碼器的每個LSTM層之後添加一個投影層[32],從而減少了循環連接和輸出連接的數量。

受[10],[33]的啓發,我們還在編碼器中添加了一個減少時間的層,以加快訓練和推理的速度。略~將時間減少層應用於已經具有30ms輸入幀速率的任何一個模型,都有不同的行爲。具體來說,我們發現,它能夠被插入低至沒有精度RNN-T的任何損失的第二LSTM層之後,而將它添加到CTC音素模型(帶有效輸出幀速率≥ 60毫秒)精度劣化。

3.2. Training Optimizations
爲了穩定循環層的隱藏狀態動態,我們發現將層歸一化[24]應用於編碼器和預測網絡中的每個LSTM層很有用。與[21]相似,我們使用詞片子詞單元[26]進行訓練,該子詞在我們的實驗中勝過字素。我們利用有效的前向後向算法[25],該算法允許我們在張量處理單元(TPU)[34]上訓練RNN-T模型。與使用GPU相比,這使我們能夠以更大的批量進行更快的訓練,從而提高了準確性。

3.3. Efficient Inference
最後,我們考慮了許多運行時優化以實現有效的設備上推斷。首先,由於RNN-T中的預測網絡類似於RNN語言模型,因此其計算與聲學無關。因此,我們應用了RNN語言模型中使用的相同狀態緩存技術,以避免針對相同的預測歷史進行冗餘計算。在我們的實驗中,這可以節省50-60%的預測網絡計算量。此外,我們爲編碼器和預測網絡使用不同的線程,以實現通過異步進行流水線操作,以節省時間。我們進一步將編碼器的執行劃分爲兩個與時間減少層之前和之後的組件相對應的線程,這平衡了兩個編碼器組件與預測網絡之間的計算。

3.4. Parameter Quantization
爲了減少磁盤和運行時的內存消耗,並優化模型的執行以滿足實時要求,我們將參數從32位浮點精度量化爲8位定點,如前所述工作[9]。與[9]相比,我們現在使用一種更簡單的量化方法,該方法是線性的(與以前一樣),但是不再具有顯式的“零點”偏移,因此假定值分佈在浮點零附近。更具體地說,我們將量化向量x q定義爲原始向量x和量化因子θ的乘積,其中
在這裏插入圖片描述
零點偏移的缺乏避免了在執行諸如乘法之類的運算之前必須以較低的精度應用它,從而加快了執行速度。請注意,我們強制量化範圍爲:±(2 7 − 1)
因此,對於典型的乘法累加運算,2個乘積的乘積之和始終嚴格小於15位,這使我們可以將多個運算進行到32位累加器中,從而進一步加快了推理速度。我們利用TensorFlow Lite優化工具和運行時在ARM和x86移動體系結構上執行模型[35]。在ARM體系結構上,與浮點執行相比,這實現了3 倍的加速。

CONTEXTUAL BIASING

上下文偏移應用或位置[23]。常規的ASR系統通過從偏置短語列表構建n-gram有限狀態轉換器(FST)來執行上下文偏置,該短語由解碼過程中的解碼器圖動態組成[36]。這有助於將識別結果偏向上下文FST中包含的n-gram,從而在某些情況下提高了準確性。在E2E RNN-T模型中,我們使用類似於[36]的技術來計算偏差得分P C(y),並與基礎模型P(y| x)在波束搜索期間使用淺融合[37]:
在這裏插入圖片描述
其中,λ是可調超參數,可控制上下文LM在波束搜索期間對整體模型得分產生多大影響。

爲了構造上下文LM,我們假設提前知道一組詞級偏置短語,並將其編譯爲加權有限狀態傳感器(WFST)[38]。然後將此單詞級WFST G左組合爲“ speller” FST S,該詞將一系列字素或單詞片段轉換爲相應的單詞,以獲得上下文LM:C = min(det(S ○ G))。爲了避免人爲地提高早期匹配但不匹配整個短語的前綴,我們添加了一個特殊的失敗弧,該弧刪除了提升的分數,如圖2所示。。最後,爲了提高對專有名詞的RNN-T性能(這對偏見至關重要),我們另外訓練了500M無監督語音搜索語音(每個訓練批次中80%的時間填充有監督數據,而20%的時間填充了無監督數據時間)[39]。非監督數據由我們的生產級識別器進行轉錄[40]並進行過濾,以僅包含專有名詞來包含高置信度。請注意,使用此數據進行訓練不會改變我們的語音搜索和聽寫測試集的結果,而只會提高表2中描述的上下文偏向結果的性能。
在這裏插入圖片描述

TEXT NORMALIZATION

常規模型中訓練的口語域[41] ,[42] ,這允許它們看不見數字序列轉換爲寫入域進行解碼(例如,導航到兩點二十單一的b貝克街導航到貝克街221B),其減輕在該→數據稀疏性問題。這是通過訓練基於類的語言模型來完成的,其中使用ADDRESSNUM等類替換訓練數據中的實際實例,並訓練語法WFST,這些WFST通過手工制定的規則將這些類映射到所有可能的實例。在解碼期間,識別器首先在口語域中輸出假設,並在類標記中包含數字部分(二十二b </ addressnum>),然後通過手工製作的FST集將其轉換爲書面域規範化規則。

爲了我們的目的,有可能訓練E2E模型以輸出口述域中的假設,然後使用神經網絡[42]或基於FST的系統[41]將假設轉換爲書面域。爲了使總體系統尺寸儘可能小,我們改爲訓練E2E模型以在書面域中直接輸出假設(即,標準化爲輸出形式)。由於我們在訓練中沒有觀察到足夠多的包含數字序列的音頻-文本對,因此我們生成了包含數字實體的500萬語音集合。我們使用一種語音的串聯TTS方法來合成這些數據[43] 創建音頻文本對,然後將其擴充到我們的訓練數據中(每個批次中有90%的時間填充有監督數據,而有10%的時間填充有合成數據)。

EXPERIMENTAL DETAILS

6.1. Data Sets
用於實驗的訓練集包括3500萬英語發音(〜27,500小時)。培訓話語是匿名的和手動轉錄的,代表了Google的語音搜索和聽寫流量。該數據集是通過使用室內模擬器人爲破壞乾淨話音,添加不同程度的噪聲和混響而創建的,從而使總SNR在0dB到30dB之間,平均SNR爲12dB [44]。噪聲源來自YouTube和日常生活中嘈雜的環境錄音。我們報告結果的主要測試集包括從Google流量中提取的14.8K語音搜索(VS)語音以及15.7K的聽寫語音,我們將其稱爲IME測試集。

爲了評估上下文偏向的性能,我們報告了4種語音命令測試集的性能,即歌曲(播放媒體的請求),Contacts-Real,Contacts-TTS(呼叫/文本聯繫人的請求)和Apps(與之交互的請求)一個應用程序)。通過創建網絡中的歌曲,聯繫人或應用程序名稱,然後綜合上述每個類別中的TTS語音,可以創建除Contacts-Real外的所有集合。該聯繫人,真正集包含匿名和手工轉錄的話語來自谷歌的流量中提取。測試集中僅包含旨在與聯繫人進行交流的語音。然後將噪聲人爲地添加到TTS數據中,類似於上述過程[44]。

爲了評估數字的性能,我們報告了一個真實數據數字集(Num-Real)的結果,該集合包含從Google流量中提取的匿名語音和手動轉錄語音。另外,我們還包括使用帶有1個聲音的並行Wavenet [30]的合成數字集(Num-TTS)的性能。第5節的TTS訓練集中沒有出現來自數字測試集的說話/成績單。

6.2. Model Architecture Details
所有實驗均使用80維log-Mel特徵,並以25ms的窗口進行計算,並每10ms移動一次。與[40]相似,在當前幀t處,這些特徵在左側堆疊3幀並向下採樣爲30ms幀速率。編碼器網絡由8個LSTM層組成,其中每個層具有2,048個隱藏單元,然後是640維投影層。對於本文中的所有模型,我們都插入一個縮減因子爲N的時間縮減層在第二層編碼器之後= 2,可實現整體系統速度提高1.7×,而沒有任何精度損失。預測網絡是2個LSTM層,其中包含2,048個隱藏單元,每層640維投影。編碼器和預測網絡被饋送到具有640個隱藏單元的聯合網絡。聯合網絡被饋送到softmax層,其中包含76個單位(對於字素)或4,096個單位(對於詞片[45])。RNN-T模型的總大小對於字素來說是117M個參數,對於單詞來說是120M個參數。對於WPM,量化後的總大小爲120MB。所有RNN-T模型都在Tensorflow [46]中的8×8 Tensor處理單元(TPU)切片上進行了訓練,全局批量大小爲4,096。

在這項工作中,我們將RNN-T模型與強大的基線常規CTC嵌入式模型進行了比較,該模型類似於[9],但更大。聲學模型由具有6個LSTM層的CI-phone CTC模型組成,其中每個層具有1200個隱藏單元,其後是400維投影層,以及42個音素輸出softmax層。該詞典的詞彙量爲50萬個單詞。我們使用5克第一遍語言模型和小型高效的第二遍記錄LSTM LM。量化後模型的整體大小爲130MB,與RNN-T模型的大小相似。

RESULTS

7.1. Quality Improvements
表1概述了RNN-T模型質量的各種改進。首先,E 1顯示層範數[24]有助於穩定訓練,從而使VS和IME的WER相對提高6%。接下來,通過將RNN-T培訓轉移到TPU [25]並具有較大的批量,我們可以得到1-4%的相對改進。最後,將單位從字素轉換爲單詞[21](E 3)顯示出9%的相對改進。總的來說,我們的算法的變化分別示於VS和IME 27%和25%的相對改善與基線相比,常規CTC嵌入模型(乙0)。本文中進行的所有實驗都將使用層範數,單詞和TPU訓練來報告結果(E 3)。
在這裏插入圖片描述
7.2. Contextual Biasing
表2顯示了使用淺融合偏置機制的結果。我們僅使用監督數據(E 4)報告偏倚結果,還包括非監督數據(E 6)。我們還在B 1中顯示了CTC常規模型的偏向性能。該表表明,除歌曲外,所有歌曲的E2E偏向性能均優於或與常規模型偏向相同,可能是因爲歌曲中的出聲率是1.0% ,高於通訊錄(0.2%)或應用程序(0.5%)。
在這裏插入圖片描述

7.3. Text normalization
接下來,表3指出了基準RNN-T(E 3)單詞模型在兩個數字集上的性能。從表中可以看出,Num-TTS裝置的WER 確實很高。進一步的錯誤分析顯示,這是由於文本規範化錯誤引起的:例如,如果用戶說出呼叫兩個雙三四…,則RNN-T模型假設2個雙3 4而不是2334。要解決此問題,我們訓練RNN -T模型具有更多的數字示例(E 7),如第5節所述,以VS和IME的較小退化爲代價,從實質上緩解了此問題。但是,我們注意到,在所有集合上,這仍然比單獨的基於FST的歸一化器[9](B 0)優於基線系統。
在這裏插入圖片描述
7.4. Real Time Factor
在表4中,我們報告了WER和RT90,即90%的實時因子(處理時間除以音頻持續時間),其中較低的值表示處理速度更快,而用戶感知的等待時間較短。比較E 2和E 7,我們可以看到RNN-T單詞模型在準確性和速度上都優於音素模型。

量化進一步加快了推理速度:與浮點模型(E 7)相比,不對稱量化(E 8)將RT90提高了28%,而絕對WER下降僅爲0.1%;對稱量化(E 9)假設權重集中在零附近,僅在VS WER上引入了額外的小衰減,但導致RT90的大幅降低(與float模型相比降低了64%),是真實速度的兩倍。時間。此外,量化將模型尺寸減小了4 倍。我們的最佳模型(E 9)也比傳統的CTC模型B 2 快,同時仍可將精度提高20%以上。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章