GenAIWiki
intermediate

Start a Gemini 3.8 Live Voice Session

Stand up Gemini 3.8 Live on the Live API: pick gemini-3.8-live or Extended Thinking, connect with the GenAI SDK, stream PCM, and migrate off 3.1 Flash Live.
geminigemini-3-8-livevoicelive-apigooglerealtime

12 min read

FeaturedUpdated todayVerified recentlyInformation score 92

Key insights

Concrete technical or product signals.

  • gemini-3.8-live is the default Live API voice SKU. Flash is a different API.
  • Extended Thinking needs thinking_config and interaction_status; 3.8 Live must omit thinking_config.
  • Audio is $0.005/$0.018 per minute on Google's developer post — not GPT-Live-1 pricing.

Use cases

Where this shines in production.

  • Replacing gemini-3.1-flash-live-preview
  • Voice agents that keep talking during an async tool call
  • Choosing Live vs Flash vs Transcribe

Limitations & trade-offs

What to watch for.

  • This is not a WebRTC media-stack dump. Follow the official SDK quickstart.
  • Live API is documented as Preview. Confirm quotas in AI Studio.
  • Do not use Live for batch transcription or chat completions.

Gemini 3.8 Live is Google's default Live API model for low-latency voice agents. The stable model code is gemini-3.8-live. Gemini 3.8 Live Extended Thinking is the high-reasoning sibling: gemini-3.8-live-extended-thinking.

This is not Gemini 3.8 Flash. Flash is a generate-content / agent model. Live is a stateful WebSocket session that speaks.

Try the models in Google AI Studio first (ai.studio/live), then connect from your server with the official GenAI SDK.

1. Decide which Live SKU you need

Use Gemini 3.8 Live when the product is a spoken conversation that should stay low-latency: barge-in, visual grounding, async tools, and 97-language switching. Google positions it as the default for most Live API voice agents.

Use Gemini 3.8 Live Extended Thinking when the same voice session needs background multi-step reasoning. Configure thinking_config with thinking_level low, medium, or high. MINIMAL is not supported.

Use Gemini 3.5 Transcribe when the product is a transcript. Use Flash when the product is text, tools, or coding — not a spoken session.

Google's developer post lists audio at $0.005 per minute input and $0.018 per minute output for both Live SKUs. That is not GPT-Live-1's $0.05/min session rate.

2. Connect the first session

The Live API uses a stateful WebSocket. Official docs recommend the google-genai SDK on a trusted server. Keep the API key off the browser; for client-to-server, use ephemeral tokens.

Python (official get-started, updated 15 Sep 2026):

import asyncio
from google import genai

client = genai.Client(api_key="YOUR_API_KEY")
model = "gemini-3.8-live"
config = {"response_modalities": ["AUDIO"]}

async def main():
    async with client.aio.live.connect(model=model, config=config) as session:
        await session.send_realtime_input(text="Hello, how are you?")
        async for response in session.receive():
            content = response.server_content
            if content and content.output_transcription:
                print(content.output_transcription.text)

if __name__ == "__main__":
    asyncio.run(main())

JavaScript uses ai.live.connect with the same model string gemini-3.8-live. Audio in is raw 16-bit PCM at 16 kHz little-endian. Audio out is 24 kHz PCM. Video frames are JPEG/PNG at most 1 fps.

Do not paste a Gemini API key into frontend source. Official Live API overview: server-to-server, or client-to-server with ephemeral tokens.

3. Migrate off Gemini 3.1 Flash Live

If you still send gemini-3.1-flash-live-preview, switch the model string to gemini-3.8-live. Official migration notes:

  • Omit thinking_level / thinking_config on 3.8 Live. Interleaved reasoning is built in. Put thinking config only on Extended Thinking.
  • Async function calling (behavior: NON_BLOCKING) is the default on 3.8 Live. BLOCKING still works on this SKU. Extended Thinking is async-only: BLOCKING returns a hard error.
  • Proactive audio is permanently on. proactive_audio: false errors.
  • Affective dialogue is removed. Drop enable_affective_dialog.
  • Audio is the supported response modality. Enable output transcription if you need a text transcript.

4. Handle Extended Thinking idle correctly

On Extended Thinking, turnComplete: true does not mean the server is idle. It may still be reasoning or waiting on a tool. Watch interaction_status:

  • IN_PROGRESS — more audio, reasoning, or tool calls may follow.
  • IDLE — the session is waiting for the user.

Keep listening until IDLE. Do not tear down the socket on the first turnComplete.

5. What this API will not do

Live 3.8 cards: no caching, no code execution, no file search, no structured outputs, no image generation, no batch API. Function calling and search grounding are supported. Code execution and structured outputs belong on Flash, not Live.

For OpenAI's full-duplex voice SKU, see Build a Voice Session with GPT-Live-1.

Official sources

Continue learning

Related models, implementation guides, comparisons, and concepts.