Распознавание языка с помощью встроенного ИИ

Дата публикации: 24 сентября 2024 г. Последнее обновление: 20 мая 2025 г.

Browser Support

  • Chrome: 138.
  • Edge: 148.
  • Firefox: not supported.
  • Safari: not supported.

Source

Прежде чем переводить текст с одного языка на другой, необходимо определить, на каком языке написан исходный текст. Раньше для перевода требовалось загрузить текст в облачный сервис, выполнить перевод на сервере, а затем скачать результаты.

Language Detector API работает на стороне клиента, что позволяет защитить конфиденциальность пользователей. Для этого можно использовать специальную библиотеку, но на ее скачивание потребуются дополнительные ресурсы.

Когда использовать распознавание языка

Language Detector API в основном полезен в следующих сценариях:

  • Определяет язык вводимого текста, чтобы его можно было перевести.
  • Определяет язык введенного текста, чтобы загрузить правильную модель для задач, связанных с языком, например для обнаружения токсичности.
  • Определять язык введенного текста, чтобы правильно его помечать, например в социальных сетях.
  • Определяйте язык введенного текста, чтобы соответствующим образом настраивать интерфейс приложения. Например, на бельгийском сайте можно показывать интерфейс только пользователям, говорящим по-французски.

Начать

Language Detector API и Translator API работают в Chrome на компьютерах. Эти API не работают на мобильных устройствах.

Запустите обнаружение функций, чтобы проверить, поддерживает ли браузер Language Detector API.

if ('LanguageDetector' in self) {
  // The Language Detector API is available.
}

Скачивание модели

Определение языка зависит от модели, которая настроена для конкретной задачи определения языков. Хотя API встроен в браузер, модель скачивается по запросу, когда сайт впервые пытается использовать API. В Chrome эта модель очень мала по сравнению с другими. Возможно, она уже установлена, так как используется другими функциями Chrome.

Чтобы определить, готова ли модель к использованию, вызовите асинхронную функцию LanguageDetector.availability(). Если ответ на availability() был downloadable, отслеживайте ход скачивания и сообщайте о нем пользователю, так как скачивание может занять некоторое время.

Чтобы запустить скачивание и создать экземпляр детектора языка, проверьте активацию пользователя. Затем вызовите асинхронную функцию LanguageDetector.create().

const detector = await LanguageDetector.create({
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  },
});

Запустите детектор языка

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

Попробуйте Language Detector API в нашей песочнице API. Введите текст на разных языках в текстовой области.

Правила в отношении разрешений, iframe и веб-воркеры

По умолчанию Language Detector API доступен только окнам верхнего уровня и их фреймам iframe из того же источника. Доступ к API можно делегировать междоменным фреймам iframe с помощью атрибута Permission Policy allow="":

<!--
  The hosting site at https://main.example.com can grant a cross-origin iframe
  at https://cross-origin.example.com/ access to the Language Detector API by
  setting the `allow="language-detector"` attribute.
-->
<iframe src="https://cross-origin.example.com/" allow="language-detector"></iframe>

Language Detector API недоступен в веб-воркерах. Это связано со сложностью определения ответственного документа для каждого воркера, чтобы проверить соответствие правилам Permissions-Policy.

Отправьте отзыв

Мы хотим увидеть, что вы создаете с помощью Language Detector API. Поделитесь своими сайтами и веб-приложениями с нами в X, YouTube и LinkedIn.

Если у вас есть отзывы о реализации в Chrome, сообщите об ошибке в Chromium.

Присоединяйтесь к программе предварительной версии, чтобы раньше других попробовать новые встроенные API на основе ИИ и участвовать в обсуждениях в списке рассылки.