Skip to main content
The Realtime component provides end-to-end speech-to-speech communication, combining STT, LLM, and TTS functionality in a single, optimized interface. It delivers ultra-low latency speech processing, direct audio streaming without intermediate text conversion, and support for multiple modalities (audio, video, text).

When to Use Realtime

Use a Realtime LLM when you want the lowest latency voice interactions. The model handles speech recognition, response generation, and speech synthesis natively—no separate STT or TTS services required. Use the traditional STT → LLM → TTS pipeline when you need custom voices (e.g., Cartesia, ElevenLabs), specific transcription providers, or models that don’t support realtime audio.

Supported Providers

Basic Usage

Agent methods with realtime

Use agent.simple_response(...) to inject text prompts. agent.say() is not supported with Realtime LLMs — use simple_response() instead. You usually do not call realtime audio methods directly from app code.

Properties

Realtime methods

interrupt()

Increments the epoch counter so that any in-flight audio output from a previous response is detected as stale and discarded by the Agent. The Agent calls this automatically on barge-in.

Events

The Realtime class emits a small set of events for connection state: For conversation events, subscribe to the agent-level events — UserTranscriptEvent fires in both classic STT and realtime modes:
See Events Reference for the full event surface, including LLM, tool, and error events.
For provider-specific parameters and configuration, see the integration docs for OpenAI, Gemini, AWS Bedrock, or Qwen.