使用內建 AI 技術偵測語言

發布日期:2024 年 9 月 24 日,上次更新日期:2025 年 5 月 20 日

說明 網頁 額外資訊 Chrome 狀態 Intent
MDN Chrome 138 開發人員預覽版 Chrome 138 開發人員預覽版 查看 Intent to Ship

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

Language Detector API 會在用戶端運作,因此您可以保護使用者隱私。雖然可以提供可執行此操作的特定程式庫,但需要額外的資源才能下載。

使用語言偵測功能的時機

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

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

開始使用

語言偵測器 API 可在 Chrome 138 穩定版中使用。執行功能偵測,查看瀏覽器是否支援 Language Detector API。

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

查看硬體需求

Language Detector API 和 Translator API 僅適用於 Chrome 桌面版。

在 Chrome 中,Prompt API、Summarizer API、Writer API 和 Rewriter API 會在下列條件下運作:

  • 作業系統:Windows 10 或 11;macOS 13 以上版本 (Ventura 以上版本);或 Linux。由 Gemini Nano 支援的 API 尚未支援 Android、iOS 和 ChromeOS 版 Chrome。
  • 儲存空間:含有 Chrome 設定檔的磁碟區至少有 22 GB。
  • GPU:VRAM 必須大於 4 GB。
  • 網路:無限上網流量或無限上網連線。

這些規定適用於您在開發過程中,以及使用您建構的功能的使用者。

下載模型

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

如要查看模型是否已準備就緒,請呼叫非同步 LanguageDetector.availability() 函式,並檢查產生的承諾。可能會收到三種回應:

  • "unavailable":系統不支援要求的選項,或無法提示模型。
  • "downloadable":系統支援這項要求,但您必須先下載其他內容,才能建立工作階段。這些下載作業可能包括語言模型或微調。
  • "downloading":系統支援要求,且下載作業正在進行中,必須先完成下載作業才能建立工作階段。
  • "available":系統支援要求,您可以建立工作階段。

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

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

const availability = await LanguageDetector.availability();

let detector;
if (availability === 'unavailable') {
  // The language detector isn't usable.
  return;
}
if (availability === 'available') {
  // The language detector can immediately be used.
  detector = await LanguageDetector.create();
} else {
  // The language detector can be used after model download.
  detector = await LanguageDetector.create({
    monitor(m) {
      m.addEventListener('downloadprogress', (e) => {
        console.log(`Downloaded ${e.loaded * 100}%`);
      });
    },
  });
  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
// ...

API 遊樂場

API 遊樂場中試用 Language Detector API。在文字方塊中輸入不同語言的文字。

標準化作業

Chrome 團隊向 W3C 技術架構小組索取意見回饋,並向 MozillaWebKit 詢問他們的標準立場。

提供意見

我們想瞭解您使用 Language Detector API 建構的內容。在 XYouTubeLinkedIn 上與我們分享網站和網路應用程式。

如對 Chrome 的實作方式有任何意見,請回報 Chromium 錯誤