I would not pick a speech-to-text provider from a price-per-minute leaderboard. Recorded archives, live captions, and two-channel support calls have different failure modes. A cheap transcript that needs extensive correction is not cheap, and fast first text does not guarantee usable live captions.
My shortlist would include one inexpensive recorded-audio route, one streaming specialist, and one provider that fits the existing SDK or cloud stack. Then I’d run the same audio through each and compare cost per accepted transcript.
Start With the Acceptance Contract
Before integrating anything, I’d write down required languages, timestamp precision, speaker-label tolerance, p95 latency, retention requirements, and maximum correction minutes per audio hour. Those constraints eliminate more unsuitable routes than a generic accuracy ranking.
| Workload | My initial shortlist | What would decide it |
|---|---|---|
| Recorded archives | AssemblyAI Universal-2, Google Dynamic Batch, OpenAI gpt-4o-mini-transcribe
|
Queue time, long-file handling, formatting, correction effort |
| Live captions and voice agents | Deepgram Nova-3 or Flux, AssemblyAI Realtime, ElevenLabs Scribe v2 Realtime | Stable partials, finalization, interruptions, reconnects |
| Contact-center calls | AWS Transcribe, Google Cloud STT, Deepgram, AssemblyAI | Channel billing, overlapping speech, redaction, regional processing |
| Multilingual meetings and media | AssemblyAI Universal-3.5 Pro, ElevenLabs Scribe v2, Deepgram Nova-3 Multilingual, OpenAI transcription models | Actual language pairs, accents, names, timestamps, code switching |
The Price Sheet I’d Use
These public prices are normalized to one audio hour. They are a 2026 snapshot, not equivalent offers: promotional streaming, lower-priority batch, and high-volume examples have different conditions. Verify current pricing before committing.
| Provider | Recorded or asynchronous | Live or standard | Budget caveat |
|---|---|---|---|
| OpenAI |
gpt-4o-mini-transcribe: $0.18/hr; gpt-4o-transcribe: $0.36/hr |
gpt-realtime-whisper: approximately $1.02/hr |
Separate routes have different timestamp and diarization capabilities |
| Deepgram | Nova-3 Monolingual: $0.462/hr | Nova-3 Monolingual: $0.288/hr promotional | Paid features and Model Improvement Program terms |
| AssemblyAI | Universal-2: $0.15/hr; Universal-3.5 Pro: $0.21/hr | Universal-Streaming: $0.15/hr; Universal-3.5 Pro Realtime: $0.45/hr | Per-channel billing; streaming language coverage differs |
| Google Cloud STT V2 | Dynamic Batch: $0.18/hr | Standard: $0.96/hr for the first 500,000 monthly minutes | Lower urgency for Dynamic Batch; every channel billed separately |
| Amazon Transcribe | Official 2M-minute US East example: $0.36/hr | Same volume example: $0.60/hr | Region- and volume-dependent, not entry prices |
| ElevenLabs Scribe | Scribe v2: $0.22/hr | Scribe v2 Realtime: $0.39/hr | Entity detection and keyterm prompting cost extra |
Recorded Audio: Check the Output Contract First
OpenAI: Convenient Integration, Route-Specific Constraints
I’d test OpenAI early when authentication, logging, retries, and governance already use its SDK. The pricing page estimates gpt-4o-mini-transcribe at $0.003/min and gpt-4o-transcribe at $0.006/min; gpt-realtime-whisper is approximately $0.017/min. Both uploaded GPT transcription models support prompts for names, acronyms, and domain vocabulary.
The important distinction is that “OpenAI transcription” is not one interchangeable interface. Uploads are limited to 25 MB. Word-level timestamp_granularities[] are documented only for whisper-1. The separate gpt-4o-transcribe-diarize model returns speaker-labelled segments and can associate them with known speakers using short reference clips, but it is unavailable through the Realtime API. I’d check the speech-to-text documentation against the required formats, timestamps, and long-recording workflow before standardizing.
For a benchmark spanning supported speech models, a unified multi-model API such as CometAPI can simplify authentication, billing, and client integration through its OpenAI-compatible quickstart. I’d verify the live catalog, exact model IDs, endpoints, parameters, limits, privacy terms, and billing behavior rather than assume compatibility makes the routes equivalent.
AssemblyAI: Separate the Batch and Streaming Language Matrices
AssemblyAI is an obvious recorded-audio candidate: Universal-2 costs $0.15/hr and supports 99 languages; Universal-3.5 Pro costs $0.21/hr, supports 18 languages, and adds code switching in a more advanced model tier. That makes Universal-2 the lowest published recorded-audio base rate among the routes compared here, before channel and feature costs.
The streaming products need their own evaluation. Universal-Streaming costs $0.15/hr for English. Universal-Streaming Multilingual costs the same and covers English, Spanish, German, French, Portuguese, and Italian. Universal-3.5 Pro Realtime costs $0.45/hr and supports 18 languages. The inexpensive streaming routes do not inherit Universal-2’s 99-language coverage. Recorded diarization adds $0.02/hr, real-time diarization adds $0.12/hr, and Universal-Streaming keyterm prompting adds $0.04/hr. Multichannel files are billed per channel.
Live Audio: Measure When Text Becomes Usable
Deepgram: Evaluate Endpointing Alongside Recognition
I’d shortlist Deepgram when turn-taking and partial-result behavior are central. Published rates list limited-time Nova-3 streaming at $0.0048/min for Monolingual and $0.0058/min for Multilingual. Corresponding pre-recorded pay-as-you-go rates are $0.0077/min and $0.0092/min. Flux targets conversational voice agents with turn detection and interruption handling.
The base rate is only part of the quote. Diarization and redaction each add $0.0020/min; keyterm prompting adds $0.0013/min. Listed rates also opt users into the Model Improvement Program, so stricter data-use requirements need a commercial-terms check. My live benchmark would focus on useful partials, endpointing, interruption handling, and predictable finalization, not just the transcript produced after the session.
ElevenLabs: Timings and Media Features Deserve Their Own Tests
ElevenLabs API pricing lists Scribe v2 at $0.22/hr and Scribe v2 Realtime at $0.39/hr. Its transcription offering includes multilingual support, word-level timestamps, diarization, audio tagging, and optional entity and keyterm features. Entity detection adds $0.07/hr; keyterm prompting adds $0.05/hr. I’d include it for multilingual media, word timings, audio tags, or an early real-time prototype.
Advertised low model latency is not microphone-to-screen latency. My measurement would include network transit, buffering, WebSocket handling, UI updates, and downstream agent logic in the target region. First partial, stable partial, and final transcript should be separate measurements at both p50 and p95.
Cloud-Native Routes: Include Operations in the Calculation
Google: Dynamic Batch Trades Urgency for Price
Google Cloud Speech-to-Text V2 lists Dynamic Batch at $0.003/min and standard recognition at $0.016/min for the first 500,000 monthly minutes, with lower standard rates at higher tiers. Dynamic Batch belongs in a non-urgent archive benchmark, but its lower processing urgency must fit the turnaround deadline.
Google bills every audio channel separately: 30 seconds across four channels becomes 120 seconds of processed audio. I’d also account for storage, transfer, and adjacent cloud services. When recordings already live in Cloud Storage and operations already depend on GCP identity, logging, regional endpoints, and billing controls, that integration can matter as much as the transcription line item. Regional deployment and adaptation requirements also belong in the decision.
AWS: Two-Channel Billing Changes the Comparison
Amazon Transcribe varies by region and monthly volume. Its public US East example at two million monthly minutes uses $0.006/min for batch and $0.01/min for streaming. I would not present those figures as ordinary entry prices. Billing uses one-second increments with a 15-second minimum per request.
Standard pricing includes custom vocabularies, vocabulary filtering, speaker diarization, and language identification. Automatic content redaction and custom language models cost extra. Up to two channels are included in the duration charge, which makes stereo calls worth calculating separately. AWS is a natural candidate when call handling, IAM, storage, security, and procurement already sit there.
Recalculate Cost After Channels, Features, and Review
For a 60-minute, two-channel recording, AssemblyAI Universal-2 comes to 1 × 2 × $0.15 = $0.30. Google standard recognition comes to 1 × 2 × $0.96 = $1.92. AWS batch comes to 1 × $0.36 = $0.36, but only using that official two-million-minute US East example; actual estimates need the relevant region and volume. These are billing illustrations, not evidence of equivalent contact-center quality.
Feature choices can move the total substantially. Deepgram Nova-3 Monolingual pre-recorded starts at $0.0077/min, reaches $0.0097/min with diarization, and reaches $0.0117/min with redaction too, before keyterm prompting. Retries, duplicate webhook handling, storage, and cross-cloud transfer also belong in the accounting.
Cost per accepted transcript =
API processing + paid features + retries + storage/transfer + human correction time
At an assumed reviewer rate of $30/hr, a $0.15 transcription that needs eight minutes of correction costs $4.15 in total: $0.15 plus $4.00. A $0.60 transcription needing three minutes costs $2.10: $0.60 plus $1.50. The API is four times more expensive in the second example, yet the reviewed output costs roughly half as much. Those correction times are planning assumptions, not provider benchmark results.
My Seven-Day Evaluation
Vendor accuracy claims are not interchangeable: datasets, languages, acoustic conditions, normalization, and model versions differ. The cited 2026 GigaSpeechBench study describes 680 hours of human-annotated real-world speech covering low-resource languages, Chinese dialects, English accents, terminology from 12 vertical domains, and child and older-adult speech, with substantial degradation in difficult settings. I’d treat that as motivation for representative testing, not a permanent provider ranking.
- Define acceptance. Specify languages, p95 latency, speaker tolerance, timestamp needs, retention rules, and maximum review minutes per audio hour.
- Build the reference set. Use licensed production-like audio: 20 clean meetings or interviews, 20 noisy support calls, 20 accented or multilingual clips, 10 long-form podcasts or videos, and 10 short live utterances. Include names, terminology, hold music, crosstalk, channel changes, genuine code switching, hesitation, silence, false starts, and barge-in.
- Align integrations. Match formats, regions, vocabulary hints, channel layouts, retries, timeouts, and model versions. Apply one reference-transcript and normalization policy.
- Evaluate recordings. Measure WER insertions, deletions, and substitutions; named-term accuracy; misassigned words and missed speaker changes; punctuation, casing, paragraphs, numbers, dates, and disfluencies. Record upload-to-final p50 and p95 for short and long files, failures, correction minutes, and acceptance rate.
- Evaluate live behavior. Capture first partial, stable partial, finalization, endpointing, interruptions, and reconnects at p50 and p95. Track timeouts, empty results, retries, duplicate webhooks, and fallback rate.
- Calculate accepted-output cost. Include channels, paid features, retries, storage, transfer, and actual reviewer effort.
- Choose routing, not necessarily one vendor. Live English calls, multilingual meetings, and low-priority archives may justify different routes.
Before I’d Sign
I’d test recorded and live models separately, then compare stereo channel identification with single-channel diarization on overlapping speech. I’d deliberately exercise malformed audio, timeouts, empty responses, dropped connections, webhook redelivery, and rate-limit errors. File size, session duration, concurrency, rate limits, and long-file handling need explicit verification.
For the exact plan, I’d confirm retention, model-improvement use, regional processing, deletion controls, encryption, DPA or BAA availability, and subprocessors. Every job should log model version, audio seconds, channels, feature flags, request status and cost, retries, latency, review minutes, and acceptance status. Pricing or model changes should trigger a fresh benchmark. The provider that wins is the one that continues to meet the acceptance contract at the lowest measured total cost.
Originally published at cometapi.com
Top comments (0)