Gemini 3.5 Live Translate permet de traduire des conversations vocales en temps réel et à faible latence dans plus de 70 langues à l'aide du modèle gemini-3.5-live-translate-preview, disponible via Agent Platform. En configurant l'API Live avec des paramètres de traduction, vous pouvez diffuser de l'audio dans une langue et recevoir une sortie audio traduite dans une autre langue, ce qui permet une traduction vocale en temps réel fluide.
Pour commencer, consultez le notebook d'introduction à Gemini 3.5 Live Translate.
Traduction de flux en direct
L'API BidiGenerateContent (Live) maintient une connexion WebSocket bidirectionnelle persistante. Vous diffusez des fragments audio bruts dans la session et recevez des fragments audio traduits et des transcriptions facultatives en temps réel.
import asyncio
from google import genai
from google.genai import types
# Initialize the client for Vertex AI / Agent Platform
client = genai.Client(enterprise=True, project=PROJECT_ID, location=LOCATION)
model = "gemini-3.5-live-translate-preview"
config = types.LiveConnectConfig(
response_modalities=["AUDIO"],
input_audio_transcription=types.AudioTranscriptionConfig(),
output_audio_transcription=types.AudioTranscriptionConfig(),
translation_config=types.TranslationConfig(
target_language_code="pl",
echo_target_language=True,
),
)
async def streaming_translation(audio_stream_generator):
async with client.aio.live.connect(model=model, config=config) as session:
# In a complete implementation, stream audio chunks concurrently:
# async for chunk in audio_stream_generator:
# await session.send_realtime_input(
# audio=types.Blob(data=chunk, mime_type="audio/pcm;rate=16000")
# )
async for response in session.receive():
if response.server_content:
server_content = response.server_content
if server_content.input_transcription:
print(f"Input transcript: {server_content.input_transcription.text}")
if server_content.output_transcription:
print(f"Output transcript: {server_content.output_transcription.text}")
if server_content.model_turn:
for part in server_content.model_turn.parts:
if part.inline_data:
translated_audio_chunk = part.inline_data.data
# Process or stream translated audio (24kHz PCM)
print(f"Received translated audio: {len(translated_audio_chunk)} bytes")
Spécifications audio
Diffusez l'audio en streaming au format PCM linéaire 16 bits brut, little-endian :
Format d'entrée : PCM linéaire 16 bits à 16 kHz (mono, little-endian).
Format de sortie : PCM linéaire 16 bits à 24 kHz (mono, little-endian).
Taille des fragments de streaming : nous recommandons des fragments d'une durée de 100 ms pour un équilibre optimal entre débit et latence.
# Streaming an audio chunk to an active session
await session.send_realtime_input(
audio=types.Blob(
data=pcm_bytes,
mime_type="audio/pcm;rate=16000",
)
)
Configuration
La traduction instantanée est configurée en associant un TranslationConfig à votre LiveConnectConfig.
Paramètres de configuration
target_language_code(chaîne) : code de langue BCP-47 pour la langue de sortie souhaitée (par exemple,"pl","es","ja"). La valeur par défaut est"en".echo_target_language(booléen) : contrôle le comportement lorsque l'entrée vocale est déjà dans la langue cible :True: le modèle reproduit et répète le discours d'entrée dans le flux de sortie.False: le modèle reste silencieux lorsque l'entrée correspond à la langue cible. La valeur par défaut estFalse.
input_audio_transcription(AudioTranscriptionConfig) : facultatif. Active la transcription de texte synchronisée pour l'audio source entrant.output_audio_transcription(AudioTranscriptionConfig) : facultatif. Active la transcription de texte synchronisée pour l'audio traduit sortant.
Langues acceptées
Les langues et codes de langue BCP-47 suivants sont compatibles avec Gemini 3.5 Live Translate :
| Langue | Code BCP-47 | Langue | Code BCP-47 |
|---|---|---|---|
| Afrikaans | af |
Kazakh | kk |
| Akan | ak |
Khmer | km |
| Albanais | sq |
Kinyarwanda | rw |
| Amharique | am |
Coréen | ko |
| Arabe | ar |
Laotien | lo |
| Arménien | hy |
Letton | lv |
| Azéri | az |
Lituanien | lt |
| Basque | eu |
Macédonien | mk |
| Biélorusse | be |
Malaisien | ms |
| Bengali | bn |
Malayalam | ml |
| Bulgare | bg |
Marathi | mr |
| Birman (Myanmar) | my |
Mongol | mn |
| Catalan | ca |
Népalais | ne |
| Chinois (simplifié) | zh-Hans |
Norvégien | no, nb |
| Chinois (traditionnel) | zh-Hant |
Persan | fa |
| Croate | hr |
Polonais | pl |
| Tchèque | cs |
Portugais (Brésil) | pt-BR |
| Danois | da |
Portugais (Portugal) | pt-PT |
| Néerlandais | nl |
Panjabi | pa |
| Anglais | en |
Roumain | ro |
| Estonien | et |
Russe | ru |
| Philippin | fil |
Serbe | sr |
| Finnois | fi |
Sindhî | sd |
| Français | fr |
Cingalais | si |
| Galicien | gl |
Slovaque | sk |
| Géorgien | ka |
Slovène | sl |
| Allemand | de |
Espagnol | es |
| Grec | el |
Soundanais | su |
| Gujarati | gu |
Swahili | sw |
| Haoussa | ha |
Suédois | sv |
| Hébreu | he |
Tamoul | ta |
| Hindi | hi |
Télougou | te |
| Hongrois | hu |
Thaï | th |
| Islandais | is |
Turc | tr |
| Indonésien | id |
Ukrainien | uk |
| Italien | it |
Urdu | ur |
| Japonais | ja |
Ouzbek | uz |
| Javanais | jv |
Vietnamien | vi |
| Kannada | kn |
Zulu | zu |
Bonnes pratiques
Maintenez un échantillonnage cohérent : assurez-vous que l'entrée audio respecte strictement le format PCM mono 16 kHz pour éviter les décalages de hauteur et les artefacts audio.
Gérer les environnements acoustiques : bien que le modèle filtre les bruits ambiants modérés, les bruits de fond importants ou les voix qui se chevauchent peuvent introduire une ambiguïté dans la traduction.
Évaluez le mode écho par cas d'utilisation : définissez echo_target_language=False pour les configurations d'interprétation unidirectionnelle afin de supprimer la rediffusion inutile lorsque les intervenants utilisent déjà la langue cible.
| ID du modèle | ['gemini-3.5-live-translate-preview'] |
|
|---|---|---|
| Modalités |
|
|
| Capacités |
|
|
| Outils |
|
|
| API |
|
|
| Options de consommation |
|
|
| Régions où le service est disponible |
|
|
| Versions |
|
|