APIFleet Sign in

Speech-to-speech models on 1,908 APIFleet calls: latency, openings, errors and cost

Speech-to-speech models on APIFleet calls cannot all be timed, and the ones that can were timed from different starting points. On turns that did not wait for a tool, first reply audio from the three OpenAI Realtime models reached APIFleet's server a median 452 to 762 ms after OpenAI's own end-of-speech event (six phone and web samples of 74 to 379 turns from 17 to 80 calls, 14 August to 27 September 2026), while Gemini 3.1 Flash Live took 1,274 ms on the phone from APIFleet's own end-of-speech decision (324 turns, 97 calls, 5 to 7 September), or 1,016 ms (85 turns, 29 calls) without 5 September, the day that held every such phone turn over 10 seconds. gpt-live-1, which carried 1,073 of the 1,319 phone calls, records no end of caller speech to time from; its phone calls from 11 September to 29 October cost an estimated $0.0574 per connected minute in provider and carrier charges, before APIFleet's platform fee. These are observational numbers from 1,908 production and test calls between 14 August and 29 October 2026, not a controlled benchmark, and every table below gives sample sizes, channel and dates.

APIFleet team · · 22 min read

Response latency, where it can be measured

Response latency here runs from the caller endpoint that each pipeline records to the first reply audio that APIFleet's server receives, counting only turns where no tool call finished in between. That endpoint is OpenAI's end-of-speech event for OpenAI Realtime and APIFleet's own voice activity detection (VAD) decision for Gemini 3.1 Flash Live, so the table names it on every row. Phone rows are Telnyx calls, and web rows are browser test sessions.

Among rows that share a clock, gpt-realtime-mini had the lowest medians: 467 ms on the phone (133 turns, 21 calls) and 452 ms on the web (112 turns, 26 calls). The gpt-realtime-2.1 and gpt-realtime-2.1-mini rows sat between 739 and 762 ms on both channels (74 to 379 turns from 17 to 80 calls per row). The gpt-realtime-mini phone row comes from four assistants, one of them behind 44% of its turns, so it does not describe other deployments.

The gpt-realtime-2.1 rows are thin as well: its 74 phone turns come from 17 calls, and all 195 of its web turns from 5 and 6 September.

Almost all of that time passes after OpenAI creates the response. On the same turns, every OpenAI row shows the response created a median 4 to 8 ms after the end-of-speech event and the first audio a median 448 to 759 ms after that.

The gpt-live-1 and Gemini 3.8 Live rows read not measurable because their sessions record no usable end of caller speech, as the next section explains. Turns that waited for a tool are left out here; tool waits have their own page in this series.

Response latency without a tool wait: caller endpoint to the first reply audio received by APIFleet's server. Medians with call-level 95% bootstrap intervals; dates are 2026, UTC.
Model and channelClock starts atTurns (calls)Median, ms (95% interval)p90, msDates, 2026
gpt-live-1, phone and webNo end-of-speech eventNot measurableNot measurableNot measurable10 Sep to 29 Oct
Gemini 3.1 Flash Live, phone, all daysAPIFleet VAD decision, about 500 ms after the last voiced audio324 (97)1,274 (975 to 12,647)23,4455 to 7 Sep
Gemini 3.1 Flash Live, phone, without 5 SepAPIFleet VAD decision, about 500 ms after the last voiced audio85 (29)1,016 (884 to 1,135)1,5446 to 7 Sep
Gemini 3.1 Flash Live, web, all daysAPIFleet VAD decision, mostly 800 ms after the last voiced audio277 (42)1,435 (1,089 to 2,228)8,2065 to 15 Sep
Gemini 3.1 Flash Live, web, without 5 SepAPIFleet VAD decision, mostly 800 ms after the last voiced audio39 (11)865 (779 to 2,074)2,4528 to 15 Sep
gpt-realtime-2.1-mini, phoneOpenAI end-of-speech event174 (37)752 (688 to 829)1,16417 Aug to 9 Sep
gpt-realtime-2.1-mini, webOpenAI end-of-speech event379 (80)762 (718 to 809)1,30814 Aug to 5 Sep
gpt-realtime-mini, phoneOpenAI end-of-speech event133 (21)467 (349 to 522)69117 to 27 Aug
gpt-realtime-mini, webOpenAI end-of-speech event112 (26)452 (415 to 476)72523 Aug to 1 Sep
gpt-realtime-2.1, phoneOpenAI end-of-speech event74 (17)748 (669 to 828)1,20724 Aug to 27 Sep
gpt-realtime-2.1, webOpenAI end-of-speech event195 (20)739 (693 to 778)1,1765 to 6 Sep
Gemini 3.8 Live, webAutomatic VAD, no endpoint eventNot measurableNot measurableNot measurable20 to 29 Sep

Why the latency clocks start at different points

No pipeline records the moment a caller actually stops talking, so every latency row starts at a decision about it. On OpenAI Realtime the clock starts when APIFleet receives OpenAI's end-of-speech event, and OpenAI describes its semantic voice activity detection as a classifier that waits for a timeout when the caller's words sound unfinished. That wait happens before the clock starts, and although semantic detection is APIFleet's current default for these models, the call records do not store each call's setting.

Gemini 3.1 Flash Live rows come only from calls where APIFleet ran its own voice activity detection and sent Gemini manual activity signals. The detector ends a turn after 500 ms without voiced audio on the phone, and after 800 ms on 347 of 351 web turn ends, so adding that window to the same turns as the table above estimates the time from the caller's last voiced audio: 1,774 ms on the phone (324 turns, 97 calls) or 1,516 ms without 5 September (85 turns, 29 calls), and 2,235 ms on the web (277 turns, 42 calls) or 1,665 ms without that day (39 turns, 11 calls). Google's Live API guide recommends a silence threshold of at least 500 ms for manual detection.

The gpt-live-1 model listens and speaks at the same time and gives APIFleet no caller speech start or stop events, so there is nothing to start a clock from. On sessions that use Gemini's automatic detection, which includes all 64 Gemini 3.8 Live calls here, the end-of-turn signal is only recorded when the reply audio, a tool call or the end of the model's turn arrives, so it measures nothing.

Every row stops when APIFleet's server receives the first reply audio, not when the caller hears it. Phone audio is then paced out in 20 ms frames behind the carrier's own buffering, and browsers buffer too, so callers wait longer than these figures show. Compare OpenAI rows with each other, and treat the gap between OpenAI and Gemini rows as unmeasured.

The 5 September 2026 caveat for Gemini 3.1 Flash Live

Gemini 3.1 Flash Live's phone sample covers only 5 to 9 September 2026, and 108 of its 154 phone calls fell on 5 September, the first day on which end-of-turn events from APIFleet's own turn detection for Gemini appear in the traces. On that day 49% of its phone calls were outbound, against 11% on the other days.

Every Gemini 3.1 Flash Live turn without a tool wait that took more than 10 seconds fell on that day: 137 of 239 phone turns and 20 of 238 web turns, against none of the 85 phone and 39 web turns on other days. On 5 September alone the phone median was 13,641 ms (239 turns, 68 calls), against 1,016 ms (85 turns, 29 calls) on the other days. A change adding recovery for silent Gemini requests is dated 23:30 UTC that day, and when it was deployed is not recorded.

Setting the day aside moves more than latency. The phone opening median falls from 1,618 ms (92 calls) to 1,178 ms (38 calls), phone calls of 10 seconds or more with no assistant audio go from 3 of 147 to 3 of 46, and the estimated cost per connected minute rises from $0.0389 (154 calls) to $0.0907 (46 calls).

Neither version is a stable estimate for Gemini 3.1 Flash Live on the phone, because the three other days with calls hold 46 calls from 16 assistants, 54% of them on 7 September. Google now calls the model a legacy preview and recommends Gemini 3.8 Live, which this data covers only through 64 short web test calls.

Greeting time from session start to the first opening audio

Openings are the one timing metric with the same starting point for every provider. Each session records its start just before APIFleet opens the WebSocket to the model vendor, so the time covers connecting, setting up the session and generating the first audio of a model-spoken greeting, but not the carrier answering or the media connection being set up. The end point is the first audio chunk for OpenAI Realtime and Gemini, and the first audible frame for gpt-live-1, whose audio stream runs continuously.

The shortest medians were Gemini 3.8 Live's 1,173 ms over 64 web calls, 95% of them on 21 September 2026, and Gemini 3.1 Flash Live's 1,178 ms over 38 phone calls after 5 September (1,618 ms over all 92). On the phone, gpt-realtime-2.1-mini took 2,346 ms (40 calls) and gpt-live-1 3,775 ms (309 calls), and the Live session alone took a median 1,606 ms to report ready on those same 309 calls.

The gpt-live-1 phone row counts only openings the model spoke itself, and most of them came from one assistant. On 632 of its 1,073 phone calls APIFleet's bridge started a recorded greeting clip instead, a clip APIFleet installs per assistant, used by two assistants here; those calls are left out, and since the clips and the spoken openings came almost entirely from different assistants, no difference between them can be read as a model or caching effect.

Two OpenAI phone rows are marked insufficient because too few calls had a model-spoken opening. The caller spoke first, or no opening was configured, on 18 of 23 gpt-realtime-2.1 calls and 11 of 23 gpt-realtime-mini calls.

Greeting time: session start to the first audio of a model-spoken opening, as received by APIFleet's server. Medians with call-level 95% bootstrap intervals; dates are 2026, UTC.
Model and channelCalls with a model-spoken openingMedian, ms (95% interval)p90, msDates, 2026Note
gpt-live-1, phone3093,775 (3,657 to 3,904)4,76411 Sep to 29 Octmostly from one assistant; the bridge started a recorded clip on 632 other calls
gpt-live-1, web1582,368 (2,285 to 2,506)3,92813 Sep to 28 Oct144 assistants
Gemini 3.1 Flash Live, phone, all days921,618 (1,227 to 2,823)23,8865 to 9 Sep54 of the 92 openings on 5 Sep
Gemini 3.1 Flash Live, phone, without 5 Sep381,178 (1,065 to 1,319)2,2506 to 9 Sep11 assistants
Gemini 3.1 Flash Live, web, all days1471,383 (1,207 to 1,546)3,23331 Aug to 22 Oct138 assistants
Gemini 3.1 Flash Live, web, without 5 Sep1071,425 (1,314 to 1,598)2,74031 Aug to 22 Oct98 assistants
gpt-realtime-2.1-mini, phone402,346 (2,036 to 2,632)3,18824 Aug to 9 Sep5 assistants
gpt-realtime-2.1-mini, web1122,188 (1,894 to 2,332)2,84514 Aug to 5 Sep110 assistants
gpt-realtime-mini, phone12InsufficientInsufficient17 to 27 AugFewer than 20 openings; dates are the group's
gpt-realtime-mini, web431,917 (1,626 to 2,076)2,39019 Aug to 1 Sep43 assistants
gpt-realtime-2.1, phone4InsufficientInsufficient24 Aug to 27 SepFewer than 20 openings; dates are the group's
gpt-realtime-2.1, web241,869 (1,517 to 2,166)2,31924 Aug to 6 Sep79% of this model's web calls on 5 Sep
Gemini 3.8 Live, web641,173 (1,136 to 1,192)1,38720 to 29 Sep95% of calls on 21 Sep; 13 assistants

Calls that ended in an error or stayed silent

Model-session errors ended 1.0% of gpt-live-1 phone calls (11 of 1,073, 95% interval 0.5% to 1.7%) and 1.9% of Gemini 3.1 Flash Live phone calls (3 of 154, or 1 of 46 without 5 September). An error-ended call is one whose end reason records a fatal failure reported by the model session, a dropped connection is a lost provider or assistant connection, and a silent call is one connected for 10 seconds or more with no assistant audio.

The OpenAI Realtime rows show no error rate because APIFleet's OpenAI Realtime session has no path that ends a call with a model-error reason. A failure there can only appear as a dropped connection or an ordinary hang-up, so their zero dropped connections are not evidence that nothing failed.

Small groups cannot rule much out. When nothing was seen, the table gives the rule-of-three 95% upper bound, 3 divided by the number of calls, which is 13% for a 23-call group. Gemini 3.1 Flash Live's web errors also cluster on 5 September, with 5 of its 6 error-ended web calls on that day.

Calls ended by a model-session error or a dropped connection, and calls of 10 s or more with no assistant audio. When the count is zero, the bracket gives the 95% upper bound; dates are 2026, UTC.
Model and channelEnded by a model-session errorEnded by a dropped connectionSilent, of calls of 10 s or moreDates, 2026
gpt-live-1, phone11 of 1,073 (1.0%)0 of 1,073 (upper bound 0.3%)7 of 745 (0.9%)11 Sep to 29 Oct
gpt-live-1, web3 of 183 (1.6%)0 of 183 (upper bound 1.6%)2 of 168 (1.2%)10 Sep to 28 Oct
Gemini 3.1 Flash Live, phone, all days3 of 154 (1.9%)2 of 154 (1.3%)3 of 147 (2.0%)5 to 9 Sep
Gemini 3.1 Flash Live, phone, without 5 Sep1 of 46 (2.2%)0 of 46 (upper bound 6.5%)3 of 46 (6.5%)6 to 9 Sep
Gemini 3.1 Flash Live, web, all days6 of 156 (3.8%)0 of 156 (upper bound 1.9%)2 of 140 (1.4%)31 Aug to 22 Oct
Gemini 3.1 Flash Live, web, without 5 Sep1 of 111 (0.9%)0 of 111 (upper bound 2.7%)2 of 98 (2.0%)31 Aug to 22 Oct
gpt-realtime-2.1-mini, phoneNot reported0 of 46 (upper bound 6.5%)1 of 45 (2.2%)17 Aug to 9 Sep
gpt-realtime-2.1-mini, webNot reported0 of 118 (upper bound 2.5%)0 of 107 (upper bound 2.8%)14 Aug to 5 Sep
gpt-realtime-mini, phoneNot reported0 of 23 (upper bound 13%)0 of 23 (upper bound 13%)17 to 27 Aug
gpt-realtime-mini, webNot reported0 of 44 (upper bound 6.8%)0 of 42 (upper bound 7.1%)19 Aug to 1 Sep
gpt-realtime-2.1, phoneNot reported0 of 23 (upper bound 13%)1 of 20 (5.0%)24 Aug to 27 Sep
gpt-realtime-2.1, webNot reported0 of 24 (upper bound 12.5%)0 of 23 (upper bound 13%)24 Aug to 6 Sep
Gemini 3.8 Live, web0 of 64 (upper bound 4.7%)0 of 64 (upper bound 4.7%)0 of 62 (upper bound 4.8%)20 to 29 Sep

Cost per connected minute, before the platform fee

On the phone, estimated provider and carrier charges per connected minute were $0.0574 for gpt-live-1 (1,073 calls), $0.0303 for gpt-realtime-2.1-mini (44 calls), $0.0277 for gpt-realtime-mini (20 calls) and $0.0669 for gpt-realtime-2.1 (23 calls). Gemini 3.1 Flash Live came to $0.0389 over all 154 phone calls but $0.0907 over the 46 calls after 5 September, which makes it the least settled figure in the table.

Each figure is a group's summed charges divided by its connected minutes, priced from APIFleet's configured rate cards, which changed during the period, rather than from invoices. The current rate card prices gpt-realtime-2.1 text output at $16 per million tokens where OpenAI now lists $24, so that model's rows may understate its text output. Phone totals include Telnyx carrier time at a flat configured $0.0055 per minute, web calls have no carrier charge, and no figure includes APIFleet's platform fee of $0.03 per connected AI minute, billed per second.

As illustrative arithmetic, adding that fee to the gpt-live-1 phone estimate gives about $0.087 per connected minute. Most of gpt-live-1's charge is its Live voice fee of $0.05 per session minute, which came to $0.0488 of the $0.0574 on the phone while the GPT-5.6 Luna backend added $0.0031; on the web, mostly with the GPT-5.6 Terra backend, the backend share was $0.0165 of $0.0659 (183 calls).

Token-billed models move with prompt size and call shape. The gpt-realtime-mini and gpt-realtime-2.1-mini models share a list price, yet their pooled web figures were $0.0123 (44 calls) and $0.0226 (118 calls), while their per-call medians were close at $0.0231 (42 calls) and $0.0220 (107 calls). The pooled figure weights each call by its length, so long calls with low per-minute costs pull it down.

Read the small OpenAI phone groups with care: the 20 costed gpt-realtime-mini calls come from four assistants, and the interval for gpt-realtime-2.1 on the phone runs from $0.0535 to $0.0902 (23 calls).

Estimated provider and carrier cost per connected minute in USD, from APIFleet's configured rate cards, pooled over each group with call-level 95% bootstrap intervals. Excludes APIFleet's $0.03 platform fee; phone totals include $0.0055 for the carrier.
Model, channel and dates (2026)CallsTotal per minute (95% interval)Model tokensLive voice feePer-call median (calls of 10 s or more)
gpt-live-1, phone, 11 Sep to 29 Oct1,0730.0574 (0.0571 to 0.0576)0.0031 (backend)0.04880.0584 (745 calls)
gpt-live-1, web, 10 Sep to 28 Oct1830.0659 (0.0636 to 0.0681)0.0165 (backend)0.04940.0601 (168 calls)
Gemini 3.1 Flash Live, phone, 5 to 9 Sep1540.0389 (0.0333 to 0.0453)0.0334None0.0315 (147 calls)
Gemini 3.1 Flash Live, phone, 6 to 9 Sep (without 5 Sep)460.0907 (0.0730 to 0.1061)0.0852None0.0706 (46 calls)
Gemini 3.1 Flash Live, web, 31 Aug to 22 Oct1560.0513 (0.0475 to 0.0554)0.0513None0.0540 (140 calls)
Gemini 3.1 Flash Live, web, 31 Aug to 22 Oct without 5 Sep1110.0576 (0.0524 to 0.0630)0.0576None0.0561 (98 calls)
gpt-realtime-2.1-mini, phone, 17 Aug to 9 Sep440.0303 (0.0261 to 0.0346)0.0248None0.0263 (43 calls)
gpt-realtime-2.1-mini, web, 14 Aug to 5 Sep1180.0226 (0.0211 to 0.0242)0.0226None0.0220 (107 calls)
gpt-realtime-mini, phone, 17 to 27 Aug200.0277 (0.0231 to 0.0328)0.0222None0.0284 (20 calls)
gpt-realtime-mini, web, 19 Aug to 1 Sep440.0123 (0.0088 to 0.0174)0.0123None0.0231 (42 calls)
gpt-realtime-2.1, phone, 24 Aug to 27 Sep230.0669 (0.0535 to 0.0902)0.0614None0.0675 (20 calls)
gpt-realtime-2.1, web, 24 Aug to 6 Sep240.0605 (0.0340 to 0.0911)0.0605None0.0981 (23 calls)
Gemini 3.8 Live, web, 20 to 29 Sep640.0498 (0.0458 to 0.0560)0.0498None0.0486 (62 calls)

Tokens per connected minute are billing counts, not audio

Text input was the largest count in every row, with medians from 15,202 tokens per connected minute for gpt-live-1 on the web (168 calls) to 72,626 for Gemini 3.1 Flash Live on the phone after 5 September (46 calls; 23,438 over all 147 calls). These are the counts each vendor reported for billing, divided by connected minutes on calls of 10 seconds or more, and they do not measure how much audio anyone heard.

OpenAI Realtime input counts include the conversation context that the model reads again on every response, and Gemini's are summed turn by turn, so long prompts and tool lists multiply them. The gpt-live-1 figure is its delegated backend's prompt, not audio.

Token accounting also differs between generations: gpt-realtime-2.1-mini recorded a median of 57 audio input tokens per minute on the phone (43 calls) next to 25,015 text input tokens, while gpt-realtime-mini recorded 1,536 audio input tokens per minute on the phone (20 calls). Use the table to size prompts and budgets, not to rank models.

Median tokens per connected minute on calls of 10 s or more, as recorded for billing; audio and text input include cached tokens
Model, channel and dates (2026)CallsAudio inAudio outText inNote
gpt-live-1, phone, 11 Sep to 29 Oct745Not token-billedNot token-billed49,730Backend prompt; voice billed per Live minute
gpt-live-1, web, 10 Sep to 28 Oct168Not token-billedNot token-billed15,202Backend prompt; voice billed per Live minute
Gemini 3.1 Flash Live, phone, 5 to 9 Sep1471,50221923,438Includes 5 Sep
Gemini 3.1 Flash Live, phone, 6 to 9 Sep (without 5 Sep)463,20559872,62616 assistants
Gemini 3.1 Flash Live, web, 31 Aug to 22 Oct1373,53352945,9563 calls without recorded tokens excluded
Gemini 3.1 Flash Live, web, 31 Aug to 22 Oct without 5 Sep952,95661149,6643 calls without recorded tokens excluded
gpt-realtime-2.1-mini, phone, 17 Aug to 9 Sep435770125,015Few audio input tokens recorded
gpt-realtime-2.1-mini, web, 14 Aug to 5 Sep107 (text in: 100)12364629,871Few audio input tokens recorded
gpt-realtime-mini, phone, 17 to 27 Aug201,53649146,0034 assistants
gpt-realtime-mini, web, 19 Aug to 1 Sep4235855137,16742 assistants
gpt-realtime-2.1, phone, 24 Aug to 27 Sep19InsufficientInsufficientInsufficientFewer than 20 calls with tokens
gpt-realtime-2.1, web, 24 Aug to 6 Sep2357455537,96822 assistants
Gemini 3.8 Live, web, 20 to 29 Sep622,3941,24930,135Median call 13.6 s

The six models, as their vendors describe them

The descriptions and list prices below come from OpenAI's and Google's own pages, checked on 29 October 2026, and they are the vendors' claims rather than APIFleet measurements. The last column records how the calls in this data were set up, one of the differences between rows that the tables cannot separate from the model.

Two pairs share a rate card: gpt-realtime-mini and gpt-realtime-2.1-mini list the same token prices, as do Gemini 3.1 Flash Live and Gemini 3.8 Live. The gpt-live-1 model is the only one billed per session minute, at $0.05 billed per second, with its backend model's tokens on top.

Two of the six are no longer the vendors' recommended choice. OpenAI's model page marks gpt-realtime-mini as deprecated, and Google calls Gemini 3.1 Flash Live a legacy preview and recommends Gemini 3.8 Live for most voice agents, so their rows describe past traffic, which ended on 1 September 2026 for gpt-realtime-mini and on 22 October 2026 for Gemini 3.1 Flash Live, rather than a current pick.

Vendor descriptions and list prices checked on 29 October 2026 (USD per million tokens unless stated), and how each model ran on APIFleet in this data
ModelVendor descriptionList priceOn APIFleet in this data
gpt-live-1Full-duplex voice model that hands reasoning and tool calls to a backend model$0.05 per session minute, billed per second, plus backend model and tool usagePhone: willow voice with a GPT-5.6 Luna backend on 99.7% of calls; web: mostly marin with GPT-5.6 Terra
gemini-3.1-flash-live-previewLegacy preview for real-time dialogue with sequential tool calls; Google recommends moving to Gemini 3.8 LiveAudio in $3, audio out $12, text in $0.75APIFleet turn detection with manual activity signals on 110 of 154 phone calls (34 of the 46 after 5 Sep) and 78 of 156 web calls; Google's automatic detection on the rest (45 web calls from 31 Aug to 4 Sep record no setting)
gpt-realtime-2.1-miniDistilled reasoning model for faster, lower-cost realtime voiceAudio in $10, audio out $20, text in $0.60Mostly the marin voice; 118 of its 164 calls were browser tests
gpt-realtime-miniCost-efficient version of GPT-Realtime, now marked deprecatedSame as gpt-realtime-2.1-miniPhone calls mostly used the echo voice; last call in this data on 1 Sep 2026
gpt-realtime-2.1Speech-to-speech reasoning model with tool useAudio in $32, audio out $64, text in $4Mostly the marin voice; 19 of its 23 phone calls were outbound
gemini-3.8-liveStable default for low-latency voice agents, with asynchronous function callingSame as Gemini 3.1 Flash LiveGoogle's automatic detection on all 64 web calls; no phone calls

The calls behind these numbers

The data is an extract of APIFleet's call logs and trace events without transcripts, phone numbers or customer details, analysed only in aggregate. It holds 1,908 calls that ran one of these six models between 14 August and 29 October 2026: 1,319 phone calls over Telnyx media streams and 589 web calls, which are browser test sessions, and the two channels are never pooled. Two older OpenAI realtime models, with two calls each, are left out.

A group needs at least 20 calls before any statistic appears, a median or percentile needs at least 20 samples, and a rate needs at least 20 calls; anything smaller is marked insufficient. Intervals are 95% bootstrap intervals that resample whole calls, so they describe uncertainty about these calls, not about other deployments.

Web rows are browser tests and demos, some possibly automated, and phone rows include developer test calls, so neither channel is a sample of ordinary caller traffic. Several groups are concentrated in one day or a few assistants, as the table shows.

Calls per model and channel, 14 August to 29 October 2026 (UTC dates)
ModelChannelCalls (assistants)Dates, 2026Median call lengthBusiest day's share of calls
gpt-live-1Phone1,073 (20)11 Sep to 29 Oct37.3 s7% (15 Sep)
gpt-live-1Web183 (159)10 Sep to 28 Oct58.8 s13% (17 Sep)
Gemini 3.1 Flash LivePhone154 (83)5 to 9 Sep151.8 s (97.1 s over the 46 calls without 5 Sep)70% (5 Sep)
Gemini 3.1 Flash LiveWeb156 (145)31 Aug to 22 Oct66.0 s29% (5 Sep)
gpt-realtime-2.1-miniPhone46 (7)17 Aug to 9 Sep87.1 s26% (25 Aug)
gpt-realtime-2.1-miniWeb118 (116)14 Aug to 5 Sep48.8 s14% (4 Sep)
gpt-realtime-miniPhone23 (4)17 to 27 Aug174.6 s52% (17 Aug)
gpt-realtime-miniWeb44 (44)19 Aug to 1 Sep115.2 s27% (27 Aug)
gpt-realtime-2.1Phone23 (14)24 Aug to 27 Sep45.2 s43% (27 Sep)
gpt-realtime-2.1Web24 (23)24 Aug to 6 Sep168.5 s79% (5 Sep)
Gemini 3.8 LiveWeb64 (13)20 to 29 Sep13.6 s95% (21 Sep)

Confounders that matter for this comparison

No group was randomised or matched, and no difference between rows should be read as caused by the model. Each model ran on different assistants, prompts, tools and weeks: two assistants made most of gpt-live-1's 1,073 phone calls, most web groups have close to one assistant per call, and each phone group comes from one or two tenants.

The runtime changed throughout the period, and changes on the vendors' side are invisible in these logs. OpenAI Realtime traffic ran from 14 August to 27 September, Gemini 3.1 Flash Live from 5 to 9 September on the phone and 31 August to 22 October on the web, Gemini 3.8 Live on the web from 20 to 29 September, and gpt-live-1 from 10 September to 29 October.

Call direction and length differ too: 83% of gpt-realtime-2.1's 23 phone calls were outbound against 11% of gpt-live-1's 1,073, and 31% of gpt-live-1's phone calls lasted under 10 seconds, which counts toward its pooled cost but not its per-call figures.

Configuration varies inside groups: Gemini 3.1 Flash Live mixes APIFleet's and Google's turn detection, gpt-live-1 used a different backend on the phone than on the web, and voices differ. Costs are rate-card estimates, and 54 calls that ran more than one session recorded a zero model charge that is rebuilt from the call total, 43 of them Gemini 3.1 Flash Live phone calls (39 of those on 5 September). Five calls with back-filled cost estimates are excluded, and 42 gpt-live-1 calls carry usage that was not fully confirmed.

How to use these numbers when choosing a model

Treat the tables as a map of what to test, then measure your own candidates on one clock. In APIFleet the model is a per-assistant setting, so two copies of one assistant can differ only in model.

  1. Test on the channel you will ship: the phone calls here ran over Telnyx at 8 kHz, while browser sessions add their own buffering and echo cancellation.
  2. Time every candidate from the same point, such as the last voiced frame in your own recording, to the first reply audio you send, rather than from each vendor's end-of-speech event.
  3. Measure the opening separately, from session start to first audio, because it includes connecting to the vendor and differs from reply timing.
  4. Count error-ended and silent calls yourself for every candidate, because some sessions cannot report their own failures.
  5. Price token-billed models with your real prompt and tool list; median text input ranged from about 15,000 to 73,000 tokens per minute across these groups.
  6. Run an A/A comparison first to learn your noise floor, and check each vendor's model status before building on a preview or deprecated model.
Diagram of one voice-agent conversation: caller audio, speech to the model, tools and context, then the spoken reply, with platform, AI provider and carrier charges shown as separate costs

Continue with a practical next step

Frequently asked questions

Which speech-to-speech model responded fastest on APIFleet calls?

Among rows timed on the same clock, gpt-realtime-mini had the lowest medians from the caller endpoint to the first reply audio received by APIFleet's server, on turns that did not wait for a tool: 467 ms on the phone (133 turns, 21 calls, 17 to 27 August 2026) and 452 ms on the web (112 turns, 26 calls, 23 August to 1 September 2026). That clock starts at OpenAI's own end-of-speech event, the phone sample comes from four assistants, and OpenAI now marks the model deprecated.

Why is there no response latency for gpt-live-1?

The gpt-live-1 session gives APIFleet no caller speech start or stop events, so no turn has a recorded end of caller speech to time from. Its openings, backend timing, errors and costs are measurable, and the gpt-live-1 page covers them.

Is Gemini 3.1 Flash Live slower than OpenAI Realtime on the phone?

These numbers cannot settle that. Gemini's phone median of 1,274 ms (324 turns, 97 calls, 5 to 7 September 2026), or 1,016 ms (85 turns, 29 calls) without 5 September, the day that held every Gemini phone turn over 10 seconds, starts about 500 ms after the caller's last voiced audio, while the OpenAI rows start at OpenAI's own end-of-speech decision, whose wait is not recorded.

What does a speech-to-speech model cost per minute on APIFleet?

Estimated provider and carrier charges on the phone, priced from APIFleet's rate cards, were $0.0574 per connected minute for gpt-live-1 (1,073 calls, 11 September to 29 October 2026) and $0.0277 to $0.0669 for the three OpenAI Realtime models (20 to 44 calls each, 17 August to 27 September 2026). Gemini 3.1 Flash Live came to $0.0389 over all 154 phone calls from 5 to 9 September 2026 but $0.0907 over the 46 calls after 5 September. APIFleet's platform fee of $0.03 per connected AI minute, billed per second, comes on top.

Do the OpenAI Realtime rows without an error rate mean those models never failed?

No. APIFleet's OpenAI Realtime session has no path that ends a call with a model-error reason, so a failure can only show up as a dropped connection or an ordinary hang-up. The table marks those cells as not reported.

Can these numbers be used as a benchmark?

No. They are observational production and test logs from different assistants, prompts, tenants and weeks, measured from different starting points, and no group was randomised or matched. Use them to decide what to test, then compare candidates on your own route.

Sources and evidence

Prepared with AI assistance and checked against the linked evidence. Examples are illustrative unless explicitly documented as measured results.

Bring your next conversation.

Explore the API, or sign in to your existing workspace. New workspace access is currently limited; contact us to discuss your project.