Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.getpatter.com/llms.txt

Use this file to discover all available pages before exploring further.

Gemini Live

GeminiLiveAdapter bridges a bidirectional audio stream to Google’s Gemini Live native-audio API. It speaks the same connect / send_audio / receive_events / close surface as OpenAIRealtimeAdapter, so you can swap engines without touching the call handler. Use it as an alternative to OpenAI Realtime when you want native-audio Gemini voices, longer context, or lower per-minute pricing.

Install

Native-audio Gemini Live is a v1alpha-only API. Install the optional extra:
pip install "getpatter[gemini-live]"
Set GEMINI_API_KEY in your environment.

Constructor

from getpatter.providers.gemini_live import (
    GeminiLiveAdapter,
    GeminiLiveModel,
    GeminiLiveVoice,
    GeminiLiveSampleRate,
)

adapter = GeminiLiveAdapter(
    api_key="",                                              # reads from env if you wire it
    model=GeminiLiveModel.NATIVE_AUDIO_PREVIEW_09_2025,      # default
    voice=GeminiLiveVoice.PUCK,                              # Puck | Charon | Kore | Fenrir | Aoede
    instructions="You are a helpful, concise voice assistant.",
    language="en-US",
    input_sample_rate=GeminiLiveSampleRate.HZ_16000,         # PCM16 mono in
    output_sample_rate=GeminiLiveSampleRate.HZ_24000,        # PCM16 mono out
    temperature=0.8,
)

Usage

Pass the adapter as the engine on phone.agent(...):
import asyncio
from getpatter import Patter, Twilio
from getpatter.providers.gemini_live import GeminiLiveAdapter

phone = Patter(carrier=Twilio(), phone_number="+15550001234")

agent = phone.agent(
    engine=GeminiLiveAdapter(api_key="", voice="Puck"),
    system_prompt="You are a helpful assistant.",
    first_message="Hi! How can I help today?",
)

asyncio.run(phone.serve(agent))
Tools work the same way as on OpenAI Realtime — pass tools=[Tool(...)] on phone.agent(...) and Patter forwards function calls to Gemini’s function_declarations shape.

Models

ModelNotes
"gemini-2.5-flash-native-audio-preview-09-2025" (default)Native-audio preview, v1alpha only. Current production target.
"gemini-live-2.5-flash-preview"Earlier preview, shut down on 2025-12-09.
"gemini-2.0-flash-exp"Experimental preview, retired Dec 2024.
The defaults change as Google promotes native audio to GA. The GeminiLiveModel enum tracks the currently shipped identifiers.

Voices

Puck, Charon, Kore, Fenrir, Aoede — Gemini’s built-in PrebuiltVoiceConfig set. Pass any one as voice=.

When to use Gemini Live vs alternatives

Use Gemini Live when…Use OpenAI Realtime when…Use Pipeline mode when…
You want native-audio Gemini voices and 1M+ context.You need the broadest tool-calling ecosystem and gpt-realtime-2 reasoning tiers.You need provider-by-provider control (e.g. DeepgramSTT + AnthropicLLM + ElevenLabsTTS).

Notes

  • Barge-in is implicit: Gemini Live runs server-side VAD and interrupts on user speech. cancel_response() / cancelResponse() is a no-op for compatibility.
  • The adapter resamples nothing — pass PCM16 mono at input_sample_rate Hz. Patter’s telephony layer resamples 8 kHz mulaw up to 16 kHz before this point.
  • google-genai (Python) and @google/genai (Node) are imported lazily, so default installs of getpatter do not pay the load cost.

What’s Next

Engines

All engines side by side.

OpenAI Realtime

The default engine.

Agents

System prompts, tools, first messages.

Tools

Function calling inside a realtime session.