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

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

Browser Support

  • Chrome: 138.
  • Edge: не поддерживается.
  • Firefox: не поддерживается.
  • Safari: не поддерживается.

Source

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

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

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

API для определения языка в первую очередь полезен в следующих сценариях:

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

Начать

Ознакомьтесь с требованиями к оборудованию.

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

API для определения языка и перевода работают в Chrome на настольных компьютерах. На мобильных устройствах эти API не работают.

API-интерфейсы Prompt , Summarizer , Writer , Rewriter и Proofreader работают в Chrome при соблюдении следующих условий:

  • Операционная система : Windows 10 или 11; macOS 13+ (Ventura и более поздние версии); Linux; или ChromeOS (начиная с платформы 16389.0.0 и далее) на устройствах Chromebook Plus . Chrome для Android, iOS и ChromeOS на устройствах, отличных от Chromebook Plus, пока не поддерживаются API, использующими Gemini Nano.
  • Место на диске : не менее 22 ГБ свободного места на томе, где находится ваш профиль Chrome.
  • GPU или CPU : Встроенные модели могут работать как с GPU, так и с CPU.
    • Графический процессор : строго более 4 ГБ видеопамяти.
    • Процессор : 16 ГБ оперативной памяти или больше и 4 ядра или больше.
    • Примечание : API Prompt с аудиовходом требует наличия графического процессора.
  • Сеть : Безлимитный трафик или безлимитное подключение.

Точный размер Gemini Nano может измениться после обновления браузером модели. Чтобы узнать текущий размер, посетите chrome://on-device-internals .

Запустите проверку функциональности, чтобы узнать, поддерживает ли браузер 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}%`);
    });
  },
});

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

API Language Detector использует модель ранжирования для определения наиболее вероятного языка, используемого в данном тексте. Ранжирование — это тип машинного обучения, цель которого — упорядочить список элементов. В данном случае API Language Detector ранжирует языки от наибольшей вероятности к наименьшей.

Функция 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 определения языка в нашей тестовой среде API . Введите текст, написанный на разных языках, в текстовое поле.

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

По умолчанию API определения языка доступен только окнам верхнего уровня и их iframe-элементам того же источника. Доступ к API можно делегировать iframe-элементам из других источников с помощью атрибута политики разрешений 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>

API для определения языка недоступен в Web Workers. Это связано со сложностью создания ответственного документа для каждого Workers для проверки статуса политики разрешений.

Поделитесь своим мнением.

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

Если у вас есть замечания по реализации в Chrome, создайте сообщение об ошибке в Chromium .

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