API GenAI Speech Translation

L'API ML Kit GenAI Speech Translation consente la traduzione on-device in tempo reale dell'audio parlato in varie lingue. Utilizzando i modelli vocali di AI generativa di Google, l'API Speech Translation offre una trascrizione tradotta a bassa latenza, di alta qualità e incentrata sulla privacy, senza richiedere l'elaborazione audio basata su cloud.

Funzionalità chiave

  • Gestisci l'intero processo tramite un'unica API, dalla verifica della disponibilità di un modello all'avvio dei download, fino all'esecuzione della traduzione effettiva. Per i dettagli sull'implementazione, consulta Integra l'API Speech Translation.
  • Elabora l'audio in tempo reale dal microfono o dai file e ricevi risultati di testo sia intermedi che finali utilizzando Kotlin Flow per gli aggiornamenti in tempo reale.
  • Eseguire tutte le attività di analisi e traduzione audio on-device per mantenere la privacy dell'utente e supportare la funzionalità offline completa.

Risultati di esempio

Audio di input Lingua di origine Lingua di destinazione Testo di output
Audio parlato: "Ciao, come stai oggi?" Inglese (en-US) Spagnolo (es-ES) "Hola, ¿cómo estás hoy?"
Audio parlato: "こんにちは、はじめまして" Giapponese (ja-JP) Inglese (en-US) "Ciao, piacere di conoscerti"

Prerequisiti

Per utilizzare l'API Speech Translation, devi soddisfare i seguenti requisiti:

  • Devi avere un dispositivo supportato.
  • Sul tuo dispositivo deve essere installata l'ultima versione beta (versionCode 210665810 o versioni successive) dell'app Riconoscimento e sintesi vocale (com.google.android.tts) di Google.
  • Il dispositivo deve avere almeno 4,0 GB di spazio di archiviazione libero per scaricare Gemini Nano V4.

Inizia

Per iniziare, aggiungi la dipendenza di ML Kit Speech Translation al file build.gradle.kts (o build.gradle) a livello di modulo:

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 l'API Speech Translation

Per integrare l'SDK Speech Translation nella tua app, completa i seguenti passaggi:

  1. Inizializza un client SpeechTranslator creando un oggetto di configurazione SpeechTranslatorOptions.
  2. Utilizza l'API Kotlin Flow per verificare la disponibilità delle funzionalità e gestire i download dei modelli.
  3. Crea un oggetto SpeechTranslatorRequest per trasmettere pacchetti di dati TranslationAudio e osserva i risultati della traduzione in tempo reale. L'audio di input deve essere in formato PCM a 16 bit, 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()

Dispositivi supportati

Per utilizzare l'API Speech Translation, il dispositivo deve avere un acceleratore neurale (TPU/NPU) ad alte prestazioni integrato nel chipset. La tabella seguente elenca alcuni dei principali modelli di smartphone supportati, ma tieni presente che per verificare il supporto devi controllare il chipset del tuo dispositivo.

Famiglia di chipset ID chipset Dispositivi di esempio Versione minima del sistema operativo
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

Problemi di configurazione comuni

Le API GenAI di ML Kit si basano sull'app Android AICore per accedere a Gemini Nano. Quando un dispositivo viene appena configurato (incluso il reset) o l'app AICore viene appena resettata (ad es. cancellazione dei dati, disinstallazione e reinstallazione), l'app AICore potrebbe non avere abbastanza tempo per completare l'inizializzazione (incluso il download delle configurazioni più recenti dal server). Di conseguenza, le API GenAI di ML Kit potrebbero non funzionare come previsto. Di seguito sono riportati i messaggi di errore di configurazione comuni che potresti visualizzare e come gestirli:

Esempio di messaggio di errore Come gestirla
AICore non è riuscito con il tipo di errore 4-CONNECTION_ERROR e il codice di errore 601-BINDING_FAILURE: impossibile associare il servizio AICore. Ciò potrebbe accadere quando installi l'app utilizzando le API GenAI di ML Kit immediatamente dopo la configurazione del dispositivo o quando AICore viene disinstallato dopo l'installazione dell'app. Il problema dovrebbe risolversi aggiornando l'app AICore e reinstallando la tua app.
AICore non è riuscito con il tipo di errore 3-PREPARATION_ERROR e il codice di errore 606-FEATURE_NOT_FOUND: la funzionalità … non è disponibile. Ciò potrebbe accadere quando AICore non ha terminato il download delle configurazioni più recenti. Quando il dispositivo è connesso a internet, l'aggiornamento richiede in genere da alcuni minuti ad alcune ore. Il riavvio del dispositivo può velocizzare l'aggiornamento.

Tieni presente che se il bootloader del dispositivo è sbloccato, vedrai anche questo errore: questa API non supporta i dispositivi con bootloader sbloccati.
AICore non è riuscito con il tipo di errore 1-DOWNLOAD_ERROR e il codice di errore 0-UNKNOWN: la funzionalità … non è riuscita con lo stato di errore 0 e l'errore esz: UNAVAILABLE: impossibile risolvere l'host … Mantieni la connessione di rete, attendi qualche minuto e riprova.