透過 Chrome 內建的 AI 技術偵測語言

發布日期:2024 年 9 月 24 日

將文字翻譯成其他語言之前,您必須先判斷該文字使用的是哪種語言。先前,翻譯作業需要將文字上傳至雲端服務,在伺服器上執行翻譯,然後下載結果。

Language Detector API 會在裝置上進行推論,以改善隱私權說明。雖然可以提供可執行此操作的特定程式庫,但需要額外的資源才能下載。

可用性

註冊 Origins 試用版

如要開始使用 Language Detector API,請按照下列步驟操作:

  1. 確認瞭解 Google 的生成式 AI 使用限制政策
  2. 前往 Language Detector API 來源試用
  3. 按一下「註冊」並填寫表單。
    • 在「Web origin」欄位中,提供來源或擴充功能 ID chrome-extension://YOUR_EXTENSION_ID
  4. 按一下「註冊」即可提交。
  5. 複製提供的符記,並將其新增至您要啟用試用版的來源或擴充功能檔案中的每個網頁。
  6. 開始使用 Language Detection API

進一步瞭解如何開始使用來源試驗

為 localhost 新增支援

如要在來源試用期間存取 localhost 上的 Language Detection API,您必須將 Chrome 更新至最新版本。接下來,請按照下列步驟進行:

  1. 在 Windows、Mac 或 Linux 等平台上開啟 Chrome。
  2. 前往chrome://flags/#language-detection-api
  3. 選取「已啟用」
  4. 按一下「重新啟動」或重新啟動 Chrome。

使用範例

Language Detector API 主要適用於下列情況:

  • 判斷輸入文字的語言,以便進行翻譯。
  • 判斷輸入文字的語言,以便為特定語言的任務 (例如惡意言論偵測) 載入正確的模型。
  • 判斷輸入文字的語言,以便正確標示,例如在線上社群網站中。
  • 判斷輸入文字的語言,以便調整應用程式介面。舉例來說,在比利時網站上,只顯示與法語使用者相關的介面。

使用 Language Detector API

Language Detector API 屬於 Translator API 大型系列的一部分。首先,請執行功能偵測,看看瀏覽器是否支援 Language Detector API。

if ('translation' in self && 'canDetect' in self.translation) {
  // The Language Detector API is available.
}  

模型下載

語言偵測功能取決於針對偵測語言的特定任務微調的模型。當 API 在瀏覽器中建構時,網站首次嘗試使用 API 時會依需求下載模型。在 Chrome 中,這個模型相較於其他模型來說非常小。事實上,由於 Chrome 瀏覽器功能也會使用這個模型,因此可能已經存在。

如要查看模型是否可供使用,請呼叫非同步 translation.canDetect() 函式。可能會收到三種回應:

  • 'no':目前的瀏覽器支援 Language Detector API,但目前無法使用。例如,因為可用磁碟空間不足,無法下載模型。
  • 'readily':目前的瀏覽器支援 Language Detector API,可立即使用。
  • 'after-download':目前的瀏覽器支援 Language Detector API,但需要先下載模型。

如要觸發下載作業並將語言偵測器例項化,請呼叫非同步 translation.createDetector() 函式。如果 canDetect() 的回應為 'after-download',建議您監聽下載進度,以便在下載作業耗時時通知使用者。

以下範例說明如何初始化語言偵測器。

const canDetect = await translation.canDetect();
let detector;
if (canDetect === 'no') {
  // The language detector isn't usable.
  return;
}
if (canDetect === 'readily') {
  // The language detector can immediately be used.
  detector = await translation.createDetector();
} else {
  // The language detector can be used after model download.
  detector = await translation.createDetector();
  detector.addEventListener('downloadprogress', (e) => {
 console.log(e.loaded, e.total);
  });
  await detector.ready;
}

執行語言偵測器

Language Detector API 會使用排名模型,判斷特定文字內容最有可能使用哪種語言。排名是一種機器學習,目的是為項目清單排序。在本例中,Language Detector API 會依據語言的可能性高低進行排序。

detect() 函式可以傳回第一個結果 (最可能的答案),或是根據信心程度對排序候選項目進行迴迭。系統會以 {detectedLanguage, confidence} 物件清單的形式傳回。confidence 等級的值介於 0.0 (最低可信度) 和 1.0 (最高可信度) 之間。

const someUserText \= 'Hallo und herzlich willkommen\!';
const results \= await detector.detect(someUserText);
for (const result of results) {
  // Show the full list of potential languages with their likelihood, ranked
  // from most likely to least likely. In practice, one would pick the top
  // language(s) that cross a high enough threshold.
  console.log(result.detectedLanguage, result.confidence);
}
// (Output truncated):
// de 0.9993835687637329
// en 0.00038279531872831285
// nl 0.00010798392031574622
// ...

示範

示範中預覽 Language Detector API。在文字方塊中輸入不同語言的文字。

標準化作業

相關提案獲得足夠支持後,Language Detector API 已移至 W3C Web Incubator Community Group。這個 API 是更大型的 Translation API 提案的一部分。

Chrome 團隊向 W3C 技術架構小組索取意見回饋,並請 MozillaWebKit 提供標準立場。

提供意見

如果您對 Chrome 的實作方式有任何意見,請回報 Chromium 錯誤。如要針對 Language Detector API 的 API 形狀提供意見,請在 Translation API GitHub 存放區中對現有問題發表意見,或開啟新的問題。