🎙️ Audio Transcription Benchmarks

Cheapest Speech-to-Text APIs in 2026: Cost Per Minute Ranked

The complete unit economics guide for AI voice bots, call center transcription, and meeting note agents. Compare latency, word error rates (WER), and volume discounts.

⚡ 60-Second STT Verdict ✓ Verified October 2026
Transcription Unit Rates & Real-Time Streaming Word Error Rate

Speech-to-Text Price-Performance Index: For asynchronous batch audio, Groq Whisper Large-v3 ($0.0018/min = $0.11/hr) delivers unprecedented speed and affordability. For live real-time conversational streaming, Deepgram Nova-3 ($0.0043/min = $0.26/hr) is the undisputed production champion, delivering sub-250ms latency, high-precision punctuation, and word-level timestamps at 30% lower cost than OpenAI Whisper ($0.006/min). Build full voice agents with our Realtime Voice AI Stack Guide and compare TTS in Cheapest Text-to-Speech APIs.

Groq Whisper Large $0.0018 / min ($0.11 / hr)
Deepgram Nova-3 $0.0043 / min ($0.26 / hr)
OpenAI Whisper $0.0060 / min ($0.36 / hr)
Live Latency Sub-250ms (Deepgram)

Top Speech-to-Text Endpoints Ranked (2026 Master Table)

Provider & Model Cost / Minute Cost / Hour 1,000 Hours Cost Streaming Latency Word Error Rate (WER) Best For
Groq Whisper Large v3 $0.0018 $0.111 $111 Batch only (250x RT) 7.2% Massive batch audio archives
Deepgram Nova-3 $0.0043 $0.258 $258 ~220ms 6.84% Real-time voice bots, LiveKit
Deepgram Nova-2 $0.0043 $0.258 $258 ~260ms 7.80% Legacy telephony pipelines
OpenAI Whisper Large v3 $0.0060 $0.360 $360 Batch only 7.4% Multilingual translation
AssemblyAI Best $0.0065 $0.390 $390 ~350ms 7.1% PII redaction, call analytics
Gladia Audio Intelligence $0.0090 $0.540 $540 ~300ms 7.5% Multi-speaker overlap meetings
Google Cloud Speech-to-Text $0.0160 $0.960 $960 ~400ms 8.4% Google Workspace integrations

How to Choose Between Streaming vs Batch STT

For conversational AI voice bots (e.g. AI receptionists or support agents), Time to First Transcript Token (TTFT) is everything. If your user says "hello" and transcription takes 800ms, your entire conversational turn will feel sluggish and unnatural. In this scenario, Deepgram Nova-3 via streaming WebSockets is the only viable choice under $0.005/min.

Conversely, if your workload is transcribing recorded customer service calls or user voicemails after the fact, streaming low-latency is completely irrelevant. Routing recorded files to Groq Whisper Large v3 at $0.0018/min reduces your transcription expenses by nearly 60% with zero quality degradation.

Interactive Speech-to-Text Audio Cost Simulator

Compare monthly transcription invoices across DeepInfra Whisper ($0.09/hr), Deepgram Nova-3 ($0.258/hr), Groq Whisper ($0.111/hr), and OpenAI Whisper ($0.360/hr).

Monthly Audio Volume (Hours): 1,000 Hours (60,000 mins)
Latency Requirement: Batch Pre-Recorded ($0.0015/min DeepInfra)
Estimated Transcription Bill
$90.00
OpenAI Whisper would cost $360.00 (DeepInfra saves 75%).

Production Code: Real-Time Telephony Live Streaming with Deepgram

Python script streaming live caller audio over WebSockets with partial transcript callbacks under 250ms.

import os
import asyncio
from deepgram import DeepgramClient, LiveTranscriptionEvents, LiveOptions

async def stream_audio_to_deepgram(audio_stream):
    """Stream live telephony audio to Deepgram Nova-3 for sub-300ms transcription."""
    deepgram = DeepgramClient(os.environ["DEEPGRAM_API_KEY"])
    connection = deepgram.listen.websocket.v("1")

    def on_transcript(self, result, **kwargs):
        sentence = result.channel.alternatives[0].transcript
        if sentence:
            print(f"[Live Partial Transcript]: {sentence}")

    connection.on(LiveTranscriptionEvents.Transcript, on_transcript)
    options = LiveOptions(model="nova-3", language="en-US", punctuate=True, diarize=True)
    await connection.start(options)

    for chunk in audio_stream:
        await connection.send(chunk)
    await connection.finish()

Speech-to-Text Operational Gotchas & Bill Shock Traps

Common engineering traps that cause latency spikes and unexpected charges.

1. Hallucinations on Extended Silence

OpenAI Whisper frequently hallucinates repetitive phantom phrases ('Thank you for watching!') during long audio pauses. Use Voice Activity Detection (VAD) to strip silence.

2. Speaker Diarization Surcharges

Features like speaker identification (who spoke when) add $0.0014 to $0.0030/min surcharges across Deepgram and AssemblyAI. Verify feature flags before batch jobs.

3. 25 MB REST File Upload Limits

OpenAI and Groq Whisper endpoints reject files over 25 MB. Multi-hour podcast recordings must be chunked with ffmpeg into 10-minute MP3 segments.

4. Audio Codec Transcoding Overhead

Sending raw uncompressed WAV audio over mobile networks causes bandwidth choke. Encode audio to 16kHz mono Opus or 64kbps MP3 to minimize bandwidth bills.

Related Speech & Audio Showdowns

Explore complementary benchmarks across speech synthesis and conversational telephony.

Deepgram vs Whisper Showdown →

Compare sub-300ms WebSocket streaming against batch transcription.

Cartesia vs ElevenLabs Showdown →

Compare state-space Sonic voice vs ElevenLabs Multilingual v2.

Twilio vs Sinch Telephony Showdown →

Evaluate CPaaS voice minutes and SMS routing economics.

Cheapest Text-to-Speech APIs →

Rankings of the lowest cost generative voice APIs.

Frequently Asked Questions: Speech-to-Text Pricing

Does Deepgram charge extra for speaker diarization?
Deepgram includes speaker diarization in standard Nova-3 pricing at no extra per-minute surcharge. In contrast, older legacy cloud providers like Google Cloud and AWS charge an additional $0.006/min for speaker identification.
What audio format yields the lowest latency in streaming STT?
Raw Linear PCM 16-bit 16kHz mono audio yields the fastest transcription speeds because the server does not need to waste CPU cycles decoding compressed MP3 or AAC codecs before feeding audio to the acoustic model.
Can I self-host Whisper for cheaper than $0.0018/minute?
Unless you are saturating multiple dedicated A100 or L4 GPUs 24 hours a day with constant audio streams, self-hosting faster-whisper or vLLM audio will almost certainly cost more than Groq's $0.0018/min rate once idle server time and DevOps engineering hours are accounted for.

Streaming Transcription Architecture & Word Error Rate (WER) Economics

Speech-to-Text (STT) infrastructure requires evaluating APIs on four interdependent metrics: Word Error Rate (WER) under background noise, streaming latency (TTFB), speaker diarization surcharges, and per-minute pricing. Legacy hyperscalers (Google Cloud Speech-to-Text and AWS Transcribe) charge between $0.016 and $0.024 per minute ($0.96 to $1.44/hour). Specialized speech AI providers like Deepgram Nova-2 ($0.0043/min, $0.258/hour) and Whisper Large-v3 hosted on Groq LPUs or DeepInfra offer 70% to 80% lower operational costs with superior handling of conversational interruptions and industry jargon.

Monthly Operating Cost Matrix: STT Providers (2,500 Hours / 150k Call Minutes)

Provider & Model Base Price / Min Hourly Rate Streaming Latency WER (Clean / Noisy) Monthly Total (2,500 Hrs)
Deepgram Nova-2 $0.0043 $0.258 240ms 6.8% / 11.2% $645.00
Whisper Large-v3 (Groq LPU) $0.0018 (Batch) $0.111 Chunked (Non-stream) 7.2% / 12.0% $277.50
AssemblyAI (Conformer-2) $0.0065 $0.390 450ms 7.1% / 11.8% $975.00
Google Cloud STT v2 $0.0160 $0.960 380ms 8.4% / 13.9% $2,400.00

Deepgram Streaming Live WebSocket Client (Python)

import asyncio
import websockets
import json

# Stream live audio frames into Deepgram with endpointing and interim transcripts
async def stream_audio_to_deepgram(audio_queue):
    url = "wss://api.deepgram.com/v1/listen?model=nova-2&smart_format=true&interim_results=true&endpointing=300"
    headers = {"Authorization": f"Token {os.environ['DEEPGRAM_API_KEY']}"}

    async with websockets.connect(url, extra_headers=headers) as ws:
        async def send_audio():
            while True:
                chunk = await audio_queue.get()
                if chunk is None: break
                await ws.send(chunk)

        async def receive_transcripts():
            async for msg in ws:
                res = json.loads(msg)
                transcript = res.get('channel', {}).get('alternatives', [{}])[0].get('transcript', '')
                if transcript:
                    print("STT:", transcript)

        await asyncio.gather(send_audio(), receive_transcripts())

Speech Infrastructure Best Practices

Engineering Q&A: Speech-to-Text APIs

Can Whisper Large-v3 be used for real-time interactive voice bots?

Whisper was architected for batch audio and processes files in 30-second fixed chunks. While specialized providers like Groq can transcribe a 30-second chunk in under 300ms, streaming word-by-word interim results requires streaming architectures like Deepgram Nova-2 or Conformer models.

What audio encoding offers the lowest streaming latency?

Raw linear PCM (16-bit, 16kHz, mono) delivers the lowest latency because audio frames require zero decode buffering on the server. For mobile cellular streams where bandwidth is constrained, Opus at 24 kbps provides superior audio fidelity with negligible decompression overhead.

4.8 out of 5
★★★★★
Developer Community Benchmark Rating
Verified across 128 community production token & cost audits
Rate this benchmark: