← Back to the blog A brass ear trumpet resting on a stack of handwritten notebook pages on a worn oak desk, lit by low afternoon sun.

8 Best Speech-to-Text APIs for Voice Agents (October 2026)

Pick a speech-to-text API for your voice agent: eight compared on streaming price, latency, turn detection, diarization, and custom vocabulary.

A voice agent hears the caller through a speech-to-text API. That API decides how soon the agent sees words, whether it knows the caller has finished, and whether a surname or an order number survives the trip. Transcribing a recorded meeting is a different job. Details below were checked against each provider's official pages in October 2026.

What is the best speech-to-text API for voice agents?

For most voice agents, start with Deepgram Flux: it streams transcripts and tells you when the caller has finished speaking. Compare it with AssemblyAI for prompting with the agent's last reply, ElevenLabs Scribe if you already use ElevenLabs voices, and Speechmatics when calls have several speakers. Use OpenAI when the rest of your stack is there, Gladia for broad language coverage, Google Chirp 3 inside Google Cloud, and Groq for cheap, fast batch transcription.

API Consider it when you need… What to evaluate
Deepgram Streaming with built-in end-of-turn events Turn timing on your callers, and the extra LLM calls eager end-of-turn creates
AssemblyAI A streaming model you can prompt with context and keyterms Punctuation-based turn detection on hesitant speakers, and billing for idle session time
ElevenLabs Scribe Speech in and speech out from one vendor Realtime keyterm limits and the lack of realtime diarization
OpenAI Transcription next to OpenAI models you already use Client-side turn detection and the higher live per-minute price
Speechmatics Realtime speaker labels with a voice-agent model Pause-based turn detection, and accuracy on your languages
Gladia Many languages and code-switching on one API Live latency, which Gladia does not publish, and the real-time price
Google Chirp 3 Speech recognition inside Google Cloud Streaming list price and diarization outside batch
Groq Whisper The lowest price for recorded audio No streaming endpoint; a 10-second billing minimum

How do speech-to-text APIs compare on pricing and features?

Providers bill per minute or per hour, and streaming usually costs more than batch. Latency figures are each provider's own claims, measured in different ways, so treat them as a starting point. All figures come from the linked official pages.

API Batch price Streaming price Free tier Stated streaming latency Languages Diarization Custom vocabulary
Deepgram Nova-3 $0.0043 a minute pay-as-you-go (pricing) Flux English $0.0065, Nova-3 $0.0048 a minute; promotional rates $200 credit, no expiry About 260 ms end-of-turn detection (Flux docs) Flux: English, or 10 languages in the multilingual model (models) Included in batch; $0.0020 a minute when streaming Keyterms on Nova-3 and Flux, 500 tokens a request (docs)
AssemblyAI Universal-3.5 Pro $0.21 an hour; Universal-2 $0.15 (pricing) Universal-3.6 Pro Realtime $0.45 an hour; Universal-Streaming $0.15; billed on session time $50 credit, no card About 200–300 ms speech-to-text (LiveKit guide) 32 on Universal-3.6 Pro, with code-switching $0.02 an hour batch; $0.12 an hour streaming Keyterms, up to 100 terms streaming, included on Universal-3.6 Pro
ElevenLabs Scribe Scribe v2 $0.22 an hour (API pricing) Scribe v2 Realtime $0.39 an hour 10,000 shared credits a month on the Free plan (plans) About 150 ms (docs) 90+ Batch, up to 32 speakers; not listed for Realtime Keyterms: 1,000 batch, 50 realtime; $0.08 an hour realtime add-on
OpenAI gpt-transcribe $0.0045 a minute (pricing) gpt-live-transcribe $0.017 a minute Not stated on the pages we checked No figure; five delay settings from minimal to xhigh (realtime guide) Not stated for current models File transcription only, through a deprecated model; not in realtime sessions Prompt, keywords, and expected languages
Speechmatics Melia 1 $0.24 an hour; Enhanced $0.75 (pricing) Linden 1 $0.30 an hour; Enhanced $0.80 $100 credit, no card Under 350 ms mean finalization, about 440 ms P95, internal (Linden 1 post) 55+ Realtime on Linden, no stated speaker limit Custom dictionary, up to 1,000 terms on Linden
Gladia Solaria-3 €0.16 an hour (pricing) €0.68 an hour €50 credit, valid one year Not stated on the pages we checked (live docs) 100+ Async only; live separates speakers by channel Custom vocabulary included
Google Chirp 3 $0.016 a minute standard; $0.003 dynamic batch (pricing) $0.016 a minute for the first 500,000 minutes 60 free minutes a month are listed for the V1 API only; not stated for V2 No figure published (Chirp 3 docs) 29 generally available, about 80 more in preview 14 languages; batch per the feature table Speech adaptation, up to 1,000 phrases
Groq Whisper Large v3 Turbo $0.04 an hour; Large v3 $0.111 (docs) No streaming endpoint on the pages we checked Free plan with lower limits (rate limits) Not applicable Whisper's multilingual set Not stated on the pages we checked Prompt up to 224 tokens

What does a voice agent need from speech-to-text?

A voice agent needs text quickly, a reliable signal that the caller has finished, and the exact words that matter for the task. Consider a call to a dental clinic:

Hi, it's Siobhan Ó Briain. Can I move my cleaning on the 14th to, um, the 21st? Actually, the 22nd, if you have anything after three.

That one turn touches five capabilities:

  • Partial transcripts: the agent can look up the booking while the caller is still talking.
  • End-of-turn detection: the "um" is a pause, not the end. Reply there and the agent talks over the caller. Wait a full second after every turn and the call feels slow.
  • Custom vocabulary: "Siobhan Ó Briain" is easy to get wrong without a hint. Keyterms or a prompt fix that.
  • Numbers and corrections: the final transcript must keep "22nd" and "after three", and keep the correction from the 21st.
  • Phone audio: real calls arrive at low sample rates with background noise. Accuracy on clean recordings does not carry over.

Speech-to-text is one half of the voice. The other half turns the agent's reply back into speech; our audio generation comparison covers those models.

Deepgram

The default choice when you want transcripts and turn-taking from one streaming model.

Flux is Deepgram's streaming model for voice agents. It sends an EndOfTurn event when it decides the caller has finished, with a confidence threshold you can tune. An optional EagerEndOfTurn event lets the agent start drafting a reply early, and TurnResumed tells it to discard the draft. The docs warn this can raise LLM calls by 50–70%. Flux covers English, plus a multilingual model for 10 languages.

Pricing lists Flux English at $0.0065 a minute and Nova-3 streaming at $0.0048, both marked as limited-time promotional rates. New accounts get $200 of credit with no expiry. Keyterm prompting works on Nova-3 and Flux, up to 500 tokens a request, and costs extra.

AssemblyAI

Worth comparing when you want to steer recognition with context from the conversation.

Universal-3.6 Pro Realtime accepts a natural-language prompt, a list of keyterms, and up to 1,750 characters of the agent's last reply as context for the next turn, according to the LiveKit guide. It supports 32 languages and switches between them mid-call. Turn detection is punctuation based: after a pause, it checks for a final period or question mark. Presets trade latency for accuracy.

Pricing is $0.45 an hour for Universal-3.6 Pro Realtime and $0.15 for Universal-Streaming. Streaming is billed on session duration, including idle time while the WebSocket is open, so close sessions you are not using. Streaming diarization adds $0.12 an hour. Sign-up includes $50 of credit.

ElevenLabs Scribe

A good fit when ElevenLabs already speaks for your agent.

Scribe v2 Realtime lists latency of about 150 ms, 90+ languages, word-level timestamps, and up to 50 keyterms of 20 characters each. The batch model, Scribe v2, adds diarization for up to 32 speakers and 1,000 keyterms. Diarization is not listed for Realtime.

The API pricing page lists Scribe v2 at $0.22 an hour and Scribe v2 Realtime at $0.39, with realtime keyterm prompting at $0.08 an hour extra. The Free plan includes 10,000 credits a month shared across products, and the plans page prices speech to text at 330 credits a minute.

OpenAI

An option when your agent already runs on OpenAI and you want one bill.

OpenAI now recommends gpt-live-transcribe for live audio and gpt-transcribe for files. The realtime guide streams transcript deltas over a WebSocket and accepts a prompt, keywords, and expected languages. The live model does not support server-side voice activity detection. Your client decides when speech has ended and commits the turn. It returns no speaker labels or word timestamps.

Pricing estimates $0.017 a minute for gpt-live-transcribe and $0.0045 for gpt-transcribe. The speech-to-text guide marks gpt-4o-transcribe, its mini and diarize variants, and whisper-1 as deprecated, shutting down on February 26, 2027. Plan a migration if you use them.

Speechmatics

A candidate when calls have more than one speaker and you need to know who said what.

Agent STT runs on Linden 1, announced in September 2026. Speechmatics says it tags every word with a speaker in real time, with no limit on speakers, and accepts up to 1,000 custom dictionary terms. It reports finalization under 350 ms mean and about 440 ms at P95 in internal measurements. Turn detection is based on pauses for now; the post says smarter turn detection is coming.

Pricing lists Linden 1 at $0.30 an hour for real time, and Melia 1 at $0.24 an hour for recorded audio. New accounts get $100 of credit without a card. Linden launched with 55+ languages; the post says fully multilingual agents arrive with Linden 2.

Gladia

Worth evaluating when callers switch languages or speak one of many languages.

Gladia's pricing page lists 100+ languages, automatic language detection, custom vocabulary, and word-level timestamps on its self-serve plan. Live transcription uses the Solaria-1 model, returns partial transcripts, has a code-switching setting, and runs sessions up to three hours. The docs state no latency figure.

Real time costs €0.68 an hour, against €0.16 for Solaria-3 on recorded audio. Diarization is marked async only. In live sessions, you separate speakers by sending each one on its own channel, up to eight. New accounts get €50 of credit for one year.

Google Cloud Chirp 3

An option when your stack and contracts are on Google Cloud.

Chirp 3 runs on the Speech-to-Text V2 API with streaming, synchronous, and batch recognition. It lists 29 generally available languages and about 80 more in preview. Speech adaptation accepts up to 1,000 phrases. Diarization covers 14 languages, and the feature table limits it to batch. A "supershort" endpointing setting finalizes results as soon as speech ends; Google publishes no latency figure.

Pricing is $0.016 a minute for standard recognition up to 500,000 minutes a month, falling with volume. Dynamic batch, which is not real time, is $0.003 a minute. At low volume, streaming here costs more than every provider above except OpenAI's live model.

Groq Whisper

The low-cost option for recorded audio, not for live calls.

Groq hosts OpenAI's open Whisper models. Its docs list Whisper Large v3 Turbo at $0.04 an hour and Large v3 at $0.111. Each request is billed for at least 10 seconds, which adds up if you send short utterances one by one. Prompts up to 224 tokens guide spelling, and timestamps come at word or segment level.

We found no streaming endpoint or diarization on the pages we checked. Use it for voicemail, call recordings, and post-call summaries, where the agent can wait for a whole file. A free plan exists with lower rate limits.

What do the benchmarks say about speech-to-text APIs?

Published benchmarks agree that accuracy differences between the top providers are now a few points of word error rate. We have not run our own benchmark. The results below are published by others.

Artificial Analysis speech-to-text leaderboard

Artificial Analysis is an independent benchmarking company. Its AA-WER index weights three datasets: its own AA-AgentTalk (50%), VoxPopuli (25%), and Earnings22 (25%). Snapshot of the non-streaming leaderboard for the providers above, read on October 27, 2026:

Model AA-WER Speed factor USD per 1,000 minutes
ElevenLabs Scribe v2 2.2% 69.5 3.67
AssemblyAI Universal-3.5 Pro 3.0% 101.5 3.50
Gladia Solaria-3 3.2% 91.5 10.16
OpenAI GPT Transcribe 3.3% 48.5 4.50
Google Chirp 3 4.3% 29.6 16.00
Groq Whisper Large v3 Turbo 4.6% 253.7 0.67
Speechmatics Melia 4.9% 178.6 4.00
Deepgram Nova-3 5.2% 571.9 4.30

These are batch results: whole files, not live audio. Artificial Analysis also runs a separate streaming leaderboard that measures accuracy and the time from the end of speech to the final transcript. It includes Flux, Universal-3.6 Pro Realtime, Scribe v2 Realtime, Linden 1, and gpt-live-transcribe. That is the closer match for a voice agent, so check it for the models you shortlist.

Hugging Face Open ASR Leaderboard

The Open ASR Leaderboard is hosted by Hugging Face's audio team. Its paper, last revised in March 2026, describes 86 open-source and proprietary systems across 12 datasets, scored on word error rate and speed. It is the most useful public reference if you are considering self-hosting an open model. It does not measure streaming latency.

Vendor-run claims

Deepgram's Flux announcement reports end-of-turn at a p90 of 1 second and roughly 30% fewer false interruptions than pipeline approaches, without naming the systems compared. Speechmatics' Linden 1 latency figures come from its own measurements. Both are useful for understanding the design and are not independent results.

Deepgram vs AssemblyAI vs ElevenLabs: which should you choose?

Choose by the hardest part of your calls:

  • Deepgram Flux for turn-taking. End-of-turn events come from the model itself, with an eager mode for faster replies.
  • AssemblyAI for context-heavy calls. A prompt, keyterms, and the agent's last reply all inform the next transcript.
  • ElevenLabs Scribe for one voice vendor. The shortest latency claim in this list, though providers measure it differently, and it pairs with ElevenLabs text-to-speech.

Pick the closest fit, then run one alternative on the same audio.

How do you test speech-to-text APIs on your own audio?

Collect 30 to 50 real caller turns, write the correct transcript for each by hand, and stream the same audio to two or three providers in real time. Keep the rest of the agent fixed so only the transcriber changes.

Audio type What a useful result looks like
Phone call at 8 kHz with background noise Accuracy close to your clean recordings
Names, emails, and order numbers Exact spelling, with and without keyterms
Dates, times, and amounts Formatted consistently, so your agent can parse them
A caller who pauses mid-sentence No end-of-turn until they have finished
A self-correction ("the 21st, actually the 22nd") Both words kept, so the agent can use the last one
A caller who switches language Both languages transcribed, not translated

Record word error rate on the words that matter, time to first partial, time from end of speech to final transcript, false end-of-turn events, and cost per call minute. Then listen to the failures. A misheard name, a late final, and a reply that cut the caller off need different fixes.

Where does Dexto fit?

Dexto is the agent that runs the evaluation and keeps the results. A speech-to-text API returns a transcript; you still need something to send the same audio to each provider, score the output, and remember what you decided. That surrounding system is the harness, and it is what Dexto provides.

  • A computer: Dexto has a persistent cloud computer where it stores files and runs code. It can keep your test audio and reference transcripts there, run the comparison script, and save each provider's output next to the last run.
  • Tools: connections include more than 50 built-in integrations and any custom MCP server, so results can go to Slack, Notion, or GitHub.
  • Process: a skill holds your evaluation rules, such as which words must be exact and how to score a late end-of-turn. An agent configured for the job applies them every time you add a provider.

For the dental clinic example, that means: upload the recorded turns, describe the scoring in a skill, and have the agent write a comparison table you can rerun when a provider ships a new model.

Try it in Dexto

Pick two APIs from the table, gather a few real calls, and ask Dexto to compare them. Open Dexto or read the quickstart.