Choosing a speech-to-text API in 2026

GuideJuly 15, 2026 · 14 min read
Hand-drawn figures adjust a traveler's backpack before a rough path on warm dotted paper.

We build live transcription and translation, so before we shipped anything we evaluated the speech-to-text (STT) engines we could send audio to, and picked one. This post is not about which engine we landed on. It is everything we gathered while deciding, across this part and its sequel.

This part covers 17 STT providers and the open-source models you can self-host, on the things you can verify from the outside: what they charge, whether they stream in real time, whether they translate, how many languages they cover, how hard they rate-limit you, whether you can run them on your own hardware, and what open models actually cost to run.

Part two is the original work all of this builds toward: our own accuracy benchmark, running these engines on identical audio and reporting word error rate.

How to read this

Every figure below was pulled from the provider's own pricing page or docs on July 15-16, 2026. Prices change often, so treat these as a snapshot from those dates.

We show price per hour of audio because most vendors quote it that way and the numbers read more cleanly. Some providers meter per token (Soniox, OpenAI, Gemini) or per second, so the per-hour figure is a converted equivalent rather than a literal line item.

Pricing

Pricing is where STT providers are least comparable. Some bundle features into one rate, others itemize each one, and a few do not publish a real-time rate at all. Two quirks are worth flagging before you read the table. Deepgram inverts the usual order, charging more for pre-recorded audio than for real-time. And AssemblyAI meters real-time on the full WebSocket session wall-clock, including idle time, rather than the audio you actually send. The table shows the flagship pay-as-you-go rate for each provider.

STT pricing at a glance
ProviderBatch ($/hr)Real-time ($/hr)Free tier
Groq (Whisper turbo)0.04not offerednone
Cartesia (Ink Whisper)~0.09 (credits)0.1820K credits/mo (~11 min)
Soniox0.100.12none for new signups
xAI Grok (grok-stt)0.100.20not published
Google Gemini (2.5 Flash)~0.15 (tokens)not publishedyes, rate-limited
Inworld (STT-1)0.150.15400 min
Azure AI Speech0.181.005 hrs/mo
Google Cloud (Chirp)0.18 (dynamic batch)0.96none on V2
AssemblyAI0.210.45$50 credit
Rev AI (Reverb)0.20not published5 hrs
ElevenLabs (Scribe)0.220.394.5 hrs batch / 2.5 hrs real-time per mo
OpenAI (gpt-4o-transcribe)0.360.36none
Amazon Transcribe0.360.6060 min/mo (first 12 mo)
Deepgram (Nova-3)0.460.29$200 credit
Gladia (Solaria)0.610.7510 hrs/mo
Speechmatics (Enhanced)0.400.4350 hrs/mo
Resemble AInot publishednot offerednone

Rates are the flagship English pay-as-you-go tier, converted to USD per audio hour. Speechmatics prices are its Enhanced model; its Standard model runs 0.24 both ways, its newer Melia 1 model is 0.129 for batch, and the free 50 hours split as 30 batch plus 20 real-time. Google's cheap 0.18/hr is its lower-urgency dynamic-batch rate; standard recognition starts at 0.96/hr and drops with volume. Amazon and Azure prices are US regions and vary elsewhere. Groq is batch only, so it has no real-time rate. Gemini has no per-hour list price at all: audio input is metered at 32 tokens per second, so an audio-hour is 115,200 input tokens ($0.12 at 2.5 Flash's $1.00 per million audio rate), and the transcript's output tokens added about $0.03 per audio-hour in our runs, which is where ~0.15 comes from. Gemini's asynchronous Batch API halves those token rates, about $0.07 per audio-hour. Real-time Gemini means its Live API, the WebSocket streaming interface built for voice agents; it bills $3.00 per million audio-input tokens but publishes no tokens-per-second rate for live audio, so there is no honest per-hour conversion to print. Gemini's free tier is limited by request rate rather than by hours, and free-tier prompts may be used to train Google's models. Cartesia bills speech-to-text in credits (1 credit per 2 seconds of batch audio, about 0.09/hr on its Pro plan and less on higher plans); its 20,000 free monthly credits are roughly 11 minutes of batch transcription, and its real-time rate is higher, about 0.18/hr on Pro. Inworld's 0.15 is its on-demand rate for both batch and streaming, dropping toward 0.10 at higher tiers, and its speech-to-text is still labeled a research preview. Resemble publishes no per-hour or per-second speech-to-text rate at all: its pricing page lists only its other audio products, so the STT rate is quote-only, and it has no streaming STT.

The spread is enormous: at the batch extreme, Groq's hosted Whisper is roughly 15 times cheaper per hour than Gladia's Solaria. Price buys very different feature sets, which is the next table.

Features

Two engines at the same price can do completely different jobs. The big splits: does it stream in real time or only process finished files, does it translate as part of the same request, and can you run it on your own hardware.

Feature matrix
ProviderStreamingTranslationLanguagesDiarizationTimestampsSelf-host
SonioxYesReal-time60YesYesNo
DeepgramYesNo50Add-onYesYes
AssemblyAIYesNo99Add-onYesYes
GladiaYesReal-time99YesYesNo
SpeechmaticsYesReal-time56YesYesYes
ElevenLabsYesNo90+YesYesNo
OpenAIPartialEnglish57NoWhisper-1No
GroqNoEnglishautoNoYesNo
xAI GrokYesNo25+YesYesNo
Amazon TranscribeYesSeparate113YesYesNo
Azure AI SpeechYesSeparate148YesYesYes
Google CloudYesChirp 2137YesChirp 2Testers
Google GeminiLive APIPrompt109PromptPromptNo
Rev AIYesAsync58YesYesYes
CartesiaYesNo97 / en liveNoYesYes
InworldYesNo30*NoNoYes
Resemble AINoNonot publishedYesYesYes

How to read the short labels. Translation: "Real-time" means translated text comes back inside the same live stream (Soniox, Gladia, Speechmatics); "English" means it only translates into English, which is Whisper's built-in behavior (OpenAI, Groq); "Separate" means translation is a separate or separately billed step (Amazon needs Amazon Translate; Azure's real-time translation is billed on its own); "Chirp 2" means only Google's Chirp 2 model translates, and only synchronously; "Async" means Rev translates only finished files. Streaming "Partial" (OpenAI) means it streams but not at true low latency. Diarization "Add-on" (Deepgram, AssemblyAI) means speaker labels cost extra. Timestamps "Whisper-1" and "Chirp 2" mean word-level timestamps work only on that specific model. Self-host "Testers" (Google) means on-prem is limited to trusted testers. Gemini's cells work differently because it is a language model with audio input: "Live API" means real-time audio goes through its separate Live API rather than the normal request, and "Prompt" means you ask for translation, speaker labels, or MM:SS timestamps in the prompt instead of switching on a documented feature, so the output format is not guaranteed. Language counts come from each vendor's supported-language list; Gemini's 109 is its overall language list, since Google publishes no separate list for speech. Cartesia's 97 languages apply to batch transcription only; its real-time streaming is English-only, which is what "97 / en live" means. Inworld's 30* is the count in its docs, but its own marketing page calls the STT-1 model English-only at launch and labels the whole speech-to-text service a research preview, so treat 30 as unconfirmed; STT-1 also has no diarization or word-level timestamps unless you switch to a third-party model hosted on the same API. Resemble's speech-to-text is batch only, returns speaker labels and word timestamps, and publishes no language list; its "Intelligence" queries answer questions about a finished transcript rather than translating it.

A few things jump out. If you need translation delivered live in the same connection, the field narrows fast to Soniox, Gladia, and Speechmatics. And the Whisper-based hosted options (Groq, OpenAI's whisper-1) only translate into English, which rules them out for most non-English translation work. Self-hosting splits the field too, which the next section covers.

The odd one out: Gemini

Gemini is the one entry here that is not a dedicated recognizer. It is a general language model that accepts audio, up to 9.5 hours in a single prompt, metered at 32 tokens per second. There is no transcription endpoint: you send the file with a prompt saying what you want back. That makes the feature list unusually flexible, because the same request that transcribes can also translate the transcript, label speakers, add MM:SS timestamps, or summarize. Those are just more instructions.

That flexibility cuts both ways: none of it is contractual. There is no word-level timestamp format and no diarization guarantee, and in our own runs Gemini tidied stumbles and false starts out of the transcript even when the prompt demanded the exact words spoken. For a verbatim record that is disqualifying. If the transcript feeds a summary anyway, it is close to free extra work, and accuracy is not the problem: Gemini sits near the top of the leaderboard table below.

Rate limits and concurrency

Price and features tell you what an engine can do. Rate limits decide how much of it you can do at once, and they vary more than price does. Providers cap you along two axes: concurrency, meaning how many requests run at the same time, and request rate, meaning how many you can start per second, minute, or hour. Most publish a concurrency limit; only a few publish a request rate. The entry-tier numbers below are what you get before an enterprise contract.

Documented default limits on the entry self-serve tier
ProviderConcurrencyRequest rateRaising it
Groq (Whisper turbo)not publishedFree 20/min + ~2 audio-hrs/hr; Dev 400/minUpgrade to Developer
OpenAI (gpt-4o-transcribe)not publishedTier 1: 500/min, 10k tokens/minAutomatic with spend
Deepgram (Nova-3)50 batch / 150 streamingno request-rate capEnterprise only
AssemblyAI200 batch (5 on free)20,000 requests / 5 minAny paid plan, on request
Soniox10 live streams100/min real-timeSelf-serve in console
Speechmatics50 live sessions (2 on free)10 new jobs/sec (recommended)Support or Enterprise
Gladia (Solaria)25 batch / 30 live (3 / 1 free)per-hour cap, not numberedContact sales
ElevenLabs (Scribe)8 batch / 6 live on free, up to 60 / 45not publishedEnterprise
Rev AI (Reverb)10 live / 5 uploads500 jobs / 10 minFree, via support
xAI Grok (grok-stt)100 live sessions per team10/secContact sales
Amazon Transcribe250 batch / 25 streaming25/secQuota console
Azure AI Speech100 live (1 on free)600/min batchQuota request (S0)
Google Cloud (Chirp)300 live sessions300/min syncQuota request
Google Gemini (2.5 Flash)100 batch jobs$10 spend / 10 min (Tier 1)Automatic with spend
Cartesia (Ink Whisper)8 free, up to 60not publishedUpgrade tier
Inworld (STT-1)10 live, up to 1,000not publishedUpgrade plan
Resemble AInot published40/sec per tokenContact support

Defaults on each provider's entry self-serve tier, from their rate-limit and quota docs on July 15, 2026 (Gemini: July 16); batch / streaming shown where they differ. "not published" means the provider documents no limit of that kind: Deepgram caps only concurrency, while OpenAI and Groq cap only rate. Amazon, Azure, and Google numbers are per region and raised through a quota request. Speechmatics' job rate is a published recommendation, not a hard cap. Groq's free audio-hours cap meters audio duration, roughly two hours of audio per wall-clock hour, not request count. Gemini's docs publish no per-model request rate at all (those numbers live in the AI Studio console); what they publish is a spend cap per rolling 10 minutes ($10 on the first paid tier) and Batch API caps of 100 concurrent jobs and, on Tier 1, 3 million enqueued tokens for 2.5 Flash, which is about 26 audio-hours in the queue at once.

The limits we actually hit

Most comparisons stop at the published numbers. Because part two pushes thousands of clips through these APIs, we also saw which limits are real, on entry-tier keys, and some of them did not match the pages. Groq's free cap held exactly: 20 requests a minute on whisper-large-v3-turbo, which our run tripped within seconds. Gladia's free trial cut us off at 20 requests an hour, a figure that appears nowhere in its rate-limit docs, which publish only concurrency numbers and admit to an unnumbered hourly cap without giving it.

Speechmatics was the sharpest mismatch. Its pricing page advertises 50 free hours a month, the figure in our pricing table above, but the account we tested refused Enhanced-model audio after 2 hours, a limit printed on none of its pages, and its own docs and pricing page already disagree with each other (10 hours in the docs, 8 in the FAQ, 50 on the pricing page). Soniox started refusing our batch uploads with connection resets and HTTP 429s partway through a run. The cause turned out not to be a rate limit but its storage quota: the account caps stored files at 1,000, and a run that does not delete each file as it finishes fills that quota until uploads fail. Deleting every file and transcription right after reading it cleared the errors. Azure was different again: its fast-transcription endpoint began returning HTTP 429s after about 20 back-to-back calls, with a 31-second retry-after, on the order of 40 requests a minute, even though Azure's quota page lists 600 a minute for that endpoint. So test each key at the concurrency and volume you actually plan to run: the free-tier number on the page may not be the one you get, and the failure you hit may not be the one the error code names.

Deployment, privacy, and compliance

If you handle regulated data, this section can matter more than price or accuracy. The dividing line is whether the engine has to run in the vendor's cloud or can run in your environment.

What about accuracy?

This is the number everyone wants, and it is the one you should trust least from a vendor page. Almost every provider publishes a word error rate (WER) that makes it look best. The problem is that they are not measuring the same thing.

The closest thing to a fair comparison

That said, two third-party benchmarks do run providers on the same audio with one scorer, which is as close to a fair comparison as public data gets. Artificial Analysis covers the commercial APIs; the Open ASR Leaderboard covers the open models. Both sets of numbers below are from July 2026.

Commercial APIs on Artificial Analysis (lower is better)
Provider (model tested)AA-WER
ElevenLabs (Scribe v2)2.2%
Azure (MAI-Transcribe-1.5)2.4%
Google Gemini (3.1 Pro Preview, high)2.8%
AssemblyAI (Universal-3.5 Pro)3.0%
Gladia (Solaria-3)3.2%
Soniox (v5 Async)3.8%
OpenAI (gpt-4o-transcribe)4.0%
Speechmatics (Enhanced)4.0%
xAI Grok (grok-stt)4.0%
Amazon Transcribe4.1%
Google (Chirp 3)4.3%
Groq (Whisper v3 turbo)4.6%
Deepgram (Nova-3)5.2%
Rev AI5.9%

Artificial Analysis AA-WER v2, non-streaming, accessed July 15-16, 2026. A duration-weighted average over about 8 hours of audio from three sets: AA-AgentTalk (50%, conversational), VoxPopuli-Cleaned (25%), and Earnings22-Cleaned (25%), scored against cleaned reference transcripts. Soniox (v5 Async) and xAI Grok appeared on the leaderboard between our two snapshots. Gemini's entry is a general language model run at high reasoning effort, not a dedicated recognizer. Whisper's score shifts with who hosts it (same weights, different serving stack), a caution in itself.

Open models on the Open ASR Leaderboard
Open modelAvg WERSpeed (RTFx)
NVIDIA Parakeet TDT 0.6B v25.39%6,038x
Mistral Voxtral Small (24B)5.65%100x
NVIDIA Parakeet TDT 0.6B v35.66%6,098x
NVIDIA Canary-1B-Flash5.78%2,126x
Mistral Voxtral Mini (3B)6.01%180x
NVIDIA Canary-1B-v26.39%1,821x
Whisper large-v36.55%462x
Whisper large-v3-turbo7.01%783x
Moonshine base8.60%2,767x

Open ASR Leaderboard, average WER (cleaned) over 7 public English sets (AMI, Earnings22, GigaSpeech, LibriSpeech clean and other, SPGISpeech, VoxPopuli), accessed July 15, 2026. RTFx is speed on a datacenter GPU, how many times faster than real time; higher is better. These are read and meeting recordings, which run easier than the conversational audio that dominates the Artificial Analysis set, so the WER here is not comparable to the table above.

These narrow the question but do not close it. Half of the Artificial Analysis mix is its own conversational set, scored against references it cleaned itself, so you cannot rerun its numbers, and the open leaderboard skips the commercial APIs. Part two of this post takes the remaining step: we send an identical public test set through these engines and report word error rate with confidence intervals, using the same open scoring method the research community uses.

Open-source and self-hosted

The 17 above are hosted APIs, but you do not have to use one. Several open-weight models are now as accurate as the commercial engines, a few beat Whisper outright, and some also translate (see the table). If you run the model yourself, or rent it by the second on a GPU platform, the cost math changes.

Open-weight models worth knowing
ModelLicenseRuns locallyStreamingTranslation
NVIDIA Parakeet TDT 0.6B v3CC-BY-4.0Yes, on a laptopYesNo
Mistral VoxtralApache-2.0Mini: yes; 24B: serverYes (Realtime build)Any-to-any
NVIDIA Canary-1B-v2CC-BY-4.0Yes, on a laptopNo24 languages
Whisper large-v3 / turboMIT / Apache-2.0Yes, on a laptopNoEnglish only
Meta MMS / SeamlessM4TCC-BY-NC-4.0Yes, on a laptopNoSeamlessM4T: yes

"Runs locally" means it fits on a modern laptop or Apple Silicon Mac (roughly, models under 3B parameters). Only the largest, such as Voxtral 24B and IBM Granite Speech 8B, need a datacenter GPU. Parakeet v3 is the fastest and near the top on accuracy but transcription-only; Whisper has the widest tooling but is now mid-pack; Voxtral and Canary-1B-v2 add translation. Open-model accuracy moves monthly: a 2025-2026 wave (Cohere Transcribe, Qwen3-ASR, NVIDIA Canary-Qwen, IBM Granite Speech) pushed the top of the Open ASR Leaderboard into the ~5% WER band, ahead of Whisper, so date any "most accurate" claim and check the live leaderboard. CC-BY-NC means research or non-commercial use only.

Running it on your own machine

Unlike large language models, most of these models are small enough to run on a normal computer. Whisper, Parakeet 0.6B, Canary 1B, and Voxtral Mini all run on a modern laptop or an Apple Silicon Mac; only the largest need a server. We ran Whisper and Parakeet on an M4 Pro MacBook ourselves, to check whether on-device transcription was fast enough to ship rather than take vendor throughput claims on faith. On that machine, Parakeet transcribed about 50 times faster than real time and Whisper large-v3 about 1 to 3 times.

When it runs on hardware you already own, the only marginal cost is electricity: power draw, times how long the transcription runs, times your rate. US residential electricity averages about 17 cents per kWh. A laptop draws roughly 45 watts under load, a desktop with a discrete GPU 300 to 400.

Local electricity cost per hour of audio
Setup (hardware you own)Cost per audio-hour
Parakeet on an Apple Silicon laptop (~50x real time)~$0.0002
Whisper large-v3 on the same laptop (~1x real time)~$0.008
Desktop with a consumer GPUwell under $0.01

Electricity only, at about $0.17/kWh (US residential average, EIA) with the machine drawing 45 to 400 watts. Real-time factors are measured from our on-device benchmark on an M4 Pro. You already paid for the hardware; this is only the power it draws while transcribing.

So on a machine you own, transcription is effectively free, a fraction of a cent per hour of audio. The catch: it ties up that one machine, does not scale past it, and you paid for the hardware up front. For a desktop app or an on-device feature this is unbeatable. For a service handling many streams at once, you are back to renting GPUs.

Running it at scale on rented GPUs

At scale you rent GPUs, and an open model has no list price, only your compute bill. To compare it against the APIs above, normalize to dollars per hour of audio. The formula is: cost per audio-hour = GPU price per second times (3600 divided by RTFx), where RTFx is how many times faster than real time the model runs on that GPU. You measure RTFx by transcribing a known length of audio and reading the billed compute time.

You can rent this by the second (fal, Replicate, Modal, and Baseten all host Whisper, and most host Parakeet or Canary too) or run it on a GPU you rent by the hour. Serverless is simplest; a dedicated GPU is cheapest at steady high volume. Here is what that works out to.

What open-source actually costs per hour of audio
SetupCost per audio-hour
Naive, one file at a time (Whisper on an H100)~$6.90
Serverless convenience (fal, NVIDIA Canary)~$2.88
Batched pipeline (Parakeet or Canary on an H100)~$0.006
Self-hosted, GPU fully utilized (Parakeet v3)under $0.002

Figures from the platforms' own published examples and rate cards (Modal, fal, Replicate), July 2026. The roughly 1,000x range means cost is set by how busy you keep the GPU, not by the model.

So self-hosting is not automatically cheaper. Run a model naively, one clip at a time, and it can cost more than a commercial API. Compare the table above to the API prices earlier: Groq is $0.04 per audio-hour, Soniox $0.10, Azure batch $0.18, all cheaper than naive self-hosted Whisper. The open-source cost advantage only shows up at scale, when you batch hard and keep the GPU saturated. Until then, a cheap hosted API (Groq is literally hosted Whisper) gives you the same model with none of the operational work.

When open-source is worth it

Self-hosting also adds fixed costs the APIs absorb for you: building the batching pipeline, autoscaling GPUs, reliability, monitoring, and rebuilding features like diarization and formatting yourself. Whether the savings clear that overhead comes down to two things.

How we would approach the choice

Here is the decision framed as tradeoffs. Match it to the job you actually have.

Whatever you pick, run your own audio through it before you commit. Vendor demos use easy audio. Your users will not.

Sources (accessed July 15-16, 2026)

See live transcription and translation in action

Verli transcribes and translates any audio your computer plays, live. Free for 60 minutes a month.

Frequently asked questions

Is real-time transcription more expensive than batch?

Usually, but not always. Most providers charge more for real-time streaming than for processing a finished file, because low latency is harder to serve. Deepgram is a notable exception where its published pre-recorded rate is higher than its real-time rate. Groq does not offer real-time at all.

Which speech-to-text APIs translate in real time?

As of July 2026, Soniox, Gladia, and Speechmatics deliver translated text inside the same real-time stream as the transcript. Azure and Google offer translation but as a separate or synchronous-only path, and OpenAI and Groq (both Whisper-based) only translate into English. Google also lists a dedicated real-time speech translation model in the Gemini API (gemini-3.5-live-translate-preview, 70+ languages), but it is speech-to-speech and still in preview. The practical difference: a same-stream translation is one integration and one bill, while a separate path means a second service to wire up, pay for, and monitor.

Can I run these engines on my own servers?

Some. Speechmatics and Azure support fully air-gapped, on-premises deployment. Deepgram, AssemblyAI, and Rev offer self-hosting on enterprise contracts, and Google has an on-prem option in limited testing. The rest are cloud-only APIs. If an enterprise contract is the blocker, the open-weight models (Whisper, Parakeet, Canary) run on your own servers with no vendor agreement at all.

Why does this comparison not name a best provider?

Because there is no single best one. The right choice depends on whether you need real-time streaming, built-in translation, on-prem deployment, wide language coverage, or the lowest price, and no provider leads on all of them. Accuracy, the other deciding factor, cannot be judged fairly from vendor pages, so we test it ourselves in part two.

Can an LLM like Google Gemini replace a speech-to-text API?

For finished recordings, often yes. Gemini accepts up to 9.5 hours of audio in one prompt, meters it at 32 tokens per second (about $0.15 per audio-hour on 2.5 Flash, transcript output tokens included), and its 3.1 Pro Preview entry scores 2.8% on the Artificial Analysis leaderboard as of July 16, 2026, ahead of most dedicated engines there. The tradeoffs: speaker labels and timestamps come from prompting rather than a documented feature, low-latency streaming means adopting its separate Live API, and in our runs it tidied up disfluencies even when asked for a verbatim transcript.

Are open-source speech-to-text models cheaper than a paid API?

Only at scale. Per hour of audio, a well-batched open model can cost under a cent, far less than any API. But you pay for the GPU whether it is busy or idle, plus the engineering to run it, so at low or spiky volume a cheap hosted API like Groq is cheaper all-in. Serverless per-second GPU hosting sits in the middle: it removes the idle cost, but at around $2.88 per audio-hour it runs pricier than every API rate in our table. Open-source wins when you have high, steady volume, or a hard requirement like on-prem deployment or fine-tuning that no API can meet.

More from Verli