發布日期:2024 年 9 月 24 日,上次更新時間:2025 年 5 月 20 日
說明 | 網頁 | 額外資訊 | Chrome 狀態 | Intent |
---|---|---|---|---|
MDN | 查看 | 出貨意願 |
如要將文字從一種語言翻譯成另一種語言,請先判斷文字使用的語言。先前翻譯時,必須將文字上傳至雲端服務、在伺服器上執行翻譯,然後下載結果。
Language Detector API 在用戶端運作,因此可保護使用者隱私。雖然可以運送執行這項作業的特定程式庫,但需要額外資源才能下載。
使用語言偵測功能的時機
語言偵測器 API 主要適用於下列情況:
- 判斷輸入文字的語言,以便翻譯。
- 判斷輸入文字的語言,以便載入正確的模型來執行特定語言的工作,例如偵測惡意言論。
- 判斷輸入文字的語言,以便正確標示,例如在線上社群網站中。
- 判斷輸入文字的語言,以便相應調整應用程式介面。舉例來說,在比利時網站上,只向說法文的使用者顯示相關介面。
開始使用
Chrome 138 穩定版已推出 Language Detector API。執行功能偵測,查看瀏覽器是否支援 Language Detector API。
if ('LanguageDetector' in self) {
// The Language Detector API is available.
}
查看硬體需求
開發人員和使用者在 Chrome 中使用這些 API 運作功能時,必須遵守下列規定。其他瀏覽器的操作規定可能不同。
語言偵測器和翻譯器 API 適用於電腦版 Chrome。這些 API 不適用於行動裝置。在 Chrome 中使用 Prompt API、Summarizer API、Writer API 和 Rewriter API 時,須符合下列條件:
- 作業系統:Windows 10 或 11;macOS 13 以上版本 (Ventura 和後續版本);或 Linux。目前 Android 版、iOS 版和 ChromeOS 版 Chrome 尚未支援使用 Gemini Nano 的 API。
- 儲存空間:包含 Chrome 設定檔的磁碟區至少要有 22 GB 的可用空間。
- GPU:視訊記憶體必須超過 4 GB。
- 網路:無限量數據或不計量的連線。
瀏覽器更新模型時,Gemini Nano 的確切大小可能會有所不同。如要判斷目前大小,請前往 chrome://on-device-internals
並前往「模型狀態」。開啟列出的「檔案路徑」,判斷模型大小。
下載模型
語言偵測功能會使用經過微調的模型,專門用於偵測語言。雖然 API 是在瀏覽器中建構,但模型會在網站首次嘗試使用 API 時,依需求下載。相較於其他模型,這個模型在 Chrome 中非常小。這個模型也用於其他 Chrome 功能,因此可能已存在。
如要查看模型是否已可使用,請呼叫非同步 LanguageDetector.availability()
函式,並檢查產生的 Promise。可能的回覆有三種:
"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 技術架構小組徵求意見,並請 Mozilla 和 WebKit 提供標準立場。
提供意見
我們很想瞭解您使用 Language Detector API 打造的內容。歡迎在 X、YouTube 和 LinkedIn 上分享您的網站和網路應用程式。
如要對 Chrome 的實作方式提供意見,請回報 Chromium 錯誤。