Build a live translation broadcast app with the Gemini Live API and LiveKit
Summary
This guide details building a real-time multilingual broadcast application using Gemini 3.5 Live Translate via the Gemini API, integrated with LiveKit and deployed on Google Cloud Run. The system efficiently manages multiple language streams by ensuring only one active translation session exists per target language, subscribing new listeners to existing sessions rather than creating redundant ones. The architecture leverages WebSockets for persistent connections and utilizes Next.js for deployment.
Key takeaways
-
Efficient Session Management
0:58
The application maintains a maximum of one session per requested target language, subscribing subsequent listeners to the existing LiveGenkit room rather than spinning up new sessions (demonstrated at 0:58).
-
Deployment Architecture
1:59
The solution uses Next.js deployed on Google Cloud Run, which allows for hosting long-running WebSockets and managing the necessary stateful connections (1:39).
-
Scaling Limitations
3:20
The current demo manages translation details in memory, limiting it to a single Cloud Run instance. Scaling beyond this requires externalizing state management using a database (3:20).
Technical details
-
System Flow and APIs
90s
The process involves creating an event ID/LiveGenkit room, streaming audio (via microphone or browser tab) to the LiveKit room. The translation bridge then opens a WebSocket connection to the Gemini API for output transcription and translated audio publishing (1:28).
-
Data Handling
160s
The system receives raw PCM data as input, and the Gemini API returns server content model parts for published translated audio and output transcript text. The transcription is handled in real-time, showing interim results before solidifying into final paragraphs (2:37).
-
Deployment Setup
150s
The deployment uses a Dockerfile and requires API keys and LiveGenkit credentials (API key, secret, WebSocket URL) stored securely in Google Secret Manager on Cloud Run. The application is configured to allow public access (2:49).
Mentioned resources
Channel & topics
Watch on YouTube · Back to latest
This independent, AI-assisted summary is provided for commentary and informational purposes. It may contain errors or omit important context. Please watch the original video for the creator's complete presentation. Video, thumbnail, and related copyrights belong to their respective owners.