内置 AI 的语言检测

发布时间:2024 年 9 月 24 日;最后更新时间:2025 年 5 月 20 日

解说 Web 扩展程序 Chrome 状态 意向
GitHub 在标志后面 Chrome 137 Beta 版 在标志后面 Chrome 137 Beta 版 视图 发货意图

在将文本从一种语言翻译成另一种语言之前,您必须先确定给定文本所使用的语言。以前,翻译需要将文本上传到云服务,在服务器上执行翻译,然后下载结果。

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 技术架构组征求了反馈,并询问了 MozillaWebKit 的标准立场。

分享您的反馈

我们希望了解您使用 Language Detector API 构建了什么。欢迎通过 XYouTubeLinkedIn 与我们分享您的网站和 Web 应用。

如果您对 Chrome 的实现有任何反馈,请提交 Chromium bug