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 210665810ou 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:
- Inicialize um cliente
SpeechTranslatorcriando um objeto de configuraçãoSpeechTranslatorOptions. - Use a API Kotlin Flow para verificar a disponibilidade de recursos e gerenciar downloads de modelos.
- Crie um objeto
SpeechTranslatorRequestpara transmitir pacotes de dadosTranslationAudioe 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+ |
|
Android 14 |
| Qualcomm Snapdragon | SM8650, SM8750, SM8850, SM8845, SM8975, SM8950, SM8735 |
|
Android 15 |
| MediaTek | Dimensity 9300, 9400+ |
|
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. |