Whisper vs Deepgram, AssemblyAI, Google and Azure Speech APIs
Honest comparison of OpenAI Whisper, Deepgram, AssemblyAI, Google Speech-to-Text and Azure Speech: accuracy, languages, diarization, pricing, latency, EU data.
If you need speech recognition in a product or a pipeline, the realistic shortlist is OpenAI's Whisper (run locally with faster-whisper or whisper.cpp, or via the OpenAI API), Deepgram, AssemblyAI, Google Cloud Speech-to-Text and Azure AI Speech. None is best at everything: Whisper wins on cost control and privacy when self-hosted, the cloud APIs win on streaming, diarization and operational simplicity, and they differ meaningfully on languages, pricing model and where your audio is processed. This comparison lays out those differences without benchmark numbers, because published accuracy figures depend heavily on the test set and rarely match your audio; the last section shows how to measure on your own recordings instead. For a primer on how speech recognition works at all, see speech to text explained.
The contenders in brief
OpenAI Whisper (local). An open-source model family released by OpenAI in 2022 and updated since (large-v2, large-v3, smaller sizes and English-only variants). You run it yourself. faster-whisper is a CTranslate2 re-implementation that is considerably faster and lighter than the reference code; whisper.cpp runs on CPUs and Apple silicon. No diarization, no streaming, no vendor: you own the pipeline.
OpenAI Whisper (API). The same family served by OpenAI as a hosted endpoint, alongside newer transcription models. Batch only, with a per-file size limit, priced per minute. Nothing to maintain.
Deepgram. A speech-focused company with its own model line (the Nova series). Strong on streaming, low latency and developer ergonomics; offers diarization, keyword boosting and a self-hosted option for enterprises.
AssemblyAI. A speech API with a "Universal" model family and a layer of "audio intelligence" features: speaker labels, summaries, chapters, entity detection, PII redaction and an LLM interface over transcripts. Batch and streaming.
Google Cloud Speech-to-Text. Part of Google Cloud, with the Chirp model family in the v2 API. Very broad language list, streaming and batch, regional endpoints.
Azure AI Speech. Microsoft's speech service: real-time and batch transcription, diarization, custom models trained on your data, deployment in many Azure regions including the EU, and containers for on-premises use.
Accuracy: what actually moves the needle
Across all five, the same factors dominate:
- Audio quality. Microphone distance, noise and compression explain more variance than the choice of engine. A clean recording on any of these systems beats a poor recording on the best one.
- Language and accent. All vendors are strongest in English and the major European and Asian languages. Smaller languages, strong regional accents and code-switching are where differences become large and unpredictable; test with your own speakers.
- Domain vocabulary. Product names, medical or legal terms and people's names are the usual failures. Deepgram, AssemblyAI, Google and Azure all offer some form of vocabulary boosting or custom models; Whisper offers only a text prompt that nudges the decoder, which helps less reliably. Azure's custom speech goes furthest, letting you train on your own audio and text.
- Model size and version. For local Whisper, the large models are noticeably better than small ones on hard audio, at the cost of compute. For the cloud APIs, the newest general model is usually the right default.
- Hallucination on silence or music. Whisper is known for occasionally inventing text during long silences or non-speech; voice activity detection (built into faster-whisper) mitigates it. The cloud APIs tend to be more conservative, returning nothing rather than something plausible.
- Formatting. Punctuation, capitalisation and number formatting differ. Whisper's output is natural but inconsistent; the cloud APIs expose explicit options.
In short: on clean English audio the five are closer than marketing suggests, so choose on features, cost and data location. On difficult audio, run a test. Our transcription accuracy tips cover the recording side.
Languages and speaker diarization
Languages
- Whisper supports roughly a hundred languages, with quality falling off sharply for the less-represented ones. It detects language automatically and can translate any language to English (not between other pairs).
- Google has the broadest published list and is often the first choice for African, South Asian and smaller European languages, though the newest models do not cover every language.
- Azure covers a long list as well, with diarization and custom models limited to a subset.
- Deepgram historically focused on English and major languages, expanding with each Nova release.
- AssemblyAI supports a growing list for batch, with streaming in fewer languages.
Code-switching (mixing two languages mid-sentence) remains hard everywhere. If it is common in your audio, make it part of your test.
Diarization
Diarization ("who spoke when") is a separate problem from recognition and is where the options diverge most.
- Whisper has none built in. The standard approach pairs it with pyannote.audio, aligning speaker segments to Whisper's word timestamps (projects such as WhisperX package this). It works but adds a second model, GPU memory and tuning.
- Deepgram, AssemblyAI, Google and Azure all offer diarization as an option. Quality is broadly similar for two to four clear speakers and degrades on overlap and many speakers for all of them. Some restrict it to certain languages or to batch mode; check the current docs.
If speaker labels are central to your product, this feature alone may decide the vendor, since bolting diarization onto Whisper is the most engineering-heavy part of self-hosting. For how diarization behaves on real interviews, see our interview transcription guide.
Pricing models, described qualitatively
Exact rates change often, so here are the shapes rather than the numbers.
- Whisper local: the software is free. You pay for hardware or cloud GPUs and the engineering time to run and update it. Cost per hour of audio can be very low on a busy GPU and surprisingly high at low volume when a GPU sits idle.
- OpenAI API: a flat rate per minute of audio, no tiers to speak of. Easy to forecast.
- Deepgram: pay-as-you-go per minute with discounts for prepaid or annual commitments; streaming and batch priced separately; some add-ons may cost extra on some tiers. Self-hosted licensing for enterprises.
- AssemblyAI: pay-as-you-go per hour of audio, with extra charges for audio-intelligence features you enable; volume discounts by agreement.
- Google: per-minute pricing with volume tiers, a monthly free allowance, cheaper rates for non-urgent batch processing; billed through your Google Cloud account.
- Azure: per-hour pricing with a free tier, separate rates for real-time, batch and custom models; commitment tiers for volume.
Hidden costs: audio storage and egress, retries on failed jobs, and the human correction time no engine eliminates.
Latency and deployment modes
- Batch (file in, transcript out): all five. Cloud turnaround is typically a fraction of the audio duration and scales with your concurrency limits. Local Whisper speed depends on hardware: faster-whisper on a modern GPU runs many times faster than real time, while CPU-only runs can be slower than real time for the large models.
- Streaming (live captions, voice agents): Deepgram, AssemblyAI, Google and Azure offer WebSocket or gRPC streaming with interim results. Whisper does not stream natively; community projects chunk audio to simulate it, with higher latency and lower accuracy at chunk boundaries. OpenAI's API has since added separate real-time models, a different product from Whisper.
- On-premises or private cloud: local Whisper (anywhere), Deepgram self-hosted (enterprise), Azure speech containers. Google and AssemblyAI are cloud services, with AssemblyAI offering a regional endpoint.
If you need live transcription, Whisper is the wrong tool; for bulk overnight processing of an archive, it may be the cheapest.
Data residency and privacy
This is where EU users should look hardest.
- Local Whisper: audio never leaves your infrastructure. The strongest answer for confidential material, provided you secure the machine.
- OpenAI API: processed by OpenAI; API data is not used for training by default, with retention and regional options evolving. Check the current policy and whether EU processing is available for your account.
- Deepgram: US-based cloud by default; self-hosted deployment is the route to residency.
- AssemblyAI: US-based with an EU data-residency option on a separate endpoint; confirm which features are available there.
- Google: regional endpoints (including EU) for Speech-to-Text; not all models are in all regions.
- Azure: choose an EU region at deployment and data stays there; Microsoft's data processing addendum covers GDPR terms.
In every case, read the data processing agreement, check whether audio is retained or used to improve models, and record the answers for your GDPR documentation. Our GDPR and transcription guide has a checklist.
Comparison table
| Whisper (local) | Whisper / OpenAI API | Deepgram | AssemblyAI | Google STT | Azure Speech | |
|---|---|---|---|---|---|---|
| Deployment | Self-hosted anywhere | Cloud (OpenAI) | Cloud; self-hosted for enterprise | Cloud; EU endpoint option | Cloud; regional endpoints | Cloud in chosen region; containers |
| Streaming | No (community workarounds) | No for Whisper; separate real-time models | Yes | Yes | Yes | Yes |
| Diarization | Via pyannote / WhisperX | No | Yes | Yes | Yes (language-dependent) | Yes |
| Languages | ~100, uneven quality | Same as Whisper | Major languages, expanding | Growing list; fewer for streaming | Broadest list | Long list; subsets per feature |
| Custom vocabulary | Prompt only | Prompt only | Keyword boosting | Word boost, custom spelling | Model adaptation | Custom speech models |
| Pricing model | Free software; you pay compute | Per minute, flat | Per minute; pay-as-you-go and prepaid | Per hour; pay-as-you-go | Per minute; tiers and free allowance | Per hour; free tier and commitments |
| EU data residency | Yes, by construction | Check current policy | Via self-hosting | Yes, EU endpoint | Yes, EU regions | Yes, EU regions |
| Extras | None | Translation to English | Audio intelligence add-ons | Summaries, chapters, PII redaction, LLM layer | Google Cloud ecosystem | Text-to-speech, translation, custom models |
Which one for which job
- A privacy-critical internal tool, a bulk archive, or a research project with GPU access: local Whisper with faster-whisper, plus pyannote if you need speakers.
- A quick integration with zero infrastructure where you do not need streaming or diarization: the OpenAI API.
- Live captions, call-centre agents, voice bots: Deepgram or Azure for streaming maturity, with AssemblyAI and Google as alternatives.
- Transcripts that need summaries, chapters and redaction out of the box: AssemblyAI, or Azure if you are already on Microsoft.
- Many languages, including less common ones: Google first, Azure second, Whisper as the self-hosted option.
- Strict EU residency with a managed service: Azure in an EU region, Google EU endpoints, or AssemblyAI's EU endpoint; verify feature availability per region.
- You want the transcript, not the pipeline: a finished product such as Audiotexta sits on top of this landscape: upload a file or paste a YouTube link, get speaker labels, timestamps, translation and AI summaries, edit with playback highlighting, and export TXT, DOCX, SRT, VTT or PDF, with an API and browser extension for integration. The free plan in the web app is a quick way to see polished output before you build your own.
How to run your own test in an afternoon
- Collect 30–60 minutes of your real audio across the conditions you care about (languages, accents, noise, speaker counts).
- Produce a careful human reference transcript for a subset; even ten minutes is informative.
- Run each candidate with default settings, then once more with vocabulary hints or the appropriate model variant.
- Compute word error rate with an open tool (the Python package jiwer is standard) and, separately, count errors on the names and terms that matter to you.
- Note turnaround time, output formatting, and how much editing each transcript needed.
- Only then look at pricing: the cheapest engine that needs twice the editing is not the cheapest.
Word error rate from your own test, not a vendor's table, is the number for the decision memo.
Frequently asked questions
Is Whisper more accurate than Deepgram, AssemblyAI, Google or Azure?
Not in general. On clean English audio the engines are closer than marketing suggests; on accented, noisy or multilingual audio the ranking changes from dataset to dataset. The only reliable answer is a test on a sample of your own recordings.
Can Whisper do real-time transcription?
Not natively. Whisper processes audio in chunks, and community projects simulate streaming with added latency. For live captions or voice agents, Deepgram, AssemblyAI, Google and Azure offer purpose-built streaming APIs.
Does Whisper identify speakers?
No. Whisper has no built-in diarization. You combine it with a separate model such as pyannote.audio, or use a packaged project like WhisperX. The cloud APIs offer diarization as an option.
Which speech API keeps data in the EU?
Azure (deploy in an EU region), Google Speech-to-Text (EU regional endpoints) and AssemblyAI (EU endpoint) offer EU processing; Deepgram via self-hosting; local Whisper keeps audio entirely on your infrastructure. Always confirm which features are available per region.
Is running Whisper locally cheaper than a cloud API?
At high, steady volume on a busy GPU it can be very cheap per hour of audio. At low or bursty volume, idle hardware and engineering time often make a pay-per-minute cloud API cheaper overall.
Try Audiotexta free
Upload a file or paste a link and get a transcript in minutes.