利用 AI 进行客户端翻译

Kenji Baheux
Kenji Baheux
Alexandra Klepper
Alexandra Klepper

发布时间:2024 年 5 月 16 日,上次更新时间:2024 年 11 月 13 日

说明类视频 Web 扩展程序 Chrome 状态 目的
MDN Chrome 138 Chrome 138 查看 发布意向

将业务拓展到国际市场可能成本高昂。市场越多,可能意味着需要支持的语言越多,而语言越多,可能会导致互动功能和流程出现问题,例如售后支持聊天。 如果您的公司只有讲英语的支持代理,那么非母语人士可能很难准确解释他们遇到的问题。

我们如何使用 AI 来改善多种语言用户的体验,同时最大限度地降低风险,并确认是否值得投资于讲其他语言的支持代理?

有些用户尝试使用浏览器的内置网页翻译功能或第三方工具来克服语言障碍。但对于售后支持聊天等互动功能,用户体验并不理想。

对于集成翻译功能的聊天工具,务必尽量减少延迟。 通过在设备上处理语言,您可以在用户提交消息之前实时翻译。

也就是说,在使用自动化工具弥合语言差距时,透明度至关重要。请注意,在对话开始之前,请明确说明您已实现允许此翻译的 AI 工具。这样可以设定预期,并有助于避免翻译不完美时出现尴尬的情况。链接到您的政策以了解更多信息。

我们正在开发客户端 Translator API ,其中内置了 Chrome 模型。

查看硬件要求

开发者和在 Chrome 中使用这些 API 运行功能的用户需要满足以下要求。其他浏览器可能有不同的运行要求。

Language Detector 和 Translator APIs 可在桌面版 Chrome 中运行。这些 API 无法在移动设备上运行。

在满足以下条件时,Prompt API、Summarizer API、Writer API、Rewriter API 和 Proofreader API 可在 Chrome 中运行:

  • 操作系统:Windows 10 或 11;macOS 13+(Ventura 及更高版本); Linux;或 Chromebook Plus 设备上的 ChromeOS(平台 16389.0.0 及更高版本)。 Chromebook Plus 设备。 使用基础模型的 API 尚不支持 Android 版 Chrome、iOS 版 Chrome 和非 Chromebook Plus 设备上的 ChromeOS 。
  • 存储空间:包含 Chrome 配置文件的卷上至少有 22 GB 的可用空间。
  • GPU 或 CPU:内置模型可以使用 GPU 或 CPU 运行。
    • GPU:VRAM 严格超过 4 GB。
    • CPU:RAM 至少 16 GB,CPU 核心数至少 4 个。
    • 注意:使用音频输入的 Prompt API 需要 GPU。
  • 网络:无限数据或不按流量计费的连接。

Gemini Nano 的确切大小可能会随着浏览器更新模型而有所不同。如需确定当前大小,请访问 chrome://on-device-internals。

演示聊天

我们构建了一个客户支持聊天功能,用户可以使用自己的首选语言输入,支持代理可以实时翻译。

使用 Translator API

如需确定是否支持 Translator API,请运行以下功能检测代码段。

if ('Translator' in self) {
  // The Translator API is supported.
}

检查语言对支持情况

翻译通过按需下载的语言包进行管理。语言包就像给定语言的字典。

  • sourceLanguage:文本的当前语言。
  • targetLanguage:文本应翻译成的最终语言。

使用 BCP 47 语言短代码作为 字符串。例如,'es' 表示西班牙语,'fr' 表示法语。

确定 模型可用性 并监听 downloadprogress:

const translator = await Translator.create({
  sourceLanguage: 'es',
  targetLanguage: 'fr',
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  },
});

如果下载失败,downloadprogress 事件将停止,并且 ready promise 将被拒绝。

创建并运行翻译器

如需创建翻译器,请调用异步 create() 函数。它需要一个包含两个字段的选项参数,一个用于 sourceLanguage,另一个用于 targetLanguage。

// Create a translator that translates from English to French.
const translator = await Translator.create({
  sourceLanguage: 'en',
  targetLanguage: 'fr',
});

获得翻译器后,调用异步 translate() 函数来翻译文本。

await translator.translate('Where is the next bus stop, please?');
// "Où est le prochain arrêt de bus, s'il vous plaît ?"

后续步骤

我们希望了解您使用 Translator API 构建的内容。请在 X、YouTube 和 LinkedIn 上与我们分享您的 网站和 Web 应用。

您可以注册抢先体验计划 使用本地原型测试此 API 和其他 API。