Skip to main content
Google’s Gemini provides native multimodal speech-to-speech over WebSocket with optional video. No separate STT/TTS services required. Requires google-genai>=2.19.0.
Vision Agents uses Stream Video for real-time WebRTC transport by default. External WebRTC transports are supported as well. Most AI providers offer free tiers to get started.
Gemini also provides a traditional LLM with built-in tools for search, code execution, and RAG, plus streaming speech-to-text for custom voice pipelines.

Installation

Set GOOGLE_API_KEY or GEMINI_API_KEY in your environment.

Quick Start

The default Live model is gemini-3.8-live (latency-optimized audio-to-audio). Video frames are forwarded when fps is set.
For background reasoning and async tools, use Extended Thinking:
turn_complete only ends a streaming chunk. Agent turn-complete events wait for interaction_status=IDLE (the deprecated REQUIRES_ACTION alias is treated as idle) so thinking and async tool calls can continue. Use agent.simple_response(text=...) for a text instruction, or await llm.send_client_content(..., turn_complete=True) to inject structured turns. turn_complete=True interrupts ongoing generation.

Parameters

Tools

Register functions on the Realtime LLM. Declarations default to NON_BLOCKING.

Voice Activity Detection

Built-in VAD defaults are optimized for low-latency conversations. Video is included in the turn by default (TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO). Override via config:
Higher sensitivity values make the model react faster to speech starts and stops, which reduces latency but may increase false positives in noisy environments.

VLM (Vision Language Model)

Use Gemini 3 vision models for multimodal interactions with video frames. The VLM buffers video frames, converts them to JPEG, and sends them alongside text prompts.

Next Steps

Gemini LLM

LLM with built-in tools and RAG

Build a Video Agent

Add video processing