> ## Documentation Index
> Fetch the complete documentation index at: https://www.bolna.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Gemini Live (Speech to Speech)

> Run a Bolna Voice AI agent on the Gemini Live API, with native audio understanding, 30 prebuilt voices and transparent session resumption.

## What is the Gemini Live API?

The [Gemini Live API](https://ai.google.dev/gemini-api/docs/live) is Google's bidirectional speech interface: caller audio streams in, the agent's spoken reply streams back, and the model calls your tools along the way. Bolna uses the native audio models, where the model produces speech itself rather than handing text to a separate voice.

<Note>
  Google lists the Live API models as preview, with more restrictive rate limits than their generally available models.
</Note>

## Why choose Gemini Live for voice AI

Gemini Live offers a large set of prebuilt voices and native audio reasoning, and it handles long calls without losing the thread: the session is resumed transparently when the provider rotates it, and the context window is compressed as the conversation grows.

## Which Gemini Live models are supported on Bolna AI?

| Model                                           | Description                                                |
| ----------------------------------------------- | ---------------------------------------------------------- |
| `gemini-3.1-flash-live-preview`                 | Default. Low latency audio to audio for real-time dialogue |
| `gemini-2.5-flash-native-audio-preview-12-2025` | Native audio reasoning, with video support                 |

## Supported voices

`Achernar`, `Achird`, `Algenib`, `Algieba`, `Alnilam`, `Aoede`, `Autonoe`, `Callirrhoe`, `Charon`, `Despina`, `Enceladus`, `Erinome`, `Fenrir`, `Gacrux`, `Iapetus`, `Kore`, `Laomedeia`, `Leda`, `Orus`, `Puck`, `Pulcherrima`, `Rasalgethi`, `Sadachbia`, `Sadaltager`, `Schedar`, `Sulafat`, `Umbriel`, `Vindemiatrix`, `Zephyr`, `Zubenelgenubi`

## Configuration

```json theme={"system"}
{
  "s2s": {
    "provider": "gemini_live",
    "provider_config": {
      "model": "gemini-3.1-flash-live-preview",
      "voice": "Kore",
      "language": "en-US",
      "end_sensitivity": "END_SENSITIVITY_LOW"
    }
  }
}
```

| Field                        | Type    | Default                         | Description                                                                                                                                                                         |
| ---------------------------- | ------- | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `model`                      | string  | `gemini-3.1-flash-live-preview` | One of the models above                                                                                                                                                             |
| `voice`                      | string  | `Kore`                          | One of the voices above                                                                                                                                                             |
| `language`                   | string  | unset                           | BCP-47 code, for example `en-US` or `hi-IN`                                                                                                                                         |
| `temperature`                | float   | unset                           | Response variability                                                                                                                                                                |
| `start_sensitivity`          | string  | unset                           | `START_SENSITIVITY_HIGH` detects the caller starting to speak more readily                                                                                                          |
| `end_sensitivity`            | string  | unset                           | `END_SENSITIVITY_LOW` waits longer before treating the caller's turn as finished                                                                                                    |
| `vad_silence_duration_ms`    | integer | `600`                           | Silence before the caller's turn is considered over. Google's guidance puts the usable band at 500 to 800ms: below it utterances fragment, above it the caller waits on every reply |
| `vad_prefix_padding_ms`      | integer | unset                           | Audio retained ahead of detected speech                                                                                                                                             |
| `enable_session_resumption`  | boolean | `true`                          | Gemini caps an audio session at roughly 15 minutes. With this on, the session is restored from the provider's handle and the caller notices nothing                                 |
| `enable_context_compression` | boolean | `true`                          | Compresses the context window so long calls do not run into the model's limit                                                                                                       |

## Barge-in

Barge-in is decided by the provider. Set `end_sensitivity` to `END_SENSITIVITY_LOW` if the agent talks over callers who pause mid-sentence, and raise `vad_silence_duration_ms` towards 800ms for the same reason.

## Long calls

Leave `enable_session_resumption` on for anything that can run past 15 minutes. Note that Gemini resends the conversation each turn, so input tokens grow as the call goes on and cost scales with call length faster than it does on a transcriber and LLM pipeline.
