Product Launch · XiaoHu Explains

OpenAI launches GPT-Realtime-2.1 and GPT-Realtime-2.1-mini realtime voice models: the mini model gains reasoning, latency drops 25%

When calling a tool, the model now says "let me check that" first — calls no longer go cold while it waits.
60-second overview
  • OpenAI has simultaneously launched two new Realtime models in the API: gpt-realtime-2.1 and gpt-realtime-2.1-mini, both built for low-latency voice and multimodal scenarios
  • gpt-realtime-2.1-mini is the first reasoning-capable realtime voice model at the mini price point — priced identically to the previous gpt-realtime-mini
  • Both models have configurable reasoning effort, five levels (minimal / low / medium / high / xhigh), defaulting to low to keep latency in check
  • Thanks to caching improvements, the slowest requests across the entire Realtime voice model lineup are at least 25% faster; the mini's cached audio input price drops from $10 per million tokens to $0.30
  • gpt-realtime-2.1 improves on its predecessor in alphanumeric recognition, silence and noise handling, and interruption behavior; the mini's audio output price is roughly a third of the full model's ($20 vs. $64)
Editorial note: this article is a summary of OpenAI's official announcement. The pricing, latency reductions, and reasoning capabilities cited are all from OpenAI's own figures, not independently tested by a third party; technical details have been cross-checked against OpenAI's official Realtime API guide.
Let me check that
01The launch

What OpenAI just shipped

OpenAI has just launched two new Realtime models in the API, gpt-realtime-2.1 and gpt-realtime-2.1-mini, both built for low-latency voice and multimodal interaction.

The real headline here is the mini. gpt-realtime-2.1-mini is the first reasoning-capable realtime voice model to land at the mini price point, priced identically to the previous gpt-realtime-mini. At the same time, response times for the slowest requests across the whole Realtime voice lineup have also come down.
Why it matters: reasoning has, for the first time, been pushed down to a mini-tier realtime voice model at the same price as the old one, while p95 latency across the entire Realtime voice lineup dropped by at least 25%. Cost-sensitive voice apps can now get reasoning and tool-calling without paying more.

Both models are the "listen and respond" type of voice assistant, sitting in the Realtime family's conversational-response, tool-calling line. OpenAI also has separate models for simultaneous interpretation (gpt-realtime-translate) and realtime transcription (gpt-realtime-whisper) — those are distinct models not covered by this launch.

First, how "Realtime" actually works

The Realtime API's foundation is: a single model processes speech it hears directly into speech it speaks. It skips the three-step round trip of "speech to text, generate a text reply, then synthesize speech back." This is what's called single-model speech-to-speech. Here's a side-by-side of the two approaches.

The old cascaded way (three hand-offs)

Speech → transcribed to text → text reply generated → synthesized back to speech. Each seam has to wait for the previous step to finish, so latency stacks up layer by layer, and the speaker's tone and pauses tend to get lost in the transcription step.

Single model, one pass (this launch)

One model, speech in and speech out, no longer split into three stages. Two fewer seams means lower latency, and tone and nuance are better preserved.

Think of it this way

The single-model approach is like two people talking face to face. The three-hop version is like saying a sentence, having someone jot it down as a note, and a second person read the note out loud — slow, and the tone gets lost on the paper along the way.

02The old problem

Where voice assistants used to get stuck

Voice assistants often froze up when calling tools. The model would go silent right after triggering a function call, the user would assume the call had dropped, speak over it or just hang up, and the conversation state would get scrambled — leaving you with half a result and having to call back and start over.

Old way: silent waiting
UserCan you look up that order from last month?
Assistant(silence, looking it up in the background…)
UserHello? Still there? (assumes dropped call, interrupts)
StatusConversation interrupted, only half a result returned
New way: talk while you work
UserCan you look up that order from last month?
AssistantSure, let me pull up that order
Assistant(calls the lookup tool in the background while continuing to talk) Found it — that's the one from June 3rd…
StatusUser knows the request is in progress the whole time, so no accidental hang-ups
03Core mechanism

Reasoning lands in the mini tier — how it fixes the silence problem

This section is the heart of the launch: reasoning gets pushed down to the cheap mini tier, and paired with a "verbal heads-up," it directly fixes the silent-dropout problem from the last section.

What "reasoning" means here

Reasoning means the model thinks through, before it speaks, how to handle a request and whether it needs to call a tool — instead of blurting out whatever it hears first. The mini tier now supports function calling too, so it can plan a step ahead, call your function, and then give the answer.

Core innovation

A verbal heads-up turns silence into "talk while you work." The model can say "let me check that" first, then keep talking while it handles the request in the background. The user hears a voice the whole time and doesn't assume the call dropped, so multi-step voice tasks stay coherent.

More importantly: the price. The mini gained reasoning, but its pricing stays exactly the same as the previous gpt-realtime-mini. For the first time, cost-sensitive voice apps get reasoning and tool-calling at no extra cost.

Breaking down a single tool-calling exchange, the sequence looks like this:

Hears the request
Internal reasoningThinks through what to do, whether to call a tool
Gives a heads-up"Let me check that"
Calls the tool
Speaks the result

Five reasoning levels — trading off latency against quality

Reasoning effort is configurable, five levels from low to high: minimal, low, medium, high, xhigh. Low is the default, keeping latency down for simple exchanges; the higher the effort, the more latency and output tokens it uses. OpenAI recommends most production voice assistants start at low and only dial it up for harder tasks.

The higher the reasoning effort, the more latency and output tokens it costs. The default low tier balances speed and is the starting point for most use cases.
minimal
Fastest
low (default)
Starting tier
medium
high
xhigh
Slowest, deepest
5 levels
Reasoning effort options: minimal / low / medium / high / xhigh, default low
Same price
The mini gains reasoning while keeping the same pricing as the previous gpt-realtime-mini
04Which to pick

How to choose between the two models

The short version: use the full gpt-realtime-2.1 for the strongest realtime reasoning, tool-calling, instruction-following, and voice-assistant behavior; use gpt-realtime-2.1-mini when faster and cheaper is good enough.

Dimensiongpt-realtime-2.1 (full)gpt-realtime-2.1-mini
PositioningStrongest realtime reasoning and voice-assistant behaviorFaster, cheaper option
ReasoningYes, adjustable effortYes, mini reasoning model
Tool callingYesYes
Improvements over predecessorBetter alphanumeric recognition, silence/noise handling, and interruption behaviorKeeps prior mini's capabilities, adds reasoning
Audio output price$64 / million tokens$20 / million tokens
Pick this when…You need the strongest reasoning and voice-assistant performanceYou need speed and cost savings, and the capability is good enough
$20 vs $64
Audio output price for mini vs. full — roughly 3x, capability traded for cost
Alphanumerics
The full model improves recognition of codes like "8-3-5-7-1" — good for scenarios needing precise digit capture
05Latency and cost

25% lower latency, and how caching saves money

This launch's latency improvement comes from caching optimizations. And caching doesn't just save time — it saves a lot of money too.

What "p95 latency" means

p95 latency is: line up every request's response time from fastest to slowest, and take the value at the 95th percentile. It represents how long the slowest 5% of users actually waited — not the average. For realtime voice, the choppiness users actually notice hides in that slow tail. Cutting that tail by at least 25% makes the conversation feel noticeably more responsive.

Think of it this way

100 people in a checkout line — what you actually care about isn't the average wait, but how long the 5 people near the back of the line waited. If they're not complaining, the system is solid.

Why cached hits drop the price so much

Cached input means: this turn of the conversation continues from a system prompt or history that's already been processed, and the service recognizes "this part's already been computed," reusing it instead of recomputing — so the price drops sharply. The system prompt gets cached after the first turn, so the longer the conversation and the more it reuses, the more it saves. Here's the gap between cached and fresh pricing for the mini's audio input:

gpt-realtime-2.1-mini audio input, price per million tokens.
Fresh audio input
$10.00
Cached input
$0.30
≥25%
Drop in p95 latency across the entire Realtime voice lineup, from caching optimizations
$0.30
Mini's cached audio input price, vs. $10.00 fresh — roughly 33x cheaper
06Full pricing

All three models' prices, in full

All prices are per million tokens, across text, audio, and image. Click a tab to switch categories — the mini column is highlighted.

Audio / per million tokensgpt-realtime-2.12.1-miniPrior mini
Audio input$32.00$10.00$10.00
Audio cached input$0.40$0.30$0.30
Audio output$64.00$20.00$20.00
The mini's audio output price is roughly a third of the full model's ($20 vs. $64).
Text / per million tokensgpt-realtime-2.12.1-miniPrior mini
Text input$4.00$0.60$0.60
Text cached input$0.40$0.06$0.06
Text output$24.00$2.40$2.40
The mini's text pricing matches the prior gpt-realtime-mini line for line — no price hike for the added reasoning.
Image / per million tokensgpt-realtime-2.12.1-miniPrior mini
Image input$5.00$0.80$0.80
Image cached input$0.50$0.08$0.08
Across all three categories, every mini line item stays stable at the prior mini's price point.
07Use cases

What it's good for

Four typical scenarios, each showing how reasoning, tool-calling, and the recognition improvements come into play:

Customer service billing disputes

A user calls saying a bill looks wrong. The mini uses low-effort reasoning to assess the issue, calls lookup_account to pull the account, then check_invoice to pull the bill — narrating progress out loud at each step so the user never thinks the call dropped.

Rescheduling an appointment

A user wants to move an appointment to next Tuesday. The model precisely captures the exact date, confirms it with the user, then calls the reschedule function. Only confirmed values get passed to the tool, avoiding guessed inputs.

In-app voice assistant

A phone app streams microphone audio over WebRTC. The mini answers product questions in a sentence or two, cheaply enough to run this feature at high concurrency.

Reading back a work-order number on-site

A technician has the assistant log a part number. The improved alphanumeric recognition more accurately captures a code like "8-3-5-7-1" — the model reads it back to confirm before executing.

08Integration

What integration looks like

The minimal setup: the server first mints a short-lived client credential (the standard API key stays server-side and never gets exposed), and the browser uses that short-lived credential to connect directly over WebRTC, setting up a microphone track and a data channel to send and receive events.

Server mints a short-lived credentialAPI key stays server-side
Browser initiates a WebRTC offer
Sets up mic track + data channel
Sends and receives audio events in realtime

Pick the connection method by scenario: browsers and phones that capture and play audio directly use WebRTC; servers that already have a raw audio stream (call centers, media pipelines) use WebSocket; telephony voice agents use SIP.

Expand for two minimal code snippets (server issues credential + browser initiates connection)
Server: mint a short-lived client secret (API key stays server-side)
// Server: mint a short-lived client secret
const r = await fetch("https://api.openai.com/v1/realtime/client_secrets", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.OPENAI_API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    session: {
      type: "realtime",
      model: "gpt-realtime-2.1-mini",
      instructions: "You are a support agent. Reply in one or two short sentences.",
      reasoning: { effort: "low" },
      tools: [
        {
          type: "function",
          name: "lookup_account",
          description: "Look up a customer account by email.",
          parameters: {
            type: "object",
            properties: { email: { type: "string" } },
            required: ["email"]
          }
        }
      ],
      tool_choice: "auto"
    }
  })
});
const { value: EPHEMERAL_KEY } = await r.json(); // pass this to the browser
Browser: use the short-lived credential to open a WebRTC connection
// Browser: connect to the Realtime API over WebRTC
const pc = new RTCPeerConnection();

const audioEl = document.createElement("audio");
audioEl.autoplay = true;
pc.ontrack = (e) => { audioEl.srcObject = e.streams[0]; };

const mic = await navigator.mediaDevices.getUserMedia({ audio: true });
pc.addTrack(mic.getTracks()[0]);

const events = pc.createDataChannel("oai-events");
events.addEventListener("message", (e) => console.log(JSON.parse(e.data)));

const offer = await pc.createOffer();
await pc.setLocalDescription(offer);

const sdp = await fetch("https://api.openai.com/v1/realtime/calls", {
  method: "POST",
  body: offer.sdp,
  headers: {
    Authorization: `Bearer ${EPHEMERAL_KEY}`,
    "Content-Type": "application/sdp"
  }
});
await pc.setRemoteDescription({ type: "answer", sdp: await sdp.text() });

Start with low reasoning effort and only dial up for harder tasks; keep hard rules separate from defaults in your instructions; run an eval before and after any model migration to compare.

This ships through the GA endpoint, not beta. If your app distinguishes between end users, OpenAI recommends adding an OpenAI-Safety-Identifier header to credential-issuing requests (e.g., a hash of the internal user ID), so abuse monitoring can pinpoint the specific user instead of mistakenly flagging the whole account.

09Trade-offs

Where it shines, where it's limited

By OpenAI's own numbers, here's both sides of this launch:

Strengths
  • Reasoning pushed down to the cheap mini tier
  • Priced the same as the previous gpt-realtime-mini — no price hike
  • p95 latency down at least 25% across the lineup
  • Five adjustable reasoning levels, trading latency against depth by task
  • Single-model audio pipeline makes conversation feel more natural
Limitations
  • Audio billed by token, hard to translate into a per-call cost estimate
  • Higher reasoning effort means more latency and more output tokens
  • Long sessions that keep resending context will rack up input costs if not trimmed
  • The mini tier is still weaker than the full gpt-realtime-2.1
The model can say "let me look into that order" first, then keep talking while it handles the request, so multi-step voice tasks stay coherent. MarkTechPost, by Michal Sutter
Source: MarkTechPost (by Michal Sutter), reported July 6, 2026. Technical details cross-checked against OpenAI's official Realtime API guide (developers.openai.com/api/docs/guides/realtime). Pricing, latency reductions, and other figures cited are all from OpenAI's own published numbers.