rich-dusk-37560
05/22/2026, 8:14 AMtall-airline-16756
05/22/2026, 8:14 AMtall-airline-16756
05/22/2026, 8:14 AMmodalities = ["TEXT"] so the realtime model accepts audio input, returns text (no external STT plugin required), and then send that text to your chosen TTS engine (for example cartesia/sonic-3) in the same AgentSession. This implements the half‑cascade pattern (audio → Gemini internal transcribe → text → external TTS).
Example configuration:
session = AgentSession(
llm=google.realtime.RealtimeModel(modalities=[Modality.TEXT]),
tts="cartesia/sonic-3",
)
Note: this approach works with non‑native audio realtime models (the realtime model handles the audio→text internally). If you want, tell me which Gemini model and TTS you plan to use and I’ll give exact setup snippets or troubleshooting steps.
Sources: Realtime models overview | LiveKit Documentation | Pipeline types | LiveKit Documentation, with interactive elementsrich-dusk-37560
05/22/2026, 8:22 AMtall-airline-16756
05/22/2026, 8:22 AMrich-dusk-37560
05/22/2026, 8:22 AMtall-airline-16756
05/22/2026, 8:22 AM