Skype前幾天推出了實時語音翻譯的預覽版,讓用戶可以跨越語言的障礙暢快交流。今天我們就來聊聊微軟是如何做到這一點的。
Skype的翻譯系統主要分三步:首先,把你的實時語音轉換成文字;然后,再把文字翻譯成另一種語言的文字;最后,把文字轉換成語音。其中,識別實時語音并轉換成文字一直是最棘手的部分。
圖像處理和語音識別是深度學習發展的兩個主要方向。近幾年來,由于深度學習的進步,語音識別依靠深度神經網絡(deep neural networks)也取得了不少進展。神經網絡在八十年代就已出現,但真正開始煥發光芒是在2012年,Google讓計算機能夠“自我修養”——在一堆視頻里自主學習并總結出貓的概念。
微軟研究員John Platt在接收wired采訪時曾表示,微軟其實很早之前就開始利用神經網絡改善平板電腦的手寫識別精確度了。而Skype實時語音翻譯系統真正的突破在于識別不同用戶間的不同語言不同口音的說話方式。
這一突破發生在2009年的圣誕節,當時微軟在英國哥倫比亞贊助了一個小型研討會,來自多倫多大學的演講嘉賓Geoff Hinton介紹了自己研究的一種模仿腦神經工作原理的機器學習模型,這一模型依靠多層次的人工神經元,讓機器逐漸理解更加復雜的概念。微軟聽完介紹后,隨即砸下一筆巨款,讓Hinton的模型可以利用最新的圖形處理器單元進行測試。測試的結果很棒,語音識別的精確度提升了25%。
Skype的機器學習原型通過預覽階段的大量數據進行訓練,并優化語音識別(SR)和自動化機器翻譯(MT)任務,這些優化包括去除語句中的不流利成分(比如“ahs”、“umms”和重復性的語言)、把文本分段成句子、增加標點符號、文本的大小寫等等。
其中,語音識別和機器翻譯的訓練集數據主要有多個來源,包括已翻譯的網頁、帶字幕的視頻、翻譯轉錄的一對一對話內容等。此外,很多志愿者向微軟貢獻出的語音對話也是一個非常重要的訓練集數據來源。同時,Skype的翻譯系統還會記錄用戶的對話內容,實現二次利用,以進行數據分析,加以學習。
在數據進入系統之后,機器學習軟件會為對話中的單詞建立統計模型,當你說到某一個東西時,系統會在統計模型里尋找類似的單詞,并響應之前做過的類似的翻譯。實時語音翻譯對用戶對話的環境很敏感,稍有噪音干擾可能準確度就會降低很多。這一方面,深度神經網絡有效的減少識別錯誤率,改善了系統的健壯性,讓實時翻譯能夠有更大的應用范圍。
至于不同語言的文本翻譯,Skype利用的則是和Bing翻譯一樣的引擎技術:語法和統計模型的結合使用,同時為特定語言進行特殊的訓練。普通的文本翻譯往往要求使用規范正確的書面語言,而Skype翻譯系統不僅包括Bing翻譯的引擎技術,還額外增加了一層口語化的語言業務。
此外,Skype還建立了一套自定義的串連整個流程的架構,以協調系統里多個部分間的運作。如何簡單又高效的運作整個系統,也是一門不小的學問。
Skype的實時語音翻譯系統還面臨著很多挑戰,比如語言的變化的速度很快,每個人說話的方式又很獨特,這些都會為實時翻譯造成不少的麻煩。微軟研究院總監Vikram Dendi說,截止到星期一,總共已經有5萬個用戶注冊了預覽版Skype翻譯,而一天后,這個數字變成了兩倍。對于這一種可能會真正改變人們交流方式的科技產品,越來越多的人為之感到激動。