支援多種語言
手繪筆記由 Nitya Narasimhan 提供。點擊圖片查看大圖。
這段影片概述了 Azure 語音服務,涵蓋了前幾課中的語音轉文字和文字轉語音,以及本課程中討論的語音翻譯:
🎥 點擊上方圖片觀看影片
課前測驗
介紹
在過去的三節課中,你學習了如何將語音轉換為文字、語言理解以及將文字轉換為語音,這些都由 AI 提供支持。AI 還可以幫助人類交流的另一個領域是語言翻譯——將一種語言轉換為另一種語言,例如 從英語轉換為法語。
在本課程中,你將學習如何使用 AI 來翻譯文字,使你的智能計時器能夠與多種語言的用戶互動。
在本課程中,我們將涵蓋:
🗑 這是本專案的最後一課,所以在完成本課程和作業後,別忘了清理你的雲端服務。你將需要這些服務來完成作業,所以請確保先完成作業。
如有需要,請參考清理專案指南以獲取相關指示。
翻譯文字
文字翻譯是一個已經研究了超過 70 年的計算機科學問題,現在由於 AI 和計算機能力的進步,已經接近解決,幾乎可以與人類翻譯媲美。
💁 其起源可以追溯到更早的時代,例如 9 世紀的阿拉伯密碼學家 Al-Kindi,他開發了語言翻譯技術
機器翻譯
文字翻譯最初是一種稱為機器翻譯(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複製其中一個密鑰。