
Tech • IA • Robotique
Google a publié une démo de traduction en direct basée sur l’API Gemini, LiveKit et Google Cloud Run, capable de diffuser l’audio d’un seul intervenant en plusieurs langues avec des sessions partagées par langue.
L’application crée un identifiant d’événement lié à une room LiveKit, où un intervenant diffuse l’audio depuis un microphone ou un onglet de navigateur. Les auditeurs rejoignent une page web, choisissent une langue cible et reçoivent un flux audio traduit ainsi que des sous-titres. Le système est conçu pour des événements en direct où les participants peuvent scanner un QR code, se connecter sur leur téléphone et écouter dans leur langue préférée.
L’optimisation centrale consiste à maintenir au maximum une seule session de traduction active pour chaque langue cible demandée. Si un premier auditeur demande le chinois, le système ouvre une nouvelle session Gemini Live Translate pour le chinois. Si d’autres auditeurs demandent le français alors qu’une session française existe déjà, ils sont rattachés au flux existant au lieu de déclencher une nouvelle session, ce qui réduit les traitements dupliqués et la surcharge liée aux websockets.
Les sessions de traduction sont fermées lorsque le dernier auditeur d’une langue se déconnecte. Si un auditeur français part alors qu’un autre est encore présent, le websocket français reste ouvert; une fois le dernier auditeur parti, la session est arrêtée. Cette gestion du cycle de vie permet d’économiser les ressources de calcul et de ne garder actifs que les canaux de langue utilisés.
La démo est open source et construite avec Next.js. Elle est déployée sur Google Cloud Run, qui prend en charge les connexions websocket longue durée nécessaires aux sessions de traduction en direct. En développement local, LiveKit peut fonctionner dans Docker, tandis qu’en production il est possible d’utiliser LiveKit Cloud, qui propose une option hébergée avec une offre gratuite de départ.
L’application nécessite une clé API LiveKit, un secret API et une URL websocket pour négocier les connexions WebRTC. L’audio est diffusé via WebRTC, tandis que les données de sous-titrage sont envoyées par les canaux de données WebRTC. Sur Cloud Run, les secrets comme les identifiants API sont stockés dans Google Secret Manager plutôt que codés en dur dans l’application.
Pour chaque nouvelle langue demandée, le serveur ouvre une connexion websocket vers la Gemini Live API. L’audio source entrant est transmis sous forme de données PCM brutes, et le modèle renvoie l’audio traduit ainsi que la transcription. L’application publie à la fois la parole traduite et les segments de texte aux participants abonnés à cette langue.
Le sous-titrage est géré en deux étapes. Le texte de transcription intermédiaire peut être affiché immédiatement pour un retour à faible latence, tandis que le texte finalisé est ensuite regroupé en paragraphes complets. Chaque événement de transcription inclut la langue cible et des métadonnées de segment avant d’être distribué aux auditeurs de ce canal linguistique.
La démo actuelle conserve l’état des événements et des traductions en mémoire, ce qui la limite à une seule instance Cloud Run. Pour aller au-delà, il faudrait déplacer l’état des sessions et la gestion des ponts vers une base de données externe ou un backend partagé. La conception est donc optimisée comme une démo pratique plutôt que comme une architecture de production extensible horizontalement.
La configuration actuelle est présentée comme adaptée à environ 15 à 20 langues simultanées et 200 à 300 auditeurs, en particulier pour de petits ou moyens événements. L’utilisation CPU augmente car chaque langue ouvre une session websocket longue durée. Pour des déploiements plus importants, une approche plus scalable consisterait à répartir les langues dans des rooms séparées et à externaliser l’état, afin de dépasser largement le modèle à instance unique.
La démo montre comment Gemini Live Translate peut être intégré dans une infrastructure événementielle en temps réel avec un partage efficace des sessions par langue. Son architecture actuelle convient surtout à des événements multilingues de petite taille, mais elle trace une voie claire vers des systèmes de traduction en direct à plus grande échelle.
Explique-moi