每日最新頭條.有趣資訊

谷歌手機輸入法可以離線語音識別了!模型精度遠超經典CTC

選自谷歌部落格

作者:Johan Schalkwyk

機器之心編譯

今天,谷歌發布了一個端到端的移動端全神經語音識別器,來處理 Gboard 中的語音輸入。該新型語音識別器可內置在手機設備中,離線狀態時依然可用。更重要的是,它可以實現字元級實時輸出,對用戶的語音輸入提供快速及時的響應。

2012 年,在深度學習技術的幫助下,

語音識別

研究有了極大進展,很多產品開始採用這項技術,如谷歌的語音搜索。這也開啟了該領域的變革:之後每一年都會出現進一步提高語音識別質量的新架構,如深度神經網絡、循環神經網絡、長短期記憶網絡、卷積神經網絡等等。然而,延遲仍然是重中之重:自動語音助手對請求能夠提供快速及時的反應,會讓人感覺更有幫助。

今天,谷歌發布了一個端到端的移動端全神經語音識別器,來處理 Gboard 中的語音輸入。在相關論文《Streaming End-to-End Speech Recognition for Mobile Devices》中,谷歌研究者展示了一個使用 RNN transducer (RNN-T) 技術訓練的模型,它非常緊湊,因而可以內置在手機設備中。這意味著不再有網絡延遲或 spottiness,新的語音識別器一直可用,即使是離線狀態也可使用。該模型以字元級運行,因此只要用戶說話,它就會按字元輸出單詞,就像有人在你說話的時候實時打字一樣。

該視頻在識別相同的語音句子時將伺服器端語音識別器(左側面板)與新型移動端識別器(右側面板)進行對比。GIF 來源:Akshay Kannan 和 Elnaz Sarbar

語音識別歷史

一直以來,語音識別系統包含多個組件:將音頻片段(通常為 10 毫秒幀)映射到音素上的聲學模型、將各音素結合在一起形成單詞的發音模型,以及表達給定短語似然的語言模型。在早期語音識別系統中,這些組件保持獨立優化。

2014 年左右,研究人員開始著重訓練單一神經網絡,直接將輸入的音頻波形映射到輸出語句上。這種序列到序列的方法基於給定音頻特徵序列生成單詞或字素序列,從而學習模型,這促進了「基於注意力」和「傾聽-注意-拚寫」(listen-attend-spell)模型的發展。雖然這些模型能夠極大地保證準確性,但它們通常需要檢查整個輸入序列,並且在輸入的同時無法實現輸出,而這又是實時語音轉錄的必要特徵。

與此同時,一種名為 connectionist temporal classification(CTC)的自主技術已經幫助生產級識別器將自身延遲減半。事實證明,這對創建 RNN-T 架構(最新發布版本採用的架構)來說是很重要的一步,RNN-T 可以看作是 CTC 技術的泛化。

RNN transducer

RNN-T 是一種不使用注意力機制的序列到序列(sequence-to-sequence)模型。大部分序列到序列模型通常需要處理整個輸入序列(在語音識別中即波形)從而生成輸出(句子),而 RNN-T 不一樣,它連續處理輸入樣本,生成輸出信號,這非常適合語音聽寫。在谷歌的實現中,輸出信號是字母表中的字元。隨著用戶說話,RNN-T 識別器逐個輸出字元,且在合適的地方加上空格。在這個過程中,該識別器還具備反饋循環(feedback loop),將模型預測的信號再輸入到模型中,以預測下一個信號,如下圖所示:

RNN-T 圖示,輸入語音樣本為 x,預測信號為 y。

如上所示,RNN-T 通過預測網絡(如 y_u-1)將預測信號(Softmax 層的輸出)返回至模型,以確保預測結果基於當前語音樣本和之前的輸出得出。預測網絡和編碼器網絡是 LSTM RNN,聯合模型是前饋網絡。預測網絡由 2 個 LSTM 層組成,每個層包括 2048 個單元,以及一個 640 維的映射層。編碼器網絡有 8 個 LSTM 層。

高效訓練此類模型已經非常困難,而在使用谷歌新型訓練技術後(該技術將錯詞率降低了 5%,詳見論文《MINIMUM WORD ERROR RATE TRAINING FOR ATTENTION-BASED SEQUENCE-TO-SEQUENCE MODELS》),訓練變得更加計算密集。為此,谷歌開發了並行實現,這樣 RNN-T 損失函數就可以在谷歌的高性能雲 TPU v2 硬體上大批量高效運行。而這使訓練速度實現了 3 倍加速。

離線識別

在傳統的語音識別引擎中,上述的聲學、發音和語言模型被「組合」成一個大型的搜索圖。該搜索圖的邊是用語音單元及其概率來標記的。當語音波形被輸入給識別器時,「解碼器」會在該圖中搜索給定輸入信號的最大似然路徑,並讀取該路徑採用的單詞序列。通常,解碼器假設底層模型的有限狀態轉換器(FST)表示。然而,雖然有複雜的解碼技術,搜索圖仍然很大,對谷歌的生產模型來說差不多是 2GB。因此該技術無法輕易地在移動手機上部署,而是需要在線連接才能正常工作。

為了提高語音識別的有用性,谷歌通過直接在設備上部署新模型,來避免通信網絡的延遲和固有的不可靠性。所以,其端到端方法不需要在大型解碼器圖上進行搜索。相反,解碼包括通過單個神經網絡進行集束搜索(beam search)。谷歌訓練的 RNN-T 模型的準確率能夠媲美基於伺服器的傳統模型,但大小只有 450MB,本質上更智能地使用參數和更密集地打包信息。但即使是對現在的智能手機來說,450MB 也是不小的容量了,而在如此大的網絡上傳播信號會有些慢。

谷歌使用其在 2016 年開發的參數量化和混合核技術來進一步縮小模型體積,然後使用 TensorFlow Lite 庫中的模型優化工具包使其公開可用。模型量化對訓練好的浮點模型提供了 4 倍的壓縮,實現了 4 倍的運行時加速,因此 RNN-T 在單核上的運行速度比實時語音要快。經過壓縮後,最終模型只有 80MB 大小。

谷歌發布的這一新型全神經移動端 Gboard 語音識別器將首先用於所有使用美式英語的 Pixel 手機。谷歌希望可以將這項技術應用到更多語言和更多應用領域。

更為普及的語音輸入

此外,今年一月份百度發布了同樣關注語音識別的「百度輸入法 AI 探索版」,其默認為全語音輸入方式。如果不討論使用場景,目前它的語音輸入確實在準確度和速度上已經達到非常好的效果,包括中英混雜、方言和其它語種等。與谷歌關注移動端推斷不同,百度的語音識別更關注在線的實時推斷,他們提出了一種名為「流式多級的截斷注意力(SMLTA)」模型。

SMLTA 模型最核心的概念是利用 CTC 模型的尖峰對連續音頻流做截斷,然後在每個截斷的小語音片段上進行注意力建模。這種模型利用了截斷多級注意力對長句建模的優勢,同時也解決了 CTC 模型的插入或刪除錯誤對注意力模型的影響。此外,它採用的是一種局部注意力機制,因此能做到實時在線推斷。

百度的 SMLTA 主要用於在線語音識別,但通過對 Deep Peak 2 模型的大量工程優化,它也能提供離線語音識別。機器之心發現百度輸入法 AI 探索版的 APP 包(IOS)有 89.6MB,如果使用離線語音識別,需要額外下載一個 25MB 大小的包。

論文:Streaming End-to-end Speech Recognition For Mobile Devices

論文地址:https://arxiv.org/abs/1811.06621

摘要:根據給定輸入語音直接預測輸出字元序列的端到端(E2E)模型對移動端語音識別來說是不錯的選擇。但部署 E2E 模型的挑戰也不少:為了應用到實際中,此類模型必須對語音進行流式的實時解碼;它們必須穩健地支持長尾使用案例;它們必須能夠利用用戶特定的上下文(如聯繫人列表);此外,它們必須要非常準確。在本文中,我們用循環神經網絡轉換器(RNN transducer)構建了 E2E 語音識別器。經過試驗評估,我們發現在很多評估項目中,該方法在延遲和準確率方面遠超基於 CTC 的傳統模型。

原文地址:https://ai.googleblog.com/2019/03/an-all-neural-on-device-speech.html

本文為機器之心編譯,轉載請聯繫本公眾號獲得授權。

------------------------------------------------

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