发布时间:2024 年 9 月 24 日;最后更新时间:2025 年 5 月 20 日
解说 | Web | 扩展程序 | Chrome 状态 | 意向 |
---|---|---|---|---|
GitHub | 视图 | 发货意图 |
在将文本从一种语言翻译成另一种语言之前,您必须先确定给定文本所使用的语言。以前,翻译需要将文本上传到云服务,在服务器上执行翻译,然后下载结果。
Language Detector API 在客户端运行,这意味着您可以保护用户隐私。虽然可以发布执行此操作的特定库,但需要下载额外的资源。
何时使用语言检测
Language Detector API 主要适用于以下场景:
- 确定输入文本的语言,以便进行翻译。
- 确定输入文本的语言,以便加载适用于语言特定任务(例如毒性检测)的正确模型。
- 确定输入文本的语言,以便正确标记文本,例如在在线社交网络网站中。
- 确定输入文本的语言,以便相应地调整应用界面。例如,在比利时网站上,仅显示与法语用户相关的界面。
开始使用
从 Chrome 138 稳定版开始,您可以使用 Language Detector API。运行功能检测,以查看浏览器是否支持 Language Detector API。
if ('LanguageDetector' in self) {
// The Language Detector API is available.
}
查看硬件要求
语言检测器 API 和 Translator API 仅适用于桌面版 Chrome。
当满足以下条件时,Prompt API、Summarizer API、Writer API 和 Rewriter API 可在 Chrome 中正常运行:
- 操作系统:Windows 10 或 11;macOS 13 或更高版本(Ventura 及更高版本);或 Linux。由 Gemini Nano 支持的 API 尚不支持 Android 版、iOS 版和 ChromeOS 版 Chrome。
- 存储空间:包含 Chrome 个人资料的卷至少有 22 GB。
- GPU:VRAM 必须严格超过 4 GB。
- 网络:无限流量或不限流量的连接。
- GPU:VRAM 必须严格超过 4 GB。
- 网络:无限流量或不限流量的连接。
这些要求适用于您在开发过程中以及使用您构建的功能的用户。
模型下载
语言检测取决于针对检测语言的特定任务进行微调的模型。虽然该 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 Playground
在我们的 API Playground 中试用 Language Detector API。在文本区域中输入不同语言的文本。
标准化工作
Chrome 团队向 W3C 技术架构组征求了反馈,并询问了 Mozilla 和 WebKit 的标准立场。
分享您的反馈
我们希望了解您使用 Language Detector API 构建了什么。欢迎通过 X、YouTube 和 LinkedIn 与我们分享您的网站和 Web 应用。
如果您对 Chrome 的实现有任何反馈,请提交 Chromium bug。