Results#
| Voice model (how we reached it) | First audio p50 / p90 | First audible speech p50 / p90 | Whole sentence p50 | Phone-line errors (words) | Numbers, email, address right | List price per minute of audio |
|---|---|---|---|---|---|---|
| TTS-2 Flash (Inworld API) | 0.17 s / 0.21 s | 0.18 s / 0.22 s | 0.70 s | 0.3% | 27 of 27 | $0.011 |
| Flash v2.5 (ElevenLabs API) | 0.22 s / 0.24 s | 0.22 s / 0.29 s | 0.33 s | 0% | 27 of 27 | $0.036 |
| Mist v3 (Rime API) | 0.24 s / 0.29 s | 0.24 s / 0.29 s | 0.31 s | 0% | 27 of 27 | $0.030 |
| TTS-2 (Inworld API) | 0.22 s / 0.27 s | 0.28 s / 0.35 s | 1.80 s | 0% | 27 of 27 | $0.018 |
| Lightning v3.1 Pro (Smallest.ai API) | 0.24 s / 0.30 s | 0.30 s / 0.36 s | 0.92 s | 0% | 27 of 27 | $0.017 |
| Sonic 3.6 (Cartesia API) | 0.21 s / 0.24 s | 0.33 s / 0.37 s | 1.20 s | 0% | 27 of 27 | $0.030 on the Startup plan |
| Coda (Rime API) | 0.27 s / 0.33 s | 0.39 s / 0.45 s | 2.00 s | 0.4% | 26 of 27 | $0.050 |
| v4 Turbo (ElevenLabs API) | 0.39 s / 0.51 s | 0.47 s / 0.53 s | 1.82 s | 0% | 27 of 27 | $0.030 |
| Chirp 3 HD (Google Cloud TTS) | 0.21 s / 0.27 s | 0.53 s / 0.72 s | 1.26 s | 0% | 27 of 27 | $0.023 |
| S2.1 Pro, free developer tier (Fish Audio API) | 0.68 s / 0.83 s | 0.68 s / 0.83 s | 5.26 s | 0.1% | 27 of 27 | $0.012 at the paid rate |
| Gemini 3.8 Flash Lite TTS (Google Gemini API) | 0.48 s / 0.53 s | 0.70 s / 0.80 s | 1.82 s | 0% | 27 of 27 | $0.009 |
| Aura-2 (Deepgram API) | 0.55 s / 0.69 s | 0.72 s / 0.93 s | 4.31 s | 0.1% | 27 of 27 | $0.021 |
| gpt-4o-mini-tts (OpenAI API) | 0.63 s / 0.95 s | 0.80 s / 1.29 s | 1.80 s | 2.3% | 27 of 27 | about $0.015 |
| Gemini 3.8 Flash TTS (Google Gemini API) | 0.77 s / 0.85 s | 0.99 s / 1.13 s | 2.78 s | 0% | 27 of 27 | $0.0135 |
| Kokoro-82M, open model (DeepInfra) | 0.63 s / 0.93 s | 1.06 s / 1.36 s | 0.84 s | 0.8% | 27 of 27 | $0.0007 |
| tts-1 (OpenAI API) | 1.25 s / 1.82 s | 1.25 s / 1.82 s | 1.48 s | 1.3% | 24 of 27 | $0.013 |
| Inworld TTS-2 (via DeepInfra) | 2.56 s / 3.43 s | 2.64 s / 3.50 s | 2.94 s | 0% | 27 of 27 | $0.025 on DeepInfra |
| xAI TTS v1 (via fal, no stream) | not streamed | not streamed | 3.54 s | 0% | 27 of 27 | $0.011 |
| MiniMax Speech 2.8 Turbo (via fal, no stream) | not streamed | not streamed | 4.55 s | 0% | 27 of 27 | $0.038 |
What we found#
1. Three voices start talking in about 0.2 seconds#
Inworld TTS-2 Flash, ElevenLabs Flash v2.5 and Rime Mist v3 all had their first audible word out in 0.18 to 0.24 s at the median and under 0.3 s at the 90th percentile, and none of them opened their clips with silence. The new voices ran about four hours after the first batch, so we ran one more interleaved round of all five sentences for the seven fastest voices together. The order inside the top three changed (Inworld TTS-2 Flash 0.19 s, Rime Mist v3 0.20 s, ElevenLabs Flash v2.5 0.25 s), and everything below them kept its place: Inworld TTS-2 0.30 s, Cartesia 0.35 s, Google Chirp 3 HD 0.53 s and Gemini 3.8 Flash Lite 0.65 s. Treat the top three as tied on speed and choose on price, voice and features.
2. First audio is not the same as first word#
Time to first audio byte is the usual latency number, but several models start their clip with silence. Google's Chirp 3 HD sent its first audio in 0.21 s, as fast as the leaders, but opened every clip with about 0.27 s of silence, so the caller hears the first word after about 0.53 s. Google's two Gemini voices and Deepgram Aura-2 also start with about 0.26 s of silence, Cartesia with about 0.14 s and Kokoro with about 0.43 s. We measured that silence in each clip (anything quieter than -40 dB) and added it, which is the "first audible speech" column.
In a voice agent, the voice is the last of three steps that run one after another: the speech-to-text model decides the caller has finished, the language model starts its reply, and the voice starts speaking. Every tenth of a second here is a tenth of a second of silence on the line.
3. Numbers and emails mostly survive the phone line#
We expected digits and email addresses to be where cheap voices and 8 kHz audio break. They mostly did not. Every model read "415-867-5309" as a phone number both judges wrote down correctly, every model read "dana.kowalski@gmail.com" as a spelled-out address, and every model got "$249.99", "March 14th" and "3:15 PM" across in all three runs. Nobody needed SSML or a rewritten prompt for this. That is good news for builders, but it is also a small test: one phone number, one email and one address, in English, with a common name.
4. Two OpenAI results to check in your own templates#
tts-1 misread a house number. In all three runs, both judges heard "1428 Elm Street" as "Fort 128" or "128 Elm Street", and a third pass on the full-quality audio heard the same. The phone line did not cause it. If you use tts-1 for addresses, write house numbers out in words or test your formatting first.
gpt-4o-mini-tts left out a sentence. For "I have your number as 415-867-5309 and your email as dana.kowalski@gmail.com. Is that right?", the audio ended after the email in all three runs. Both judges, and OpenAI's own gpt-transcribe on the last three seconds of the clip, heard the email read slowly and then nothing. The closing question is the part that turns a read-back into a confirmation, so this is the kind of omission a caller notices. gpt-4o-mini-tts is a steerable model that takes style instructions; we sent none. We saw it on one sentence of five, three times out of three.
The other small differences: Kokoro (3 of 3 runs), Inworld TTS-2 Flash and Rime Coda (1 of 3 each) said "your email is" where the text said "your email as", and one judge heard Deepgram Aura-2 say "their" for "your" once. None changes the meaning.
5. The same model through a reseller can be ten times slower#
Inworld TTS-2 through its own API started speaking in 0.28 s. The same model through DeepInfra took 2.64 s, because DeepInfra's endpoint appears to make the whole clip before sending any of it, and DeepInfra charges $35 per 1M characters against Inworld's own $25. MiniMax and xAI, which we only reached through fal.ai, return a finished file, so they only have a "whole sentence" time (3.5 to 4.6 s including fal's queue); both stream on their own APIs, which we did not test.
Which voice for which phone job#
- Live voice agent (a caller talking to an AI in real time): latency first. Inworld TTS-2 Flash, ElevenLabs Flash v2.5 and Rime Mist v3 all started speaking in about 0.2 s, and all three return 8 kHz mu-law directly, so there is nothing to convert before the audio goes onto a phone call. On price, Inworld TTS-2 Flash ($0.011 per minute) is about a third of Rime Mist v3 ($0.030) and ElevenLabs Flash v2.5 ($0.036). Inworld's TTS-2 (0.28 s, $0.018), Smallest.ai Lightning v3.1 Pro (0.30 s, $0.017) and Cartesia Sonic 3.6 (0.33 s, $0.030 on its Startup plan) are the next step. Platforms that bundle a voice are compared in best AI voice agent platforms.stork.ai
- IVR menus and receptionist prompts: most of what an IVR says is fixed (greetings, menu options, hours), so render those once and reuse the audio. Latency then only matters for the dynamic parts: names, numbers, dates. Price per minute matters more than speed here. Google Cloud's Chirp 3 HD includes 1M free characters a month (about 22 hours of speech at our rate) and outputs mu-law natively; Gemini 3.8 Flash Lite TTS ($0.009 per minute) and Kokoro on DeepInfra ($0.0007 per minute, or free on your own servers under its Apache 2.0 license) were the cheapest paid voices we tested. Check your own read-back templates either way; one of our 19 models misread a plain house number.
- Outbound calls at volume: price per minute decides the bill. At list price, the cheapest voices we measured were Kokoro on DeepInfra, Gemini 3.8 Flash Lite ($0.009), Inworld TTS-2 Flash and xAI ($0.011), tts-1 ($0.013) and Gemini 3.8 Flash ($0.0135). The voice is a small part of an outbound minute next to telephony and the language model; see Twilio alternatives for AI voice agents for carrier costs. Outbound calling with AI voices also has consent rules that no voice model solves for you.stork.ai
Price per minute, tested and untested#
Prices from each vendor's own page, read November 12, 2026. For per-character prices we convert at about 740 characters per minute of speech, the median speaking rate of the voices we tested (they ranged from 631 to 911 characters per minute, so a fast voice costs more per minute of audio than a slow one at the same per-character price). Native telephony format means the API can return 8 kHz mu-law (G.711) itself, so you do not have to convert the audio before it goes onto a call.
| Voice API | Published price | About per minute | Native 8 kHz mu-law | Tested here |
|---|---|---|---|---|
| Inworld TTS-2 Flash / TTS-2 | $15 / $25 per 1M chars on demand; lower on plans | $0.011 / $0.018 (measured) | yes (MULAW) | yes, direct and TTS-2 via DeepInfra |
| ElevenLabs Flash v2.5 / v4 Turbo | $0.04 per 1K chars | $0.036 / $0.030 (measured) | yes (ulaw_8000) | yes |
| Rime Mist v3 / Coda | $0.030 / $0.050 per minute (Flex) | $0.030 / $0.050 | yes (audio/x-mulaw, both models in our test) | yes |
| Cartesia Sonic 3.6 | plans only: $49/mo for 1.25M credits, $299/mo for 8M (1 credit per char); overage $45 / $38 per 1M | $0.030 (measured, Startup rate) | yes (pcm_mulaw) | yes |
| Google Cloud TTS Chirp 3 HD | $30 per 1M chars, first 1M a month free | $0.023 (measured) | yes (MULAW, also in streaming) | yes |
| Deepgram Aura-2 / Flux TTS | $0.030 / $0.045 per 1K chars | $0.021 (measured) / $0.033 | yes (mulaw) | Aura-2 yes, Flux TTS no |
| Smallest.ai Lightning v3.1 Pro | $0.195 per 10K chars | $0.017 (measured) | yes (ulaw) | yes |
| Fish Audio S2.1 Pro / Drama 3 | $15 per 1M UTF-8 bytes / $50 ($10 promo to Nov 30) | $0.012 (measured) / about $0.037 | no (pcm at 8 or 16 kHz) | S2.1 Pro on the free developer tier; Drama 3 no (no API credit) |
| Google Gemini API 3.8 Flash Lite TTS / Flash TTS | $6 / $9 per 1M audio tokens to Dec 31, 2026, then $12 / $18 | $0.009 / $0.0135 | only on the Interactions API; generateContent returns 24 kHz PCM | yes |
| OpenAI gpt-4o-mini-tts / tts-1 | $12 per 1M audio tokens / $15 per 1M chars | about $0.015 / $0.013 | no (24 kHz PCM is the lowest) | yes |
| DeepInfra Inworld TTS-2 / Kokoro-82M | $35 / $0.99 per 1M chars | $0.025 / $0.0007 | no (wav, pcm with sample rate) | yes |
| xAI TTS | $15 per 1M chars (same on fal) | $0.011 | yes | via fal, not streamed |
| MiniMax Speech 2.8 Turbo | $60 per 1M chars (same on fal) | $0.038 | yes (pcmu) | via fal, not streamed |
| Azure AI Speech Neural / Neural HD | $15 / $22 per 1M chars | $0.011 / $0.016 | yes | no key |
| Amazon Polly Standard / Neural / Generative | $4 / $16 / $30 per 1M chars | $0.003 / $0.012 / $0.022 | yes (mulaw) | no key |
| Murf Falcon | $0.01 per minute | $0.010 | yes (ULAW) | no key |
| Speechify Simba 3.5 | $10 to $15 per 1M chars by plan (promo to Nov 21) | $0.007 to $0.011 | yes (ulaw_8000) | no key |
If you are leaving a voice that is going away, see Hume AI alternatives and PlayHT alternatives.
Worth a look
ElevenLabs
Lifelike AI voiceovers, dubbing and voice cloning in dozens of languages. Free plan to start.
Try ElevenLabsEnjoying this? Get one like it in your inbox each morning.
one email a day · unsubscribe in two clicks · no third-party tracking
One weakness each#
- Inworld TTS-2 Flash: no natural-language voice steering, which Inworld reserves for TTS-2 (model docs). Stork earns a commission on Inworld sign-ups, so weigh our enthusiasm against that; the numbers are measured the same way for every vendor.
- ElevenLabs Flash v2.5: the most expensive of the three fastest voices, about three times Inworld TTS-2 Flash and four times Gemini 3.8 Flash Lite per minute at list price. It also speaks faster than most voices, so the same text makes fewer minutes but each minute costs more.
- Rime Mist v3: billed per minute of audio, at $0.030 almost three times Inworld TTS-2 Flash.
- Inworld TTS-2: took 1.8 s to finish a sentence against 0.7 s for TTS-2 Flash, and through a reseller (DeepInfra) it was ten times slower to start.
- Smallest.ai Lightning v3.1 Pro: a step behind the three fastest voices (0.30 s to the first word) and about 50% more per minute than Inworld TTS-2 Flash ($0.017 against $0.011).
- Fish Audio S2.1 Pro: no mu-law output, 0.68 s to the first word and the slowest directly reached voice to finish a sentence (5.3 s at the median). We could only test the free developer tier, because our account has no paid API credit; the paid tier may queue differently.
- Cartesia Sonic 3.6: no plain pay-as-you-go; you buy a monthly plan and overage is off by default. It also opens each clip with about 0.14 s of silence.
- Rime Coda: the most expensive voice per minute in our test ($0.050) and the only one besides tts-1 with an entity miss (one misspelled surname in three runs).
- ElevenLabs v4 Turbo: the same price as Flash v2.5 but slower on both counts here: 0.47 s to the first word and 1.8 s to finish a sentence.
- Google Cloud Chirp 3 HD: about 0.27 s of silence at the start of every clip, and streaming needs Google's gRPC streaming API, not the plain REST call.
- Gemini 3.8 Flash Lite TTS: about 0.26 s of silence at the start of every clip, the price doubles on January 1, 2027, and 8 kHz mu-law is only on Google's newer Interactions API.
- Deepgram Aura-2: the slowest of the directly reached voices to finish a sentence (4.3 s at the median) and 0.72 s to the first word.
- gpt-4o-mini-tts: dropped the closing question of one sentence in all three runs, and the API has no 8 kHz or mu-law output.
- Gemini 3.8 Flash TTS: slower than Flash Lite on every measure here (0.99 s to the first word, 2.8 s per sentence) and 50% more expensive per minute.
- Kokoro-82M: 0.43 s of silence before each clip, preset voices only, no cloning, and on DeepInfra no telephony format.
- tts-1: the slowest streaming voice to start (1.25 s) and misread a house number in every run.
- xAI TTS v1: through fal it does not stream, so we could not measure its first-audio time; its own API streams over WebSocket.
- MiniMax Speech 2.8 Turbo: among the most expensive per minute in our test ($0.038) and the slowest file through fal (4.6 s).
How we tested#
- Sentences: "Thanks for calling Riverside Dental, this is Ava. How can I help you today?"; "I have your number as 415-867-5309 and your email as dana.kowalski@gmail.com. Is that right?"; "Our technician will come to 1428 Elm Street, Apartment 3B, Springfield, Oregon 97477."; "Your total is $249.99, and your next appointment is Tuesday, March 14th at 3:15 PM."; and one 215-character instruction about what to bring and how to reschedule. Plain text, no SSML, no pronunciation hints, the same for every model.
- Requests: one sentence per request, 3 rounds, models taking turns so a network slowdown hits all of them. One unscored warm-up request per model first, so connection setup is not counted. Streaming endpoints were read as they arrived; first audio = sending the request to the first audio bytes. Ten voices ran in a first batch, seven (Cartesia, Deepgram, both Rime models, both Inworld models direct, Google Cloud) about four hours later and two (Smallest.ai, Fish Audio) after that, all on November 12, 2026; the seven fastest were then re-run together for one interleaved round as a cross-check. Google Cloud was called through its gRPC streaming API, the others over HTTPS.
- Voices and formats: ElevenLabs "Adam", OpenAI "alloy", Google Gemini "Kore", Google Cloud "en-US-Chirp3-HD-Kore", Inworld "Ashley", Cartesia "Jacqueline", Deepgram "Thalia", Rime "astra", Smallest.ai "chelsea", Fish Audio the popular English community voice "Sarah" with latency set to "low", Kokoro "af_bella", fal's defaults for MiniMax and xAI. Every vendor that offers it was asked for native 8 kHz mu-law (ElevenLabs, Inworld direct, Cartesia, Deepgram, Rime, Smallest.ai, Google Cloud); Fish Audio sent 8 kHz PCM and the others 16 to 24 kHz audio.
- Phone line: every clip was band-passed to 300-3,400 Hz, resampled to 8 kHz and encoded to G.711 mu-law, then decoded, the same chain as our speech-to-text phone audio test. It simulates a phone line in software, not a real carrier path with packet loss.
- Judges: two speech-to-text models from vendors with no voice in this test, Whisper large-v3 and Cohere Transcribe (both through fal), transcribed all 285 phone-line clips. Scoring uses OpenAI's Whisper English normaliser with each digit counted as its own word, so "415-867-5309" and "four one five..." score the same; email addresses are compared spelled out. An entity counts as wrong only if both judges missed it, so one judge's mistake is not charged to the voice. The two OpenAI problems reported above were rechecked with a third transcription: Whisper large-v3 on the full-quality tts-1 audio, and OpenAI's gpt-transcribe on the last seconds of the gpt-4o-mini-tts clip.
- Leading silence: measured in each clip as the time before the first sound louder than -40 dB.
- Prices: from each vendor's own page on November 12, 2026, linked in the table. Price per minute for tested voices = list price for the characters (or, for Gemini, the audio tokens Google reported; for Rime, the minutes) divided by the minutes of audio returned. Cartesia is priced at its Startup plan rate ($49 for 1.25M characters). OpenAI does not return audio-token counts on a streamed request, so gpt-4o-mini-tts uses OpenAI's own estimate of $0.015 per minute.
- Cost of this test: about $1.70 in API calls at list prices (logged per call; Google Cloud's share is small enough to sit within its monthly free tier, and Deepgram's came from prepaid credits), plus several hundred ElevenLabs plan credits. The harness is in the Stork repository at scripts/bench/tts_phone_bench.py, and the raw audio and transcripts are kept so every number can be checked.
What this test does not tell you#
- How the voices sound. We did not score naturalness, warmth or accent. Listen to the voice you plan to use on a real phone before you choose it.
- Your location and your network. One client in California. Absolute latencies depend on where your servers are; compare models within this table.
- WebSocket streaming. We used each vendor's HTTP streaming endpoint (gRPC for Google Cloud). Voice agents often stream text in over a WebSocket as the language model writes it, which can start audio earlier.
- Sample size. 5 sentences, 3 rounds, one voice per model, English only. Differences under about 0.05 s between the fastest voices are within run-to-run variation. A model that read our one email correctly may still trip over yours.
- Untested vendors. Azure, Amazon Polly, Murf, Speechify and Deepgram's Flux TTS were not tested because we have no keys or did not include the model this round, and Fish Audio's Drama 3 because our account has no paid API credit. A missing model is not a worse model.
Related reading#
- Stork's speech-to-text phone audio test: 11 speech-to-text models on caller audiostork.ai
- best AI voice agent platforms, if you would rather buy the whole voice agentstork.ai
- Twilio alternatives for AI voice agents: phone numbers and carrier minutesstork.ai
- Best ElevenLabs alternatives for voiceover and narration rather than phone callsstork.ai
Frequently asked questions#
Which text-to-speech API has the lowest latency for phone calls?#
In Stork's November 2026 test of 19 voices, three started speaking in about 0.2 seconds at the median: Inworld TTS-2 Flash (0.18 s), ElevenLabs Flash v2.5 (0.22 s) and Rime Mist v3 (0.24 s). Their order changed in a second interleaved run, so treat them as tied. Next were Inworld TTS-2 (0.28 s), Smallest.ai Lightning v3.1 Pro (0.30 s) and Cartesia Sonic 3.6 (0.33 s).
Do AI voices read phone numbers and emails correctly over a phone line?#
Mostly yes. In our test, all 19 voices read a phone number, a price, a date and a time so that two speech-to-text models wrote them down correctly after an 8 kHz G.711 phone line, in all three runs. OpenAI tts-1 misread the house number 1428 in every run, Rime Coda misspelled a surname in one run, and gpt-4o-mini-tts left out a closing question.
What is the cheapest text-to-speech API for phone calls?#
Among the voices we tested, the open Kokoro-82M model on DeepInfra cost about $0.0007 per minute of audio, Google's Gemini 3.8 Flash Lite TTS about $0.009 and Inworld TTS-2 Flash about $0.011 at list price on November 12, 2026. Google Cloud's Chirp 3 HD includes 1M free characters a month. Of the untested vendors, Amazon Polly Standard lists $4 per 1M characters.
Which TTS APIs output 8 kHz mu-law audio for telephony?#
In our test or according to their own docs on November 12, 2026: ElevenLabs (ulaw_8000), Inworld, Cartesia, Deepgram, Rime, Google Cloud TTS (also when streaming), Smallest.ai, Azure, Amazon Polly, Murf, Speechify, MiniMax and xAI. Fish Audio offers 8 kHz PCM but not mu-law. OpenAI's TTS API does not; Google's Gemini TTS does only on its Interactions API.
Is Cartesia faster than ElevenLabs?#
Not in our test. Cartesia Sonic 3.6 sent its first audio as fast (0.21 s) but opened each clip with about 0.14 s of silence, so its first audible word came at 0.33 s against 0.22 s for ElevenLabs Flash v2.5. Per minute they cost about the same at list price: $0.030 for Cartesia on its Startup plan and $0.036 for ElevenLabs Flash v2.5.
How much does ElevenLabs cost per minute for a phone agent?#
At the API list price of $0.04 per 1,000 characters, ElevenLabs Flash v2.5 cost about $0.036 per minute of audio on our receptionist sentences and v4 Turbo about $0.030, because Flash spoke faster. That covers the voice only, not telephony or the language model.
