API GenAI Speech Translation

L'API ML Kit GenAI Speech Translation permet de traduire en temps réel et sur l'appareil des contenus audio parlés dans différentes langues. Grâce aux modèles vocaux d'IA générative de Google, l'API Speech Translation offre une traduction par reconnaissance vocale à faible latence, de haute qualité et axée sur la confidentialité, sans nécessiter de traitement audio dans le cloud.

Capacités clés

  • Gérez l'ensemble du processus via une seule API, de la vérification de la disponibilité d'un modèle au lancement des téléchargements, en passant par l'exécution de la traduction proprement dite. Pour en savoir plus sur l'implémentation, consultez Intégrer l'API Speech Translation.
  • Traitez l'audio en direct depuis le micro ou des fichiers, et recevez des résultats textuels intermédiaires et finaux à l'aide de Kotlin Flow pour des mises à jour en temps réel.
  • Effectuer toutes les tâches d'analyse et de traduction audio sur l'appareil pour préserver la confidentialité des utilisateurs et assurer une fonctionnalité hors connexion complète.

Exemples de résultats

Audio d'entrée Langue source Langue cible Texte de sortie
Audio parlé : "Hello, how are you today?" English (en-US) Spanish (es-ES) "Hola, ¿cómo estás hoy?"
Audio parlé : "こんにちは、はじめまして" Japanese (ja-JP) English (en-US) "Bonjour, enchanté"

Prérequis

Pour utiliser l'API Speech Translation, vous devez remplir les conditions suivantes :

  • Vous devez disposer d'un appareil compatible.
  • Votre appareil doit disposer de la dernière version bêta (versionCode 210665810 ou ultérieure) de l'application Reconnaissance et synthèse vocales (com.google.android.tts) de Google.
  • Votre appareil doit disposer d'au moins 4 Go d'espace de stockage disponible pour télécharger Gemini Nano V4.

Commencer

Pour commencer, ajoutez la dépendance ML Kit Speech Translation au fichier build.gradle.kts (ou build.gradle) au niveau du module :

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'
}

Intégrer l'API Speech Translation

Pour intégrer le SDK Speech Translation à votre application, procédez comme suit :

  1. Initialisez un client SpeechTranslator en créant un objet de configuration SpeechTranslatorOptions.
  2. Utilisez l'API Kotlin Flow pour vérifier la disponibilité des fonctionnalités et gérer les téléchargements de modèles.
  3. Créez un objet SpeechTranslatorRequest pour diffuser des paquets de données TranslationAudio et observer les résultats de la traduction en temps réel. L'audio d'entrée doit être au format PCM 16 bits, 16 kHz, 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()

Appareils compatibles

Pour utiliser l'API Speech Translation, votre appareil doit être équipé d'un accélérateur neuronal hautes performances (TPU/NPU) intégré à son chipset. Le tableau suivant liste certains des principaux modèles de téléphones compatibles, mais n'oubliez pas que pour vérifier la compatibilité, vous devez vérifier le chipset de votre appareil.

Famille de chipsets ID de chipset Exemples d'appareils Version minimale de l'OS
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

Problèmes de configuration courants

Les API d'IA générative ML Kit s'appuient sur l'application Android AICore pour accéder à Gemini Nano. Lorsqu'un appareil vient d'être configuré (y compris réinitialisé) ou que l'application AICore vient d'être réinitialisée (par exemple, effacement des données, désinstallation puis réinstallation), l'application AICore peut ne pas avoir assez de temps pour terminer l'initialisation (y compris le téléchargement des dernières configurations depuis le serveur). Par conséquent, les API GenAI de ML Kit risquent de ne pas fonctionner comme prévu. Voici les messages d'erreur de configuration courants que vous pouvez rencontrer et comment les résoudre :

Exemple de message d'erreur Comment répondre à une telle objection
Échec d'AICore avec le type d'erreur 4-CONNECTION_ERROR et le code d'erreur 601-BINDING_FAILURE : échec de la liaison du service AICore. Cela peut se produire lorsque vous installez l'application à l'aide des API GenAI de ML Kit immédiatement après la configuration de l'appareil ou lorsque AICore est désinstallé après l'installation de votre application. Mettre à jour l'application AICore, puis réinstaller votre application devrait résoudre le problème.
AICore a échoué avec le type d'erreur 3-PREPARATION_ERROR et le code d'erreur 606-FEATURE_NOT_FOUND : la fonctionnalité ... n'est pas disponible. Cela peut se produire lorsque AICore n'a pas fini de télécharger les dernières configurations. Lorsque l'appareil est connecté à Internet, la mise à jour prend généralement de quelques minutes à quelques heures. Redémarrer l'appareil peut accélérer la mise à jour.

Notez que si le bootloader de l'appareil est déverrouillé, vous verrez également cette erreur. Cette API n'est pas compatible avec les appareils dont le bootloader est déverrouillé.
AICore a échoué avec le type d'erreur 1-DOWNLOAD_ERROR et le code d'erreur 0-UNKNOWN : la fonctionnalité ... a échoué avec l'état d'échec 0 et l'erreur esz : UNAVAILABLE : Impossible de résoudre l'hôte ... Maintenez la connexion réseau, patientez quelques minutes, puis réessayez.