今天,谷歌發(fā)布了一個(gè)端到端的移動(dòng)端全神經(jīng)語(yǔ)音識(shí)別器,來(lái)處理 Gboard 中的語(yǔ)音輸入。該新型語(yǔ)音識(shí)別器可內(nèi)置在手機(jī)設(shè)備中,離線狀態(tài)時(shí)依然可用。更重要的是,它可以實(shí)現(xiàn)字符級(jí)實(shí)時(shí)輸出,對(duì)用戶的語(yǔ)音輸入提供快速及時(shí)的響應(yīng)。
2012 年,在深度學(xué)習(xí)技術(shù)的幫助下,語(yǔ)音識(shí)別研究有了極大進(jìn)展,很多產(chǎn)品開(kāi)始采用這項(xiàng)技術(shù),如谷歌的語(yǔ)音搜索。這也開(kāi)啟了該領(lǐng)域的變革:之后每一年都會(huì)出現(xiàn)進(jìn)一步提高語(yǔ)音識(shí)別質(zhì)量的新架構(gòu),如深度神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)、長(zhǎng)短期記憶網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)等等。然而,延遲仍然是重中之重:自動(dòng)語(yǔ)音助手對(duì)請(qǐng)求能夠提供快速及時(shí)的反應(yīng),會(huì)讓人感覺(jué)更有幫助。
今天,谷歌發(fā)布了一個(gè)端到端的移動(dòng)端全神經(jīng)語(yǔ)音識(shí)別器,來(lái)處理 Gboard 中的語(yǔ)音輸入。在相關(guān)論文《Streaming End-to-End Speech Recognition for Mobile Devices》中,谷歌研究者展示了一個(gè)使用 RNN transducer (RNN-T) 技術(shù)訓(xùn)練的模型,它非常緊湊,因而可以內(nèi)置在手機(jī)設(shè)備中。這意味著不再有網(wǎng)絡(luò)延遲或 spottiness,新的語(yǔ)音識(shí)別器一直可用,即使是離線狀態(tài)也可使用。該模型以字符級(jí)運(yùn)行,因此只要用戶說(shuō)話,它就會(huì)按字符輸出單詞,就像有人在你說(shuō)話的時(shí)候?qū)崟r(shí)打字一樣。
該視頻在識(shí)別相同的語(yǔ)音句子時(shí)將服務(wù)器端語(yǔ)音識(shí)別器(左側(cè)面板)與新型移動(dòng)端識(shí)別器(右側(cè)面板)進(jìn)行對(duì)比。GIF 來(lái)源:Akshay Kannan 和 Elnaz Sarbar
語(yǔ)音識(shí)別歷史
一直以來(lái),語(yǔ)音識(shí)別系統(tǒng)包含多個(gè)組件:將音頻片段(通常為 10 毫秒幀)映射到音素上的聲學(xué)模型、將各音素結(jié)合在一起形成單詞的發(fā)音模型,以及表達(dá)給定短語(yǔ)似然的語(yǔ)言模型。在早期語(yǔ)音識(shí)別系統(tǒng)中,這些組件保持獨(dú)立優(yōu)化。
2014 年左右,研究人員開(kāi)始著重訓(xùn)練單一神經(jīng)網(wǎng)絡(luò),直接將輸入的音頻波形映射到輸出語(yǔ)句上。這種序列到序列的方法基于給定音頻特征序列生成單詞或字素序列,從而學(xué)習(xí)模型,這促進(jìn)了「基于注意力」和「傾聽(tīng)-注意-拼寫(xiě)」(listen-attend-spell)模型的發(fā)展。雖然這些模型能夠極大地保證準(zhǔn)確性,但它們通常需要檢查整個(gè)輸入序列,并且在輸入的同時(shí)無(wú)法實(shí)現(xiàn)輸出,而這又是實(shí)時(shí)語(yǔ)音轉(zhuǎn)錄的必要特征。
與此同時(shí),一種名為 connectionist temporal classification(CTC)的自主技術(shù)已經(jīng)幫助生產(chǎn)級(jí)識(shí)別器將自身延遲減半。事實(shí)證明,這對(duì)創(chuàng)建 RNN-T 架構(gòu)(最新發(fā)布版本采用的架構(gòu))來(lái)說(shuō)是很重要的一步,RNN-T 可以看作是 CTC 技術(shù)的泛化。
RNN transducer
RNN-T 是一種不使用注意力機(jī)制的序列到序列(sequence-to-sequence)模型。大部分序列到序列模型通常需要處理整個(gè)輸入序列(在語(yǔ)音識(shí)別中即波形)從而生成輸出(句子),而 RNN-T 不一樣,它連續(xù)處理輸入樣本,生成輸出信號(hào),這非常適合語(yǔ)音聽(tīng)寫(xiě)。在谷歌的實(shí)現(xiàn)中,輸出信號(hào)是字母表中的字符。隨著用戶說(shuō)話,RNN-T 識(shí)別器逐個(gè)輸出字符,且在合適的地方加上空格。在這個(gè)過(guò)程中,該識(shí)別器還具備反饋循環(huán)(feedback loop),將模型預(yù)測(cè)的信號(hào)再輸入到模型中,以預(yù)測(cè)下一個(gè)信號(hào),如下圖所示:
RNN-T 圖示,輸入語(yǔ)音樣本為 x,預(yù)測(cè)信號(hào)為 y。
如上所示,RNN-T 通過(guò)預(yù)測(cè)網(wǎng)絡(luò)(如 y_u-1)將預(yù)測(cè)信號(hào)(Softmax 層的輸出)返回至模型,以確保預(yù)測(cè)結(jié)果基于當(dāng)前語(yǔ)音樣本和之前的輸出得出。預(yù)測(cè)網(wǎng)絡(luò)和編碼器網(wǎng)絡(luò)是 LSTM RNN,聯(lián)合模型是前饋網(wǎng)絡(luò)。預(yù)測(cè)網(wǎng)絡(luò)由 2 個(gè) LSTM 層組成,每個(gè)層包括 2048 個(gè)單元,以及一個(gè) 640 維的映射層。編碼器網(wǎng)絡(luò)有 8 個(gè) LSTM 層。
高效訓(xùn)練此類(lèi)模型已經(jīng)非常困難,而在使用谷歌新型訓(xùn)練技術(shù)后(該技術(shù)將錯(cuò)詞率降低了 5%,詳見(jiàn)論文《MINIMUM WORD ERROR RATE TRAINING FOR ATTENTION-BASED SEQUENCE-TO-SEQUENCE MODELS》),訓(xùn)練變得更加計(jì)算密集。為此,谷歌開(kāi)發(fā)了并行實(shí)現(xiàn),這樣 RNN-T 損失函數(shù)就可以在谷歌的高性能云 TPU v2 硬件上大批量高效運(yùn)行。而這使訓(xùn)練速度實(shí)現(xiàn)了 3 倍加速。
離線識(shí)別
在傳統(tǒng)的語(yǔ)音識(shí)別引擎中,上述的聲學(xué)、發(fā)音和語(yǔ)言模型被「組合」成一個(gè)大型的搜索圖。該搜索圖的邊是用語(yǔ)音單元及其概率來(lái)標(biāo)記的。當(dāng)語(yǔ)音波形被輸入給識(shí)別器時(shí),「解碼器」會(huì)在該圖中搜索給定輸入信號(hào)的最大似然路徑,并讀取該路徑采用的單詞序列。通常,解碼器假設(shè)底層模型的有限狀態(tài)轉(zhuǎn)換器(FST)表示。然而,雖然有復(fù)雜的解碼技術(shù),搜索圖仍然很大,對(duì)谷歌的生產(chǎn)模型來(lái)說(shuō)差不多是 2GB。因此該技術(shù)無(wú)法輕易地在移動(dòng)手機(jī)上部署,而是需要在線連接才能正常工作。
為了提高語(yǔ)音識(shí)別的有用性,谷歌通過(guò)直接在設(shè)備上部署新模型,來(lái)避免通信網(wǎng)絡(luò)的延遲和固有的不可靠性。所以,其端到端方法不需要在大型解碼器圖上進(jìn)行搜索。相反,解碼包括通過(guò)單個(gè)神經(jīng)網(wǎng)絡(luò)進(jìn)行集束搜索(beam search)。谷歌訓(xùn)練的 RNN-T 模型的準(zhǔn)確率能夠媲美基于服務(wù)器的傳統(tǒng)模型,但大小只有 450MB,本質(zhì)上更智能地使用參數(shù)和更密集地打包信息。但即使是對(duì)現(xiàn)在的智能手機(jī)來(lái)說(shuō),450MB 也是不小的容量了,而在如此大的網(wǎng)絡(luò)上傳播信號(hào)會(huì)有些慢。
谷歌使用其在 2016 年開(kāi)發(fā)的參數(shù)量化和混合核技術(shù)來(lái)進(jìn)一步縮小模型體積,然后使用 TensorFlow Lite 庫(kù)中的模型優(yōu)化工具包使其公開(kāi)可用。模型量化對(duì)訓(xùn)練好的浮點(diǎn)模型提供了 4 倍的壓縮,實(shí)現(xiàn)了 4 倍的運(yùn)行時(shí)加速,因此 RNN-T 在單核上的運(yùn)行速度比實(shí)時(shí)語(yǔ)音要快。經(jīng)過(guò)壓縮后,最終模型只有 80MB 大小。
谷歌發(fā)布的這一新型全神經(jīng)移動(dòng)端 Gboard 語(yǔ)音識(shí)別器將首先用于所有使用美式英語(yǔ)的 Pixel 手機(jī)。谷歌希望可以將這項(xiàng)技術(shù)應(yīng)用到更多語(yǔ)言和更多應(yīng)用領(lǐng)域。
更為普及的語(yǔ)音輸入
此外,今年一月份百度發(fā)布了同樣關(guān)注語(yǔ)音識(shí)別的「百度輸入法 AI 探索版」,其默認(rèn)為全語(yǔ)音輸入方式。如果不討論使用場(chǎng)景,目前它的語(yǔ)音輸入確實(shí)在準(zhǔn)確度和速度上已經(jīng)達(dá)到非常好的效果,包括中英混雜、方言和其它語(yǔ)種等。與谷歌關(guān)注移動(dòng)端推斷不同,百度的語(yǔ)音識(shí)別更關(guān)注在線的實(shí)時(shí)推斷,他們提出了一種名為「流式多級(jí)的截?cái)嘧⒁饬Γ⊿MLTA)」模型。
SMLTA 模型最核心的概念是利用 CTC 模型的尖峰對(duì)連續(xù)音頻流做截?cái)啵缓笤诿總€(gè)截?cái)嗟男≌Z(yǔ)音片段上進(jìn)行注意力建模。這種模型利用了截?cái)喽嗉?jí)注意力對(duì)長(zhǎng)句建模的優(yōu)勢(shì),同時(shí)也解決了 CTC 模型的插入或刪除錯(cuò)誤對(duì)注意力模型的影響。此外,它采用的是一種局部注意力機(jī)制,因此能做到實(shí)時(shí)在線推斷。
百度的 SMLTA 主要用于在線語(yǔ)音識(shí)別,但通過(guò)對(duì) Deep Peak 2 模型的大量工程優(yōu)化,它也能提供離線語(yǔ)音識(shí)別。機(jī)器之心發(fā)現(xiàn)百度輸入法 AI 探索版的 APP 包(IOS)有 89.6MB,如果使用離線語(yǔ)音識(shí)別,需要額外下載一個(gè) 25MB 大小的包。
論文:Streaming End-to-end Speech Recognition For Mobile Devices
論文地址:https://arxiv.org/abs/1811.06621
摘要:根據(jù)給定輸入語(yǔ)音直接預(yù)測(cè)輸出字符序列的端到端(E2E)模型對(duì)移動(dòng)端語(yǔ)音識(shí)別來(lái)說(shuō)是不錯(cuò)的選擇。但部署 E2E 模型的挑戰(zhàn)也不少:為了應(yīng)用到實(shí)際中,此類(lèi)模型必須對(duì)語(yǔ)音進(jìn)行流式的實(shí)時(shí)解碼;它們必須穩(wěn)健地支持長(zhǎng)尾使用案例;它們必須能夠利用用戶特定的上下文(如聯(lián)系人列表);此外,它們必須要非常準(zhǔn)確。在本文中,我們用循環(huán)神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換器(RNN transducer)構(gòu)建了 E2E 語(yǔ)音識(shí)別器。經(jīng)過(guò)試驗(yàn)評(píng)估,我們發(fā)現(xiàn)在很多評(píng)估項(xiàng)目中,該方法在延遲和準(zhǔn)確率方面遠(yuǎn)超基于 CTC 的傳統(tǒng)模型。
原文地址:https://ai.googleblog.com/2019/03/an-all-neural-on-device-speech.html