13 KiB
支援多語言
手繪筆記由 Nitya Narasimhan 提供。點擊圖片查看更大的版本。
這段影片概述了 Azure 語音服務,涵蓋了之前課程中的語音轉文字和文字轉語音功能,以及本課程中討論的語音翻譯:
🎥 點擊上方圖片觀看影片
課前測驗
簡介
在過去的三節課中,你學習了如何將語音轉換為文字、語言理解以及將文字轉換為語音,這些功能都由 AI 驅動。AI 還可以幫助人類溝通的另一個領域——語言翻譯,將一種語言轉換為另一種語言,例如從英語翻譯成法語。
在本課程中,你將學習如何使用 AI 進行文字翻譯,使你的智慧計時器能夠與多語言使用者互動。
本課程將涵蓋以下內容:
🗑 這是本專案的最後一課,因此在完成本課程和作業後,別忘了清理你的雲端服務。你需要這些服務來完成作業,因此請確保先完成作業。
如有需要,請參考清理專案指南以獲取相關指示。
翻譯文字
文字翻譯是一個已經研究了超過 70 年的計算機科學問題,直到最近,由於 AI 和計算能力的進步,才接近解決,並達到幾乎與人類翻譯員相媲美的水平。
💁 其起源可以追溯到更早的時期,例如 9 世紀的阿拉伯密碼學家 Al-Kindi,他開發了語言翻譯的技術。
機器翻譯
文字翻譯最初是一種被稱為機器翻譯(Machine Translation, MT)的技術,可以在不同語言對之間進行翻譯。MT 的工作原理是用一種語言的單詞替換另一種語言的單詞,並添加技術來選擇正確的翻譯方式,當簡單的逐字翻譯不合理時,翻譯短語或句子的一部分。
🎓 當翻譯工具支援在一種語言和另一種語言之間進行翻譯時,這些被稱為語言對。不同的工具支援不同的語言對,這些可能並不完整。例如,一個翻譯工具可能支援英語到西班牙語的語言對,以及西班牙語到義大利語的語言對,但不支援英語到義大利語。
例如,將 "Hello world" 從英語翻譯成法語可以通過替換完成——"Bonjour" 替換 "Hello","le monde" 替換 "world",最終得到正確的翻譯 "Bonjour le monde"。
當不同語言使用不同的方式表達相同的意思時,替換方法就不起作用了。例如,英語句子 "My name is Jim" 翻譯成法語是 "Je m'appelle Jim",字面意思是 "我叫自己 Jim"。"Je" 是法語中的 "我","moi" 是 "我自己",但由於動詞以元音開頭,會與動詞結合成 "m'","appelle" 是 "叫",而 "Jim" 不翻譯,因為它是名字,而不是可以翻譯的單詞。單詞順序也成為問題——簡單替換 "Je m'appelle Jim" 會變成 "I myself call Jim",與英語的單詞順序不同。
💁 有些單詞永遠不會被翻譯——我的名字是 Jim,無論使用哪種語言介紹我。當翻譯到使用不同字母或不同聲音的語言時,單詞可以被音譯,即選擇適當的字母或字符,使其聽起來與原單詞相同。
成語也是翻譯的一個難題。這些是具有特定理解意義的短語,其含義與單詞的直接解釋不同。例如,在英語中,成語 "I've got ants in my pants" 並不是真的指衣服裡有螞蟻,而是指坐立不安。如果你將其翻譯成德語,可能會讓聽者感到困惑,因為德語版本是 "I have bumble bees in the bottom"。
💁 不同的地區會增加不同的複雜性。以成語 "ants in your pants" 為例,在美式英語中 "pants" 指外衣,而在英式英語中,"pants" 指內衣。
✅ 如果你會多種語言,想想一些無法直接翻譯的短語。
機器翻譯系統依賴於大型規則數據庫,描述如何翻譯特定短語和成語,並使用統計方法從可能的選項中選擇適當的翻譯。這些統計方法使用由人類翻譯成多種語言的大型數據庫,來選擇最可能的翻譯,這種技術被稱為統計機器翻譯。其中一些使用語言的中間表示,允許一種語言翻譯成中間表示,再從中間表示翻譯成另一種語言。這樣,添加更多語言只需翻譯到和從中間表示,而不是翻譯到和從所有其他語言。
神經翻譯
神經翻譯利用 AI 的力量進行翻譯,通常使用一個模型翻譯整個句子。這些模型基於由人類翻譯的大型數據集進行訓練,例如網頁、書籍和聯合國文件。
神經翻譯模型通常比機器翻譯模型更小,因為不需要大型短語和成語數據庫。現代 AI 翻譯服務通常混合多種技術,結合統計機器翻譯和神經翻譯。
任何語言對之間都沒有 1:1 的翻譯。不同的翻譯模型會根據訓練模型的數據產生略有不同的結果。翻譯並不總是對稱的——即如果你將一個句子從一種語言翻譯成另一種語言,再翻譯回原語言,可能會得到略有不同的句子。
✅ 試試不同的線上翻譯工具,例如 Bing 翻譯、Google 翻譯 或 Apple 翻譯應用程式。比較幾個句子的翻譯版本。也可以嘗試在一個工具中翻譯,再在另一個工具中翻譯回來。
翻譯服務
有許多 AI 服務可以從你的應用程式中用來翻譯語音和文字。
認知服務語音服務
你在過去幾節課中使用的語音服務具有語音識別的翻譯功能。當你識別語音時,可以要求不僅提供相同語言的文字,還可以提供其他語言的文字。
💁 這僅適用於語音 SDK,REST API 不內建翻譯功能。
認知服務翻譯服務
翻譯服務是一個專門的翻譯服務,可以將文字從一種語言翻譯成一種或多種目標語言。除了翻譯,它還支援許多額外功能,包括屏蔽不雅詞語。它還允許你為特定單詞或句子提供特定翻譯,以處理你不希望翻譯的術語或具有特定知名翻譯的術語。
例如,當翻譯句子 "I have a Raspberry Pi"(指的是單板電腦)到另一種語言如法語時,你可能希望保留 "Raspberry Pi" 的名稱不變,而不是翻譯它,得到 "J’ai un Raspberry Pi" 而不是 "J’ai une pi aux framboises"。
建立翻譯資源
在本課程中,你需要一個翻譯資源。你將使用 REST API 來翻譯文字。
任務 - 建立翻譯資源
-
從你的終端或命令提示符執行以下命令,在你的
smart-timer
資源群組中建立翻譯資源。az cognitiveservices account create --name smart-timer-translator \ --resource-group smart-timer \ --kind TextTranslation \ --sku F0 \ --yes \ --location <location>
將
<location>
替換為你建立資源群組時使用的位置。 -
獲取翻譯服務的金鑰:
az cognitiveservices account keys list --name smart-timer-translator \ --resource-group smart-timer \ --output table
複製其中一個金鑰。
透過翻譯在應用程式中支援多語言
在理想情況下,你的整個應用程式應該能夠理解盡可能多的不同語言,從語音識別到語言理解,再到語音回應。這需要大量工作,因此翻譯服務可以加速應用程式的交付時間。
假設你正在建立一個智慧計時器,使用英語端到端處理,包括理解英語語音並將其轉換為文字、使用英語進行語言理解、用英語構建回應並以英語語音回應。如果你想添加日語支援,可以先將日語語音翻譯成英語文字,然後保持應用程式的核心部分不變,最後將回應文字翻譯成日語,再用日語語音回應。這樣可以快速添加日語支援,並且你可以稍後擴展到提供完整的端到端日語支援。
💁 依賴機器翻譯的缺點是不同語言和文化有不同的表達方式,因此翻譯可能與你期望的表達不符。
機器翻譯還為應用程式和設備提供了翻譯使用者創建內容的可能性。科幻作品中經常出現 "通用翻譯器",這些設備可以將外星語言翻譯成(通常是)美式英語。如果忽略外星部分,這些設備已經不再是科幻,而是科學事實。已經有應用程式和設備可以實現語音和文字的即時翻譯,結合語音和翻譯服務。
其中一個例子是 Microsoft Translator 手機應用程式,以下影片展示了其功能:
🎥 點擊上方圖片觀看影片
想像一下擁有這樣的設備,尤其是在旅行或與不懂其語言的人互動時。在機場或醫院中使用自動翻譯設備將提供急需的無障礙改進。
✅ 做些研究:是否有任何商業化的翻譯物聯網設備?智慧設備中是否內建翻譯功能?
👽 雖然目前沒有真正的通用翻譯器可以讓我們與外星人交流,但 Microsoft Translator 支援克林貢語。Qapla’!
使用 AI 服務翻譯文字
你可以使用 AI 服務為你的智慧計時器添加翻譯功能。
任務 - 使用 AI 服務翻譯文字
按照相關指南,將文字翻譯功能添加到你的物聯網設備:
🚀 挑戰
機器翻譯如何在智慧設備以外的其他物聯網應用程式中受益?思考翻譯如何幫助,不僅是語音,還包括文字。
課後測驗
回顧與自學
- 閱讀更多關於機器翻譯的內容:機器翻譯 Wikipedia 頁面
- 閱讀更多關於神經機器翻譯的內容:神經機器翻譯 Wikipedia 頁面
- 查看 Microsoft 語音服務支援的語言列表:語音服務文件中的語言和語音支援
作業
免責聲明:
本文件使用 AI 翻譯服務 Co-op Translator 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對於因使用此翻譯而引起的任何誤解或誤讀概不負責。