Skip to content

Providers

GPT-Live 1

OpenAI language: GPT-Live 1, with every setting it accepts, the allowed value and the default.

OpenAI's GPT-Live, the platform's first realtime model: it hears the caller and speaks back itself, with no transcriber and no text-to-speech voice in between. Turn-taking belongs to the model, so replies start sooner and conversation overlaps naturally. The trade is control: it speaks in its own words, so wording that must be delivered exactly as written belongs on a pipeline model, not here.

One call runs two models. GPT-Live converses, and a backend model (backendModel below) reads the assistant's prompt, does the reasoning and calls every tool. Your stored prompt keeps working unchanged: it simply runs on the backend model. How the voice sounds and behaves is a separate, optional prompt (see the voice persona section below).

Reached through OpenAI's Live API (v1/live/sessions), not the LiveKit Inference gateway. GPT-Live is a separate API from OpenAI's Realtime API, which OpenAI lists as not supported for this model, so Realtime API guides do not describe it.

This page follows different rules from the other language-model pages, because the platform reads these settings itself instead of forwarding them blind. The keys are camelCase. There is a fixed list of them, so an unknown key is ignored rather than costing the turn. And the stored values live on the model's catalogue entry (they are platform managed), so the override below merges over stored values rather than over a provider default. temperature and maxTokens from the model entry do not apply to the voice model.

Read this before using GPT-Live 1

GPT-Live does not read scripts word for word. The greeting, hold and transfer announcements, idle prompts and the goodbye are conveyed in the model's own words: close to the configured text, not guaranteed verbatim. If an assistant carries wording that must be spoken exactly (a legal line, a mandated disclosure), run that assistant on a pipeline model. The voice and both prompts are also fixed once the call starts (see what can change during a call).

Settings#

Every setting is optional. Leave one out and OnCore sends nothing for it, so the Default applies. If invalid is what the provider does with a value it does not accept.

SettingTypeAllowedDefaultIf invalid
voicestringa GPT-Live voice name, listed under VoicesmarinRefused, call fails
backendModelstringan OpenAI Responses model idgpt-5.6-lunaRefused, call fails
reasoningEffortstringnone, minimal, low, medium, highnoneIgnored, default applies
serviceTierstringauto, default, flex, priorityautoIgnored, default applies
maxSessionDurationnumber (seconds)60 or greaterNo capIgnored, default applies

Overriding on a single call#

Return this from your assistant-request webhook to change these settings for one call. The stored values on the model's catalogue entry are left untouched, and the next call starts from them again.

json
{
  "data": {
    "overrides": {
      "model": {
        "settings": {
          "voice": "stone",
          "backendModel": "gpt-5.6-luna",
          "reasoningEffort": "none",
          "serviceTier": "auto",
          "maxSessionDuration": 1800
        }
      }
    }
  }
}

Send only the keys you want to change: anything you leave out keeps the stored value. Add "id" beside "settings" to swap the whole model for another one from your catalogue at the same time.

voice: The voice the caller hears, fixed for the whole call. OnCore forwards the name as sent. A name GPT-Live does not support means the session never opens, so the call fails seconds after connecting. This setting takes a name only. An object such as OpenAI's custom-voice form is dropped, and the stored voice plays.

backendModel: The model that reads the assistant's prompt, does the reasoning and calls every tool. Everything of substance the voice says comes from here, and token usage follows this model. Change it only to another Responses model you have verified on a test call.

reasoningEffort: How hard the backend thinks before handing the voice something to say. Higher levels answer hard questions better and pause longer first; the voice fills that pause with natural acknowledgements. A level outside the list keeps the stored value rather than failing the call.

serviceTier: OpenAI's latency and pricing tier for the backend request. A value outside the list keeps the stored value.

maxSessionDuration: Forces a fresh connection after this many seconds, and the conversation so far is replayed into the new one. Values under 60 are ignored, because a tiny cap would spend the whole call reconnecting. Leave it unset unless you have a specific reason.

Voices#

OpenAI's default GPT-Live voice is marin, and it is the default here too. OpenAI documents twelve more voices for GPT-Live:

VoiceLanguageRegional influencePresentation
quartzEnglishAustralianFeminine
rippleEnglishAustralianMasculine
vesperEnglishBritishMasculine
willowEnglishIrishFeminine
stoneEnglishIrishMasculine
gleamEnglishNorth AmericanFeminine
meridianEnglishNorth AmericanMasculine
bossaPortugueseBrazilianFeminine
tempoPortugueseBrazilianMasculine
beaconEnglishFilipinoMasculine
deltaEnglishSouthern U.S.Feminine
cinderEnglishSouthern U.S.Masculine

OpenAI describes regional influence as a speaking style, not a language setting. Place a test call in the languages your callers use before you pick one.

OpenAI also offers custom voices made from your own recording, passed as {"id": "voice_..."} instead of a name. OnCore does not support custom voices yet. A custom voice belongs to the OpenAI project that created it, and the voice setting here takes a name only.

What can change during a call#

GPT-Live lets the backend model and the tools change while a session is open. The voice and the instructions cannot be replaced. On OnCore that means the voice, the voice persona and the assistant's main prompt are all read once, when the call connects. An edit to any of them applies from the next call, and a per-call override applies to the call it was returned for.

What an assistant on this model ignores#

The assistant's voice, transcriber and speech delivery settings (expressive mode, emotion tagging) have no effect here, because the model is its own ears and voice. Turn-taking and interruption settings do not apply either. That covers endpointing, turn detection, interruptionPlan.minDuration and interruptionPlan.falseInterruptionTimeout under the assistant's settings.conversationConfig. GPT-Live owns barge-in. It listens while it speaks and decides for itself when to stop, and no OnCore setting changes that.

Text test suites cannot run against an assistant on this model. The model has no text mode, so POST /test-suites/{id}/run returns 400 with a message naming the model, and the dashboard's Run suite shows the same. To test the prompt and tools in text, point the suite at an assistant on a chat model with the same prompt. To test the voice itself, place a real call.

Flows are not supported#

An assistant on this model cannot run flows. Each flow step brings its own instructions, and GPT-Live cannot take new instructions once the session is open. Entering a step would mean opening a new session without the persona or the conversation so far, with seconds of silence on the line. The API refuses taskDrivenMode on an assistant whose model is a realtime model, so keep task-driven mode off and put the procedure in the main prompt instead.

The voice persona#

How the voice sounds and behaves is its own prompt. Create a prompt with type voice_persona and set voicePersonaPromptId on the assistant. Send null to clear it. Left unset, the platform supplies a tuned default persona.

The voice model knows nothing about your business. It never sees the assistant's main prompt or its tools. Those go to the backend model, which answers every business question and runs every tool. The voice knows only that a backend exists and, from a short list the platform builds out of the assistant's tools, what kinds of work it can hand over.

So write the persona about voice and manner only:

  • Energy, warmth and pace.
  • How long a turn runs, and how to acknowledge the caller.
  • Which language to speak, and whether to follow the caller when they switch.
  • What to say while the backend is working on a request.

Leave business facts out of it: opening hours, prices, the menu, policies. A voice that holds a fact tends to answer follow-up questions itself instead of handing them to the backend, and those answers are guesses. Put the facts in the main prompt, where the backend reads them alongside the tools. Do not describe the tools or write delegation rules either. The platform appends its own delegation rules to every persona, yours or the default.

Next steps#