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