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.
Installation
GOOGLE_API_KEY or GEMINI_API_KEY in your environment.
Quick Start
The default Live model isgemini-3.8-live (latency-optimized audio-to-audio). Video frames are forwarded when fps is set.
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 toNON_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:
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