CoreMesh

GPT-Live New Voices by Language and How to Select One

The nine new GPT-Live voices (Nuri, Juni, Flitz, Brise, Sillage, Nira, Harema, Shida, Noeul) by language, how to pick one for a session, and the gotchas.

GPT-Live New Voices by Language and How to Select One

As of October 16, 2026, GPT-Live has nine new natural voices: Nuri, Juni and Flitz for German; Brise and Sillage for French; Nira for Hindi; Harema and Shida for Japanese; and Noeul for Korean. OpenAI's API changelog lists them in the October 16, 2026 entry for gpt-live-1, tagged with the v1/audio/voices and v1/live/sessions endpoints.

You pick one by name when you configure a GPT-Live session. The changelog entry doesn't spell out the session field, so the exact key is in the GPT-Live guide on the platform docs rather than here. What follows is the full name-to-language table, a small lookup you can drop into your own code, how these voices relate to the prompt-to-voice feature that shipped the same day, and the mistakes I'd expect people to make with the names.

The nine new GPT-Live voices at a glance#

This is the complete list from the October 16, 2026 changelog entry. Spelling matters, so copy the names from the table rather than retyping them.

Voice Language Released
Nuri German October 16, 2026
Juni German October 16, 2026
Flitz German October 16, 2026
Brise French October 16, 2026
Sillage French October 16, 2026
Nira Hindi October 16, 2026
Harema Japanese October 16, 2026
Shida Japanese October 16, 2026
Noeul Korean October 16, 2026

The changelog groups each voice under one language and says nothing else about it. There's no documented gender, age, tone or recommended use case for any of them. If you need to know how Flitz differs from Juni, the only honest answer right now is to listen to both in the voice Playground and decide for yourself.

These voices belong to gpt-live-1, the model that went generally available in the API on September 10, 2026 according to the same changelog. They aren't listed for the older gpt-realtime-mini or gpt-4o-mini-tts snapshots, so don't expect the names to work there.

Which new voice to use for each language#

The coverage is uneven, and that shapes the decision more than anything else.

  • German has three options (Nuri, Juni, Flitz). You can offer users a choice, or A/B them in your own testing and settle on one.
  • French has two (Brise, Sillage). Same idea, one fewer candidate.
  • Japanese has two (Harema, Shida).
  • Hindi has one (Nira) and Korean has one (Noeul). If you want a second option in either language, the route the changelog gives you is prompt-to-voice, covered below.

My advice: pick a default per language, store it in config, and expose a voice picker only if your product actually benefits from it. Most voice apps don't, and every extra voice is one more thing to QA.

One thing the changelog does not say is whether a voice listed under German will refuse, or sound worse, when the conversation drifts into English. Treat the language label as the intended language and test cross-language behavior yourself before you rely on it.

How to select a new voice in a GPT-Live session#

The changelog tags the voice release with two endpoints: v1/audio/voices and v1/live/sessions. That gives you the shape of the workflow even though the entry doesn't print a request body.

  1. Use the right model. The voices are listed under gpt-live-1. Sessions on other audio models won't know these names.
  2. Confirm the name against the voices endpoint. The October 16 entry associates the new voices with v1/audio/voices. Check there, or in the voice Playground, that the name you plan to use is present for your project before you ship it.
  3. Set the voice when you create the session. Sessions are created through v1/live/sessions. The field name for the voice is documented in the GPT-Live guide on the platform docs, not in the changelog, so take it from there rather than from a blog post.
  4. Keep the name as a config value. Voice names are strings you'll want to change without a redeploy. The lookup in the next section is one way to do that.

The voice is a property of the Live layer, the part that talks to the user in real time. It's independent of how reasoning and tools are handled. The changelog describes two delegation modes for GPT-Live: Responses delegation with an OpenAI model, or client delegation that connects your own backend. Picking Noeul over the default doesn't change which mode you use or what the backend sees. If you go the client delegation route and want to experiment with a self-hosted model behind the voice session, the walkthrough on running an Ollama model locally and calling it from code is a reasonable starting point for the backend side.

Build a voice lookup for your app#

The names are easy to misspell and the language mapping is easy to forget. A tiny lookup keyed by language tag saves both problems. This one takes a BCP-47-style tag, strips the region, and returns the voices the changelog lists for that language.

python
GPT_LIVE_NEW_VOICES = {
    "de": ["Nuri", "Juni", "Flitz"],
    "fr": ["Brise", "Sillage"],
    "hi": ["Nira"],
    "ja": ["Harema", "Shida"],
    "ko": ["Noeul"],
}

def voices_for(language_tag: str) -> list[str]:
    base = language_tag.lower().split("-")[0]
    return GPT_LIVE_NEW_VOICES.get(base, [])

def default_voice(language_tag: str) -> str | None:
    voices = voices_for(language_tag)
    return voices[0] if voices else None

for tag in ["de-DE", "fr-CA", "hi-IN", "ja", "ko-KR", "en-US"]:
    print(f"{tag:6} -> {voices_for(tag) or 'no new voice listed'}; default={default_voice(tag)}")

The en-US row is deliberate. The October 16 release doesn't add an English voice, so your lookup should fall through to whatever default you already use, not crash.

Validate voice names before you open a session#

The other side of the same problem: a user or a config file hands you a voice name, and you want to catch typos before the request leaves your server. This checks case-insensitively and suggests the closest match using only the standard library.

javascript
const NEW_VOICES = {
  Nuri: "German", Juni: "German", Flitz: "German",
  Brise: "French", Sillage: "French",
  Nira: "Hindi",
  Harema: "Japanese", Shida: "Japanese",
  Noeul: "Korean",
};

function editDistance(a, b) {
  const d = Array.from({ length: a.length + 1 }, (_, i) => [i]);
  for (let j = 1; j <= b.length; j++) d[0][j] = j;
  for (let i = 1; i <= a.length; i++) {
    for (let j = 1; j <= b.length; j++) {
      const cost = a[i - 1] === b[j - 1] ? 0 : 1;
      d[i][j] = Math.min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + cost);
    }
  }
  return d[a.length][b.length];
}

function resolveVoice(input) {
  const names = Object.keys(NEW_VOICES);
  const exact = names.find((n) => n.toLowerCase() === input.trim().toLowerCase());
  if (exact) return { ok: true, voice: exact, language: NEW_VOICES[exact] };
  const [best] = names
    .map((n) => [n, editDistance(n.toLowerCase(), input.toLowerCase())])
    .sort((x, y) => x[1] - y[1]);
  return { ok: false, input, suggestion: best[0] };
}

for (const candidate of ["noeul", "Silage", "Nuri", "Harima", "Alloy"]) {
  console.log(candidate.padEnd(8), JSON.stringify(resolveVoice(candidate)));
}

In production I'd log the suggestion and reject the request rather than silently substituting. Auto-correcting a voice name is the kind of helpfulness that surprises someone three weeks later.

Prompt-to-voice compared with the named voices#

The same October 16, 2026 changelog entry released prompt-to-voice for all API customers. You describe a voice in text, create it through the API or the voice Playground, and then reuse it in GPT-Live sessions. Creating a prompt-generated voice is free. Speech generated with it is billed as a regular GPT-Live session.

So you now have two ways to get a non-English voice:

  • Named voices like Brise or Shida. Zero setup, a fixed sound, and a name that's the same across every project.
  • Prompt-generated voices. More control over character, at the cost of a creation step and your own naming scheme.

I'd start with a named voice if one exists for your language. Reach for prompt-to-voice when there's only one named option (Hindi, Korean) and it's not the fit you want, or when you need a voice that matches a brand rather than a generic natural speaker. The changelog does not list how many prompt-generated voices a project can hold, so check the GPT-Live guide if you plan to create many.

Don't confuse this with the "Custom voices for eligible customers" note from the December 15, 2025 audio snapshot release. That was tied to the gpt-realtime-mini, gpt-audio-mini and gpt-4o-mini-tts snapshots. The October 2026 prompt-to-voice release is a separate feature on gpt-live-1, and the changelog says it's for all API customers.

What a session costs when you switch voices#

Per the September 10, 2026 changelog entry, GPT-Live voice sessions cost $0.05 per minute, billed per second. Backend model and tool usage are charged separately. Nothing in the October 16 entry adds a per-voice surcharge or lists a different rate for the nine new voices, and the only extra cost mentioned for prompt-to-voice is the regular session billing, since creation is free. Treat the voice as cost-neutral until the pricing page says otherwise, and check that page rather than this article for the current numbers.

If you delegate reasoning to an OpenAI model, the backend tokens are the part that moves your bill, not the voice. If you're deciding between backends and want to compare a non-OpenAI option, you'd be wiring it up through client delegation, which is your own code.

Common mistakes with the new voice names#

  • Misspelling the names. Sillage has two l's. Noeul is o-e-u-l, not "Noel". Harema is not "Harima". Nuri (German) and Nira (Hindi) differ by one vowel and point at different languages. Copy from the table above.
  • Assuming the voice sets the language. The changelog groups voices by language. It doesn't say the voice forces the model to speak that language, or that it can't speak others. Set the conversation language through your instructions and test it.
  • Using the names on the wrong model. They're listed for gpt-live-1. Older realtime and TTS snapshots have their own voice lists.
  • Expecting a tone description. There isn't one in the changelog. Audition before you commit.
  • Hardcoding a name in several places. When OpenAI adds a tenth voice, or you decide Flitz works better than Nuri, you want one config value to change.
  • Building the transcription half on deprecated models. The August 26, 2026 changelog entry says whisper-1, gpt-4o-transcribe, gpt-4o-mini-transcribe and gpt-4o-transcribe-diarize shut down on February 26, 2027, and points to gpt-live-transcribe or gpt-transcribe instead. The deprecations page has the schedule. If your voice app pairs GPT-Live output with one of those for input, plan the migration now.

Quick reference#

  • Nine new gpt-live-1 voices as of October 16, 2026: Nuri, Juni, Flitz (German); Brise, Sillage (French); Nira (Hindi); Harema, Shida (Japanese); Noeul (Korean).
  • No English voice in this batch. Keep your existing default for English.
  • The release is tagged with v1/audio/voices and v1/live/sessions. Check the name on the voices endpoint, set it when creating the session, and take the exact field name from the GPT-Live guide.
  • No documented tone, gender or age per voice. Listen in the voice Playground.
  • Prompt-to-voice shipped the same day for all API customers. Creation is free, speech is billed as a normal session.
  • Sessions are $0.05 per minute, billed per second, with backend model and tool usage billed separately. Verify current rates on the pricing page.
  • Store voice names in config, validate them before the request, and reject typos instead of auto-correcting.

Quick answers

What are the new GPT-Live voices?

As of October 16, 2026, there are nine: Nuri, Juni and Flitz (German), Brise and Sillage (French), Nira (Hindi), Harema and Shida (Japanese), and Noeul (Korean). They're listed under gpt-live-1 in OpenAI's API changelog.

Is there a new English voice for GPT-Live?

No. The October 16, 2026 release covers German, French, Hindi, Japanese and Korean only. For English, keep using your current default or create a prompt-generated voice.

How do I pick one of the new voices in a session?

Use gpt-live-1, confirm the name through the v1/audio/voices endpoint or the voice Playground, and set it when you create the session through v1/live/sessions. The exact field name is in the GPT-Live guide on the platform docs, since the changelog doesn't print it.

Do the new voices cost more?

The changelog lists GPT-Live sessions at $0.05 per minute, billed per second, with backend model and tool usage charged separately, and doesn't add any per-voice charge. Check OpenAI's pricing page for current rates.

Can I make my own voice instead of using a named one?

Yes. Prompt-to-voice, released October 16, 2026 for all API customers, lets you create a voice from a text description through the API or the voice Playground and reuse it in GPT-Live sessions. Creating it is free; generated speech is billed as a regular session.

Did this solve it?

One tap. No account.

Saved you an hour? Send a tip.

USDC or ETH on Base, Ethereum, Arbitrum and more. Keeps the notes free and the examples running.

Base

Network

0xc783bc5c3fa14cEC3f09A22284bC91C5AF0d59e1
Open in wallet · 5 USDC

On a computer? Scan the code with your phone wallet, or copy the address.

Pick the network your wallet or exchange uses. USDC works on all six; ETH on Base, Ethereum, Arbitrum and Optimism. Don't send on Tron or Solana: this address doesn't exist there. Tips are optional and unlock nothing; every guide stays free.

Discussion

Start the discussion

Indra Wijaya

Builds and runs AI agents, bots and content pipelines, and writes down what works and what broke.

About · Email · RSS

Keep reading

New notes, no spam.

One post at a time, only when there's something worth reading. Follow in any feed reader.

Subscribe via RSS