GenAI Speech Translation API

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, необходимо выполнить следующие требования:

Начать

Для начала добавьте зависимость 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 в приложение, выполните следующие действия:

  1. Инициализируйте клиент SpeechTranslator, создав объект конфигурации SpeechTranslatorOptions.
  2. Используйте Kotlin Flow API, чтобы проверить доступность функции и управлять скачиванием моделей.
  3. Создайте объект 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+
  • Google Pixel 10, 11
Android 14
Qualcomm Snapdragon SM8650, SM8750, SM8850, SM8845, SM8975, SM8950, SM8735
  • Samsung Galaxy S25, S25+, S25 Ultra
  • Samsung Galaxy S26, S26+, S26 Ultra
  • Samsung Galaxy Z Fold7
  • Xiaomi 15
  • OnePlus 13
  • Motorola Razr 60 Ultra
Android 15
MediaTek Dimensity 9300, 9400+
  • OPPO Find X10, X10 Pro
  • Samsung Galaxy Tab S12
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 ... Сохраните сетевое подключение, подождите несколько минут и повторите попытку.