發布日期:2024 年 9 月 24 日,上次更新日期:2024 年 12 月 10 日
將文字翻譯成另一種語言之前,您必須先判斷該文字使用的是哪種語言。先前,翻譯作業需要將文字上傳至雲端服務,在伺服器上執行翻譯,然後下載結果。
Language Detector API 會在裝置上進行推論,以改善隱私權說明。雖然可以提供可執行此操作的特定程式庫,但需要額外的資源才能下載。
開始使用
加入 Language Detector API 來源試用,在 Chrome 132 到 135 之間進行測試,以便在實際環境中透過真實使用者測試 API。原始試用版會為原始網域上的所有 Chrome 使用者啟用這項功能。
申請來源試用
如要開始使用 Language Detector API,請按照下列步驟操作:
- 確認已閱讀並瞭解 Google 的《生成式 AI 使用限制政策》。
- 前往 Language Detector API 來源試用。
- 按一下「註冊」並填寫表單。
- 在「Web origin」欄位中,提供來源或擴充功能 ID
chrome-extension://YOUR_EXTENSION_ID
。
- 在「Web origin」欄位中,提供來源或擴充功能 ID
- 按一下「註冊」即可提交。
- 複製提供的符記,並將其新增至您要啟用試用版的來源或擴充功能檔案中的每個網頁。
- 如果您要建構擴充功能,請按照擴充功能來源試用說明操作
- 開始使用 Language Detection API。
進一步瞭解如何開始使用來源試驗。
為 localhost 新增支援
如要在來源試用期間存取 localhost
上的 Language Detection API,您必須將 Chrome 更新至最新版本。接下來,請按照下列步驟進行:
- 前往
chrome://flags/#language-detection-api
。 - 選取「已啟用」。
- 按一下「重新啟動」或重新啟動 Chrome。
使用範例
Language Detector API 主要適用於下列情況:
- 判斷輸入文字的語言,以便進行翻譯。
- 判斷輸入文字的語言,以便為特定語言的任務 (例如惡意言論偵測) 載入正確的模型。
- 判斷輸入文字的語言,以便正確標示,例如在線上社群網站中。
- 判斷輸入文字的語言,以便調整應用程式介面。舉例來說,在比利時網站上,只顯示與法語使用者相關的介面。
使用 Language Detector API
Language Detector API 屬於 Translator API 大型系列的一部分。首先,請執行功能偵測,看看瀏覽器是否支援 Language Detector API。
if ('ai' in self && 'languageDetector' in self.ai)
// The Language Detector API is available.
}
下載模型
語言偵測功能取決於針對偵測語言的特定任務微調的模型。當 API 在瀏覽器中建構時,網站首次嘗試使用 API 時會依需求下載模型。在 Chrome 中,這個模型相較於其他模型來說非常小。其他 Chrome 功能會使用這個模型,因此可能已存在。
如要查看模型是否已準備就緒,請呼叫非同步 self.ai.languageDetector.availability()
函式,並檢查產生的承諾。可能會收到三種回應:
"unavailable"
:系統不支援要求的選項,或無法提示模型。"downloadable"
:系統支援這項要求,但您必須先下載其他內容,才能建立工作階段。這些下載作業可能包括語言模型或微調。"downloading"
:系統支援要求,且下載作業正在進行中,必須先完成下載作業才能建立工作階段。"available"
:系統支援要求,您可以建立工作階段。
如要觸發下載作業並將語言偵測器例項化,請呼叫非同步 self.ai.languageDetector.create()
函式。如果 availability()
的回應是 'downloadable'
或 'downloading'
,建議您監聽下載進度,以便在下載需要較長時間時通知使用者。
以下範例說明如何初始化語言偵測器。
const availability = await self.ai.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 self.ai.languageDetector.create();
} else {
// The language detector can be used after model download.
detector = await self.ai.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
// ...
示範
在示範中預覽 Language Detector API。在文字方塊中輸入不同語言的文字。
標準化作業
在相關提案獲得足夠支持後,Language Detector API 已移至 W3C Web Incubator Community Group。此 API 屬於更大型的 Translation API 提案。
Chrome 團隊向 W3C 技術架構小組索取意見回饋,並請 Mozilla 和 WebKit 提供標準立場。
提供意見
如果您對 Chrome 的實作方式有任何意見,請回報 Chromium 錯誤。如要針對 Language Detector API 的 API 形狀提供意見,請在 Translation API GitHub 存放區中對現有問題發表意見,或開啟新的問題。