As of October 13, 2026, no stack wins every measure of a voice AI agent. In the July 31 phone run, Telnyx has the lowest median (1,296 ms) and ElevenLabs the lowest p95 (1,768 ms).
That split is the decision. Teams tuning the typical turn and teams protecting their slowest calls can rightly pick different platforms, and the model behind each is a second choice.
These are protocol numbers from one board, on a run over two months old. They aren't a vendor quote and don't rank the models behind each platform.
A voice agent is one of three purchases, and each loses somewhere
Every voice agent is one of three things, and the choice sets what you have to build yourself.
| Purchase | You supply | Billed in | Loses when |
|---|---|---|---|
| Native audio model, such as OpenAI's GPT Realtime 2.1 | Telephony, tools, state, evals | Tokens: audio at $32 in and $64 out per 1M, cached input $0.40 | You need to swap the transcriber or the voice on their own |
| Cascaded stack: speech recognition, then a text model, then speech synthesis | Turn-taking, interruption handling, transport, state | Each stage in its own unit | You can't spend engineering time on stage boundaries |
| Managed platform: Telnyx, ElevenLabs, Vapi, Retell, Bland | Prompt, tools, a phone number | Per minute, plus pass-through charges | A concurrency cap or per-minute stack rules it out |
Only the managed platforms are timed on the phone board. It states that it has no figures for OpenAI's Realtime API or Gemini Live, which have no telephony layer, or for self-hosted frameworks such as LiveKit Agents and Pipecat. So a native-audio versus platform comparison needs your own calls. See the Mercury versus GPT Realtime comparison and the Mercury 2 versus Gemini Live comparison for how the model-side rows differ.
The phone table has no single winner: Telnyx leads the median and ElevenLabs the tail
Time to first audio byte (TTFAB) runs from the moment the caller stops speaking to the moment the agent's audio starts, read from the saved call recording rather than from platform timestamps. It updated on October 13, 2026, and every platform's runs date from July 31. We re-read the board that day and the numbers match our voice benchmarks hub.
| Platform | p50 (ms) | p90 (ms) | p95 (ms) | p99 (ms) | Usable / attempted turns | Cost per minute |
|---|---|---|---|---|---|---|
| Telnyx | 1,296 | 1,726 | 1,856 | 2,126 | 419 / 432 | $0.071877 |
| ElevenLabs | 1,424 | 1,673.6 | 1,768 | 2,254.3 | 429 / 432 | $0.079384 |
| Bland AI | 1,520 | 2,009.6 | 2,247.6 | 2,958.1 | 429 / 432 | $0.140802 |
| Vapi | 1,558 | 1,850 | 2,007.8 | 2,688.6 | 382 / 432 | $0.083625 |
| Retell AI | 1,740 | 2,104.8 | 2,258.6 | 2,867.8 | 419 / 430 | $0.135494 |
Source: Voice Agent Latency Benchmark, CC BY 4.0, read October 13, 2026. Costs are pooled protocol costs, total charged divided by total call duration, not a plan quote.
Why do the first two flip? Telnyx's p95 sits 560 ms above its median, while ElevenLabs' sits 344 ms above. Telnyx also lost more turns to the quality gates: 13 of 432, against 3 for ElevenLabs. Usable turns are the ones that survived every measurement check, so Telnyx's figures rest on fewer usable turns.
Several qualifiers change how far you can lean on the table:
- Timing resolution. The detector that finds the end of the caller's speech has an error of a few tens of milliseconds, so a gap smaller than that isn't a ranking.
- Vapi's sample. The board notes 99 usable Vapi calls, short of the 100 calls over at least five days its own protocol asks for. Vapi also lost 49 turns to voice-activity disagreement.
- Endpointing. The board pinned it to 0.1 seconds on Telnyx, Vapi, and Retell. Bland and ElevenLabs expose no equivalent setting, so their figures include a wait that couldn't be equalized.
- Costs. Telnyx bills a 60-second minimum, so its invoiced $0.05 per minute sits below the pooled figure. ElevenLabs' costs are list-price equivalents, not amounts billed, and carrier charges are excluded everywhere.
- The caller. Every call used the same synthetic caller voice and the Plivo carrier, so accents, noise, and your own telephony aren't in these numbers.
A 2,000 ms ceiling picks one platform and a 1,800 ms ceiling picks another
Take a hypothetical support line: 100,000 call minutes a month, a median target of 1,400 ms, and a p95 ceiling of 2,000 ms. Everything below comes from the table rows. It isn't a test we ran.
| Platform | p50 against 1,400 ms | p95 against 2,000 ms | Share of turns over 2,000 ms | Protocol cost at 100,000 minutes |
|---|---|---|---|---|
| Telnyx | 104 ms under | 144 ms under | Between 1% and 5% | $7,187.70 |
| ElevenLabs | 24 ms over | 232 ms under | Between 1% and 5% | $7,938.40 |
| Vapi | 158 ms over | 7.8 ms over | Between 5% and 10% | $8,362.50 |
| Bland AI | 120 ms over | 247.6 ms over | More than 10% | $14,080.20 |
| Retell AI | 340 ms over | 258.6 ms over | More than 10% | $13,549.40 |
Share-of-turns figures follow from the published percentiles. Telnyx's p95 is below 2,000 ms and its p99 is above it, so between 1% and 5% of its turns run over. Bland's p90 is already 2,009.6 ms, so more than one turn in ten does.
Only Telnyx clears both lines. ElevenLabs misses the median target by 24 ms, which is inside the timing resolution, so the table can't say it misses at all. Vapi misses the tail by 7.8 ms for the same reason. Read it as three platforms in contention and two out.
Now tighten the ceiling to 1,800 ms. Telnyx's 1,856 ms p95 fails, ElevenLabs' 1,768 ms passes, and the answer flips. Telnyx and ElevenLabs sit 88 ms apart at the tail and 128 ms at the median. Which one you take depends on which line your callers feel.
Cost moves the other way. ElevenLabs costs $750.70 more per 100,000 minutes than Telnyx on the protocol rows. Bland and Retell cost nearly twice as much per minute, and neither clears the ceiling.
List prices and caps can reject a platform before latency does
Protocol costs aren't what you'll pay. These are the list prices we read on October 13, 2026, and each platform bills pass-through charges on top.
| Platform | Per-minute list price | Also billed | A cap that can reject it |
|---|---|---|---|
| Telnyx | $0.05 voice engine, rounded up to 60-second increments | LLM per token, telephony from $0.0032 | None stated on the page |
| ElevenLabs | $0.08 base, $0.16 burst | LLM and telephony | 4 concurrent calls on the entry tier, 40 on Business |
| Vapi | $0.05 hosting | Transcriber $0.0095 to $0.0099, LLM $0.0077 to $0.0452, voice $0.0146 to $0.0238, all per minute | 4 concurrent calls on the no-success package, 10 on Core at $29 a month |
| Retell | $0.055 voice infrastructure | Voice from $0.015, LLM from $0.0016, telephony $0.015 | 20 free concurrent calls, then $8 per line per month |
| Bland | $0.14 on Start, $0.12 on Build plus $299 a month | Telephony | 10 concurrent calls and 100 calls a day on Start |
Rounding is the trap in that table. Telnyx bills a 20-second call as 60 seconds of voice engine, or $0.05, which works out to $0.15 per minute of actual talk. For a line full of short confirmations, the list price understates the bill by a factor of three.
Concurrency rejects platforms sooner than price does. If a hypothetical line takes 600 calls an hour at four minutes each, it carries 40 calls at once. That rules out Bland's Start plan and Vapi's two lower tiers. On Retell it adds 20 lines at $8, which is $160 a month on top of the usage.
Four delay numbers get confused, so keep each beside its definition
That table uses one of four numbers voice-agent pages tend to blur. Each answers a different question.
| Number | Starts | Stops | Where it comes from | What it doesn't tell you |
|---|---|---|---|---|
| Model first answer | Request reaches the model | First answer returns | The live table below | What the caller hears |
| End of speech to audible reply | Caller stops talking | Agent audio starts | The phone board above | Which stage caused the wait |
| Output tokens per second | First token arrives | Answer finishes | Provider and runtime tables | Delay before the first word |
| Listener preference | Two clips play | Listener picks one | Audio Realism | Speed, cost, or tool success |
ElevenLabs draws the same line in its latency guide. Its Flash models run about 75 ms of model inference on short inputs, but time to first audio is "always larger," because network round trips add 20 to 200 ms and a 500 ms player buffer is common. Inference time and a board's 1,296 ms measure different clocks.
Audio Realism asks expert listeners which of two same-script clips "sounds more human," and fits the votes with a Bradley-Terry model. It ranks voices on one protocol. It is not a voice-agent ranking, and its top rows are separate from the phone table above. Model-side rows are in the live table below.
| Model | Latency (first answer) | Output speed | Type | Overall score |
|---|---|---|---|---|
| Claude Sonnet 4.6 | 1.15s | 47 t/s | Non-Reasoning | 56 |
| DeepSeek V4 Pro 0813 | 1.75s | 98 t/s | Reasoning | 63 |
| Claude Opus 4.6 | 2.24s | 43 t/s | Non-Reasoning | 63 |
| Kimi K2.6 | 2.81s | 44 t/s | Reasoning | 59 |
| Beam 1.0 501B-A23B | 6.20s | 362 t/s | Reasoning | 57 |
| Gemini 3.7 Flash | 8.52s | 285 t/s | Reasoning | 67 |
| Step 5 Preview | 9.90s | 229 t/s | Reasoning | 70 |
| Grok 4.5 | 9.90s | 60 t/s | Reasoning | 64 |
| Ling 3.1 Flash | 11.26s | 213 t/s | Reasoning | 68 |
| Muse Spark 1.1 | 12.12s | 217 t/s | Reasoning | 66 |
The latency column is first answer from the runtime source, not full voice-to-voice delay. Output speed and overall score are screening signals. The speed dashboard carries the current rows and source notes.
Don't read the first row as the winner. Region, load, and prompt length all move these numbers, and the table has never seen your tool schema or your callers' accents. Take three candidates from the LLM Selector or the agentic leaderboard into the replay below.
A candidate is out when one real call breaks a rule
Build a replay set before changing the production route, and score instruction-following failures from the instruction-following table first: 50 ordinary calls that drive volume and 50 that concentrate failure, such as noise, names, account numbers, corrections, interruptions, tool timeouts, and human transfer. Hold the transcriber, voice, prompt, tools, region, and transport constant while you swap models. If a candidate needs a different architecture, such as native audio, keep the input clips and score the outcome the caller sees.
Log one record per conversation:
{
"call_id": "replay-017",
"candidate": "model-or-platform-name",
"task_completed": true,
"tool_calls": [{ "name": "refund_order", "args_ok": true, "authorized": true, "duplicate": false }],
"caller_stops_ms": 41200,
"first_agent_audio_ms": 42610,
"interruptions": 1,
"repeated_questions": 0,
"transfer_context_delivered": true,
"billed_seconds": 214
}
Subtract the two timestamps for the delay, then compute p50 and p95 per candidate. Three rules reject a candidate outright:
- A required tool action fails. One wrong tool, wrong argument, duplicate write, unauthorized action, or lost transfer takes the candidate out. Don't average these away against a good greeting.
- The tail is over budget. The p95 on your recordings exceeds your ceiling, measured the way the board measures it, from the end of the caller's speech to the first agent sound.
- The terms don't fit. Peak concurrency is above the plan's cap, or billed seconds multiplied by the rate exceed the budget once rounding is applied.
Run each candidate more than once when provider variance matters, randomize the order so time-of-day load doesn't favor one endpoint, and keep the raw timing events. When two candidates survive, choose the one your team can debug and roll back.
Slow work belongs off the conversational path
Some calls need deeper work than a fast model can finish in the delay budget. Split the job in two.
| Path | Job | Selection rule |
|---|---|---|
| Conversational model | Greeting, clarification, routine tool calls | Lowest delay that passes the replay |
| Background model | Policy lookup, multi-document search, calculations | Highest task success inside the allowed wait |
Your conversational model acknowledges the request, starts the tool call, and speaks the result when it returns. ElevenAgents documents tool-call sounds for the wait, and the general rule is to tell the caller work is happening instead of leaving silence.
Splitting adds failure states: duplicate actions, stale results, and a fast model summarizing a slow one wrongly. Attach an idempotency key to every action, keep one trace across the turn, and test the handoff as its own case. For multilingual lines, check the multilingual leaderboard against the languages your speech provider supports, then test names and code-switching.
Watch the phone board's run date next. Every platform's calls are from July 31, and a fresh capture will move the order.
Frequently asked questions
01Which voice-agent platform has the lowest latency?
It depends on which delay you optimize. In the retained July 31 phone run, Telnyx has the lowest median at 1,296 ms and ElevenLabs has the lowest p95 at 1,768 ms. Pick the median for typical turns and the p95 for your slowest calls, then re-test on your own audio.
02What is the best LLM for a voice agent?
Whichever model is fastest while still passing your task, instruction-following, and tool-use tests. No model wins on every call type. Use the live speed table to build a shortlist of three, then replay real or synthetic calls and keep the one that completes the most tasks inside your delay budget.
03How much latency is too much for a voice agent?
No universal cutoff exists without your call type and callers. Set a median target and a p95 ceiling, measure from the end of the caller's speech to the first audible agent sound, and tighten the ceiling if people interrupt, repeat themselves, or hang up. Then split the budget across each stage.
04Should I use a native audio model or a cascaded stack?
Use native audio when one vendor's voices, tools, and telephony path already fit your call. Use a cascaded stack when you need to swap the transcriber, model, or voice independently. Native routes remove stage boundaries but narrow your component choices, and the phone board doesn't time them.
05Can I use a reasoning model in a voice agent?
Yes, in the background path. Keep a fast model on ordinary turns, let it acknowledge the request, and call a slower reasoning model for hard lookups or calculations. Give each action an idempotency key so a late result can't fire the same tool twice. Test the handoff, not only each model.
External sources linked in this article
10- 01OpenAI's GPT Realtime 2.1developers.openai.com
- 02read from the saved call recordingopenbenchmarks.com
- 03Voice Agent Latency Benchmarkopenbenchmarks.com
- 04Telnyxtelnyx.com
- 05ElevenLabselevenlabs.io
- 06Vapivapi.ai
- 07Retellretellai.com
- 08Blandbland.ai
- 09latency guideelevenlabs.io
- 10ElevenAgents documents tool-call soundselevenlabs.io