La API de traducción de voz de IA generativa de ML Kit permite la traducción en tiempo real e integrada en el dispositivo de audio hablado en varios idiomas. Con los modelos de voz de IA generativa de Google, la API de Speech Translation ofrece traducción de voz a texto de baja latencia, alta calidad y centrada en la privacidad sin necesidad de procesamiento de audio basado en la nube.
Funciones clave
- Administra todo el proceso a través de una sola API, desde verificar si un modelo está listo, iniciar las descargas y ejecutar la traducción real. Consulta Integra la API de Speech Translation para obtener detalles de la implementación.
- Procesa audio en vivo desde el micrófono o archivos, y recibe resultados de texto intermedios y finales con Kotlin Flow para obtener actualizaciones en tiempo real.
- Realizar todas las tareas de análisis y traducción de audio integrado en el dispositivo para mantener la privacidad del usuario y admitir la funcionalidad sin conexión completa.
Resultados de ejemplo
| Audio de entrada | Idioma de origen | Idioma de destino | Texto de salida |
|---|---|---|---|
| Audio hablado: "Hola, ¿cómo estás?" | Inglés (en-US) | Español (es-ES) | "Hola, ¿cómo estás hoy?" |
| Audio hablado: "こんにちは、はじめまして" | Japonés (ja-JP) | Inglés (en-US) | "Hola, un gusto conocerte" |
Requisitos previos
Para usar la API de Speech Translation, debes cumplir con los siguientes requisitos:
- Debes tener un dispositivo compatible.
- Tu dispositivo debe tener la versión beta más reciente (
versionCode 210665810o posterior) de la app de Reconocimiento y síntesis de voz (com.google.android.tts) de Google. - Tu dispositivo debe tener al menos 4.0 GB de almacenamiento libre para descargar Gemini Nano V4.
Comenzar
Para comenzar, agrega la dependencia de la traducción de voz del ML Kit al archivo build.gradle.kts (o build.gradle) de nivel de módulo:
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'
}
Integra la API de Speech Translation
Para integrar el SDK de Speech Translation en tu app, completa los siguientes pasos:
- Inicializa un cliente
SpeechTranslatorcompilando un objeto de configuraciónSpeechTranslatorOptions. - Usa la API de Kotlin Flow para verificar la disponibilidad de las funciones y administrar las descargas de modelos.
- Crea un objeto
SpeechTranslatorRequestpara transmitir paquetes de datosTranslationAudioy observar los resultados de la traducción en tiempo real. El audio de entrada debe estar en formato PCM de 16 bits, 16 kHz y mono.
// 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()
Dispositivos compatibles
Para usar la API de Speech Translation, tu dispositivo debe tener un acelerador neuronal de alto rendimiento (TPU o NPU) integrado en su chipset. En la siguiente tabla, se enumeran algunos de los principales modelos de teléfonos compatibles, pero ten en cuenta que, para verificar la compatibilidad, debes consultar el chipset de tu dispositivo.
| Familia de chipsets | IDs de chipsets | Ejemplo de dispositivos | Versión mínima del SO |
|---|---|---|---|
| Google Tensor | Google Tensor G5, G6 y versiones posteriores |
|
Android 14 |
| Qualcomm Snapdragon | SM8650, SM8750, SM8850, SM8845, SM8975, SM8950, SM8735 |
|
Android 15 |
| MediaTek | Dimensity 9300, 9400+ |
|
Android 15 |
Problemas comunes de configuración
Las APIs de IA generativa de ML Kit dependen de la app de AICore de Android para acceder a Gemini Nano. Cuando un dispositivo se acaba de configurar (incluido el restablecimiento) o la app de AICore se acaba de restablecer (p.ej., se borraron los datos, se desinstaló y se reinstaló), es posible que la app de AICore no tenga suficiente tiempo para finalizar la inicialización (incluida la descarga de las configuraciones más recientes del servidor). Como resultado, es posible que las APIs de IA generativa de ML Kit no funcionen como se espera. Estos son los mensajes de error de configuración comunes que podrías ver y cómo solucionarlos:
| Ejemplo de mensaje de error | Cómo manejar esta situación |
| AICore falló con el tipo de error 4-CONNECTION_ERROR y el código de error 601-BINDING_FAILURE: No se pudo vincular el servicio de AICore. | Esto puede suceder cuando instalas la app con las APIs de IA generativa de ML Kit inmediatamente después de configurar el dispositivo o cuando se desinstala AICore después de instalar la app. Actualizar la app de AICore y, luego, reinstalar tu app debería solucionar el problema. |
| AICore falló con el tipo de error 3-PREPARATION_ERROR y el código de error 606-FEATURE_NOT_FOUND: La función ... no está disponible. |
Esto puede suceder cuando AICore no terminó de descargar los parámetros de configuración más recientes. Cuando el dispositivo está conectado a Internet, suele tardar entre unos minutos y unas horas en actualizarse. Reiniciar el dispositivo puede acelerar la actualización.
Ten en cuenta que, si el bootloader del dispositivo está desbloqueado, también verás este error, ya que esta API no admite dispositivos con bootloaders desbloqueados. |
| AICore falló con el tipo de error 1-DOWNLOAD_ERROR y el código de error 0-UNKNOWN: La función ... falló con el estado de error 0 y el error esz: UNAVAILABLE: No se puede resolver el host ... | Mantén la conexión de red, espera unos minutos y vuelve a intentarlo. |