自動偵測語言:應用程式如何選擇來源語言
自動偵測是來源語言選擇器中的第一個選項。選擇它並不意味著應用程式對來源沒有意見 — 這意味著應用程式將使用按區塊的 OCR 語言提示(對於照片)或 Dart 層的字元集啟發式(對於文字),來為每次翻譯挑選一個特定的 ML Kit 來源語言。
為什麼按每次翻譯
ML Kit 的裝置本機翻譯器需要在翻譯執行之前下載特定的來源語言。自動偵測不能意味著「從任何語言翻譯」;它必須解析為 19 種支援語言中的一種,每次翻譯都如此。應用程式自動執行此解析。
照片的工作原理
對於相機擷取,OCR 引擎為每個識別到的區塊發出按區塊的語言提示。提示在整頁上聚合;佔多數的語言成為該翻譯的 ML Kit 來源語言。
單語言頁面解析清晰:一頁韓語字幕解析為韓語,一頁法語正文解析為法語。混合指令碼頁面如果沒有任何單一語言佔主導,則回退到預設值。
按區塊翻譯使用這些提示更精細。具有英語標題和日語字幕的頁面可以使用適當的按區塊來源進行翻譯,即使多數語言不明確也是如此。
文字的工作原理
對於文字翻譯,應用程式執行一個 Dart 層的啟發式,按指令碼類計算字元數:
- 漢字 → 簡體中文
- 假名 → 日語
- 韓文諺文 → 韓文
- 拉丁字母 → 英語
- 西里爾字母 → 俄語
- 阿拉伯字母 → 阿拉伯語
混合輸入遵循多數字元類。空或僅空白輸入預設為英語。
啟發式很快(對輸入的單個線性掃描),並在 ML Kit 呼叫之前執行。所選的來源語言然後用於翻譯請求。
自動偵測失敗的時候
- 無變音符號的拉丁字母。 10 個字元的純拉丁片段可能是英語、法語、德語、義大利語、葡萄牙語、西班牙語、荷蘭語、波蘭語、捷克語或其他幾種語言。啟發式選擇英語作為預設值;如果來源不是英語,翻譯品質可能會下降。對於短拉丁片段,手動固定來源語言。
- 無具體說明的西里爾字母。 西里爾字母可能是俄語、烏克蘭語或其他斯拉夫語指令碼。應用程式選擇俄語。
- 漢字指令碼歧義。 簡體中文和繁體中文共用大多數字元。沒有更長上下文就無法將漢字片段解析為一種。應用程式選擇簡體中文。
對於這些情況,從選擇器手動固定來源語言。
自動偵測從不沉默
頁面在翻譯執行時始終具有特定的 ML Kit 來源語言。如果啟發式返回錯誤的預設值,翻譯可能會出錯;如果它返回正確的語言,翻譯就有效。沒有應用程式「無法選擇語言」的模式 — 它會透過到預設值並進行翻譯。
實用建議
對於長的、單語言文件,自動偵測有效。對於短片段或混合指令碼頁面,從選擇器手動固定來源語言。選擇器會把你最近的常用語言放在頂部,因此第二次使用某種語言只需一次點選。