Опубликовано: 13 ноября 2024 г.
Используйте API переводчика в Chrome для перевода текста в браузере, используя локальные модели искусственного интеллекта.
Ваш веб-сайт уже может предлагать контент на нескольких языках, чтобы сделать его доступным для глобальной аудитории. С помощью Translator API пользователи могут вносить информацию на своем родном языке. Например, пользователи могут участвовать в чатах поддержки на своем родном языке, а ваш сайт может перевести их на язык, который используют ваши агенты поддержки, прежде чем они покинут устройство пользователя. Это обеспечивает плавный, быстрый и инклюзивный опыт для всех пользователей.
Для перевода контента в Интернете обычно требуется использование облачного сервиса. Сначала исходный контент загружается на сервер, который выполняет перевод на целевой язык, затем полученный текст загружается и возвращается пользователю. Запустив перевод на клиенте, вы экономите время, необходимое на поездки по серверу, и затраты на хостинг службы перевода.
Доступность
- Присоединяйтесь к пробной версии Translator API Origin , работающей в Chrome 131–137. Пробные версии Origin включают эту функцию для всех пользователей вашего источника в Chrome.
- Следите за нашей реализацией в ChromeStatus .
- Предложение Translator API открыто для обсуждения .
- Присоединяйтесь к программе ранней предварительной версии, чтобы заранее ознакомиться с новыми встроенными API-интерфейсами искусственного интеллекта и получить доступ к обсуждению в нашем списке рассылки.
Хотя выбранный целевой язык всегда известен, в некоторых ситуациях исходный язык может быть неизвестен, например, в случае с контентом, созданным пользователем. В таких случаях предложение Translator API включает в себя как Translator API, так и API Language Detector , которые также доступны в пробной версии Origin . Подпишитесь на обе пробные версии Origin, чтобы использовать эти API вместе.
Зарегистрируйтесь на пробную версию Origin
Чтобы начать использовать API переводчика, выполните следующие действия:
- Примите политику Google в отношении запрещенного использования генеративного искусственного интеллекта .
- Перейдите к пробной версии Translator API .
- Нажмите «Зарегистрироваться» и заполните форму.
- В поле «Происхождение веб-сайта » укажите идентификатор источника или расширения:
chrome-extension://YOUR_EXTENSION_ID
.
- В поле «Происхождение веб-сайта » укажите идентификатор источника или расширения:
- Чтобы отправить заявку, нажмите «Зарегистрироваться» .
- Скопируйте предоставленный токен и добавьте его на каждую веб-страницу в вашем источнике или файл вашего расширения, для которого вы хотите включить пробную версию.
- Если вы создаете расширение, следуйте инструкциям по пробной версии источника расширений.
- Начните использовать API переводчика .
Узнайте больше о том, как начать работу с пробными версиями Origin .
Добавить поддержку локального хоста
Чтобы получить доступ к API-интерфейсу переводчика на localhost
во время пробной версии Origin, вам необходимо обновить Chrome до последней версии. Затем выполните следующие действия:
- Перейдите на
chrome://flags/#optimization-guide-on-device-model
. - Выберите «Включено BypassPerfRequirement» . При этом пропускаются проверки производительности и требования к VRAM, что может помешать загрузке Gemini Nano на ваше устройство.
- Перейдите в
chrome://flags/#translation-api
. - Выберите Включено .
- Чтобы попробовать больше языковых пар, выберите «Включено без ограничения языкового пакета» .
- Нажмите «Перезапустить» или перезапустите Chrome.
Используйте API переводчика
Чтобы определить, поддерживается ли API переводчика, запустите следующий фрагмент определения функции.
if ('translation' in self && 'createTranslator' in self.translation) {
// The Translator API is supported.
}
Проверьте поддержку языковой пары
Перевод осуществляется с помощью языковых пакетов, загружаемых по требованию. Языковой пакет похож на словарь для данного языка. Эти пакеты объединены с асинхронной функцией canTranslate()
, которая позволяет определить, поддерживается ли языковая пара.
Для функции canTranslate()
требуется параметр options
с двумя полями:
-
sourceLanguage
: текущий язык текста. -
targetLanguage
: окончательный язык, на который должен быть переведен текст.
Используйте короткие коды языка BCP 47 в качестве строк. Например, 'es'
для испанского или 'fr'
для французского.
await translation.canTranslate({
sourceLanguage: 'en',
targetLanguage: 'fr',
});
// 'readily'
Функция canTranslate()
может возвращать любой из следующих результатов:
-
no
: этот браузер не может выполнить перевод по запросу. -
readily
: браузер может переводить по запросу. -
after-download
: браузер может выполнить перевод, но только после загрузки соответствующей модели или языковых пакетов.
Вы можете прослушивать ход загрузки, используя событие downloadprogress
:
translator.ondownloadprogress = progressEvent => {
updateDownloadProgressBar(progressEvent.loaded, progressEvent.total);
};
Если загрузка не удалась, события downloadprogress
перестают генерироваться и обещание ready
отклоняется.
Создайте и запустите переводчик
Чтобы создать переводчик, вызовите асинхронную функцию translation.createTranslator()
. Как и canTranslate()
, для него требуется параметр options с двумя полями: одно для sourceLanguage
и одно для targetLanguage
.
// Create a translator that translates from English to French.
const translator = await self.translation.createTranslator({
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 ?"
Ограничения в исследовании происхождения
Во время исходной пробной версии применяются следующие ограничения.
Поддерживаемые языковые пары
В настоящее время для перевода можно загрузить до трех языковых пакетов. Мы стремимся расширить диапазон поддерживаемых языков в будущих выпусках, сохраняя при этом высокие стандарты конфиденциальности пользователей. Вы можете проверить, поддерживается ли нужная вам языковая пара, с помощью функции canTranslate()
.
Вполне возможно, что для снятия отпечатков пальцев могут использоваться определенные, менее часто используемые языковые пары. Например, чаще осуществляется перевод между английским и испанским языками, чем между менее распространенными языками, такими как гэльский и каталанский. Менее распространенную языковую пару можно рассматривать как точку данных для идентификации пользователя.
Во время пробной версии мы ограничиваем количество потенциальных переводимых языковых пар, чтобы защитить конфиденциальность пользователей. Языковые пары должны соответствовать следующим критериям:
- И исходный, и целевой язык установлены в качестве предпочтительных языков в Chrome.
- Или один из языков установлен в качестве предпочтительного в Chrome, а другой входит в число следующих популярных языков :
- английский (
en
) - Мандаринский китайский (
zh
; упрощенный) или тайваньский мандаринский (zh-Hant
; традиционный) - японский (
ja
) - Португальский (
pt
) - Русский (
ru
) - Испанский (
es
) - турецкий (
tr
) - Хинди (
hi
) - Вьетнамский (
vi
) - Бенгальский (
bn
)
- английский (
Обход языковых ограничений для локального тестирования
Для локального прототипирования вы можете обойти эти проверки, запустив Chrome с параметром командной строки --disable-features=TranslationAPIAcceptLanguagesCheck
. Либо установите chrome://flags/#translation-api
значение Включить без ограничения языкового пакета .
Посетите chrome://on-device-translation-internals/
чтобы вручную установить и удалить языковые пакеты.
Последовательные переводы
Переводы обрабатываются последовательно. Если вы отправляете на перевод большие объемы текста, последующие переводы блокируются до завершения предыдущих.
Для наилучшего реагирования на ваши запросы на перевод объедините их вместе и рассмотрите возможность отображения интерфейса загрузки , например счетчика, чтобы сообщить о том, что перевод продолжается.
Доступность веб-работника
Во время пробной версии Origin API-интерфейс Translator поддерживается только из основного потока. Мы намерены поддерживать его в веб-воркерах, как только API станет широко доступен.
Демо
Вы можете увидеть API переводчика, используемый в сочетании с API детектора языка, на игровой площадке API переводчика и детектора языка .
Усилия по стандартизации
Мы работаем над стандартизацией API-интерфейса переводчика, чтобы обеспечить кросс-браузерную совместимость.
Наше предложение API получило поддержку сообщества и было передано в группу сообщества W3C Web Incubator для дальнейшего обсуждения. Команда Chrome запросила отзыв у группы технической архитектуры W3C и попросила Mozilla и WebKit высказать свои позиции по стандартам.
Участвуйте и делитесь отзывами
Начните тестирование API-интерфейса переводчика прямо сейчас, присоединившись к пробной версии Origin и поделитесь своими отзывами. Ваш вклад может напрямую повлиять на то, как мы создаем и реализуем будущие версии этого API, а также всех встроенных API-интерфейсов искусственного интеллекта.
- Чтобы получить отзыв о реализации Chrome, отправьте отчет об ошибке или запросите новую функцию .
- Обсудите дизайн API переводчика на GitHub, комментируя существующую проблему или открыв новую.
- Примите участие в разработке стандартов, присоединившись к группе сообщества Web Incubator .