ML Kit GenAI Speech Translation API позволяет в реальном времени переводить голосовое аудио на разные языки прямо на устройстве. Используя модели генеративного искусственного интеллекта от Google, Speech Translation API обеспечивает высококачественное преобразование речи в текст с низкой задержкой и акцентом на конфиденциальность без необходимости облачной обработки аудио.
Основные возможности
- Управляйте всем процессом через один API: от проверки готовности модели и запуска скачивания до выполнения перевода. Подробную информацию вы найдете в статье Как интегрировать Speech Translation API.
- Обрабатывайте аудио в реальном времени с микрофона или из файлов и получайте промежуточные и окончательные текстовые результаты с помощью Kotlin Flow.
- Выполнять анализ и перевод аудио на устройстве, чтобы защитить конфиденциальность пользователей и обеспечить работу всех функций в офлайн-режиме.
Пример результатов
| Входной аудиосигнал | Язык оригинала | Язык перевода | Выходной текст |
|---|---|---|---|
| Голосовое аудио: "Здравствуйте, как ваши дела?" | Английский (en-US) | Испанский (es-ES) | "Hola, ¿cómo estás hoy?" |
| Голосовое аудио: "こんにちは、はじめまして" | Японский (ja-JP) | Английский (en-US) | "Привет! Рада знакомству!" |
Требования
Чтобы использовать Speech Translation API, необходимо выполнить следующие требования:
- У вас должно быть поддерживаемое устройство.
- На устройстве должна быть установлена последняя бета-версия (
versionCode 210665810или выше) приложения "Распознавание и синтез речи" (com.google.android.tts) от Google. - Чтобы скачать Gemini Nano V4, на устройстве должно быть не менее 4 ГБ свободного места.
Начать
Для начала добавьте зависимость ML Kit Speech Translation в файл build.gradle.kts (или build.gradle) на уровне модуля:
Kotlin
dependencies {
// ML Kit Base Infrastructure
implementation("com.google.mlkit:common:18.10.0")
// ML Kit GenAI Speech Translation SDK
implementation("com.google.mlkit:genai-speech-translation:1.0.0-alpha1")
}
Groovy
dependencies {
// ML Kit Base Infrastructure
implementation 'com.google.mlkit:common:18.10.0'
// ML Kit GenAI Speech Translation SDK
implementation 'com.google.mlkit:genai-speech-translation:1.0.0-alpha1'
}
Интегрируйте Speech Translation API
Чтобы интегрировать Speech Translation SDK в приложение, выполните следующие действия:
- Инициализируйте клиент
SpeechTranslator, создав объект конфигурацииSpeechTranslatorOptions. - Используйте Kotlin Flow API, чтобы проверить доступность функции и управлять скачиванием моделей.
- Создайте объект
SpeechTranslatorRequestдля потоковой передачи пакетов данныхTranslationAudioи наблюдайте за результатами перевода в реальном времени. Входной аудиофайл должен быть в формате PCM, 16 бит, 16 кГц, моно.
// Initialize the client.
val options = SpeechTranslatorOptions.Builder(Locale.US, Locale.CHINESE).build()
val client = SpeechTranslation.getClient(options)
// Check and download the on-device model.
if (client.checkStatus() == FeatureStatus.DOWNLOADABLE) {
client.download().collect { status ->
println("Download progress: $status")
}
}
// Construct a streaming request with raw audio (PCM 16-bit, 16kHz, mono).
val audioFlow = flow {
emit(TranslationAudio(Locale.US, rawAudioBytes))
}
val request = SpeechTranslatorRequest.Builder(audioFlow).build()
// Start a session and collect translated responses.
client.startTranslation(request).collect { response ->
when (response) {
is SpeechTranslatorResponse.Text -> {
println("Translation (${response.locale}): ${response.translatedText}")
}
is SpeechTranslatorResponse.ErrorResponse -> {
println("Translation failed: ${response.e.message}")
}
is SpeechTranslatorResponse.CompletedResponse -> {
println("Session closed.")
}
}
}
// Close the client when done.
client.close()
Поддерживаемые устройства
Чтобы использовать Speech Translation API, на вашем устройстве должен быть высокопроизводительный нейроускоритель (TPU/NPU), интегрированный в чипсет. В таблице ниже перечислены некоторые основные модели телефонов, которые поддерживаются. Однако помните, что для проверки поддержки вам следует проверить чипсет вашего устройства.
| Семейство чипсетов | Идентификаторы чипсетов | Примеры устройств | Минимальная версия ОС |
|---|---|---|---|
| Google Tensor | Google Tensor G5, G6+ |
|
Android 14 |
| Qualcomm Snapdragon | SM8650, SM8750, SM8850, SM8845, SM8975, SM8950, SM8735 |
|
Android 15 |
| MediaTek | Dimensity 9300, 9400+ |
|
Android 15 |
Распространенные проблемы с настройкой
Для доступа к Gemini Nano API ML Kit GenAI используют приложение Android AICore. Если устройство только что настроено (в том числе после сброса) или приложение AICore только что сброшено (например, очищены данные, приложение удалено и установлено заново), у AICore может не хватить времени на завершение инициализации (включая скачивание последних конфигураций с сервера). В результате API GenAI в ML Kit могут работать неправильно. Ниже приведены распространенные сообщения об ошибках настройки и способы их устранения.
| Пример сообщения об ошибке | Как устранить проблему |
| Ошибка AICore типа 4-CONNECTION_ERROR с кодом 601-BINDING_FAILURE: не удалось привязать сервис AICore. | Это может произойти, если вы установите приложение, использующее ML Kit GenAI API, сразу после настройки устройства или если AICore будет удален после установки приложения. Чтобы устранить проблему, обновите приложение AICore, а затем переустановите свое приложение. |
| Ошибка AICore типа 3-PREPARATION_ERROR с кодом ошибки 606-FEATURE_NOT_FOUND: функция ... недоступна. |
Это может произойти, если AICore не завершил скачивание последних конфигураций. Если устройство подключено к интернету, обновление обычно занимает от нескольких минут до нескольких часов. Чтобы ускорить обновление, перезапустите устройство.
Обратите внимание, что если загрузчик операционной системы устройства разблокирован, вы также увидите эту ошибку. API не поддерживает устройства с разблокированными загрузчиками операционной системы. |
| AICore failed with error type 1-DOWNLOAD_ERROR and error code 0-UNKNOWN: Feature ... failed with failure status 0 and error esz: UNAVAILABLE: Unable to resolve host ... | Сохраните сетевое подключение, подождите несколько минут и повторите попытку. |