Google 智慧助理,支援多種語言功能!
文 / 副總裁 Johan Schalkwyk 和 Google Speech 工程師 Ignacio Lopez Moreno
來源 | 谷歌開發者公眾號
多語言家庭正變得越來越普遍,一些資料來源 [1][2][3] 表明,多語言使用者的人數已超過單語言使用者,而且這一數字還會繼續增長。鑑於多語言使用者人群龐大且不斷增加,與以往相比,我們更需要使 Google 開發產品能夠同時支援多種語言,以便更好地為使用者服務。
今天,我們將推出 “Google 智慧助理” 的多語言支援功能,讓使用者在查詢時可以切換兩種不同的語言,而無需返回語言設定。使用者從英語、西班牙語、法語、德語、義大利語和日語中選擇兩種受支援的語言後,便可使用其中任意一種語言與 “智慧助理” 對話,而 “智慧助理” 會以相同的語言迴應。之前,使用者需要為 “智慧助理” 選擇一種語言設定,而每當他們想使用另一種語言時,便需要更改設定,但現在,多語言家庭無需動手,即可享受簡便的體驗。

“Google 智慧助理” 現在能夠識別語言、解讀查詢內容,並使用正確的語言作出迴應,而且使用者無需觸控 “智慧助理” 設定,便可完成這些操作
然而,實現這項強大的功能卻並非易事。事實上,我們付出多年的努力解決了諸多難題。最終,我們將問題拆分成三個獨立的部分:識別多種語言、理解多種語言,以及為 “Google 智慧助理” 使用者優化多語言識別。
識別多種語言
當有人在說另一種語言時,即使我們自己並不說這種語言,也能夠識別出來,只要注意語言的聲學效果(語調、音域等),便可做到這一點。但是,即便有了完整自動語音識別系統的幫助,定義自動口語識別的計算框架也非常具有挑戰性 1。在 2013 年,Google 開始使用深度神經網路 [4][5] 來研究口語識別 (LangID) 技術。如今,藉助遞迴神經網路,我們最先進的 LangID 模型可以在超過 2000 個備選語言對中識別各種語言對。作為其中一類神經網路,遞迴神經網路在解決序列建模問題上尤為有效,例如語音識別、語音檢測、語者識別等方面的問題。我們遇到的挑戰之一是如何處理更大的音訊集,這需要獲取能夠自動大規模理解多種語言的模型,並且達到可以讓這些模型正常運作的質量標準。
理解多種語言
要同時理解多種語言,便需要並行執行多個程序,且每個程序產生增量結果,從而使 “智慧助理” 不僅能夠識別使用者提出查詢時所使用的語言,還可以解析查詢以建立可操作指令。舉例來說,即使是在單語言環境中,如果使用者要求 “設定下午 6 點的鬧鐘”,則 “Google 智慧助理” 必須理解 “設定鬧鐘” 的意思是開啟鬧鐘應用,輸入 “下午 6 點” 的顯式引數,而且還要推斷出鬧鐘應該設在今天。要對受支援語言的任何給定語言對執行這項操作可謂一項挑戰,因為 “智慧助理” 執行與在單語言情況中相同的工作,但現在必須額外啟用 LangID,並且不只是一個,而是同時執行兩個單語言語音識別系統(在本篇博文的稍後部分,我們會進一步說明當前兩種語言的限制)。
重要的是,我們需要在幾毫秒的時間內評估 “Google 智慧助理” 和使用者查詢中提及的其他服務非同步生成的實時增量結果。我們藉助另一種演算法來完成這項工作。該演算法使用由 LangID 產生的候選語言概率、我們的轉錄置信度和使用者偏好(例如最喜歡的藝術家),對兩個語音識別系統中每個系統提供的轉錄假設進行排名。

我們用於 “Google 智慧助理” 的多語言語音識別系統與標準單語言語音識別系統示意圖。排名演算法用於根據有關使用者和增量 LangID 結果的相關資訊,從兩個單語言語音識別器中選擇最佳識別假設
當用戶停止講話時,模型不僅可確定使用者所說的語言,還能解讀使用者的說話內容。當然,這個流程需要複雜的架構,因而會增加處理開銷,而且可能會造成不必要的延遲。
優化多語言識別
為了儘可能降低這些不良影響,系統能越快確定所說的語言就越好。如果系統在使用者查詢結束前就可以確定所說的語言,則系統會忽略識別器以停止處理使用者的語音並捨棄忽略的假設,進而降低處理開銷,並減少任何潛在的延遲。考慮到這一點,我們發現了幾種優化系統的方法。
我們考慮的一個用例是人們通常在查詢中使用同一種語言(使用者通常也希望 “智慧助理” 使用該語言作出迴應),除非所查詢實體的名稱使用不同語言。這意味著,在大多數情況下,即使句子中包含使用不同語言的實體,“智慧助理” 也可以通過關注查詢的第一部分來對所說的語言作出初步猜測。藉助這種早期識別,我們可以通過切換到單個單語言語音識別器來簡化任務,這與我們處理單語言查詢一樣。然而,快速決定如何以及何時切換為單一語言需要最終的技術整合:具體來說,我們使用隨機森林技術來結合多個情境訊號,例如所使用的裝置型別、所發現的語音假設數量、我們接收類似假設的頻率、單個語音識別器的不確定性,以及每種語言的使用頻率。
我們用來簡化和提升系統質量的另一個方法是限制使用者可以選擇的候選語言列表。使用者可以在我們的家居裝置目前支援的六種語言中選擇兩種,如此一來,我們就可以支援大部分多語言使用者。不過,我們還在繼續改進技術,希望接下來可以解決三語支援問題,因為我們深知這會進一步提升不斷增長的使用者群的體驗。
從雙語支援到三語支援
從一開始,我們的目標就是讓 “智慧助理” 可以自然地與所有使用者對話。多語言支援是使用者翹首以待的功能,也是我們團隊幾年前就提上日程的專案。然而,現在全球不只有許多雙語使用者,還有使用三種語言的使用者,或使用兩種以上語言的家庭,我們也想讓他們的生活更加便利。
今天的更新讓我們走上正軌,是我們先進的機器學習技術、語音和語言識別技術,以及我們團隊為優化 LangID 模型所作出的努力讓這一切成為可能。目前,我們正在努力教導 “Google 智慧助理” 如何同時處理兩種以上的語言,並致力於在日後新增更多受支援的語言 — 敬請期待!
1:人們通常認為,口語識別比基於文字的語言識別更具挑戰性,後者只需要基於字典的相對簡單技術就能出色地完成工作。語音內容的時間/頻率模式很難加以比較,而且由於使用者在講話時可以不加停頓,語速也有所不同,並且麥克風除了錄製語音以外還會保留背景噪聲,因此確定語音內容也更加困難。