【編者按】由于“記憶單元”的優(yōu)勢,LSTM RNNs已經(jīng)應用于Google、百度、科大訊飛的語音處理之中。最近,Google在其技術(shù)博客中自述了使用LSTM模型取代GMM模型實現(xiàn)語音轉(zhuǎn)錄的過程。文章尚未披露訓練模型的具體步驟,但介紹了數(shù)據(jù)源的解決、建模的思想,并對目前尚未解決的問題進行解析,如錯認“噪音”和轉(zhuǎn)錄標點符號,對希望嘗試LSTM的團隊有借鑒意義。
在過去的幾年中,深度學習在世界計算機科學難題中表現(xiàn)出了卓越的成就,從圖像分類、字幕添加到機器翻譯,再到可視化模型技術(shù)。最近,我們宣布了在谷歌語音轉(zhuǎn)錄上使用長短期記憶遞歸神經(jīng)網(wǎng)絡(LSTM RNNs)所取得的成就(然而其他神經(jīng)網(wǎng)絡也在提升服務性能)。我們想更詳細地講述我們是怎么做到這些的。
從2009年上線以來,谷歌語音轉(zhuǎn)錄一直使用高斯混合模型(GMM)的聲音模型,30多年來,它們在語音識別領(lǐng)域獨占鰲頭。用復雜的技術(shù)(比如將模型運用于人聲)增廣相對簡單的建模方法。
到了2012年左右,深度神經(jīng)網(wǎng)絡(DNNs)徹底改變了語音識別領(lǐng)域。這些多層的網(wǎng)絡可以比GMMs更好地分辨聲音,它們采用了“判別訓練”的方式,將各個語音單位區(qū)分開而不是單獨對某個進行建模。
2012年5月份,谷歌語音轉(zhuǎn)錄第一次在安卓的語音識別上使用,使用遞歸神經(jīng)網(wǎng)絡(RNNs)的確可以迅速提高性能,特別是LSTM RNNs。和DNNs相比,LSTM RNNs有額外的遞歸連接和記憶單元,可以讓神經(jīng)元“記住”它們已經(jīng)處理過的數(shù)據(jù),跟你在聽到一句話然后口譯時候記住的單詞數(shù)目相當。
鏈接:深入淺出LSTM神經(jīng)網(wǎng)絡
但是,仍在使用GMMs的谷歌舊版語音信箱系統(tǒng)已經(jīng)遠遠落后了。所以我們決定利用我們使用LSTM RNNs所積累的經(jīng)驗,從頭開始設計它。但現(xiàn)在我們面臨著一些挑戰(zhàn)。
一個LSTM的記憶單元。顯示了它存儲、交流信息的閘門機制。供圖:Alex Graves
在音頻處理中,語音識別比識別單個聲音要考慮更多的因素:聲音序列需要匹配現(xiàn)有的文字,文字序列需要有現(xiàn)實意義。這叫做“語言建模”。語言模型通常用超大語料庫進行訓練,它們通常比語音數(shù)據(jù)要多出幾個數(shù)量級。找到大量的文本信息很容易,但是要找到與自然語言匹配的數(shù)據(jù)源卻并非易事。17世紀莎士比亞的戲劇中使用的英語不會對開發(fā)語音信箱系統(tǒng)有所幫助。
現(xiàn)在我們決定重新訓練聲音和語言模型,并且用現(xiàn)有的語音郵件來訓練。我們已經(jīng)收集了一小部分由用戶捐贈用于研究的語音郵件,我們將用這些數(shù)據(jù)對轉(zhuǎn)錄進行訓練和測試,但重新訓練語言模型則需要更多的數(shù)據(jù)。所以我們要求用戶捐贈大量的語音郵件,并且向他們保證這些消息不會被任何人閱讀和竊聽,它們只被計算機及其學習算法使用。然而,在沒有人為確認和手工轉(zhuǎn)錄的情況下,我們又該怎樣來訓練模型呢?
我們不能單單使用舊版的轉(zhuǎn)錄模塊,因為它們已經(jīng)用識別錯誤——無用數(shù)據(jù)輸入輸出——進行訓練了。恰恰相反我們開發(fā)了一套精巧的迭代管道來訓練模型。使用改進的聲音模型,我們能夠在離線情況下識別現(xiàn)有的語音郵件,得到更新的、更好的轉(zhuǎn)錄信息,這些信息將作為重新訓練語言模型的數(shù)據(jù),有了更好的語言模型之后,我們就可以重新識別同樣的數(shù)據(jù),然后重復上述過程。經(jīng)過多步之后,識別錯誤率降低了,最終在原始系統(tǒng)的基礎上將識別錯誤率降低將近一半。這確實是個意外的驚喜。
但也存在其他的“驚喜”(不是那么好的)。比如,有時候識別器會跳過整個語音片段;就好像是睡著了一樣,幾秒過后又醒來了。結(jié)果表明這個聲音模型偶爾會碰到bug,它會認為用戶接下來不會繼續(xù)說話了,然后將它聽到的作為噪聲,所以停止輸出。當我們重新訓練那些相同的數(shù)據(jù)的時候,我們會認為這些語音的確應該被忽略,這樣會強化模型繼續(xù)使用這種做法。將這種處理方式從識別器中剝離出來需要謹慎微調(diào)。
同樣,正確轉(zhuǎn)錄標點符號也是件困難的工作。老系統(tǒng)依賴于手動配置的規(guī)則或者語法,這種做法不能正確理解文本語境。比如,在之前的測試中,我們使用的算法將“I got the message you left me”(我收到了你留給我的信息)轉(zhuǎn)錄成了“I got the message, You left me”(我收到了信息,你離開了我)。為了修正這點,我們再次挖掘神經(jīng)網(wǎng)絡,教LSTM在正確的位置插入標點符號。雖然結(jié)果并不是很完美,但是我們不斷嘗試各種方法來增加準確性。
在語音識別中,和其他許多復雜服務一樣,神經(jīng)網(wǎng)絡正在迅速的替代以前的技術(shù)。當然神經(jīng)網(wǎng)絡也有改進的余地,而且我們正在研究更優(yōu)越性能的新型網(wǎng)絡!