API GenAI Speech Translation

A API GenAI Speech Translation do Kit de ML permite a tradução em tempo real e no dispositivo de áudio falado em vários idiomas. Usando os modelos de fala de IA generativa do Google, a API Speech Translation oferece conversão de voz em texto traduzido de baixa latência, alta qualidade e foco na privacidade, sem exigir processamento de áudio baseado na nuvem.

Principais recursos

  • Gerencie todo o processo com uma única API, desde verificar se um modelo está pronto, iniciar downloads até executar a tradução real. Consulte Integrar a API Speech Translation para detalhes de implementação.
  • Processe áudio ao vivo do microfone ou de arquivos e receba resultados de texto intermediários e finais usando o Kotlin Flow para atualizações em tempo real.
  • Realizar todas as tarefas de análise e tradução de áudio no dispositivo para manter a privacidade do usuário e oferecer suporte à funcionalidade off-line completa.

Resultados de exemplo

Áudio de entrada Idioma de origem Idioma de destino Texto de saída
Áudio falado: "Olá, como você está?" Inglês americano (en-US) Espanhol (es-ES) "Hola, ¿cómo estás hoy?"
Áudio falado: "こんにちは、はじめまして" Japonês (ja-JP) Inglês americano (en-US) "Olá, prazer em conhecer você"

Pré-requisitos

Para usar a API Speech Translation, você precisa atender a estes requisitos:

  • Ter um dispositivo compatível.
  • O dispositivo precisa ter a versão Beta mais recente (versionCode 210665810 ou mais recente) do app Reconhecimento de voz e síntese (com.google.android.tts) do Google.
  • Seu dispositivo precisa ter pelo menos 4 GB de armazenamento livre para baixar o Gemini Nano V4.

Primeiros passos

Para começar, adicione a dependência da Tradução Simultânea do Kit de ML ao arquivo build.gradle.kts (ou build.gradle) do 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'
}

Integrar a API Speech Translation

Para integrar o SDK de tradução simultânea ao seu app, siga estas etapas:

  1. Inicialize um cliente SpeechTranslator criando um objeto de configuração SpeechTranslatorOptions.
  2. Use a API Kotlin Flow para verificar a disponibilidade de recursos e gerenciar downloads de modelos.
  3. Crie um objeto SpeechTranslatorRequest para transmitir pacotes de dados TranslationAudio e observe os resultados da tradução em tempo real. O áudio de entrada precisa estar no formato PCM de 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()

Dispositivos compatíveis

Para usar a API Speech Translation, o dispositivo precisa ter um acelerador neural de alto desempenho (TPU/NPU) integrado ao chipset. A tabela a seguir lista alguns dos principais modelos de smartphone compatíveis, mas lembre-se de que, para verificar a compatibilidade, é necessário verificar o chipset do dispositivo.

Família de chipsets IDs de chipset Dispositivos de exemplo Versão mínima do SO
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

Problemas comuns de configuração

As APIs GenAI do Kit de ML dependem do app Android AICore para acessar o Gemini Nano. Quando um dispositivo é configurado (incluindo redefinição) ou o app AICore é redefinido (por exemplo, dados limpos, desinstalados e reinstalados), o app AICore pode não ter tempo suficiente para concluir a inicialização (incluindo o download das configurações mais recentes do servidor). Por isso, as APIs GenAI do Kit de ML podem não funcionar como esperado. Confira as mensagens de erro de configuração comuns que podem aparecer e como lidar com elas:

Exemplo de mensagem de erro Como proceder
O AICore falhou com o tipo de erro 4-CONNECTION_ERROR e o código do erro 601-BINDING_FAILURE: falha ao vincular o serviço do AICore. Isso pode acontecer quando você instala o app usando as APIs GenAI do Kit de ML imediatamente após a configuração do dispositivo ou quando o AICore é desinstalado depois que o app é instalado. Atualize o app AICore e reinstale o seu app para corrigir o problema.
O AICore falhou com o tipo de erro 3-PREPARATION_ERROR e o código do erro 606-FEATURE_NOT_FOUND: o recurso ... não está disponível. Isso pode acontecer quando o AICore não terminou de baixar as configurações mais recentes. Quando o dispositivo está conectado à Internet, geralmente leva de alguns minutos a algumas horas para atualizar. Reiniciar o dispositivo pode acelerar a atualização.

Se o carregador de inicialização do dispositivo estiver desbloqueado, você também vai receber esse erro. Essa API não é compatível com dispositivos que têm carregadores de inicialização desbloqueados.
O AICore falhou com o tipo de erro 1-DOWNLOAD_ERROR e o código do erro 0-UNKNOWN: o recurso ... falhou com o status de falha 0 e o erro esz: UNAVAILABLE: não foi possível resolver o host ... Mantenha a conexão de rede, aguarde alguns minutos e tente de novo.