{ "edition": "2026.3", "compiled": "2026-08-08", "scope_note": "Every speech-to-text system that matters in 2026 — hosted APIs, hyperscaler services, open weights, on-device engines, streaming recognisers, serving runtimes and speaker diarization — on the axes that actually decide a project.", "method_note": "The market matrix is a sourced survey, separate from the explicitly labelled OpenGauntlet local Lab above it. Survey figures come from primary sources — vendor pricing and documentation, model cards, repositories, papers and the Hugging Face Open ASR Leaderboard — and every extraction pass was followed by an audit instructed to refute rather than confirm, which applied 229 strikes before publication. Unlike the Voices section, WER IS the right primary metric here: recognition's job is getting the words right. A WER is only quoted with the test set that produced it.", "systems": [ { "name": "Deepgram Nova-3", "variants": "nova-3 (monolingual) / nova-3-multilingual", "category": "cloud", "licence": "Proprietary, closed weights; self-hosted deployment offered under a separate commercial licence", "licence_class": "closed", "price_note": "Billed per audio MINUTE. Pay-As-You-Go: streaming $0.0048/min ($0.288/audio hr), pre-recorded $0.0077/min ($0.462/audio hr); multilingual $0.0058/min streaming and $0.0092/min pre-recorded. Growth tier: $0.0042 / $0.0065 / $0.0050 / $0.0078 per min. Verified from deepgram.com/pricing, 1 Aug 2026.", "price_sort": 0.288, "accuracy_note": "Vendor's own benchmark, must be read as marketing: median WER 5.26% batch and 6.84% streaming on a Deepgram-assembled corpus of 2,703 files / 81.69 hours across ten domains (air traffic control, conversational AI, drive-thru, finance, medical, meeting, phone call, podcast, video/media, voicemail). The corpus is not public and the 'next-best competitor' is never named. Independent: 5.2% AA-WER v2 on Artificial Analysis.", "wer_sort": null, "languages_note": "Deepgram publishes no single total for Nova-3. Its models/languages docs give 10 primary languages for the multilingual mode (English, Spanish, French, German, Hindi, Russian, Portuguese, Japanese, Italian, Dutch) and roughly 70+ language CODES once regional variants are counted, including 17 Arabic variants. A separate code-switching mode exists for nova-3-multilingual.", "languages_sort": null, "runs_on": "Cloud API (REST + WebSocket), plus a genuine self-hosted/on-prem deployment under commercial licence", "best_for": "High-volume English contact-centre and voice-agent transcription where throughput and a real on-prem escape hatch matter more than topping a leaderboard.", "diarization": "Built in, no separate line item on the pricing page. Enabled with the diarize_model parameter (diarize=true is deprecated but still routes to v1). Compatible with all Nova batch models plus enhanced and base; NOT supported on Deepgram's Whisper Cloud. The v2 diarizer is batch-only — streaming gets the v1 diarizer and returns a validation error if you request v2.", "watch": "Pre-recorded costs 60% MORE per minute than streaming ($0.0077 vs $0.0048), which is inverted versus every other vendor in this matrix — if you budgeted batch transcription off a normal rate card you are out badly. Artificial Analysis still carries a $4.30/1,000-min ($0.258/hr) figure that matches no rate on Deepgram's current pricing page. Diarization silently degrades on streaming: you get the v1 diarizer, not v2, and asking for v2 on a stream is a hard error.", "standout": "The only major hosted ASR that pairs a real on-prem commercial licence with a 358x speed factor", "facets": [ "actively-maintained", "code-switching", "custom-vocab", "diarization-addon", "self-hostable", "streaming" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "True streaming over WebSocket, first-class alongside REST; interim and final results", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Word-level", "punctuation": null, "custom_vocab": "Keyterm prompting — up to 100 key terms tuned at inference time, no retraining, per the Nova-3 announcement", "output_formats": null, "translation": null, "billing_unit": "Per audio minute", "free_tier": "$200 credit for new accounts, no card required", "concurrency": "Speech-to-text: 50 concurrent REST requests on both Pay-As-You-Go and Growth; 150 concurrent WebSocket connections on Pay-As-You-Go rising to 225 on Growth. Whisper Cloud is capped at 5.", "self_host": "Yes — on-prem/self-hosted under commercial licence. Self-host pricing is not published.", "data_policy": null, "benchmarks": "Artificial Analysis AA-WER v2 (fetched 1 Aug 2026): Nova-3 = 5.2% WER, speed factor 358.3x — the third-fastest entry on the board, behind Together AI's Parakeet TDT 0.6B V3 (885.0x) and Together AI's Whisper Large v3 (491.3x). On accuracy 5.2% is mid-pack, not a leading score. AA-WER v2 = AA-AgentTalk (50%) + VoxPopuli-Cleaned-AA (25%) + Earnings22-Cleaned-AA (25%), ~8 h of audio. Hardware not stated by AA.", "robustness": null, "adoption": null, "released": "February 2025", "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://deepgram.com/product/speech-to-text", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Deepgram Flux", "variants": "flux-general-en / Flux Multilingual", "category": "rt", "licence": "Proprietary, closed weights", "licence_class": "closed", "price_note": "Billed per audio MINUTE. Pay-As-You-Go streaming: Flux English $0.0065/min ($0.39/audio hr), Flux Multilingual $0.0078/min ($0.468/audio hr). Growth: $0.0057 / $0.0068 per min. A pre-recorded row also exists for Flux English at $0.0077/min. Verified from deepgram.com/pricing, 1 Aug 2026.", "price_sort": 0.39, "accuracy_note": "No WER figure published for Flux on any Deepgram page fetched. Deepgram sells Flux on turn-detection latency, not on WER, and the accuracy claims on its site belong to Nova-3. Flux does not appear on the Artificial Analysis speech-to-text board.", "wer_sort": null, "languages_note": "English only at launch (flux-general-en); Flux Multilingual reached GA April 2026 covering 10 languages with automatic detection and mid-call switching", "languages_sort": null, "runs_on": "Cloud API, WebSocket only", "best_for": "Voice agents where the expensive failure is the agent talking over the caller — Flux folds end-of-turn detection into the ASR so you delete the separate VAD/endpointing layer.", "diarization": "Not documented for Flux on any page fetched, and Deepgram's diarization docs do not list Flux as supported. Flux models conversational TURNS, not speakers — if you need to know who spoke you are back on Nova-3 or a separate diarizer. This is the single most common misread of the product.", "watch": "Flux is a conversational-turn model, not a transcription model — no published WER, no documented diarization, and it is 35% more expensive per minute than Nova-3 streaming. Buying it for file transcription is a category error. The 'first conversational speech recognition model' framing is Deepgram's own press-release wording, not a peer-reviewed or third-party claim.", "standout": "Turn detection is inside the acoustic model rather than bolted on as a VAD, so barge-in and end-of-turn share one set of evidence", "facets": [ "actively-maintained", "english-only", "no-diarization", "self-hostable", "streaming" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "True streaming, and the streaming model is the product: it emits StartOfTurn, EndOfTurn, EagerEndOfTurn and TurnResumed events rather than a plain interim/final transcript stream", "latency_note": "~260 ms end-of-turn detection and 1.5 s p95 end-of-turn, both Deepgram-published; claimed 200-600 ms saved versus a conventional ASR+VAD pipeline. Hardware and region are not stated by Deepgram.", "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": "Per audio minute", "free_tier": null, "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "October 2025; Flux Multilingual GA April 2026", "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://developers.deepgram.com/docs/flux/quickstart", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "AssemblyAI Universal-3.5 Pro", "variants": "Universal-3.5 Pro / Universal-3.5 Pro Realtime / Universal-Streaming / Universal-2", "category": "cloud", "licence": "Proprietary, closed weights", "licence_class": "closed", "price_note": "Billed per audio HOUR. Universal-3.5 Pro async $0.21/hr; Universal-2 async $0.15/hr; Universal-Streaming (English/multilingual) $0.15/hr; Universal-3.5 Pro Realtime $0.45/hr base. Add-ons priced separately per hour. Verified from assemblyai.com/pricing, 1 Aug 2026.", "price_sort": 0.15, "accuracy_note": "Universal-3.5 Pro (async) — 5.03% avg WER, Open ASR Leaderboard English short-form, 7 cleaned sets, 31-07-2026. AssemblyAI's benchmarks page gives Universal-3.5 Pro a single figure — 4.35% WER 'averaged across selected datasets' — without naming which datasets are in that average, so it is not comparable to a leaderboard number. The one named-condition figure is 7.69% average normalised WER on code-switched audio. Universal-3.5 Pro is NOT listed on Artificial Analysis; the prior flagship Universal-3 Pro scores 3.1% AA-WER v2 there, and that number must not be read as this model's.", "wer_sort": 5.03, "languages_note": "18 languages for Universal-3.5 Pro with native mid-sentence code-switching, per AssemblyAI's own model page: English, Spanish, French, German, Italian, Portuguese, Arabic, Danish, Dutch, Finnish, Hebrew, Hindi, Japanese, Mandarin, Norwegian, Swedish, Turkish, Vietnamese. Universal-Streaming ships English and a multilingual variant.", "languages_sort": null, "runs_on": "Cloud API only", "best_for": "Teams that need auditable speaker attribution before signing — AssemblyAI is the only hosted vendor in this matrix publishing diarization cpWER against named public corpora.", "diarization": "Built in but a PAID ADD-ON, and priced three different ways: +$0.02/hr async standard, +$0.065/hr async experimental, +$0.12/hr streaming. Universal-3.5 Pro solves transcription and speaker attribution jointly rather than running a separate diarizer. Speaker caps are documented as duration-dependent, with speakers_expected or a min/max range available; the exact cap figures could not be confirmed on a primary page.", "watch": "Streaming bills WebSocket session duration open-to-close, NOT audio sent — AssemblyAI's own docs say so. An agent that holds a socket open through silence pays for the silence, and a naive implementation can double or triple the modelled cost. Diarization is not in the base rate — at +$0.12/hr on streaming it is an 80% surcharge on the $0.15/hr Universal-Streaming line. Also note that the widely-quoted per-dataset figures (LibriSpeech 1.78%, CommonVoice 6.11%, Earnings21 9.25%) belong to Universal-3 PRO and were last updated March 2026, before this model existed.", "standout": "Publishes diarization cpWER on four named public corpora — the only vendor here that lets you audit speaker attribution before buying", "facets": [ "actively-maintained", "api-only", "code-switching", "diarization-addon", "streaming", "word-timestamps" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "True streaming over WebSocket at wss://streaming.assemblyai.com/v3/ws. The docs describe several partial Turn updates before each end_of_turn but do not state whether partials are word-level or segment-level.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Word-level, in milliseconds, on streaming turn events", "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": "Per audio hour — but streaming is billed on WebSocket SESSION duration, open-to-close, not on audio actually sent. AssemblyAI states this explicitly in its streaming docs.", "free_tier": "$50 in free credits at signup, no card required", "concurrency": "5 new streams per minute on free; 100 new streams per minute on pay-as-you-go", "self_host": null, "data_policy": null, "benchmarks": "Vendor suite, datasets named: diarization cpWER averaged 30.17 across DiPCo, CALLHOME, NOTSOFAR and AMI — the only cpWER figure any hosted vendor in this matrix publishes. Streaming: Universal-3.5 Pro Realtime is quoted at 335 ms median time-to-complete-turn on the same page. No percentile breakdown, hardware, region or client location is published.", "robustness": null, "adoption": null, "released": "Universal-3.5 Pro announced July 2026", "status": "active", "verification": "mixed", "verification_note": null, "rating": 5.03, "source_url": "https://www.assemblyai.com/products/speech-to-text", "rating_metric": "Average WER % over 7 cleaned English test sets (lower is better)", "rating_source": "Open ASR Leaderboard (English short-form)", "rating_url": "https://huggingface.co/spaces/hf-audio/open_asr_leaderboard", "rating_as_of": "2026-07-31", "rating_votes": null, "rating_rank": null }, { "name": "Speechmatics", "variants": "Melia 1 / Enhanced / Standard", "category": "cloud", "licence": "Proprietary, closed weights", "licence_class": "closed", "price_note": "Billed per audio HOUR against a credit balance where 1 credit = $1. Only one rate is readable from primary sources: Pro 'from $0.129/hr', and Melia batch 'from $0.129 per hour, with 10 hours per month free'. The full Standard/Enhanced batch-vs-realtime rate table renders client-side and shows 'Loading pricing data…' to any scraper — the figures circulating in comparisons ($0.80/hr Standard batch, $1.04 Enhanced batch, $1.04 Standard realtime, $1.35 Enhanced realtime) come from third-party roundups and could NOT be confirmed on a Speechmatics-owned page.", "price_sort": 0.129, "accuracy_note": "Vendor comparison, competitor-relative rather than absolute: Speechmatics claims Melia beats Deepgram, Microsoft and AssemblyAI on a majority of FLEURS languages on its own comparison pages; the specific win percentages could not be confirmed against a primary page and are omitted here. Independent and comparable: Speechmatics Enhanced = 4.0% AA-WER v2, Standard = 5.1%, Melia = 4.9% on Artificial Analysis.", "wer_sort": null, "languages_note": "56+ 'production-proven' languages, consistently stated on the pricing page, the comparison pages and the Melia announcement. Melia does native code-switching across them in a single pass and returns one continuous transcript.", "languages_sort": null, "runs_on": "Cloud API; a container deployment path exists in the docs (docs.speechmatics.com/deployments/container)", "best_for": "Multilingual and accented real-world audio where the recording conditions are bad — Speechmatics trains on noisy accented production audio and includes diarization in the base rate rather than metering it.", "diarization": "Built in and explicitly at no extra charge — Melia is documented as matching Enhanced and Standard on core features including diarization, and Speechmatics markets the absence of a surcharge against OpenAI, which has no native diarization at all. Realtime diarization is documented for Enhanced and Standard. Speaker count limits and any accuracy figure are not published.", "watch": "You cannot read Speechmatics' own price list. The rate table is JavaScript-rendered and every scraped comparison you will find (including several dated 2026) is quoting third-party numbers, not Speechmatics'. The one figure that IS on the page — $0.129/hr — is a 'from' price attached to Melia, which is batch-only and EU/US-only; do not budget realtime or AU workloads against it.", "standout": "Single-pass code-switching across 56+ languages with diarization included in the base rate rather than metered", "facets": [ "actively-maintained", "api-only", "code-switching", "diarization", "streaming" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "Realtime API alongside the batch API for Enhanced and Standard. Melia is BATCH-ONLY in production preview, and is available in EU and US regions only — not AU1.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": "Per audio hour, drawn from a single credit balance across products (1 credit = $1)", "free_tier": "$100 credit for new accounts; Melia adds 10 hours/month free", "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "Melia June 2026 (production preview, batch); Enhanced and Standard predate it", "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://www.speechmatics.com/speech-to-text", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Rev AI", "variants": "Reverb / Reverb Turbo / Reverb Foreign Language / Whisper Fusion / Human", "category": "cloud", "licence": "Hosted API proprietary. Separately, Rev published Reverb ASR and Reverb diarization WEIGHTS under the Rev Model Non-Production License — evaluation, research and personal use only; commercial use requires a paid licence from licensing@rev.com. Note the split: the CODE in github.com/revdotcom/reverb is Apache-2.0, which is why this is so often reported as fully open. The Apache file does not license the weights.", "licence_class": "closed", "price_note": "Mixed units — Reverb models bill per audio HOUR, Whisper models per MINUTE. Reverb Turbo $0.10/hr, Reverb $0.20/hr, Reverb Foreign Language $0.30/hr, Whisper Fusion and Whisper Large $0.005/min ($0.30/hr), Human transcription $1.99/min ($119.40/hr). Extras: language ID $0.003/min, forced alignment $0.003/min, translation $0.002/min standard or $0.025/min premium, summarization the same, topic extraction and sentiment $0.0008 per 10 words. Verified from rev.ai/pricing, 1 Aug 2026.", "price_sort": 0.1, "accuracy_note": "Rev's site claims the 'lowest word error rate' without publishing a number or a test set on the page fetched — treat as unsupported marketing. The only comparable figure is independent: Rev = 5.9% AA-WER v2 on Artificial Analysis, at a speed factor of 12.1x, among the slower entries on that board.", "wer_sort": null, "languages_note": "58+ languages on the asynchronous API, 9+ on the streaming API (English, Spanish, French, German, Portuguese, Italian, Japanese, Mandarin, Korean) — the widest async/streaming gap in this matrix.", "languages_sort": null, "runs_on": "Cloud API; Reverb weights are downloadable but non-commercial", "best_for": "Media and legal workflows that need a documented escalation path from cheap machine output to human transcription inside one vendor and one API.", "diarization": "Built in, and Rev is unusual in publishing the cap: 8 speakers for English, 6 for non-English. Speaker switches are detected and numbered; named speaker identification is not offered. Rev also open-sourced its diarization models under the same non-commercial licence as the ASR; its claimed improvement over pyannote 3.0 is a vendor figure and was not confirmed against a primary page.", "watch": "'Rev open-sourced Reverb' is the trap, and the reason it works is a code/weights split: the GitHub LICENSE is Apache-2.0, but the WEIGHTS ship under the Rev Model Non-Production License. You may evaluate them, you may not ship them, and the commercial licence is a sales conversation at licensing@rev.com. Also note the unit switch mid-page: Reverb is quoted per hour and Whisper per minute, so Whisper Fusion at '$0.005/min' is actually 3x the price of Reverb Turbo, not half. The 15-second minimum makes short-utterance workloads far more expensive than the headline rate implies.", "standout": "The only vendor here that sells machine ASR and human transcription through one API, with a 1,200x price spread between them", "facets": [ "actively-maintained", "api-only", "diarization", "streaming" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "Streaming API exists but covers only 9+ languages against 58+ async", "latency_note": null, "realtime_factor": null, "audio_limits": "Max audio length 17 hours; longer files must be split.", "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": "Per audio hour (Reverb) or per audio minute (Whisper); all usage rounds up to the nearest second with a 15-second minimum per job", "free_tier": "Free credits equivalent to 5 hours of Reverb ASR, usable across all products", "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "Reverb open weights October 2024; Reverb Turbo and Whisper Fusion are current hosted tiers as of the 1 Aug 2026 pricing fetch", "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://www.rev.ai/", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Gladia", "variants": "Solaria-1 / Solaria-3", "category": "cloud", "licence": "Proprietary, closed weights", "licence_class": "closed", "price_note": "Billed per audio HOUR. Starter: async $0.61/hr, realtime $0.75/hr. Growth: 'as low as' $0.20/hr async and $0.25/hr realtime — a 67% cut that requires a commitment, not a self-serve tier. Enterprise custom. Automatic language detection/switching and speaker diarization are listed as core capabilities included in the rate; translation and summarization are NOT stated as included on the pricing page. Verified from gladia.io/pricing, 1 Aug 2026.", "price_sort": 0.2, "accuracy_note": "Solaria-3, vendor-published with test sets named: Earnings22-Cleaned-AA 6.4% WER ('the only model under 7%'), VoxPopuli-Cleaned-AA 2.9%, Multilingual LibriSpeech 8.0%, Switchboard 33.9%, an internal English production set 9.6%, and noisy audio 1.4%. Gladia labels the VoxPopuli and MLS results as REGRESSIONS against Solaria-1, which its own framing does not foreground. Common Voice 24 is published only as a relative improvement over Solaria-1 (16% English, 19% French, 13% German, 12% Italian, roughly flat Spanish), not as an absolute WER. Independent: Solaria-3 = 3.2% AA-WER v2 on Artificial Analysis at speed factor 61.8x; Solaria-1 = 4.1%.", "wer_sort": null, "languages_note": "Two different answers depending on the model. Solaria-1: 100+ languages including 42 Gladia says no other API supports (Tagalog, Bengali, Punjabi, Tamil, Urdu, Persian, Marathi, Haitian Creole, Maori, Javanese). Solaria-3 is optimised for five European languages — English, French, German, Spanish, Italian; Gladia does not publish a total language count for Solaria-3.", "languages_sort": null, "runs_on": "Cloud API; custom hosting at Enterprise", "best_for": "Long-tail language coverage on Solaria-1, or European business and call-centre audio on Solaria-3, with diarization inside the base rate rather than metered as an add-on.", "diarization": "Built in and included in the hourly rate on every plan, with an optional speaker-count hint on the request. No speaker cap or DER/cpWER figure is published.", "watch": "The two headline claims belong to two different models and do not compose. '100+ languages' is Solaria-1; '#1 on Earnings22' is Solaria-3, which is optimised for five European languages. Buying Gladia for multilingual work means buying Solaria-1's accuracy, not Solaria-3's — and Gladia's own numbers show Solaria-3 REGRESSING against Solaria-1 on VoxPopuli and Multilingual LibriSpeech. Separately: opting out of model training is a paid-tier feature — on the self-serve Starter plan your audio is in scope by default, and the €50 free credit runs on the same terms.", "standout": "42 languages Gladia claims no competitor covers, with diarization inside the base rate rather than as an add-on", "facets": [ "actively-maintained", "api-only", "custom-vocab", "diarization", "streaming", "translation" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "Realtime API exists. Solaria-3's realtime availability is unclear: Gladia's launch material documents async usage and the pricing page does not distinguish, so verify before designing a realtime product around Solaria-3 specifically.", "latency_note": "Solaria-1: 103 ms on interrupt and ~698 ms on final, vendor-stated. Hardware and region unstated; not independently confirmed.", "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": "Yes — custom_vocabulary accepts a boolean or an explicit word list", "output_formats": null, "translation": "Yes, beta, 100+ languages via Solaria-1. Whether it is included in the base rate is not stated on the pricing page.", "billing_unit": "Per audio hour", "free_tier": "€50 one-time credit, quoted by Gladia as 80+ hours of pre-recorded or 60+ hours of realtime", "concurrency": "Starter: 30 concurrent realtime and 25 concurrent async requests. Growth: flexible. Enterprise: unlimited.", "self_host": null, "data_policy": "'Automatic model training opt-out' is listed as a GROWTH-plan feature and zero data retention as an ENTERPRISE feature — which means on Starter neither applies by default", "benchmarks": null, "robustness": null, "adoption": null, "released": "Solaria-3 June 2026", "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://www.gladia.io/", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "ElevenLabs Scribe v2", "variants": "Scribe v2", "category": "cloud", "licence": "Proprietary, closed weights", "licence_class": "closed", "price_note": "Billed per audio HOUR, and the rate is flat across every plan tier: $0.22/hr. Add-ons: entity detection +$0.070/hr, keyterm prompting +$0.050/hr. What changes by tier is the included allowance — there is NO included allowance on Free/pay-as-you-go; allowances start at 4.5 hours on Starter ($6/mo) and run to 1,359 hours on Business ($990/mo). Verified from elevenlabs.io/pricing/api, 1 Aug 2026.", "price_sort": 0.22, "accuracy_note": "Scribe v2 (batch) — 4.65% avg WER, Open ASR Leaderboard English short-form, 7 cleaned sets, 31-07-2026. ElevenLabs claims 'the lowest word error rate recorded on industry-standard benchmarks' with a FLEURS chart but publishes no number on the announcement page — unsupported as written. Its docs give WER only as bucketed bands per language (Excellent ≤5%, High >5-≤10%, Good >10-≤20%, Moderate >25-≤50%) with no test set named. Independent and comparable: Scribe v2 = 2.2% AA-WER v2 on Artificial Analysis — the single best score on that board, at speed factor 44.6x.", "wer_sort": 4.65, "languages_note": "90+ languages per the current docs. Launch and third-party write-ups have said 99 and 102; only the 90+ figure is on a live docs page.", "languages_sort": null, "runs_on": "Cloud API only", "best_for": "Batch transcription where accuracy is the whole decision — this is the top-scoring model on the only independent leaderboard covering this category, at a mid-market price.", "diarization": "Built in for batch, with a documented cap of up to 32 speakers, plus dynamic audio-event tagging and entity detection. ElevenLabs' own marketing has claimed 48-speaker diarization and 98% speaker-label accuracy; the docs say 32. Take 32.", "watch": "Speaker-count claims conflict between ElevenLabs' blog (48 speakers, 98% label accuracy) and its docs (32 speakers, no accuracy figure) — build against 32. Scribe v2 does not stream at all; if you assumed one Scribe SKU covers both batch and live you have budgeted the wrong product and the wrong price. There is no free Scribe allowance: hours start at the $6/mo Starter tier, and the widely-repeated '4.5 free hours' is Starter's allowance, not the Free plan's. Keyterm prompting and entity detection are separately metered, so the effective rate on a feature-complete request is $0.34/hr, not $0.22/hr.", "standout": "Top-ranked WER on the Artificial Analysis board — first outright, not merely first among purchasable models — with 32-speaker diarization in the base rate", "facets": [ "actively-maintained", "api-only", "custom-vocab", "diarization" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "None — Scribe v2 is batch only. Streaming is a separate product and a separate SKU (Scribe v2 Realtime).", "latency_note": null, "realtime_factor": null, "audio_limits": "Up to 3 GB and up to 10 hours per file; multichannel must total under 10 hours across channels", "timestamps": "Precise word-level timestamps", "punctuation": null, "custom_vocab": "Keyterm prompting, billed as an add-on at +$0.050/hr", "output_formats": null, "translation": null, "billing_unit": "Per audio hour", "free_tier": null, "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": "Artificial Analysis AA-WER v2 (fetched 1 Aug 2026): 2.2% WER, speed factor 44.6x, $3.67 per 1,000 minutes. No entry on the board scores below 2.2% — it is first outright, ahead of Azure MAI-Transcribe-1.5 and Smallest AI Pulse Pro at 2.4%. AA-WER v2 = AA-AgentTalk (50%) + VoxPopuli-Cleaned-AA (25%) + Earnings22-Cleaned-AA (25%).", "robustness": null, "adoption": null, "released": "January 2026", "status": "active", "verification": "mixed", "verification_note": null, "rating": 4.65, "source_url": "https://elevenlabs.io/speech-to-text", "rating_metric": "Average WER % over 7 cleaned English test sets (lower is better)", "rating_source": "Open ASR Leaderboard (English short-form)", "rating_url": "https://huggingface.co/spaces/hf-audio/open_asr_leaderboard", "rating_as_of": "2026-07-31", "rating_votes": null, "rating_rank": null }, { "name": "ElevenLabs Scribe v2 Realtime", "variants": "Scribe v2 Realtime", "category": "rt", "licence": "Proprietary, closed weights", "licence_class": "closed", "price_note": "Billed per audio HOUR at $0.39/hr, flat across all plan tiers. There is NO included allowance on Free/pay-as-you-go; allowances start at 2.5 hours on Starter ($6/mo) and run to 767 hours on Business ($990/mo). Verified from elevenlabs.io/pricing/api, 1 Aug 2026.", "price_sort": 0.39, "accuracy_note": "Vendor's own test set, not a public benchmark: '93.5% accuracy across 30 commonly used European and Asian languages', plus a claim of significantly outperforming Gemini Flash 2.5, GPT-4o Mini Transcribe and Deepgram Nova-3 on FLEURS without publishing the number. No independent AA-WER entry exists for the realtime SKU.", "wer_sort": null, "languages_note": "90 languages, with English, French, German, Italian, Spanish and Portuguese called out as the tuned set", "languages_sort": null, "runs_on": "Cloud API only", "best_for": "Multilingual live captioning and voice agents that need sub-150 ms partials across a very wide language set rather than the usual English-plus-five.", "diarization": "NOT DOCUMENTED for this SKU. The 32-speaker figure in ElevenLabs' capability table is attached to Scribe v2 BATCH; the docs state no speaker limit for Scribe v2 Realtime and the launch announcement does not mention diarization or speaker labels at all. Do not design a meeting-notes product around realtime speaker labels without testing your own account first.", "watch": "Every accuracy claim for this SKU is on an ElevenLabs-defined test set — '93.5% accuracy across 30 languages' is not a WER and is not comparable to anything else in this matrix. Realtime diarization is the trap: the 32-speaker number belongs to the batch SKU, the realtime docs specify no limit, and the launch post never mentions speakers. It also costs 77% more per hour than Scribe v2 batch, so transcribing recorded files through the realtime endpoint because it was easier to wire up is a pure loss.", "standout": "Sub-150 ms partials across 90 languages, where most realtime competitors ship English plus a handful", "facets": [ "actively-maintained", "no-diarization", "self-hostable", "streaming" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "True realtime transcription — this is the streaming SKU of the Scribe family", "latency_note": "Under 150 ms, per ElevenLabs' own announcement and docs, plus a 'negative latency' next-word and punctuation prediction feature. Hardware, region and whether network is included are not stated.", "realtime_factor": null, "audio_limits": null, "timestamps": "Precise word-level timestamps", "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": "Per audio hour", "free_tier": null, "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "November 2025", "status": "active", "verification": "vendor-claim", "verification_note": null, "rating": null, "source_url": "https://elevenlabs.io/realtime-speech-to-text", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "OpenAI gpt-transcribe", "variants": "gpt-transcribe / gpt-live-transcribe / gpt-4o-transcribe / gpt-4o-mini-transcribe / gpt-4o-transcribe-diarize", "category": "cloud", "licence": "Proprietary, closed weights", "licence_class": "closed", "price_note": "Billed per audio MINUTE. gpt-transcribe $0.0045/min ($0.27/audio hr); gpt-live-transcribe $0.017/min ($1.02/audio hr); gpt-4o-transcribe $0.006/min ($0.36/hr); gpt-4o-mini-transcribe $0.003/min ($0.18/hr); gpt-4o-transcribe-diarize $0.006/min ($0.36/hr). The 4o models are also quoted per token: gpt-4o-transcribe $2.50/1M in and $10.00/1M out, mini $1.25/1M in and $5.00/1M out. Verified from developers.openai.com/api/docs/pricing, 1 Aug 2026.", "price_sort": 0.27, "accuracy_note": "OpenAI's own comparison, on a public set: gpt-transcribe cuts error rate from 40.37% to 19.27% versus whisper-1 on Common Voice across 22 languages — note that both figures are far above what any vendor quotes on English-only sets, because this is 22-language Common Voice. Independent: gpt-transcribe = 3.3% AA-WER v2 on Artificial Analysis at speed factor 33.6x; gpt-4o-transcribe = 4.0% at 36.7x; gpt-4o-mini-transcribe = 4.5% at 40.8x.", "wer_sort": null, "languages_note": "Language is passed as ISO 639-1 (en, es, fr), selected ISO 639-3 codes (eng, spa, yue, cmn) and regional zh locales. OpenAI does not publish a single language count for gpt-transcribe; the 98-language figure belongs to whisper-1.", "languages_sort": null, "runs_on": "Cloud API only", "best_for": "Teams already inside the OpenAI SDK who want cheap, accurate transcription with prompt-and-keyword steering and are not asking for timestamps, subtitles or speakers.", "diarization": "NONE on gpt-transcribe, gpt-4o-transcribe, gpt-4o-mini-transcribe or whisper-1. Speaker labels require switching to a different model, gpt-4o-transcribe-diarize, which is a separate SKU at $0.006/min and does not support the features the others do. Speechmatics markets against this explicitly and is correct to.", "watch": "The upgrade is a feature amputation. Moving from whisper-1 to gpt-transcribe loses word timestamps, segment timestamps, native SRT/VTT output, English translation AND diarization — OpenAI's own migration cookbook tells you to keep whisper-1 for each of those. Anyone building subtitles, a meeting recorder or a search index over audio will discover this after the migration, not before. OpenAI notified developers in July 2026 that legacy audio, realtime and transcription families are removed from the API on 20 January 2027, but that date is not on OpenAI's published deprecations table — plan for it, do not quote it as committed.", "standout": "Best AA-WER of any OpenAI transcription model (3.3%) at the cheapest OpenAI rate, with prompt and keyword steering at inference time", "facets": [ "actively-maintained", "api-only", "custom-vocab", "no-diarization", "streaming" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "True streaming on gpt-transcribe, gpt-live-transcribe and gpt-4o-transcribe-diarize. whisper-1 does not stream at all.", "latency_note": null, "realtime_factor": null, "audio_limits": "25 MB per file; mp3, mp4, mpeg, mpga, m4a, wav, webm. No maximum duration is documented.", "timestamps": "NOT supported on gpt-transcribe — OpenAI's own migration guide tells you to retain whisper-1 or another model if you need word or segment timestamps", "punctuation": null, "custom_vocab": "Free-form prompt plus keyword hints and language hints at inference time", "output_formats": "JSON. Native SRT/VTT is NOT available on gpt-transcribe; the migration guide says to retain whisper-1 if your integration depends on it.", "translation": "NOT supported on gpt-transcribe — the /v1/audio/translations endpoint requires whisper-1 or another supported translation model", "billing_unit": "Per audio minute (per-token pricing also published for the 4o models)", "free_tier": null, "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "gpt-transcribe and gpt-live-transcribe July 2026; gpt-4o-transcribe and gpt-4o-mini-transcribe March 2025", "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://developers.openai.com/api/docs/models/gpt-transcribe", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "OpenAI whisper-1", "variants": "whisper-1", "category": "legacy", "licence": "Hosted service proprietary. The underlying Whisper weights are MIT and downloadable, but the hosted whisper-1 endpoint is not the same artefact and OpenAI does not state which checkpoint or modifications it runs.", "licence_class": "closed", "price_note": "Billed per audio MINUTE at $0.006/min ($0.36/audio hr), unchanged since launch and now 33% more expensive than gpt-transcribe. Verified from developers.openai.com/api/docs/pricing, 1 Aug 2026.", "price_sort": 0.36, "accuracy_note": "OpenAI's own migration comparison puts whisper-1 at 40.37% error rate on Common Voice across 22 languages, against 19.27% for gpt-transcribe. On the Artificial Analysis AA-WER v2 board the various Whisper entries span 4.1% to 10.1% depending on who serves them, so the checkpoint and the serving stack matter more than the name.", "wer_sort": null, "languages_note": "98 languages, per OpenAI's docs, referencing the Whisper language list on GitHub", "languages_sort": null, "runs_on": "Cloud API only", "best_for": "The one job gpt-transcribe cannot do: producing native SRT/VTT subtitles with word or segment timestamps, or translating audio into English, through OpenAI's API.", "diarization": "None. Whisper has never done diarization in any form, hosted or self-hosted — this is the single most persistent misconception in the field. Speaker labels require a separate diarizer entirely.", "watch": "You are paying a 33% premium over gpt-transcribe for an older and less accurate model, and the only rational reason to do so is timestamps, subtitles or translation. OpenAI's July 2026 notice covered 'legacy audio, realtime, and transcription model families and snapshots' for removal on 20 January 2027; whisper-1 is not individually named on the deprecation table but sits squarely in that description. Do not confuse this endpoint with self-hosted Whisper — same name, different artefact, and the WER spread across Whisper serving stacks on the AA board is 4.1% to 10.1%.", "standout": "The only OpenAI transcription model that emits native SRT/VTT and translates to English", "facets": [ "actively-maintained", "no-diarization", "self-hostable", "translation", "word-timestamps" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "None. whisper-1 is batch file upload only.", "latency_note": null, "realtime_factor": null, "audio_limits": "25 MB per file; mp3, mp4, mpeg, mpga, m4a, wav, webm", "timestamps": "Word-level and segment-level — the reason to still be on it", "punctuation": null, "custom_vocab": null, "output_formats": "JSON, text, SRT, VTT, verbose_json — native subtitle output that the newer models do not have", "translation": "Yes, into English, via /v1/audio/translations. gpt-transcribe removed this.", "billing_unit": "Per audio minute", "free_tier": null, "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "Predates 2024; still purchasable as of the 1 Aug 2026 pricing fetch and not named in OpenAI's published deprecation list", "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://developers.openai.com/api/docs/models/whisper-1", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Groq (hosted Whisper)", "variants": "whisper-large-v3 / whisper-large-v3-turbo", "category": "cloud", "licence": "Hosted service proprietary; the served weights are OpenAI Whisper large-v3 under MIT, which you can download and self-host elsewhere", "licence_class": "closed", "price_note": "Billed per HOUR of audio transcribed. whisper-large-v3 $0.111/hr; whisper-large-v3-turbo $0.04/hr — the cheapest published rate in this matrix. Audio is billed at a minimum of 10 seconds per request. Verified from groq.com/pricing and console.groq.com, 1 Aug 2026.", "price_sort": 0.04, "accuracy_note": "Groq publishes WER without naming a test set, which makes the numbers unusable for comparison: 10.3% for whisper-large-v3 and 12% for turbo on the console speech-to-text docs. Independent and comparable: Groq's whisper-large-v3-turbo = 4.6% AA-WER v2 on Artificial Analysis at speed factor 106.6x.", "wer_sort": null, "languages_note": "99+ languages, inherited from the Whisper checkpoint; both served models are multilingual, but only whisper-large-v3 supports the translation endpoint", "languages_sort": null, "runs_on": "Cloud API on Groq LPU inference hardware", "best_for": "Bulk offline transcription where cost per hour is the only axis that matters and you can live without speakers, streaming or an auditable accuracy claim.", "diarization": "None, and none is possible — Whisper does not diarize and Groq adds nothing on top. If you need speakers you are bolting on pyannote or NeMo yourself.", "watch": "The 10-second minimum per request is the hidden cost: a workload of 2-second utterances bills at 5x the headline rate, which turns the cheapest line in this matrix into a mid-priced one. There is no streaming endpoint at all, and no diarization is achievable. Groq's own figures contradict each other across its own pages — the WER (10.3%/12%) names no test set, and the speed factor is quoted as 189x/216x in the docs but 217x/228x on the pricing page, against 106.6x measured independently. Use the AA figure or measure it yourself.", "standout": "$0.04 per audio hour — roughly a tenth of what the flagship vendors charge, for a checkpoint you can walk away with", "facets": [ "actively-maintained", "api-only", "no-diarization", "translation", "word-timestamps" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "None documented — Groq's speech-to-text is file upload only. This rules it out for voice agents despite the latency reputation of the platform.", "latency_note": null, "realtime_factor": null, "audio_limits": "25 MB per file on the free tier, 100 MB on the dev tier; formats flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, webm", "timestamps": "Segment or word granularity via verbose_json", "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": "whisper-large-v3 only, into English. Turbo does not translate.", "billing_unit": "Per hour of audio, with a 10-second minimum billed per request", "free_tier": null, "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": "Groq's two own pages disagree: the console docs quote a real-time speed factor of 189x for whisper-large-v3 and 216x for turbo, while groq.com/pricing quotes 217x and 228x for the same two models. Artificial Analysis independently measures 106.6x for turbo — roughly half Groq's own claim. None of the sources state client location or concurrency.", "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://console.groq.com/docs/speech-to-text", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Fireworks AI", "variants": "whisper-v3-large / whisper-v3-large-turbo / fireworks-asr-v2 / fireworks-asr-large", "category": "cloud", "licence": "Hosted service proprietary; the Whisper checkpoints served are MIT. The licensing position of the Fireworks-branded fireworks-asr-v2 / fireworks-asr-large weights is not stated anywhere fetched.", "licence_class": "closed", "price_note": "Billed per audio MINUTE. Only one rate is confirmable on a Fireworks page: whisper-v3-large-turbo at $0.0009/min ($0.054/audio hr). The commonly cited whisper-v3-large $0.0015/min and streaming $0.0032-$0.0035/min figures could NOT be confirmed on any Fireworks-owned page. Dedicated endpoints are custom-priced. The main fireworks.ai/pricing page carries no audio section at all.", "price_sort": 0.054, "accuracy_note": "Fireworks publishes one WER with a named test set: 2.00% for greedy inference with whisper-v3-large on LibriSpeech Clean, on its audio launch blog — a clean read-speech set that predicts little about production audio. Nothing is published for the Fireworks-branded ASR models, and Fireworks does not appear on the Artificial Analysis speech-to-text board.", "wer_sort": null, "languages_note": "Not restated by Fireworks; the Whisper models carry Whisper's language set", "languages_sort": null, "runs_on": "Cloud API, serverless or dedicated endpoints sized in Fireworks Audio Units (FAU)", "best_for": "Archive-scale batch transcription — 900x realtime on a dedicated endpoint is the fastest published figure in this matrix, and the per-minute rate is near the floor.", "diarization": "Offered — Fireworks shipped diarization in its 'Summer Audio Updates' release alongside the Batch API. It is not described on any pricing surface; secondary reporting puts the cost at roughly a 40% compute surcharge, which could not be confirmed on a Fireworks page. Treat the surcharge as unpriced until you get it in writing.", "watch": "Fireworks does not put audio on its pricing page. Only the turbo rate is confirmable on a Fireworks-owned page; every other figure in circulation comes from blog posts and third parties and can move without a changelog entry you would notice. The one WER Fireworks publishes is LibriSpeech Clean, which is read audiobook speech and near-useless as a production predictor, and Fireworks is absent from the only independent leaderboard covering this category. The diarization surcharge is real but unpriced in public.", "standout": "~900x realtime on a dedicated endpoint — the highest published throughput figure of any hosted ASR here", "facets": [ "actively-maintained", "api-only", "diarization", "streaming" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "True streaming over WebSocket via fireworks-asr-v2 and fireworks-asr-large, sold as a separate model family from the Whisper batch models; ~200 ms latency claimed", "latency_note": null, "realtime_factor": "'Transcribe 1 hour of audio in less than 4 seconds' — approximately 900x realtime, on a dedicated endpoint with 1 FAU. Serverless throughput is not quoted.", "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": "Per audio minute; streaming billed per second", "free_tier": null, "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "Audio transcription launched December 2024; diarization and the Batch API arrived in a later 'Summer Audio Updates' release whose date could not be confirmed", "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": null, "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Together AI", "variants": "Whisper Large v3 / Parakeet TDT 0.6B v3 / Nemotron 3 & 3.5 ASR / Deepgram Nova-3 (en, multi) / Deepgram Flux", "category": "cloud", "licence": "Mixed, and this is the point of the row: Whisper large-v3 is MIT, NVIDIA Parakeet TDT 0.6B v3 is CC-BY-4.0 (verified on the NVIDIA model card), and Deepgram Nova-3 and Flux are Deepgram's proprietary closed weights resold through Together's endpoint.", "licence_class": "closed", "price_note": "Billed per audio MINUTE. Whisper Large v3 $0.0015/min ($0.09/audio hr); Parakeet TDT 0.6B v3 $0.0015/min ($0.09/hr); Whisper Large v3 Streaming $0.0035/min ($0.21/hr); Nemotron 3.5 ASR $0.0045/min ($0.27/hr). Verified from together.ai/pricing, 1 Aug 2026. The resold Deepgram models appear in the docs as deepgram/nova-3-en, deepgram/nova-3-multi and deepgram/flux but carry NO price on the pricing page and are served through dedicated endpoints only, not serverless.", "price_sort": 0.09, "accuracy_note": "Together publishes no WER of its own. Independent, from Artificial Analysis: Together's Parakeet TDT 0.6B V3 = 4.5% AA-WER v2 at speed factor 885.0x — the fastest entry on the entire board — and Together's Whisper Large v3 = 4.5% at 491.3x, the second fastest. Note the serving stack cuts both ways: fal.ai serves the same Whisper large-v3 checkpoint at 4.1%, better than Together's 4.5%, while Replicate serves it at 10.1%.", "wer_sort": null, "languages_note": "Language passed as ISO 639-1; the docs name English, Spanish, French, German, Japanese and Chinese explicitly, with auto-detection available. Full per-model language lists are not published.", "languages_sort": null, "runs_on": "Cloud API, serverless or dedicated endpoints", "best_for": "Shopping several ASR families behind one API and one bill — the only place you can A/B Whisper, Parakeet, Nemotron and Deepgram Nova-3 without four contracts.", "diarization": "Not documented in Together's speech-to-text docs for any of the models it serves. The resold Deepgram Nova-3 has diarization in Deepgram's own API; whether Together exposes the parameter is unstated. Assume none until you have tested it.", "watch": "You are buying Deepgram through a middleman on three of these model IDs, and they are dedicated-endpoint only with no published price — so two data policies, two support paths, a sales conversation to get a rate, and no guarantee the Deepgram feature surface (diarization, keyterm prompting, the Flux turn events) is exposed through Together's endpoint. Diarization is undocumented across the whole Together ASR range. Also note the 4-hour hard duration cap, the lowest of any batch API in this matrix except OpenAI's 25 MB limit.", "standout": "Holds the two fastest entries on the Artificial Analysis board (885x and 491x) while also reselling proprietary Deepgram Nova-3 and Flux behind the same API key", "facets": [ "actively-maintained", "api-only", "no-diarization", "streaming" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "Yes — streaming variants are listed as separate models (Whisper Large v3 Streaming, nemotron-3-asr-streaming-0.6b, nemotron-3.5-asr-streaming-0.6b, deepgram/flux)", "latency_note": null, "realtime_factor": null, "audio_limits": "Maximum duration 4 hours, rejected with an audio_too_long error beyond that; binary uploads capped at 500 MB, URL-fetched audio at 1 GB. Formats wav, mp3, m4a, webm, flac, ogg, opus, aac.", "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": "Per audio minute", "free_tier": null, "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": "Artificial Analysis AA-WER v2 (fetched 1 Aug 2026): Together AI's Parakeet TDT 0.6B V3 = 4.5% at 885.0x, $1.50 per 1,000 minutes — the board's fastest entry; Together AI's Whisper Large v3 = 4.5% at 491.3x, $1.50 per 1,000 minutes. AA-WER v2 = AA-AgentTalk (50%) + VoxPopuli-Cleaned-AA (25%) + Earnings22-Cleaned-AA (25%), ~8 h audio. Hardware not stated.", "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://docs.together.ai/docs/inference/transcription/overview", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Soniox", "variants": "stt-async-v5 / stt-rt-v5", "category": "cloud", "licence": "Proprietary, closed weights", "licence_class": "closed", "price_note": "Billed per audio HOUR: $0.10/hr async and $0.12/hr realtime. Speaker diarization, language identification, smart formatting and translation are bundled into that rate at no extra cost — the most inclusive base rate in this matrix. Verified from soniox.com/pricing, 1 Aug 2026.", "price_sort": 0.1, "accuracy_note": "Soniox's headline — 1.25% SEMANTIC WER with 84.1% perfect transcripts on the Pipecat STT benchmark — was measured on stt-rt-v4, not the v5 models this row is named for. The benchmark is 1,000 real-world samples from pipecat-ai/smart-turn-data-v3.1-train, ground truth Gemini-generated and human-reviewed, 17 providers, open-source and reproducible. Semantic WER ignores punctuation, capitalisation, contractions, fillers and number formatting, so it is NOT comparable to a classical WER. On the classical measure, independent: Soniox v5 Async = 3.8% AA-WER v2 on Artificial Analysis at speed factor 20.7x; Soniox V4 = 3.9%.", "wer_sort": null, "languages_note": "60+ languages, with Danish, Hungarian, Turkish, Arabic, Korean and Japanese called out as usually underserved; realtime translation across 3,600+ language pairs (60+ languages combinatorially) in the same API call", "languages_sort": null, "runs_on": "Cloud API only", "best_for": "Live multilingual conversation where you need transcription, speaker separation and translation from one streaming call — and the cheapest realtime rate here by a wide margin.", "diarization": "Built in and included in the hourly rate, for BOTH async and realtime. v5 rebuilt speaker separation specifically for live conversations with overlapping speech. No speaker cap or DER figure published.", "watch": "1.25% is a SEMANTIC WER measured on stt-rt-v4, not a word error rate and not this row's model — putting it next to a competitor's 5% WER is meaningless twice over. On the classical measure Soniox v5 sits at 3.8%. The v4 aliases silently resolve to v5, so a model ID you pinned months ago is now serving different weights with no version error. Soniox also publishes no free tier on its pricing page, unusual for this segment.", "standout": "Diarization, language ID, smart formatting and 3,600-pair realtime translation all inside a $0.10/hr base rate", "facets": [ "actively-maintained", "api-only", "diarization", "streaming", "translation" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "True realtime via stt-rt-v5, with semantic endpointing rather than plain silence-based VAD", "latency_note": "Sub-200 ms claimed on the marketing site. Measured on the Pipecat benchmark, stt-rt-v4 reached 249 ms median time-to-final-segment, 281 ms P95, 310 ms P99 — the vendor's own claim is optimistic against its own preferred benchmark.", "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": "Yes, realtime speech translation across 3,600+ language pairs, included in the base rate", "billing_unit": "Per audio hour", "free_tier": null, "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "v5 async June 2026; v5 realtime days later the same month. stt-rt-v4 and stt-async-v4 are aliases that now resolve to v5.", "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://soniox.com/speech-to-text", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Voicegain", "variants": "Voicegain Omega / Voicegain Kappa / Voicegain-Whisper-Large-V3", "category": "cloud", "licence": "Proprietary, closed weights; the Whisper-based SKU serves MIT-licensed Whisper large-v3", "licence_class": "closed", "price_note": "Billed per MINUTE, quoted per hour alongside. Cloud pay-as-you-go: batch Basic $0.0030/min ($0.180/hr), batch Enhanced $0.0036/min ($0.216/hr), multi-channel $0.0060/min ($0.36/hr), realtime transcription $0.0054/min ($0.324/hr), Bots/IVR via MRCP or Bot API $0.0090/min ($0.54/hr). Edge/on-prem is licensed per port or per hour: offline STT (Enhanced and multi-channel) $60/port/month or $0.15/audio hr; realtime transcription $72/port/month or $0.20/audio hr; Bots/IVR $66/port/month or $0.18/audio hr. Verified 1 Aug 2026.", "price_sort": 0.15, "accuracy_note": "No WER figure with a named test set could be sourced from any Voicegain page. Voicegain claims Kappa's accuracy is 'less than 1% lower than Voicegain Omega' — a relative claim against its own model with no absolute anchor. Voicegain does not appear on the Artificial Analysis speech-to-text board.", "wer_sort": null, "languages_note": "Its own pages disagree badly. The speech-to-text product page names five production languages — English, Spanish, German, Portuguese, Korean — with Dutch, French and Hindi 'coming soon'. The support centre claims 99 languages platform-wide and 50+ for batch, with English and Spanish only for streaming. The Whisper SKU is quoted at 57 languages. Treat the five named on the product page as what is actually supported.", "languages_sort": null, "runs_on": "Cloud API, or deployed into your own AWS/Azure/GCP VPC or datacentre with the same APIs and UIs and your own encryption keys; edge licensing is port-based", "best_for": "Contact centre and IVR estates that must run inside their own network — MRCP support and per-port licensing make it a drop-in for legacy telephony stacks that no cloud-only vendor addresses.", "diarization": "Built in, including mono-channel diarization to separate speakers on a single track, with dedicated enhanced diarization models Voicegain positions for contact-centre and meeting audio. No speaker cap or DER figure published.", "watch": "The language count is the trap: five languages on the product page against 99 in the support centre. Streaming is English and Spanish only per the support article, so a multilingual voice agent is off the table regardless of which number you believed. Voicegain's own pricing page now 301-redirects to a webflow.io staging host, and no WER against any named test set exists on any page — for a vendor selling into regulated contact centres, that absence is itself the finding.", "standout": "Publishes actual on-prem list prices — $60-$72 per port per month, or $0.15-$0.20 per audio hour — where every other self-host-capable vendor here says 'contact sales'", "facets": [ "actively-maintained", "diarization-addon", "self-hostable", "streaming" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "Realtime STT priced as a separate SKU, plus MRCP and a Bot API for IVR. Streaming language coverage is far narrower than batch.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": "Per audio minute (cloud) or per port per month / per audio hour (edge)", "free_tier": "$50 in credits on signup with no card required", "concurrency": "Free/developer accounts are limited to 4 concurrent requests or 4 hours of audio processing per hour", "self_host": "Yes, first-class — VPC or datacentre deployment with port-based or usage-based licensing and published edge rates, which almost no competitor here publishes at all", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": null, "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Verbit", "variants": "Verbit / VITAC / Take Note", "category": "cloud", "licence": "Proprietary, closed weights", "licence_class": "closed", "price_note": "Subscription, not a rate. 'Basic Transcription' starts at $24/month across all industry tiers, including 100 hours/month split 50 live + 50 post-production — which works out to $0.24 per audio hour at the cap, a DERIVED figure, not one Verbit publishes. Legal, Media, Corporate and Education plans are all 'Custom Plan — book a demo'. No per-minute or per-hour API rate appears anywhere on Verbit's own pages. Third-party reviews quote ~$33K/year enterprise contracts; that does not match any primary page.", "price_sort": 0.24, "accuracy_note": "Verbit's marketing claims 'up to 99%' accuracy, attributed to a hybrid of its Captivate ASR plus HUMAN editing — not to the ASR alone. No WER, no test set, and no ASR-only figure is published on any Verbit page, and the figure does not appear on the pricing page at all. Note that on the Basic tier human review is an optional upgrade rather than a standard inclusion, so the 99% claim does not describe what the entry plan delivers. Verbit does not appear on the Artificial Analysis speech-to-text board.", "wer_sort": null, "languages_note": "Not published with a count on the pricing page; transcription, captioning and translation are bundled in the Basic tier", "languages_sort": null, "runs_on": "Cloud SaaS platform", "best_for": "ADA and FCC compliance work — legal, court reporting, education and broadcast captioning where a signed accuracy SLA and an audit trail are the deliverable and the transcript is secondary.", "diarization": "Speaker labelling is part of the human-verified deliverable rather than an API parameter; Verbit publishes no diarization specification, speaker cap or accuracy figure. This is a transcription SERVICE, not a diarization capability you can call.", "watch": "This is not an ASR API and does not belong in a per-minute comparison. There is no published rate card for API usage, and the 'up to 99% accuracy' comes from human editors on top of the model — with human review sold as an optional upgrade on the entry tier, so the headline number does not describe the $24 plan. If you are benchmarking Verbit against Deepgram on cost per hour you have misunderstood what you are buying. The self-serve tier splits its 100 hours into 50 live and 50 post-production, so you cannot spend the whole allowance on one workload.", "standout": "Human-in-the-loop verification sold against ADA/FCC compliance obligations rather than against WER", "facets": [ "actively-maintained", "api-only", "diarization" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": "Monthly subscription with an included hours allowance (live and post-production counted separately)", "free_tier": null, "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "Raised a $250M Series E at a $2B valuation in November 2021 (led by Third Point Ventures) and has grown by acquisition (VITAC, Take Note)", "released": null, "status": "active", "verification": "unverified", "verification_note": null, "rating": null, "source_url": null, "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Otter.ai", "variants": "Otter / OtterPilot / Otter Meeting Agent", "category": "cloud", "licence": "Proprietary, closed weights", "licence_class": "closed", "price_note": "Seat subscription, not a transcription rate. Basic free with 300 minutes/month; Pro $8.33/user/month annual ($16.99 monthly) with 1,200 minutes/user/month; Business $19.99/user/month annual ($30 monthly) with unlimited meeting transcription but a 6,000 min/month file-import cap; Enterprise custom. At the Pro cap that is approximately $0.42 per audio hour — DERIVED by dividing $8.33 by 20 hours, not a figure Otter publishes. No per-minute API rate exists.", "price_sort": 0.42, "accuracy_note": "No WER figure and no test set on any Otter page fetched. Otter does not appear on the Artificial Analysis speech-to-text board. Nothing in this row is comparable to a vendor that publishes a benchmark.", "wer_sort": null, "languages_note": "Not published with a count on the pricing page", "languages_sort": null, "runs_on": "Cloud SaaS, plus meeting bots that join Zoom, Google Meet and Microsoft Teams", "best_for": "Internal meeting capture for a team that wants notes, summaries and action items in a UI — not a component you build a product on top of.", "diarization": "Speaker identification BY NAME, available on Pro, Business and Enterprise, with shared speaker profiles across a workspace. This is genuinely better than the anonymous 'Speaker 1 / Speaker 2' every ASR API gives you — but it is a product feature reachable only through Otter's own UI and its enterprise API, not something you can call per request.", "watch": "Otter has no transcription API in the sense the rest of this matrix uses the word. The Otter Public API is ENTERPRISE-ONLY and is a RETRIEVAL api — it reads channels, conversations, transcripts, audio, action items, insights, outlines and workspace details out of your existing Otter workspace, rate-limited to 10 requests/second. You cannot POST an arbitrary audio file and get a transcript back at a per-minute price. Every comparison table that lists Otter alongside Deepgram and AssemblyAI is comparing a seat-based meeting product to an infrastructure API. Note also that 'unlimited' on Business applies to meeting transcription only — file import is capped at 6,000 minutes a month.", "standout": "Named speaker identification with persistent workspace-wide speaker profiles, which no per-minute ASR API offers", "facets": [ "actively-maintained", "api-only", "diarization" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": "Per seat per month, with a monthly transcription-minute cap per seat", "free_tier": "Basic: free, 300 transcription minutes per month", "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": null, "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Mistral Voxtral Transcribe 2", "variants": "Voxtral Mini Transcribe V2 (batch) / Voxtral Realtime", "category": "cloud", "licence": "SPLIT, and the split is the trap: Voxtral Realtime is released as open weights under Apache-2.0 on Hugging Face, while the hosted batch model Voxtral Mini Transcribe V2 is proprietary and API-access-only — Mistral publishes no weights for it. The hosted API itself is a proprietary service either way.", "licence_class": "warn", "price_note": "Billed per audio MINUTE. Voxtral Mini Transcribe V2 (batch) $0.003/min ($0.18/audio hr); Voxtral Realtime $0.006/min ($0.36/audio hr). Verified from mistral.ai/news/voxtral-transcribe-2, 1 Aug 2026.", "price_sort": 0.18, "accuracy_note": "Vendor-published with the test set named: Voxtral Mini V2 approximately 4% WER on FLEURS. Voxtral Realtime matches Mini V2 at a 2.4 s delay and stays within 1-2 percentage points of it at a 480 ms delay — the accuracy-versus-latency trade is published as a curve, which is rare. Independent: Voxtral Mini Transcribe 2 = 3.6% AA-WER v2 on Artificial Analysis at speed factor 76.8x; Voxtral Small = 2.8%.", "wer_sort": null, "languages_note": "13 languages: English, Chinese, Hindi, Spanish, Arabic, French, Portuguese, Russian, German, Japanese, Korean, Italian, Dutch. The narrowest coverage of any general-purpose vendor in this matrix.", "languages_sort": null, "runs_on": "Cloud API; the Realtime model can also be self-hosted from the Apache-2.0 weights, including on-device", "best_for": "Latency-sensitive transcription where you want the option to move the realtime model in-house later without renegotiating anything — the licence, not the WER, is the reason to pick this.", "diarization": "Built into the batch model only, emitting speaker labels with precise start and end times. Not offered or stated for the Realtime model.", "watch": "Read the licence per model, not per product line. Apache-2.0 covers Voxtral REALTIME; the batch Voxtral Mini Transcribe V2 you are actually calling for file transcription is proprietary with no weights released, so the 'open-source speech model' headlines do not license the thing most buyers will use. The same split hits diarization: speaker labels exist only on the batch model, which is the one you cannot self-host. Thirteen languages is also less than a quarter of what Speechmatics, Gladia or ElevenLabs cover — check your list before the price tempts you.", "standout": "Publishes the latency-versus-accuracy curve as a configurable parameter rather than shipping one fixed operating point", "facets": [ "actively-maintained", "diarization", "licence-catch", "self-hostable", "streaming" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "True realtime with a CONFIGURABLE delay budget — you dial it down to sub-200 ms and accept a 1-2 point WER cost, or run at 2.4 s and match batch accuracy", "latency_note": "Configurable down to sub-200 ms; the published accuracy curve is anchored at 480 ms and 2.4 s. Hardware not stated.", "realtime_factor": null, "audio_limits": "Recordings up to 3 hours in a single request", "timestamps": "Word-level", "punctuation": null, "custom_vocab": "Context biasing, up to 100 words", "output_formats": null, "translation": null, "billing_unit": "Per audio minute", "free_tier": null, "concurrency": null, "self_host": "Voxtral Realtime only, from Apache-2.0 weights on Hugging Face. The batch model ships no weights.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "February 2026", "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": null, "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Amazon Transcribe", "variants": "batch (StartTranscriptionJob) / streaming (HTTP-2 + WebSocket)", "category": "hyper", "licence": "Proprietary, AWS Service Terms", "licence_class": "closed", "price_note": "$0.006 per audio minute batch ($0.36/audio hour) and $0.010 per audio minute streaming ($0.60/audio hour), flat with no volume tiers. Read from the AWS Price List API (offer code 'transcribe', version 20260617215934, effective 2026-06-01, us-east-1: TranscribeAudio $0.0001/sec, StreamingAudio $0.0001667/sec, both 0 to Inf) and confirmed flat in every region the meters cover - 22 for batch, 17 for streaming. Note that AWS's own pricing page prose still says transcription is 'billed monthly based on the tiered pricing shown below' while quoting these same $0.006 and $0.01 figures; page and API disagree, and the API is the machine-readable one. Add-ons ARE genuinely tiered and separate: PII redaction +$0.0024/min (T1), Custom Language Model +$0.006/min (T1), Toxicity Detection +$0.0036/min (T1).", "price_sort": 0.36, "accuracy_note": "AA-WER 4.1% on the Artificial Analysis AA-WER v2 index (exact value 0.0412) - a duration-weighted average over AA-AgentTalk (50%), VoxPopuli-Cleaned-AA (25%) and Earnings22-Cleaned-AA (25%); snapshot read 1 Aug 2026. AWS publishes no WER of its own for Transcribe.", "wer_sort": null, "languages_note": "Over 100 language/locale codes in the supported-languages table (an independent count of the page HTML on 1 Aug 2026 returned 108 distinct codes; AWS does not print a total). A subset is batch-only. The feature matrix is far narrower than the headline: Custom Language Models and PII redaction each exist for only a handful of locales, so check the per-feature columns for the exact locale you need rather than trusting the headline count.", "languages_sort": null, "runs_on": "Cloud only - 22 batch regions and 20 streaming regions, both including GovCloud US-East and US-West (counted from the AWS endpoints tables, 1 Aug 2026). No container, no on-prem.", "best_for": "Bulk transcription of media already sitting in S3, and English-language streaming where speaker labels, custom vocabulary and language identification are all wanted without line-item add-ons. The cheapest first-party batch ASR of the three western hyperscalers now that batch is $0.36/audio hour.", "diarization": "Built in and included in the base rate - 'a maximum of 30 unique speakers', labelled spk_0 through spk_29, documented in BOTH batch and streaming. Output arrives as a separate speaker_labels section with per-utterance timestamps. Note the asymmetry: batch takes ShowSpeakerLabels plus MaxSpeakerLabels, but the streaming HTTP/2 and WebSocket interfaces take only show-speaker-label with no maximum-speaker parameter, so you cannot bound the speaker count on a live stream.", "watch": "The price is the story, and AWS's own two sources tell it differently. The pricing page quotes $0.006/min batch and $0.01/min streaming but frames them as tiered; the Price List API returns a single 0-to-Inf dimension for both, in every region, with no volume tiers at all. The tiering language looks like stale boilerplate - the add-ons and Call Analytics really are four-tier in the same file - but budget against the API and confirm on your first invoice before committing. Two further traps are unambiguous: the free tier expires after 12 months, and every request bills a 15-second minimum, so a stream of one-second utterances costs 15x what you think.", "standout": "diarization to 30 speakers, custom vocabulary and language ID all inside the base rate, in both batch and streaming", "facets": [ "actively-maintained", "api-only", "custom-vocab", "diarization", "punctuation", "streaming", "word-timestamps" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "TRUE streaming - HTTP/2 and WebSocket bidirectional against transcribestreaming.*.amazonaws.com, with partial (interim) results. Not chunked pseudo-streaming.", "latency_note": null, "realtime_factor": null, "audio_limits": "Batch: max 28,800 seconds (8 hours) and 2 GB per file, minimum 500 ms. Channel identification defaults to 2 channels (adjustable). Job records retained 90 days.", "timestamps": "Word-level start and end times plus per-word confidence scores in the items array.", "punctuation": "Automatic punctuation and casing; number formatting is language-gated - the supported-languages table lists 'transcribing numbers' support per locale and many locales are 'no'.", "custom_vocab": "Custom vocabularies (51,200 bytes each, 100 per region), vocabulary filters (50 KB, 100 per region), and Custom Language Models (10 total / 3 concurrent, billed as an add-on).", "output_formats": "JSON - transcripts, items and speaker_labels sections.", "translation": null, "billing_unit": "Per second of audio, with a 15-second minimum charge per request.", "free_tier": "60 audio minutes per month for the FIRST 12 MONTHS ONLY, then nothing. Not applicable to redaction or custom language models.", "concurrency": "25 concurrent streaming sessions (adjustable), 250 concurrent batch jobs, StartStreamTranscription 25 TPS, StartTranscriptionJob 25 TPS.", "self_host": "No", "data_policy": null, "benchmarks": "Artificial Analysis (1 Aug 2026 snapshot): AA-WER 4.1%, median speed factor 14.3x realtime, $6.00 per 1,000 audio minutes - the $6.00 figure independently corroborates the $0.006/min batch rate.", "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://aws.amazon.com/transcribe/", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Amazon Transcribe Medical", "variants": null, "category": "hyper", "licence": "Proprietary, AWS Service Terms", "licence_class": "closed", "price_note": "$0.075 per audio minute ($4.50/audio hour), flat and identical for batch and streaming, no volume tiers (AWS Price List API, MedicalTranscribeAudio and MedicalStreamingAudio both $0.00125/sec, 0 to Inf, effective 2026-06-01). That is 12.5x the standard Transcribe batch rate for the same audio.", "price_sort": 4.5, "accuracy_note": "Not published. AWS states no WER for Transcribe Medical, and it appears on no independent leaderboard - its medical-vocabulary advantage over standard Transcribe is asserted, never quantified.", "wer_sort": null, "languages_note": "US English (en-US) only. AWS documents a set of specialty and sub-specialty configurations, some of which are available in streaming only; the exact allocation was not re-read in this pass and should be checked against the current specialty table before you design around it.", "languages_sort": null, "runs_on": "Cloud only - 21 regions for batch, 13 of those also streaming, including both GovCloud regions (counted from the AWS endpoints table and cross-checked against Price List API meter coverage, 1 Aug 2026).", "best_for": "US-English clinical dictation and physician-patient conversation where you want a raw medical-vocabulary transcript and will do your own downstream structuring, rather than the generated clinical notes HealthScribe produces.", "diarization": "Speaker partitioning and 2-channel channel identification are supported, as on standard Transcribe. AWS does not restate a maximum speaker count for the Medical models.", "watch": "The specialty you need may be streaming-only. AWS splits the specialty list between batch-capable and streaming-only configurations, so confirm yours accepts uploaded files before you build a batch pipeline around it. And AWS explicitly disclaims patient-care use without trained human review, which is a compliance workflow you must build, not a checkbox.", "standout": null, "facets": [ "actively-maintained", "api-only", "custom-vocab", "diarization" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": "Batch: max 14,400 seconds (4 hours) and 2 GB per file, minimum 500 ms - half the 8-hour ceiling of standard Transcribe.", "timestamps": null, "punctuation": null, "custom_vocab": "Custom medical vocabularies, 51,200 bytes, up to 100 per region.", "output_formats": null, "translation": null, "billing_unit": null, "free_tier": "60 audio minutes per month for the first 12 months only.", "concurrency": "25 concurrent Medical streams (adjustable), 250 concurrent medical transcription jobs, 100 medical custom vocabularies.", "self_host": "No", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://aws.amazon.com/transcribe/medical/", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Amazon Transcribe Call Analytics", "variants": "post-call (batch) / real-time", "category": "hyper", "licence": "Proprietary, AWS Service Terms", "licence_class": "closed", "price_note": "$0.0300 per audio minute up to 250K min/month, then $0.0186 (250K-1M), $0.0138 (1M-5M) and $0.0114 (5M+) - same rate card for post-call and real-time (AWS Price List API, CallAnalyticsTranscribeAudio / CallAnalyticsStreamingAudio, breakpoints at 15M / 60M / 300M seconds, effective 2026-06-01). Generative call summarization is a separate meter at $0.0024/min (T1) falling to $0.0009/min at 5M+. So T1 is $1.80 per audio hour: three times plain Transcribe streaming, and five times plain Transcribe batch.", "price_sort": 1.8, "accuracy_note": "Not published. AWS gives no WER for Call Analytics and it is absent from independent leaderboards; the underlying recognition is Transcribe's, but figures do not transfer between the two products because the language, channel and post-processing configuration differ.", "wer_sort": null, "languages_note": "Post-call in roughly 20 locales (all English dialects plus ar-AE, zh-CN, fr-FR, fr-CA, de-DE, de-CH, hi-IN, it-IT, ja-JP, ko-KR, pt-PT, pt-BR, es-ES, es-US); real-time in a much smaller set, around 9. Call summarization is en-* only; issue detection is en-AU/en-GB/en-US only. These locale counts were not re-read from a primary page in this pass.", "languages_sort": null, "runs_on": "Cloud only - 10 regions for post-call, 8 of those also real-time (counted from the AWS endpoints table and cross-checked against Price List API meter coverage). Notably absent from GovCloud.", "best_for": "Contact-centre analytics where you want turn-level sentiment, non-talk time, interruption detection, category rules and generative summaries produced in the same pass as the transcript, rather than bolted on afterwards.", "diarization": "Built in and included in the price, but shaped for two-party calls - channel identification is capped at 2 channels and the product model is agent/customer rather than open-ended speaker discovery.", "watch": "Three times the price of plain Transcribe streaming for the same audio - five times if you would otherwise have batched it - and the real-time half of the product exists in only about 9 locales and 8 regions, none of them GovCloud. Buy it for the insights, not the transcript: if you only need words and speakers, standard Transcribe already includes diarization at $0.60/audio hour streamed and $0.36 batched.", "standout": "category rules, issue detection and generative summarisation produced in the same billed pass as the transcript", "facets": [ "actively-maintained", "api-only", "custom-vocab", "diarization", "streaming" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "True streaming for real-time analytics via HTTP/2 and WebSocket; post-call analytics can be run on the same stream afterwards at no extra charge.", "latency_note": null, "realtime_factor": null, "audio_limits": "Post-call batch: max 14,400 seconds (4 hours) and 500 MB per file - the 500 MB ceiling is four times tighter than standard Transcribe's 2 GB and is the limit people hit first.", "timestamps": null, "punctuation": null, "custom_vocab": "Custom vocabularies and vocabulary filters included; Custom Language Models are billed extra. Up to 200 categories, 20 rules per category, 100 targets per category.", "output_formats": null, "translation": null, "billing_unit": null, "free_tier": "60 minutes of call audio per month for the first 12 months only, excluding GovCloud.", "concurrency": "25 concurrent Call Analytics streams (adjustable), 100 concurrent analytics jobs.", "self_host": "No", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://aws.amazon.com/transcribe/call-analytics/", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "AWS HealthScribe", "variants": "MedicalScribe API - transcription jobs and HTTP/2 streaming", "category": "hyper", "licence": "Proprietary, AWS Service Terms; HIPAA-eligible", "licence_class": "closed", "price_note": "$0.10 per audio minute ($6.00/audio hour), flat, no tiers (AWS Price List API, HealthScribeBatch $0.001667/sec, 0 to Inf, effective 2026-06-01). Roughly 17x standard Transcribe batch and 1.3x Transcribe Medical, because you are buying the generated clinical note as well as the transcript. Note that HealthScribeBatch is the only HealthScribe meter published, in a single region - no separate streaming rate is established even though the product streams.", "price_sort": 6.0, "accuracy_note": "Not published. AWS gives no WER and no note-quality metric, and explicitly warns the output is probabilistic and must be reviewed by trained medical professionals before any patient-care use.", "wer_sort": null, "languages_note": "US English (en-US) only, across a documented list of supported clinical specialties.", "languages_sort": null, "runs_on": "Cloud only - available in US East (N. Virginia) ONLY (the Price List API carries the HealthScribeBatch meter in us-east-1 and nowhere else).", "best_for": "Healthcare ISVs building ambient clinical documentation, where the deliverable is a reviewable SOAP-style note with evidence links back into the transcript rather than a raw transcript.", "diarization": "Built in as SPEAKER ROLES, not anonymous speaker numbers - HealthScribe identifies speaker roles (clinician vs patient) and emits a turn-by-turn transcript with per-turn insights. This is the one place in the AWS speech stack where diarization output is semantic rather than spk_0/spk_1.", "watch": "One region and one language. Everything runs in us-east-1 and en-US, so EU or Canadian data-residency requirements rule it out outright. The 90-minute per-job ceiling also means long consultations must be split, and the default quota of 1 concurrent post-stream analytics job will throttle any real deployment until you raise it.", "standout": "generates a reviewable clinical note with evidence links back to the exact transcript turn", "facets": [ "actively-maintained", "api-only", "diarization", "streaming" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "Yes - StartMedicalScribeStream is a real-time HTTP/2 bidirectional stream, audio in on one channel and transcription out on the other.", "latency_note": null, "realtime_factor": null, "audio_limits": "Max 5,400 seconds (90 minutes) and 2 GB per MedicalScribe job - the tightest duration ceiling anywhere in the Transcribe family.", "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": "Two artefacts per consultation: a transcript file with turn-level insights and extracted medical terms, and a clinical documentation file with section summaries and evidence links back to the transcript.", "translation": null, "billing_unit": null, "free_tier": null, "concurrency": "10 concurrent MedicalScribe streams (adjustable), 5 concurrent medical notes jobs, and just 1 concurrent post-stream analytics job by default.", "self_host": "No", "data_policy": "Encryption at rest with S3-managed keys by default; a customer-managed KMS key can be supplied per job or stream for a second layer.", "benchmarks": null, "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://aws.amazon.com/healthscribe/", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Azure AI Speech - speech to text", "variants": "real-time (Speech SDK) / batch transcription", "category": "hyper", "licence": "Proprietary, Microsoft Azure Product Terms", "licence_class": "closed", "price_note": "Real-time $1.00 per audio hour; batch $0.18 per audio hour (requires Speech-to-text REST API v3.2 or later). Verified against both the Azure Retail Prices API (productName 'Azure Speech', eastus: 'S1 Speech To Text' $1.00/1 Hour, 'S1 Speech to Text Batch' $0.18/1 Hour) and the pricing page. Commitment tiers: $1,600/2,000 h ($0.80/h overage), $6,500/10,000 h ($0.65/h), $25,000/50,000 h ($0.50/h), $40,000/100,000 h ($0.40/h). Enhanced add-on features - continuous language identification, DIARIZATION, pronunciation-assessment prosody - cost $0.30 per audio hour PER FEATURE in real time, and are included free in batch.", "price_sort": 0.18, "accuracy_note": "Not published for the standard Azure models. Microsoft states no WER for the prebuilt speech-to-text models, and Azure's only entry on the Artificial Analysis leaderboard is MAI-Transcribe, which is a different model on a different API.", "wer_sort": null, "languages_note": "119 speech-to-text locales per the Microsoft Learn language-support table (read 1 Aug 2026; the total was not independently recounted in audit). Custom Speech accepts plain-text customisation across the full locale set, with audio-plus-human-labelled-transcript training and post-stream refinement each available in smaller subsets.", "languages_sort": null, "runs_on": "Cloud, Docker containers (connected), and fully disconnected/air-gapped containers after sign-up - the only western hyperscaler ASR with a genuine offline deployment path.", "best_for": "Enterprise transcription at the widest locale coverage of any hyperscaler, and the only credible route to running hyperscaler-grade ASR inside an air gap. Batch at $0.18/audio hour is the cheapest first-party ASR of the big three.", "diarization": "Available but NOT free in real time. The pricing page lists exactly three 'enhanced add-on features' - continuous language identification, diarization, and pronunciation assessment (prosody) - charged 'per hour per feature'; the Retail Prices API returns 'S1 Speech to Text Enhanced Feature Audio' at $0.30 per audio hour against the $1.00 base, a 30% surcharge for speaker labels. In BATCH the page states language identification and diarization are 'Included in Standard/Custom (no extra charge)'. Labels are generic (Guest-1, Guest-2, ...) and early interim results show Speaker ID=Unknown unless the DiarizeIntermediateResults property is set to true.", "watch": "Speaker labels are a paid add-on in real time. Azure's $1.00/audio hour headline does not include diarization - that is $0.30/audio hour more, per feature, and language identification and pronunciation prosody are each another $0.30. Batch, at $0.18/audio hour, includes them free, which means the same job can cost $1.30/h streamed and $0.18/h batched. The batch price also only applies if you are on REST API v3.2+; older integrations silently bill at the older rate.", "standout": "fully disconnected air-gapped container deployment, available on an annual commitment", "facets": [ "actively-maintained", "custom-vocab", "diarization-addon", "self-hostable", "streaming" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "True streaming via the Speech SDK over WebSocket, with interim results and optional intermediate diarization.", "latency_note": null, "realtime_factor": null, "audio_limits": "Batch: 1 GB max per audio file, 10,000 blobs per container, 1,000 files per transcription request. Per-session and per-file duration ceilings with diarization enabled were not verified in this pass.", "timestamps": null, "punctuation": null, "custom_vocab": "Phrase lists at runtime, plus full Custom Speech model training (see separate row).", "output_formats": null, "translation": null, "billing_unit": "Per second of audio, quoted per audio hour.", "free_tier": "Free (F0): 5 audio hours per month for speech to text, SHARED between standard and custom, and batch is not supported on F0 at all.", "concurrency": "Containers are constrained by host CPU rather than the service concurrency quota.", "self_host": "Yes - connected containers on a commitment plan, priced in the Retail Prices API at $1,520/month for 2,000 h up to $23,750/month for 50,000 h. Disconnected, air-gapped containers are also offered on an annual commitment after an approval sign-up; those annual amounts are not exposed in the Retail Prices API and the pricing page renders them as placeholders to non-browser clients, so no figure is published here.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://learn.microsoft.com/en-us/azure/ai-services/speech-service/speech-to-text", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Azure Fast Transcription", "variants": null, "category": "hyper", "licence": "Proprietary, Microsoft Azure Product Terms", "licence_class": "closed", "price_note": "$0.36 per audio hour, and $0.45 per audio hour with a custom model (Azure Retail Prices API, meters 'Fast Transcription Speech To Text' and 'Custom - Fast Transcription Speech To Text', eastus, read 1 Aug 2026). Requires Speech-to-text REST API 2024-11-15 or later, as stated on the pricing page. Disconnected containers are offered on an annual commitment, but those amounts render as placeholders to non-browser clients and are not published here. Note the public pricing page shows currency cells as '$-' to scrapers while the retail API returns a price - the API is the reliable source.", "price_sort": 0.36, "accuracy_note": "Not published. Microsoft states no WER for Fast Transcription and it does not appear on independent leaderboards.", "wer_sort": null, "languages_note": "Almost all of Azure's speech-to-text locales support fast transcription, with a small number of exceptions. Multi-channel transcription is restricted to 13 locales (de-DE, en-GB, en-IN, en-US, es-ES, es-MX, fr-FR, hi-IN, it-IT, ja-JP, ko-KR, pt-BR, zh-CN) and multilingual transcription to 15 (de-DE, en-AU, en-CA, en-GB, en-IN, en-US, es-ES, es-MX, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, zh-CN).", "languages_sort": null, "runs_on": "Cloud, plus disconnected containers under an annual commitment.", "best_for": "Turning a finished recording into a clean, punctuated, cased transcript in a single synchronous REST call - no job queue, no polling, no storage account - when you want batch economics without batch latency.", "diarization": "Built in, 2 to 35 speakers, but MONO ONLY: 'The Speech service doesn't support diarization of multiple channels', so if the audio is stereo and diarization is on you cannot also set channels to [0,1]. Word-level timestamps are supported alongside it.", "watch": "You cannot get the lexical form out of it. Fast Transcription only emits display-form text, so any pipeline that needs raw un-normalised tokens - forced alignment, custom ITN, some compliance workflows - has to use batch instead. Diarization is also mono-only, which quietly disqualifies it for stereo contact-centre recordings. And it shares a SKU ID with LLM Speech, so your invoice will not tell the two apart.", "standout": "one synchronous REST call returns a diarized, punctuated transcript of a 5-hour file", "facets": [ "actively-maintained", "diarization", "punctuation", "self-hostable", "word-timestamps" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": "Under 500 MB and under 5 hours per file; 600 requests per minute (adjustable).", "timestamps": "Word-level and segment-level both supported.", "punctuation": "Display form only - the fast transcription API produces transcriptions in the display, not lexical, form, meaning punctuated and capitalised with no ITN-raw alternative. Batch transcription still gives you both.", "custom_vocab": null, "output_formats": "JSON returned synchronously in the HTTP response.", "translation": "Not supported on Fast Transcription - translation is only on the LLM Speech path.", "billing_unit": null, "free_tier": null, "concurrency": "600 requests per minute (S0), adjustable; not available on F0 at all.", "self_host": "Yes, via disconnected containers under an annual commitment.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://learn.microsoft.com/en-us/azure/ai-services/speech-service/fast-transcription-create", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Azure Custom Speech", "variants": null, "category": "hyper", "licence": "Proprietary, Microsoft Azure Product Terms", "licence_class": "closed", "price_note": "Inference: $1.20 per audio hour real-time, $0.225 per audio hour batch, $0.45 per audio hour fast transcription. Model training $10.00 per compute hour. Endpoint hosting $0.05375 per model per hour - about $39/month per deployed model whether you call it or not. Commitment tiers: $1,920/2,000 h ($0.96/h overage) to $30,000/50,000 h ($0.60/h). All figures cross-checked against the Azure Retail Prices API (S1 Custom Speech To Text $1.20/1 Hour, S1 Custom Speech to Text Batch $0.225/1 Hour, S1 Custom Speech Model Hosting Unit $0.05375/1 Hour, S1 Custom Speech Training $10.00/1 Hour). Disconnected-container annual commitments are offered but are not exposed in the retail API and are not published here.", "price_sort": 0.225, "accuracy_note": "Not published as an absolute figure - Azure ships an accuracy-test harness that reports WER of your custom model against your own held-out audio versus the base model. There is no vendor WER on any public test set, and the improvement you get is entirely a function of your training data.", "wer_sort": null, "languages_note": "All speech-to-text locales accept plain-text customisation. Audio plus human-labelled transcripts, structured text and pronunciation data are each supported in progressively smaller subsets of locales - check your specific locale before assuming acoustic training is available.", "languages_sort": null, "runs_on": "Cloud, connected containers, and disconnected containers on an annual commitment.", "best_for": "Domain vocabulary that phrase lists cannot fix - drug names, part numbers, regional proper nouns - where you have hours of labelled in-domain audio and a locale Azure trains acoustically.", "diarization": "Same as the base service: a $0.30/audio-hour enhanced add-on in real time, included in batch. Custom Speech itself changes recognition, not speaker separation.", "watch": "The hosting charge runs whether or not you send traffic - $0.05375 per model per hour is roughly $470 a year per deployed endpoint, and the default quota lets you deploy 50 of them. Custom Speech Training is also only billed when customising a base model released on or after 1 October 2023, so older base models train free and newer ones do not, which makes cost estimates jump when you upgrade the base model.", "standout": null, "facets": [ "actively-maintained", "diarization-addon", "self-hostable" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": "Plain text, structured text, audio + human-labelled transcript, and pronunciation datasets. Limits per resource: 500 datasets, 50 model deployments, 2 GB acoustic dataset, 1.5 GB language dataset, 1 MB pronunciation dataset.", "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": "Inherits the base batch limits (1 GB per file).", "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": "F0 allows 1 custom model deployment (auto-decommissioned after 7 days of no use) and 2 datasets; the 5 free audio hours are shared with standard.", "concurrency": "100 concurrent requests per CUSTOM ENDPOINT by default, adjustable - and the base-model and custom-endpoint quotas must be raised separately, per endpoint.", "self_host": "Yes, connected and disconnected containers.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://learn.microsoft.com/en-us/azure/ai-services/speech-service/custom-speech-overview", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Azure MAI-Transcribe (LLM Speech API)", "variants": "mai-transcribe-1.5 / mai-transcribe-1", "category": "hyper", "licence": "Proprietary, Microsoft Azure Product Terms; public preview supplemental terms", "licence_class": "closed", "price_note": "$0.36 per audio hour - Microsoft's pricing page footnote states 'LLM Speech is currently sharing the same price and SKU ID with Fast Transcription', and the Fast Transcription meter in the Azure Retail Prices API is $0.36/1 Hour. When MAI-Transcribe is used for input transcription inside Voice Live, Standard-Audio token pricing applies instead.", "price_sort": 0.36, "accuracy_note": "AA-WER 2.4% for mai-transcribe-1.5 and 2.6% for mai-transcribe-1 on the Artificial Analysis AA-WER v2 index (exact values 0.0238 and 0.0261; AA-AgentTalk 50% / VoxPopuli-Cleaned-AA 25% / Earnings22-Cleaned-AA 25%, snapshot 1 Aug 2026) - third place overall on that board, behind Fun-Realtime-ASR-preview (1.7%) and Scribe v2 (2.2%). Microsoft separately claims best-in-class WER across 43 languages on FLEURS, improving from 3.9% (v1) to 3.7% (v1.5); that FLEURS figure is a vendor claim.", "wer_sort": null, "languages_note": "43 languages on mai-transcribe-1.5, up from 25 on mai-transcribe-1 - counted directly from the per-model support table on the MAI-Transcribe doc page. Defaults to multi-lingual mode with automatic detection; a single locale can be forced via the 'locales' parameter.", "languages_sort": null, "runs_on": "Cloud only, in the subset of Speech regions where LLM Speech is enabled.", "best_for": "Highest-accuracy offline transcription on Azure at batch-tier prices, especially multilingual audio where you do not know the language in advance and want a readability-optimised transcript rather than a verbatim one.", "diarization": "NONE on the MAI models. The documentation states plainly: 'Diarization isn't supported.' The MAI models also produce no word-level timestamps and do not handle stereo channels. Note the escape hatch is nearer than it looks: the LLM Speech feature matrix marks diarization as supported for LLM Speech enhanced mode generally, so you can stay on the same API and drop the MAI model, or fall back to Fast Transcription or batch. What you cannot have is MAI accuracy and speakers at once.", "watch": "Public preview, no SLA - and the docs mark mai-transcribe-1 'Deprecated on Aug 20, 2026'. Anything you pin to a version will need re-pinning fast. It also cannot diarize, produces no word-level timestamps, cannot prompt-tune, and shares a SKU ID with Fast Transcription so the bill will not tell you which one ran.", "standout": "top-3 independent WER at batch-tier pricing, with entity biasing and a verbatim/readability style switch", "facets": [ "actively-maintained", "api-only", "custom-vocab", "no-diarization", "punctuation" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": "Audio file under 300 MB, in WAV, MP3 or FLAC. Note this is tighter than the general LLM Speech API page, which allows 500 MB and more formats - the MAI models carry their own stricter limit.", "timestamps": null, "punctuation": "Readability-optimised by default; transcribeStyle: 'verbatim' preserves the original spoken content including filler words and disfluencies (mai-transcribe-1.5 only).", "custom_vocab": "phraseList entity biasing, on mai-transcribe-1.5 only - the docs state 'Phrase list and transcribe style are supported only in mai-transcribe-1.5' and annotate the phraseList example as implementing entity biasing. Microsoft claims a 30% relative WER reduction on FLEURS with keyword biasing - vendor claim. Prompt-tuning is explicitly not supported.", "output_formats": "JSON from POST /speechtotext/transcriptions:transcribe with enhancedMode.enabled = true and the model property set to the MAI version.", "translation": null, "billing_unit": null, "free_tier": null, "concurrency": "600 requests per minute per resource (S0); LLM Speech is not offered on F0.", "self_host": null, "data_policy": null, "benchmarks": "Artificial Analysis 1 Aug 2026 snapshot: mai-transcribe-1.5 AA-WER 2.4% at a median speed factor of 204x realtime and $6.00 per 1,000 audio minutes; mai-transcribe-1 AA-WER 2.6% at 67.3x. Microsoft claims an hour of audio transcribed in under 15 seconds and up to 5x faster on long audio than Gemini 3.1, Scribe v2 and GPT-4o-Transcribe - vendor claim, hardware unstated.", "robustness": null, "adoption": null, "released": "mai-transcribe-1.5 model card dated 2 June 2026. No release date for mai-transcribe-1 is published on any page read.", "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://learn.microsoft.com/en-us/azure/ai-services/speech-service/mai-transcribe", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Google Cloud Speech-to-Text V2", "variants": "standard recognition / dynamic batch", "category": "hyper", "licence": "Proprietary, Google Cloud Platform Terms", "licence_class": "closed", "price_note": "$0.016 per minute for the first 500,000 min/month ($0.96/audio hour), then $0.010 (500K-1M), $0.008 (1M-2M) and $0.004 (2M+, i.e. $0.24/audio hour). Dynamic batch - lower-priority queued processing - is a flat $0.003 per minute ($0.18/audio hour). SKUs 3099-B70F-0949 and 7700-6778-EF8E, read from the pricing page 1 Aug 2026. Requests round up to the nearest second.", "price_sort": 0.96, "accuracy_note": "Not published. Google gives no WER for Cloud Speech-to-Text, and no Google Cloud STT or Chirp entry appears on the Artificial Analysis AA-WER board - the Google rows there are all Gemini models on the Gemini API, which is a different artefact with different pricing.", "wer_sort": null, "languages_note": "Over 100 languages and locales across the model family; per-model coverage differs sharply - the 'Standard' billing class explicitly includes default, command_and_search, latest_short, latest_long, phone_call, video and chirp, all at one price.", "languages_sort": null, "runs_on": "Cloud only; regional and multi-region (us, eu) recognizer endpoints.", "best_for": "Very high-volume batch transcription where the 2M-minute tier ($0.24/audio hour) or dynamic batch ($0.18/audio hour) beats every other hyperscaler, and you can tolerate results arriving on Google's schedule rather than yours.", "diarization": "Available, but read the per-model page rather than the feature page. The diarization doc says Cloud STT supports speaker diarization for all speech recognition methods with a configurable maxSpeakerCount - yet Chirp 2's own model page says diarization is 'Not supported', and Chirp 3 supports it only in Recognize and BatchRecognize and only in a limited set of languages. The generic statement is not true of the model you are probably using.", "watch": "Two billing surprises. First, there is no free tier on V2 at all - the famous 60 free minutes a month belong to the V1 API, and moving to V2 silently ends them. Second, Google bills per channel: a 4-channel meeting recording costs four times a mono one, and Google's own worked example spells it out. Combined with per-second round-up on every request, short multi-channel workloads cost far more than the headline $0.016/min suggests.", "standout": null, "facets": [ "actively-maintained", "api-only", "diarization" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": "Recognize: audio under 1 minute. BatchRecognize: 1 minute to 8 hours on chirp_2. StreamingRecognize: no stated duration cap.", "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": "Per second of audio, rounded up to the nearest second - and EVERY AUDIO CHANNEL IS BILLED SEPARATELY. Google's own example: 'if you send a request with 30 seconds of audio and 4 channels, you will be billed for 120 seconds but only 30 seconds will count against your monthly quota.'", "free_tier": "None on V2. The 60-free-minutes-per-month allowance appears only against the V1 and medical SKUs on the same pricing page.", "concurrency": null, "self_host": "No", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://docs.cloud.google.com/speech-to-text/v2/docs", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Google Chirp 3", "variants": null, "category": "hyper", "licence": "Proprietary, Google Cloud Platform Terms", "licence_class": "closed", "price_note": "Billed under the same Speech-to-Text V2 'Standard recognition' SKU as everything else: $0.016/min for the first 500K min/month falling to $0.004/min above 2M, or $0.003/min via dynamic batch. Google's pricing page names 'chirp' in the Standard model list but does not name chirp_2 or chirp_3 anywhere, so there is no Chirp-3-specific rate card to read.", "price_sort": 0.96, "accuracy_note": "Not published. Google states no WER for Chirp 3 and it is absent from the Artificial Analysis board. Treat any Chirp accuracy claim you see as unsourced.", "wer_sort": null, "languages_note": "The chirp_3 model page splits coverage into a GA set and a considerably larger preview set, totalling roughly 100 - consistent with the V2 supported-languages page describing chirp_3 as 100+. Read the model page for the current GA/preview split before relying on a specific language, because preview coverage carries no SLA.", "languages_sort": null, "runs_on": "Cloud only; us and eu multi-region endpoints are GA.", "best_for": "Multilingual transcription on Google where you need speaker separation and can live without word-level timing - the only Chirp model that diarizes.", "diarization": "Supported, and it is the reason to pick Chirp 3 over Chirp 2 - but only in BatchRecognize and Recognize, never in StreamingRecognize, and only in a limited subset of languages (the model page lists roughly 15 at GA; read the list there rather than assuming your locale is included).", "watch": "Chirp 3 and Chirp 2 trade features against each other and you cannot have both. Chirp 3 diarizes but has NO word-level timestamps and caps batch audio at 1 hour; Chirp 2 gives word timestamps, translation and 8-hour batch but explicitly does not diarize. Any product needing speakers AND word timing on Google has to run the audio twice, drop back to a non-Chirp V2 model, or leave Google.", "standout": "the only Chirp model that produces speaker labels", "facets": [ "actively-maintained", "api-only", "custom-vocab", "diarization", "punctuation", "streaming" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "StreamingRecognize is supported for transcription, with utterance-level timestamps only - and diarization is unavailable in that mode.", "latency_note": null, "realtime_factor": null, "audio_limits": "Recognize for audio under one minute; BatchRecognize for 1 minute to 1 hour (versus 8 hours on Chirp 2).", "timestamps": "NO word-level timestamps and no word-level confidence scores. The docs say the returned confidence value 'isn't truly a confidence score'. Utterance-level timing only.", "punctuation": "Automatic punctuation, generated by the model, optionally disabled.", "custom_vocab": "Adaptation dictionary of up to 1,000 phrases; Google advises using as few entries as possible to avoid degrading non-adaptation terms.", "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "No", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://docs.cloud.google.com/speech-to-text/v2/docs/chirp_3-model", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Google Cloud Speech-to-Text V1 (incl. Medical models)", "variants": null, "category": "hyper", "licence": "Proprietary, Google Cloud Platform Terms", "licence_class": "closed", "price_note": "Standard models: free for the first 60 minutes each month, then $0.016/min WITH data logging enabled ($0.96/audio hour) or $0.024/min WITHOUT data logging ($1.44/audio hour) - SKUs 67F5-A183-E319 and 60AE-2FE3-C3D8. Medical models: free for the first 60 minutes, then $0.078/min ($4.68/audio hour) - medical_dictation SKU 6649-62EF-CB8F and medical_conversation SKU 7247-19E1-FB4D. Read from the pricing page 1 Aug 2026.", "price_sort": 0.96, "accuracy_note": "Not published. Google states no WER for the V1 models or the medical models.", "wer_sort": null, "languages_note": "Standard V1 models cover the legacy set (default, command_and_search, latest_short, latest_long, phone_call, video). The medical models are English (US) only - medical_conversation and medical_dictation, one locale each.", "languages_sort": null, "runs_on": "Cloud only.", "best_for": "Existing V1 integrations, and US-English clinical dictation on Google - the medical models are priced only under V1 SKUs and have no V2 equivalent on the pricing page.", "diarization": "Supported in V1 via SpeakerDiarizationConfig, at no extra charge. Google does not restate a speaker maximum for V1 on the pages read.", "watch": "Google charges you 50% more not to be trained on. V1 has two SKUs for the same transcription: $0.016/min 'with data logging' and $0.024/min 'without data logging'. Privacy is a line item, and the cheap number that appears in comparisons is the one where Google keeps your audio. Note too that the medical models are priced only under V1, so a V1-to-V2 migration silently loses medical_dictation and medical_conversation.", "standout": null, "facets": [ "actively-maintained", "api-only", "diarization" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": "Per second, rounded up to the nearest second; each audio channel billed separately.", "free_tier": "60 minutes per month, ongoing - the only Google STT free tier, and it exists only on V1 and the medical models.", "concurrency": null, "self_host": "No", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://docs.cloud.google.com/speech-to-text/docs/speech-to-text-requests", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "IBM Watson Speech to Text", "variants": "Lite / Plus / Premium / Watson Speech Libraries for Embed", "category": "hyper", "licence": "Proprietary, IBM Cloud Service Description", "licence_class": "closed", "price_note": "Plus is published at $0.02 per minute ($1.20/audio hour) with a volume break to $0.01 per minute ($0.60/audio hour) once monthly usage passes 1,000,000 minutes; those rate figures could NOT be re-read from a primary IBM page in this pass - the detailed pricing page returns 403 - and should be confirmed before budgeting. Confirmed on IBM's product page: Lite gives 500 free minutes per month with 38 pre-trained models and no customisation; Plus 'includes unlimited minutes per month and 100 concurrent transcriptions'; Premium is quote-only and 'includes unlimited minutes per month and unlimited concurrent transcriptions' plus data isolation.", "price_sort": 1.2, "accuracy_note": "Not published. IBM gives no WER for the next-generation models and Watson does not appear on the Artificial Analysis AA-WER board. 'Best-in-class AI' on the product page is marketing with no test set attached.", "wer_sort": null, "languages_note": "21 languages across the next-generation models: 20 telephony models (ar-MS, zh-CN, cs-CZ, nl-BE, nl-NL, en-AU/IN/GB/US, fr-CA/FR, de-DE, hi-IN, it-IT, ja-JP, ko-KR, pt-BR, es-ES, es-LA, sv-SE) plus a beta en-WW medical telephony model, and 12 multimedia models. The Lite plan advertises 38 pre-trained speech models.", "languages_sort": null, "runs_on": "IBM Cloud public, and on any cloud or on-premises via Watson Speech Libraries for Embed containers - public, private, hybrid, multicloud.", "best_for": "Contact-centre and IVR workloads where 8 kHz telephony models are first-class rather than an afterthought, and where an embeddable container that runs in your own datacentre matters more than headline accuracy.", "diarization": "Built in via the speaker_labels parameter, and available over the WebSocket streaming interface alongside interim results. IBM is candid about the limits: it 'can handle up to six speakers, but more than two speakers can result in variable performance', and speaker labels are supported on only a subset of the languages the recogniser transcribes.", "watch": "IBM's own docs cap speaker labels at six speakers and warn performance is 'variable' beyond two - buy this for two-party calls, not for meetings. The volume discount is documented as triggering within a single calendar month, so usage spread across months never reaches it; confirm the breakpoint contractually, because IBM's detailed rate card is not publicly readable. And IBM publishes no accuracy figure of any kind, so the model quality claim is untestable before you sign.", "standout": "telephony-first model line with an embeddable container licence for ISVs", "facets": [ "actively-maintained", "diarization", "self-hostable", "streaming" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": "Custom language models and custom acoustic models (Plus and Premium only; unlimited custom models on Plus).", "streaming": "True streaming over WebSocket, with interim results and interim speaker labels.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": "Per minute of audio; silence and noise both count.", "free_tier": "Lite: 500 minutes per month, ongoing, with 38 pre-trained models and no customisation.", "concurrency": "Plus: 100 concurrent transcriptions. Premium: unlimited concurrent transcriptions.", "self_host": "Yes - Watson Speech Libraries for Embed ship as containers for IBM partners and ISVs.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://www.ibm.com/products/speech-to-text", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Alibaba Cloud Model Studio ASR", "variants": "Qwen-Audio-3.0-ASR-Flash (streaming / filetrans / flash) - Qwen3-ASR-Flash - Fun-ASR - Paraformer", "category": "hyper", "licence": "Proprietary, Alibaba Cloud Model Studio terms", "licence_class": "closed", "price_note": "Billed by second of input audio; output free. International (Singapore) rates read from the Model Studio pricing page 1 Aug 2026: file transcription $0.000035/sec = $0.126 per audio hour (qwen-audio-3.0-asr-flash-filetrans, qwen-audio-3.0-asr-flash, qwen3-asr-flash and -filetrans, fun-asr, fun-asr-mtl, fun-asr-flash); real-time $0.00009/sec = $0.324 per audio hour (qwen-audio-3.0-asr-flash-streaming, qwen3-asr-flash-realtime, fun-asr-realtime). Legacy Paraformer in China (Beijing) is cheaper still - paraformer-v2 file at $0.000012/sec = $0.0432 per audio hour. Free quota: 36,000 seconds (10 hours) per model, valid 90 days from activation, offered ONLY in Singapore. Alibaba's documentation could not be re-reached in audit; the $0.000035/sec file rate is corroborated by third-party pricing listings for qwen3-asr-flash, but the rest of this field is unconfirmed.", "price_sort": 0.126, "accuracy_note": "Artificial Analysis AA-WER v2 (AA-AgentTalk 50% / VoxPopuli-Cleaned-AA 25% / Earnings22-Cleaned-AA 25%, snapshot 1 Aug 2026): Qwen3.5-Omni-Plus 3.5%, Qwen3.5-Omni-Flash 13.5%, and Fun-Realtime-ASR-preview leads the entire board at 1.7%. Two caveats stop these transferring to this row. Artificial Analysis states it chunks Qwen3 ASR Flash to ~30 seconds on Earnings22 because of its short time limit. And none of the measured models is one of this row's named production variants - no AA figure exists for the qwen-audio-3.0 file-transcription models, and Fun-Realtime-ASR-preview is a preview artefact. Do not read a board position onto the endpoint you would actually deploy.", "wer_sort": null, "languages_note": "The qwen-audio-3.0-asr-flash family is documented as covering 30 languages plus eight Chinese varieties (Mandarin, Cantonese, Wu, Hokkien, Hakka, Gan, Xiang, Jin) and roughly twenty named regional accents. Qwen3-ASR-Flash covers 28. Fun-ASR-MTL covers 30. Legacy Paraformer covers 7 (zh, en, ja, ko, de, fr, ru). These counts were not re-verified against a primary page in audit.", "languages_sort": null, "runs_on": "Cloud only - Model Studio in Singapore (International), China (Beijing) and, for some Qwen-ASR models, US (Virginia). Deployment scope differs per model and is listed per row on the pricing page.", "best_for": "Chinese and Chinese-dialect audio at a fraction of western hyperscaler prices, and any workload where accented Mandarin, Cantonese, Wu or Hokkien is the hard part. File transcription at $0.126/audio hour undercuts every western first-party option.", "diarization": "Model-dependent and easy to get wrong. Documented as supported ONLY on qwen-audio-3.0-asr-flash-filetrans, the Fun-ASR offline models (fun-asr, fun-asr-mtl) and legacy paraformer-v2. NOT supported on any real-time model, not on qwen3-asr-flash in any form, and not on qwen-audio-3.0-asr-flash. Alibaba also advises keeping audio to 2 hours or less when diarization is on, against a 12-hour ceiling otherwise. Alibaba's docs were unreachable in audit, so treat this as a warning to confirm per model rather than a settled matrix - but do not assume diarization on any model in this family without checking.", "watch": "Diarization and emotion recognition sit on different models than the ones you would otherwise choose. qwen3-asr-flash detects emotion but cannot diarize and takes no hot words; qwen-audio-3.0-asr-flash-filetrans diarizes and takes hot words but has no emotion. There is no model that does all three. The 10-hour free quota is Singapore-only, so testing in Beijing or Virginia bills from the first second. And note that the flattering Artificial Analysis numbers circulating against 'Alibaba' belong to Omni and preview models, not to these production ASR endpoints.", "standout": "eight Chinese varieties plus ~20 named regional accents, at $0.126 per audio hour", "facets": [ "actively-maintained", "api-only", "custom-vocab", "diarization", "streaming" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "True streaming over WebSocket for the -realtime and -streaming models, with unlimited session duration; the AOQ protocol and the DashScope SDK (Java, Python) are supported on the newer families, everything else needs raw WebSocket or HTTP.", "latency_note": null, "realtime_factor": null, "audio_limits": "File transcription: 2 GB and 12 hours max (qwen-audio-3.0-asr-flash-filetrans, qwen3-asr-flash-filetrans, fun-asr), 2 GB and 5 minutes (qwen-audio-3.0-asr-flash, fun-asr-flash), 10 MB and 5 minutes (qwen3-asr-flash). Real-time: unlimited duration, mono only on every real-time model.", "timestamps": null, "punctuation": null, "custom_vocab": "Two mechanisms: weighted hot-word lists, and prompt-context injection where you describe the domain in a system prompt and the model adapts per request with no setup. Qwen3-ASR-Flash supports neither.", "output_formats": null, "translation": null, "billing_unit": "Per second of input audio; output tokens are not charged.", "free_tier": "36,000 seconds (10 hours) per model, valid 90 days from Model Studio activation or model release - Singapore only.", "concurrency": null, "self_host": "No for the hosted API, though Fun-ASR and Qwen3-ASR have separate open-weights releases that are a different artefact entirely.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://www.alibabacloud.com/help/en/model-studio/speech-recognition", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Tencent Cloud ASR", "variants": "real-time / recording file recognition, each with a large-model version", "category": "hyper", "licence": "Proprietary, Tencent Cloud service terms", "licence_class": "closed", "price_note": "Pay-as-you-go, postpaid, billed daily, tiered by hours PER DAY (Billing Overview, last updated 2025-08-19, USD): real-time $1.40/hour for 0-299 h/day, then $1.20, $1.00, $0.86 and $0.70 at 5,000+ h/day. Real-time large-model version: $2.00 down to $1.10. Recording file recognition: $1.00 down to $0.60. Recording file large-model version: $1.80 down to $0.80. Tencent's own worked example: 315 hours in a day costs 315 x $1.20 = $378. These figures were not re-verified against a primary page in audit and should be re-read before budgeting.", "price_sort": 1.0, "accuracy_note": "Not published. Tencent states no WER on the billing or product documentation read, and Tencent Cloud ASR does not appear on the Artificial Analysis AA-WER board.", "wer_sort": null, "languages_note": "Not established from the pages read - the billing documentation does not enumerate languages, and the product introduction PDF was not retrieved. Tencent markets real-time speech recognition, one-sentence recognition and recording file recognition without a language count on the billing page.", "languages_sort": null, "runs_on": "Cloud only (Tencent Cloud international and mainland China endpoints).", "best_for": "Mainland-China contact-centre and media workloads already inside Tencent Cloud, where the daily-tier pricing model matches a business with high, steady, predictable daily volume.", "diarization": "Not established from the pages read. The billing documentation and product pages retrieved make no statement about speaker separation either way, which is itself a finding: do not assume it.", "watch": "The tiers are per DAY, not per month, and the discount applies to all calls once a tier is reached - so a workload that spikes to 3,000 hours on one day and idles the next pays a materially different rate than the same monthly volume spread evenly. The 'large model version' is also a separate, more expensive meter at up to 80% above the standard rate, and the billing page does not say which one you get by default. Re-read the rate card before committing: these figures come from a single documentation pass and were not independently confirmed.", "standout": null, "facets": [ "actively-maintained", "api-only", "no-diarization" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": "Per hour of recognition duration, tiered by daily usage - the tier resets each day, so an even 300 h/day workload lands in a better tier than a spiky one averaging the same.", "free_tier": "Not stated on the billing page. Tencent's help centre indicates a free quota exists but the amount was not readable from a primary page.", "concurrency": null, "self_host": "No", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://www.tencentcloud.com/products/asr", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Baidu AI Cloud Speech Recognition", "variants": "short speech / high-speed / real-time / file transcription", "category": "hyper", "licence": "Proprietary, Baidu AI Cloud service terms", "licence_class": "closed", "price_note": "CNY, from the official price page (read 1 Aug 2026). Real-time: 3 yuan/hour pay-as-you-go, or prepaid hour packs at 1.8 yuan/h (1,000 h) down to 0.9 yuan/h (500,000 h), valid one year. File transcription: 2 yuan/hour pay-as-you-go, prepaid 1.2 yuan/h down to 0.6 yuan/h. Short-speech recognition is billed PER CALL, not per hour: 0.0034 yuan/call tiered down to 0.0011 yuan/call, or prepaid 2,400 yuan per million calls; the high-speed variant is 0.0042 yuan/call down to 0.0014. Concurrency expansion is a separate charge, 80-100 yuan per concurrent connection per month. No official USD rate card was found.", "price_sort": null, "accuracy_note": "Not published. Baidu states no WER on the pricing or billing pages, and Baidu does not appear on the Artificial Analysis AA-WER board.", "wer_sort": null, "languages_note": "Not established from the pages read - the pricing and billing pages do not enumerate languages. Baidu's speech line is Mandarin-centred with dialect and English models, but no count could be sourced.", "languages_sort": null, "runs_on": "Cloud only, mainland China.", "best_for": "Short Mandarin utterances - voice commands, IVR prompts, search queries - where per-call billing at 0.0011 to 0.0034 yuan is dramatically cheaper than any per-hour meter.", "diarization": "Not established from the pages read. Baidu's pricing and billing documentation makes no statement about speaker separation.", "watch": "Concurrency is a product you buy separately. The default is single-digit until you verify the account, and even paid accounts sit at 50 concurrent connections - beyond that it is 80-100 yuan per additional concurrent connection per month, on top of the usage price. A capacity plan built only on per-hour rates will be wrong.", "standout": null, "facets": [ "actively-maintained", "api-only", "no-diarization" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": "Two different units in one product family: per CALL for short-speech recognition (a call being one short utterance request), and per HOUR for real-time and file transcription. Mixing the two in a cost model is the standard mistake.", "free_tier": "Free test resources are offered per account, but the allocation lives on a separate free-resources page that was not read. Do not size a pilot on a remembered figure.", "concurrency": "Default concurrency is 2 for unverified accounts, 3 for personally verified and 5 for enterprise verified; paid services default to 50 concurrent, expandable for a monthly fee.", "self_host": "No", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://cloud.baidu.com/product/speech/asr", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Yandex SpeechKit", "variants": null, "category": "hyper", "licence": "Proprietary, Yandex Cloud terms", "licence_class": "closed", "price_note": "Could not be read from a primary source. yandex.cloud/en/docs/speechkit/pricing redirects to aistudio.yandex.ru, which served a bot-verification page on every attempt on 1 Aug 2026; no figure is recorded here rather than repeat an unverified third-party number.", "price_sort": null, "accuracy_note": "Not published, and not independently measured - Yandex SpeechKit does not appear on the Artificial Analysis AA-WER board and no vendor WER with a named test set could be retrieved.", "wer_sort": null, "languages_note": "Not established - the SpeechKit model and language documentation was behind the same bot-verification wall.", "languages_sort": null, "runs_on": "Cloud only (Yandex Cloud). Deployment options beyond the hosted API could not be verified.", "best_for": "Russian-language transcription inside Yandex Cloud, where data residency in Russia is a requirement - this is the position it holds rather than any measured advantage.", "diarization": "Not established. No primary Yandex documentation could be retrieved to confirm or deny speaker labelling.", "watch": "Every fact in this row that would normally come from vendor documentation is missing because Yandex Cloud's English documentation host now answers automated requests with a CAPTCHA. Anyone evaluating SpeechKit should expect to verify pricing, languages and diarization interactively in a browser, and should treat every SpeechKit figure circulating in comparison articles as unchecked.", "standout": null, "facets": [ "api-only", "no-diarization" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": null, "status": "unknown", "verification": "unverified", "verification_note": null, "rating": null, "source_url": null, "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "OpenAI Whisper (multilingual: tiny → large-v3)", "variants": null, "category": "open", "licence": "MIT per the GitHub README (\"Whisper's code and model weights are released under the MIT License\"); the Hugging Face cards declare `license: apache-2.0` in frontmatter instead — verified on large-v3, large-v2, tiny, base, small, medium and every .en checkpoint. The one exception is openai/whisper-large-v3-turbo, which declares `mit`. Same weights, two primary sources, three different licence strings.", "licence_class": "open", "price_note": "Free / self-host. (OpenAI's hosted whisper endpoint charges $0.006 per audio minute — a different artefact, see the OpenAI Audio Transcriptions API row.)", "price_sort": null, "accuracy_note": "Open ASR Leaderboard, English short-form, snapshot 31-07-2026: openai/whisper-large-v3 average WER 6.55 on cleaned references / 7.33 on original references, at RTFx 462.22, across 7 test sets (AMI, Earnings22, GigaSpeech, LibriSpeech clean, LibriSpeech other, SPGISpeech, VoxPopuli). Both averages are computed after the leaderboard's Whisper-style text normalisation — the cleaned/original split refers to which reference transcripts are used for AMI, GigaSpeech and VoxPopuli, not to normalisation. Hardware: the leaderboard's GitHub repo names \"1x H200 (141 GB)\" as the evaluation flavour; the leaderboard paper (arXiv:2510.06961) reports an A100-SXM4-80GB for its own runs, so treat RTFx as hardware-dependent. Smaller sizes are far worse: the whisper-small.en card's model-index carries mean WER 8.59 from an older, undated leaderboard snapshot.", "wer_sort": null, "languages_note": "Sources disagree and the disagreement is worth knowing. By the reference implementation's own arithmetic — whisper/model.py computes num_languages = n_vocab − 51765 − int(is_multilingual), and config.json gives vocab_size 51866 for large-v3 against 51865 for large-v2 — large-v3 carries 100 language tokens and large-v2 carries 99; large-v3's addition is Cantonese (`yue`, last key in the LANGUAGES dict). The Open ASR Leaderboard's own language column says 99 for large-v3, and OpenAI's API docs say \"Whisper supports 98 languages\". No source anywhere supports 98 for large-v2. The card states the models \"perform unevenly across languages\" with \"lower accuracy on low-resource and/or low-discoverability languages\" — treat any of these totals as coverage, not capability.", "languages_sort": null, "runs_on": "GPU. Repo table: ~1 GB VRAM for tiny and base, ~2 GB small, ~5 GB medium, ~10 GB large. The reference PyTorch implementation is not a CPU path; CPU deployment happens through third-party runtimes, which are separate artefacts.", "best_for": "The default baseline for anything multilingual and self-hosted. Near-100-language coverage, a permissive licence, and by a wide margin the largest downstream tooling, fine-tune and runtime ecosystem in ASR.", "diarization": "None, at any size. Whisper emits no speaker labels and nothing in the reference implementation produces them. Every 'Whisper with speakers' product bolts on pyannote or NeMo as a separate model, with its own licence and its own gate.", "watch": "Three things buyers find out late. (1) The licence you cite depends on which primary source you read: GitHub says MIT for code and weights, the openai/whisper-* HF cards say apache-2.0, and openai/whisper-large-v3-turbo says mit. All three are permissive, but they are not the same string in your attribution file. (2) large-v3 improved WER over large-v2 and is widely reported to hallucinate more on real-world audio — that belief rests on GitHub discussion threads and vendor blog posts, not a controlled published benchmark. (3) OpenAI has shipped no new open speech weights since large-v3-turbo in October 2024; the HF repos have not been touched since 2024 and the last tagged release is v20250625 (the GitHub repo itself is still being pushed to, most recently 2026-07-28, but not with weights). The model card advises against use 'in high-risk domains like decision-making contexts'.", "standout": "Near-complete language coverage under a permissive licence with the largest downstream runtime and fine-tune ecosystem in ASR.", "facets": [ "commercially-safe", "cpu-capable", "custom-vocab", "frozen", "no-diarization", "punctuation", "self-hostable", "translation", "word-timestamps" ], "hardware": "cpu", "params": "39 M tiny · 74 M base · 244 M small · 769 M medium · 1550 M large / large-v2 / large-v3", "architecture": "Encoder-decoder Transformer over 30-second log-Mel windows; 128 Mel bins on large-v3 (80 on earlier checkpoints), 32 encoder and 32 decoder layers, d_model 1280. large-v3 trained on 1 M hours weakly labelled plus 4 M hours pseudo-labelled by large-v2.", "vram": "~1 GB (tiny/base) · ~2 GB (small) · ~5 GB (medium) · ~10 GB (large), per the repo's own table", "quantisation": null, "fine_tuning": "None first-party. openai/whisper ships no fine-tuning script or recipe. Every fine-tune and distillation in this section — Distil-Whisper, KB-, NB-, Kotoba-, Belle-, CrisperWhisper — is somebody else's code against the released weights, usually via transformers.", "streaming": "None. transcribe() 'reads the entire file and processes the audio with a sliding 30-second window'. There is no native streaming path; streaming Whisper is always someone else's wrapper.", "latency_note": null, "realtime_factor": null, "audio_limits": "30-second receptive field. Longer audio is handled by sequential windowing in the transcribe() wrapper. No file-length cap when self-hosted.", "timestamps": "Segment-level by default. Word-level available via --word_timestamps (default False), which extracts them from cross-attention with dynamic time warping.", "punctuation": "Restored and cased natively — it is a sequence-to-sequence model trained on punctuated text, not a raw-token recogniser.", "custom_vocab": "Prompt conditioning only (--initial_prompt, default None). No phrase-boost API, no keyword list, no custom LM.", "output_formats": "txt, vtt, srt, tsv, json, jsonl — or `all`, which is the CLI default (--output_format choices, transcribe.py).", "translation": "X → English only (--task translate; choices are transcribe/translate). There is no English → X direction.", "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host is the only option for the weights. pip install, MIT/Apache code, no key.", "data_policy": null, "benchmarks": "Open ASR Leaderboard English short-form, snapshot 31-07-2026, 7 sets: large-v3 = 6.55 avg WER on cleaned references / 7.33 on original references, RTFx 462.22. Per-set on the original references, same run: AMI 14.86, Earnings22 11.59, GigaSpeech 8.40, LS-clean 1.55, LS-other 3.52, SPGISpeech 2.71, VoxPopuli 8.70. Hardware per the leaderboard repo: 1× H200 (141 GB); the leaderboard paper reports A100-SXM4-80GB for its runs. large-v2 card: 3.0% WER on LibriSpeech test-clean (printed as 3.0003583080317572 by the card's own eval snippet).", "robustness": "Model card warns the models \"perform unevenly across languages\" and that \"the predictions may include texts that are not actually spoken in the audio input (i.e. hallucination)\", arising from weakly supervised training on noisy data. The reference decoder ships mitigations rather than fixes: --no_speech_threshold (default 0.6), --compression_ratio_threshold (default 2.4) and --hallucination_silence_threshold (no default, i.e. off; requires --word_timestamps True).", "adoption": "Hugging Face downloads in the trailing month, checked 2026-08-01: large-v3 5,623,797 · base 5,530,510 · small 2,299,327 · tiny 1,800,310 · medium 347,775 · large-v2 81,922. GitHub 106,357 stars.", "released": "September 2022 (repo created 2022-09-16); large-v2 December 2022 (HF repo created 2022-12-05); large-v3 November 2023 (HF repo created 2023-11-07).", "status": "dormant", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/openai/whisper-large-v3", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "OpenAI Whisper English-only (tiny.en → medium.en)", "variants": null, "category": "open", "licence": "apache-2.0 declared on each Hugging Face card (verified on tiny.en, base.en, small.en and medium.en); MIT per the GitHub README covering the same weights.", "licence_class": "open", "price_note": "Free / self-host", "price_sort": null, "accuracy_note": "whisper-small.en card: a WER of 3.053% on LibriSpeech test-clean, printed as 3.053161596922323 by the card's own demo snippet rather than reported as a vendor eval — the card's model-index Test WER field is blank. The same card's model-index Evaluation results block carries mean WER 8.59 and RTFx 268.91 from the Open ASR Leaderboard, an undated older snapshot. None of the .en checkpoints appears in the current (31-07-2026) leaderboard snapshot — checked against all 74 entries — so there is no like-for-like comparison against the multilingual siblings.", "wer_sort": null, "languages_note": "English only. No translation task — the card states \"Multilingual speech recognition or speech translation is possible through use of a multilingual checkpoint.\"", "languages_sort": null, "runs_on": "GPU, ~1 GB VRAM (tiny.en/base.en), ~2 GB (small.en), ~5 GB (medium.en), per the Whisper repo's size table", "best_for": "English-only pipelines that never need another language: no language-token ambiguity, no translation path to misfire, and a smaller decoder vocabulary problem than the multilingual siblings.", "diarization": "None.", "watch": "There is no large.en. The line stops at medium.en and OpenAI has never extended it, so the English-only path has no large-model tier — Distil-Whisper is what fills that gap. Traffic says the same thing: small.en gets 51k downloads a month against multilingual small's 2.3M.", "standout": null, "facets": [ "commercially-safe", "english-only", "frozen", "no-diarization", "self-hostable", "word-timestamps" ], "hardware": "gpu-8", "params": "39 M tiny.en · 74 M base.en · 244 M small.en · 769 M medium.en", "architecture": "Same encoder-decoder Transformer as the multilingual family, trained on English speech recognition only.", "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "None.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Segment-level by default; word-level via --word_timestamps.", "punctuation": "Restored and cased.", "custom_vocab": null, "output_formats": null, "translation": "No — English-only checkpoints have no translation task at all.", "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host only.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "Hugging Face downloads in the trailing month, checked 2026-08-01: tiny.en 182,154 · base.en 62,414 · small.en 51,211 · medium.en 42,067 — roughly two orders of magnitude below the equivalent multilingual checkpoints (small 2,299,327).", "released": "September 2022 alongside the multilingual family (HF repos created 2022-09-26); HF repos last modified 2024-01-22.", "status": "dormant", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/openai/whisper-medium.en", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Whisper large-v3-turbo", "variants": null, "category": "open", "licence": "mit — verbatim `license: mit` in the model card frontmatter. Note this is a different string from the `apache-2.0` on openai/whisper-large-v3, the model it was pruned from.", "licence_class": "open", "price_note": "Free / self-host", "price_sort": null, "accuracy_note": "openai/whisper-large-v3-turbo — 7.01% avg WER at RTFx 782.56, Open ASR Leaderboard English short-form, 7 cleaned sets, 31-07-2026. Open ASR Leaderboard, English short-form, snapshot 31-07-2026: average WER 7.01 on cleaned references / 7.80 on original references, at RTFx 782.56, across 7 sets (AMI, Earnings22, GigaSpeech, LibriSpeech clean/other, SPGISpeech, VoxPopuli). Both averages are post-normalisation; the cleaned/original split is about which reference transcripts are used. Against large-v3 on the same run (6.55 / 7.33 at RTFx 462.22) that is roughly +0.45 pp WER for ~1.7× throughput. Hardware per the leaderboard repo: 1× H200 (141 GB); the leaderboard paper reports A100-SXM4-80GB for its own runs.", "wer_sort": 7.01, "languages_note": "The full large-v3 language set is retained — turbo's config.json carries the same vocab_size of 51866, and only decoder depth changed. That works out to 100 language tokens by whisper/model.py's own arithmetic, against the 99 the Open ASR Leaderboard's language column prints and the 98 OpenAI's API docs claim for hosted Whisper. See the multilingual Whisper row for the full conflict.", "languages_sort": null, "runs_on": "GPU, ~6 GB VRAM per the repo table", "best_for": "The default choice when you want large-v3's full language coverage but cannot pay for its decoder. Best throughput-per-language-covered in the OpenAI lineage.", "diarization": "None.", "watch": "Turbo cannot translate, and it fails silently. The upstream README states 'The `turbo` model is not trained for translation tasks' and 'The `turbo` model will return the original language even if `--task translate` is specified' — while the Hugging Face model card demonstrates generate_kwargs={\"task\": \"translate\"} with no warning at all. Two primary sources, one of them wrong, and the failure mode is a transcript in the wrong language rather than an error. Separately, the accuracy loss is not evenly distributed: on the 31-07-2026 run turbo's original-reference VoxPopuli WER is 11.22 against large-v3's 8.70, a much larger gap than the headline average implies.", "standout": "809 M parameters holding large-v3's entire language set at ~1.7× its leaderboard throughput.", "facets": [ "commercially-safe", "frozen", "no-diarization", "self-hostable", "word-timestamps" ], "hardware": "gpu-8", "params": "809 M", "architecture": "A fine-tuned pruned large-v3: 'the exact same model, except that the number of decoding layers have reduced from 32 to 4' (model card). Encoder untouched — config.json confirms 32 encoder layers, 4 decoder layers, 128 Mel bins.", "vram": "~6 GB", "quantisation": null, "fine_tuning": null, "streaming": "None.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Segment-level by default; word-level via the same DTW cross-attention route as base Whisper.", "punctuation": "Restored and cased.", "custom_vocab": null, "output_formats": null, "translation": "No — despite what the model card shows. See watch.", "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host only.", "data_policy": null, "benchmarks": "Open ASR Leaderboard, snapshot 31-07-2026, per-set on the original references: AMI 15.16, Earnings22 11.07, GigaSpeech 8.52, LS-clean 2.13, LS-other 3.70, SPGISpeech 2.79, VoxPopuli 11.22. The model card's own model-index quotes an older snapshot: Mean Wer 7.83, Rtfx 200.19.", "robustness": null, "adoption": "8,503,879 Hugging Face downloads in the trailing month and 3,208 likes (checked 2026-08-01) — the most-downloaded speech model in the openai org and ahead of large-v3 itself (5,623,797), though not the org's most-downloaded model overall: openai/clip-vit-base-patch32 (22,913,187) and openai/clip-vit-large-patch14 (8,850,031) both sit above it.", "released": "October 2024 (HF repo created 2024-10-01, last modified 2024-10-04). Still OpenAI's most recent open-weights speech release as of August 2026.", "status": "dormant", "verification": "verified", "verification_note": null, "rating": 7.01, "source_url": "https://huggingface.co/openai/whisper-large-v3-turbo", "rating_metric": "Average WER % over 7 cleaned English test sets (lower is better)", "rating_source": "Open ASR Leaderboard (English short-form)", "rating_url": "https://huggingface.co/spaces/hf-audio/open_asr_leaderboard", "rating_as_of": "2026-07-31", "rating_votes": null, "rating_rank": null }, { "name": "Whisper large-v2", "variants": null, "category": "open", "licence": "apache-2.0 on the Hugging Face card; MIT per the GitHub README.", "licence_class": "open", "price_note": "Free / self-host", "price_sort": null, "accuracy_note": "Model card: 3.0% WER on LibriSpeech test-clean (printed as 3.0003583080317572 by the card's own eval snippet). It is not in the current Open ASR Leaderboard snapshot — verified against all 74 entries at revision 1da4564 — so there is no like-for-like average against large-v3 or turbo, and the widely repeated 'v2 is better in practice' claim has no controlled published benchmark behind it.", "wer_sort": null, "languages_note": "99 language tokens by the reference implementation's arithmetic (vocab_size 51865; num_languages = n_vocab − 51765 − 1). Trained on 680,000 hours; the card states the non-English portion \"represents 98 different languages\".", "languages_sort": null, "runs_on": "GPU, ~10 GB VRAM", "best_for": "The fallback when large-v3's hallucination behaviour is your binding constraint and you have measured it on your own audio. Also the reproduction target for anything published between December 2022 and November 2023.", "diarization": "None.", "watch": "The reason people still reach for large-v2 — that large-v3 hallucinates more on real audio — is folklore-grade evidence: GitHub discussion threads and vendor blog posts, no controlled benchmark. Meanwhile the model card's own limitations section warns that all Whisper checkpoints 'may include texts that are not actually spoken in the audio input'. If v2-vs-v3 hallucination matters to your product, you have to measure it yourself; nobody has published the experiment.", "standout": null, "facets": [ "commercially-safe", "frozen", "no-diarization", "self-hostable", "word-timestamps" ], "hardware": "gpu-12", "params": "1550 M", "architecture": "Encoder-decoder Transformer, 80 Mel bins (config.json num_mel_bins 80), 32 encoder and 32 decoder layers, 30-second windows, 680k hours of weak supervision.", "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "None.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Segment-level; word-level via --word_timestamps.", "punctuation": "Restored and cased.", "custom_vocab": null, "output_formats": null, "translation": "X → English only.", "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host only.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "81,922 downloads in the trailing month against 1,801 likes (checked 2026-08-01) — the likes are historical, the traffic is 1.5% of large-v3's.", "released": "December 2022 (HF repo created 2022-12-05)", "status": "dormant", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/openai/whisper-large-v2", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Distil-Whisper distil-large-v3.5", "variants": null, "category": "open", "licence": "MIT (model card frontmatter and repo LICENSE)", "licence_class": "open", "price_note": "Free / self-host", "price_sort": null, "accuracy_note": "Open ASR Leaderboard, English short-form, snapshot 31-07-2026: average WER 6.10 on cleaned references / 7.03 on original references at RTFx 874 — better WER *and* higher throughput than openai/whisper-large-v3-turbo (7.01 / 7.80 at RTFx 782.56) on the same run. Hardware per the leaderboard repo: 1× H200 (141 GB); the leaderboard paper reports A100-SXM4-80GB for its own runs. The card's own out-of-distribution figures are a different measurement on a different basis: short-form OOD 7.08 vs turbo 7.30 vs distil-large-v3 7.53, and long-form OOD 11.39 vs turbo 10.25 vs distil-large-v3 11.6. Note the card's short-form 'OOD Average' is a mean of two datasets only.", "wer_sort": null, "languages_note": "English only — the leaderboard's own language column lists 1. The distil-whisper training recipe generalises to other languages but no first-party non-English checkpoint exists.", "languages_sort": null, "runs_on": "GPU. No first-party VRAM figure published; 756 M params sits between Whisper medium and large.", "best_for": "English transcription where you want the best accuracy-per-unit-throughput in the Whisper lineage, and as a speculative-decoding draft model for whisper-large-v3.", "diarization": "None.", "watch": "The card's own long-form table has it LOSING to large-v3-turbo (11.39 vs 10.25 OOD WER) even while it wins short-form — if your audio is podcasts, meetings or calls, the leaderboard headline is measuring the wrong thing for you. It is also English only, the distil-whisper GitHub repo has not been pushed to since 8 January 2025, and traffic is ~237× below distil-large-v3, so you will be running the checkpoint almost nobody else is.", "standout": "The only Whisper-lineage checkpoint in the 31-07-2026 snapshot that beats whisper-large-v3-turbo on both WER and throughput in the same leaderboard run.", "facets": [ "commercially-safe", "english-only", "frozen", "no-diarization", "self-hostable", "word-timestamps" ], "hardware": null, "params": "756 M", "architecture": "Whisper large-v3 encoder frozen, decoder distilled to a small subset of teacher layers. Trained on ~98,000 hours (up from distil-large-v3's 22,000) with an 80-epoch 'patient teacher' schedule (against 11 previously), batch size raised to 4,096 packed segments, and previous-prompt append probability cut from 50% to 20%.", "vram": null, "quantisation": null, "fine_tuning": "Yes — the distil-whisper repo (MIT) ships the distillation recipe and is explicitly documented as general enough to distil Whisper for other languages.", "streaming": "None native.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Segment-level; word-level supported through transformers.", "punctuation": "Restored and cased.", "custom_vocab": null, "output_formats": null, "translation": "No.", "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host only. A first-party CTranslate2 conversion is published as distil-whisper/distil-large-v3.5-ct2.", "data_policy": null, "benchmarks": "Open ASR Leaderboard, snapshot 31-07-2026, per-set on the original references: AMI 13.36, Earnings22 10.83, GigaSpeech 8.26, LS-clean 1.93, LS-other 4.50, SPGISpeech 2.62, VoxPopuli 7.69. The card's own short-form OOD average of 7.08 is the mean of exactly two out-of-distribution sets — Earnings22 11.29 and SPGISpeech 2.87 — and the same holds for every column of that table (large-v3 7.12, turbo 7.30, distil-v3 7.53). Card's long-form OOD, four sets: Meanwhile 6.79, Earnings21 10.6, Earnings22 14.19, Rev16 13.98 (avg 11.39).", "robustness": null, "adoption": "6,838 downloads in the trailing month and 93 likes (checked 2026-08-01) — against distil-large-v3's 1,623,851. The community has not migrated.", "released": "HF repo distil-whisper/distil-large-v3.5 created 2024-12-05; the CTranslate2 sibling distil-large-v3.5-ct2 created 2025-03-14. No first-party dated announcement post found, so treat the public release as somewhere between those two dates.", "status": "dormant", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/distil-whisper/distil-large-v3.5", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Distil-Whisper distil-large-v3", "variants": null, "category": "open", "licence": "MIT (model card frontmatter and repo LICENSE)", "licence_class": "open", "price_note": "Free / self-host", "price_sort": null, "accuracy_note": "Model card, Distil-Whisper's own out-of-distribution suite: 9.7% short-form WER, 10.8% sequential long-form, 10.9% chunked long-form, and — verbatim — \"evaluated on the ESB benchmark datasets as part of the OpenASR leaderboard, where it performs to within 0.2% WER of Whisper\", at 6.3× faster than large-v3. The distil-large-v3.5 card scores the same checkpoint at 7.53 short-form OOD and 11.6 long-form OOD on its own sets — the two cards use different sets and different bases and are not comparable. Not in the current Open ASR Leaderboard snapshot.", "wer_sort": null, "languages_note": "English only.", "languages_sort": null, "runs_on": "GPU. No first-party VRAM figure published.", "best_for": "Cutting Whisper large-v3 inference cost while keeping its exact output, by running it as the draft model in speculative decoding. Also the safe distil default, because it is what everyone else is running.", "diarization": "None.", "watch": "It is superseded on accuracy by distil-large-v3.5 and not superseded on adoption — 1.6 M downloads a month against 6,838. That gap is the finding: if you follow the benchmark you ship the untested checkpoint, and if you follow the crowd you ship the older one. English only either way, and the upstream repo has been quiet since 8 January 2025.", "standout": "The first Distil-Whisper that works as a speculative-decoding draft model for large-v3, which the card says \"mathematically ensures that exactly the same outputs as Whisper are obtained, while being 2 times faster\".", "facets": [ "commercially-safe", "english-only", "frozen", "no-diarization", "self-hostable", "word-timestamps" ], "hardware": null, "params": "756 M", "architecture": "Whisper large-v3 encoder copied and frozen; decoder is a subset of the teacher's layers. Specifically optimised for OpenAI's sequential long-form algorithm.", "vram": null, "quantisation": null, "fine_tuning": "Yes — the distil-whisper repo recipe.", "streaming": "None native.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Segment-level; word-level through transformers.", "punctuation": "Restored and cased.", "custom_vocab": null, "output_formats": null, "translation": "No.", "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host only. First-party CTranslate2 conversions published in the distil-whisper org.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "1,623,851 downloads in the trailing month, 377 likes (checked 2026-08-01) — ~237× the traffic of its own successor.", "released": "March 2024 (HF repo distil-whisper/distil-large-v3 created 2024-03-21).", "status": "dormant", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/distil-whisper/distil-large-v3", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Distil-Whisper compact English (distil-small.en / distil-medium.en)", "variants": null, "category": "device", "licence": "MIT (model card frontmatter)", "licence_class": "open", "price_note": "Free / self-host", "price_sort": null, "accuracy_note": "Model card figures on Distil-Whisper's own OOD suite: distil-small.en 12.1% short-form / 12.8% long-form WER at 5.6× large-v2's speed, LibriSpeech validation-clean 3.43%; distil-medium.en 11.1% short-form / 12.4% long-form at 6.8×. Neither appears in the current Open ASR Leaderboard snapshot, and no CPU or on-device RTF is published for either.", "wer_sort": null, "languages_note": "English only.", "languages_sort": null, "runs_on": "Vendor frames distil-small.en as \"the ideal choice for memory constrained applications (e.g. on-device)\" at 166 M params. First-party inference is still PyTorch/transformers — no CPU real-time factor, no phone or browser figure, is published by the vendor.", "best_for": "English transcription with Whisper-style punctuation and casing inside a 166–394 M parameter budget, where memory footprint is the binding constraint rather than accuracy.", "diarization": "None.", "watch": "distil-medium.en is both faster (6.8× vs 5.6×) and more accurate (11.1% vs 12.1% short-form) than distil-small.en — the only reason to take small.en is the 166 M footprint. And the layer counts run backwards from intuition: the smaller model has a 4-layer decoder, the larger one has 2. Do not reason about latency from the parameter count here.", "standout": null, "facets": [ "browser", "commercially-safe", "cpu-capable", "edge-capable", "english-only", "frozen", "no-diarization", "self-hostable", "word-timestamps" ], "hardware": "browser", "params": "166 M (distil-small.en) · 394 M (distil-medium.en)", "architecture": "Frozen Whisper encoder plus a truncated decoder — 4 decoder layers on distil-small.en, 2 on distil-medium.en and distil-large-v2.", "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "None native.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Segment-level; word-level through transformers.", "punctuation": "Restored and cased.", "custom_vocab": null, "output_formats": null, "translation": "No.", "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host only.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "distil-small.en 8,719 downloads in the trailing month (112 likes); distil-medium.en 6,002 (127 likes), checked 2026-08-01.", "released": "HF repos created 2023-10-24 (distil-medium.en) and 2023-12-06 (distil-small.en); the Distil-Whisper paper is arXiv:2311.00430, November 2023. The medium checkpoint therefore predates its own paper by about a week and the small one trails it by six.", "status": "dormant", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/distil-whisper/distil-small.en", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "CrisperWhisper", "variants": null, "category": "open", "licence": "cc-by-nc-4.0 on the weights (Hugging Face card frontmatter and API). The inference repository is separately MIT — \"The inference code in this repository is MIT-licensed\", which the repo follows with \"use it freely, commercially or otherwise\". Split code-vs-weights: the MIT does not reach the checkpoint.", "licence_class": "bad", "price_note": "Free for research and non-commercial use only. Commercial deployment requires a licence negotiated with Nyra.", "price_sort": null, "accuracy_note": "Open ASR Leaderboard, English short-form, snapshot 31-07-2026: average WER 5.76 on cleaned references / 6.56 on original references — the lowest of any of the five Whisper-lineage checkpoints in that snapshot — at RTFx 33.25. Both averages are post-normalisation; cleaned/original refers to which reference transcripts are used. Hardware per the leaderboard repo: 1× H200 (141 GB); the leaderboard paper reports A100-SXM4-80GB for its own runs. Model card's own comparison against whisper-large-v3: AMI 8.72 vs 16.01, TED-LIUM 3.35 vs 3.9, LibriSpeech clean 1.74 vs 2.03, average 6.66 vs 7.7.", "wer_sort": 5.76, "languages_note": "English and German per the card; the leaderboard entry lists 1 language.", "languages_sort": null, "runs_on": "GPU. No first-party VRAM figure is published. It is a full whisper-large-v3 fine-tune rather than a pruned one, so the Whisper repo's ~10 GB figure for `large` is the closest published proxy — that number is OpenAI's, not Nyra's.", "best_for": "Verbatim transcription where the disfluencies are the data: clinical speech, stuttering and fluency research, forensic and linguistic transcription, and any pipeline that needs tight word boundaries. Non-commercial use only.", "diarization": "None. It gives you precise word boundaries, not speakers — a distinction that trips up buyers who assume timestamp precision implies speaker separation.", "watch": "Three traps. (1) CC-BY-NC-4.0 on the weights is a hard block on commercial use — the MIT on the inference repo is a different artefact and does not help you. (2) The RTFx is 33.25 on the leaderboard's own run, against 462.22 for whisper-large-v3 and 782.56 for turbo on the same run. That is roughly fourteen times slower than the model it is fine-tuned from, and nobody quotes it next to the WER. (3) The card itself now carries a deprecation notice — \"CrisperWhisper (v1) is superseded by CrisperWhisper 2.0\", which it says is 3–5× faster. The successor is also non-commercial.", "standout": "Verbatim output with fillers and stutters preserved plus DTW word boundaries — Whisper deletes disfluencies by design and CrisperWhisper is built to keep them.", "facets": [ "frozen", "no-diarization", "non-commercial", "punctuation", "self-hostable", "word-timestamps" ], "hardware": "gpu-12", "params": "Not published first-party. The leaderboard's Size (B) column lists 2 — the same rounded value it gives openai/whisper-large-v3, which is 1550 M. Read it as large-v3 class, not as a measured 2 B.", "architecture": "whisper-large-v3 fine-tuned for verbatim output, with word-level timestamps recovered by dynamic time warping over cross-attention.", "vram": null, "quantisation": null, "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Word-level via DTW, and the reason to use it — the vendor's whole pitch is boundary accuracy.", "punctuation": "Restored, and disfluencies preserved rather than cleaned — fillers, stutters and false starts are transcribed, not deleted.", "custom_vocab": null, "output_formats": null, "translation": "Not offered.", "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host only, and only non-commercially.", "data_policy": null, "benchmarks": "Open ASR Leaderboard, snapshot 31-07-2026, per-set on the original references: AMI 8.04, Earnings22 12.43, GigaSpeech 8.96, LS-clean 1.99, LS-other 3.95, SPGISpeech 1.94, VoxPopuli 8.60; RTFx 33.25. Card: AMI IHM segmentation F1 0.79 vs whisper-large-v3's 0.66 (also Common Voice 0.80 vs 0.48, TIMIT 0.69 vs 0.54).", "robustness": null, "adoption": "nyralabs/CrisperWhisper 28,279 downloads in the trailing month, 337 likes (checked 2026-08-01). The org moved from nyrahealth to nyralabs; the old path still resolves and returns the nyralabs id.", "released": "2024 (HF repo created 2024-08-29; paper and initial release that year); repo last modified 2026-07-22.", "status": "dormant", "verification": "mixed", "verification_note": null, "rating": 5.76, "source_url": "https://huggingface.co/nyralabs/CrisperWhisper", "rating_metric": "Average WER % over 7 cleaned English test sets (lower is better)", "rating_source": "Open ASR Leaderboard (English short-form)", "rating_url": "https://huggingface.co/spaces/hf-audio/open_asr_leaderboard", "rating_as_of": "2026-07-31", "rating_votes": null, "rating_rank": null }, { "name": "CrisperWhisper 2.0", "variants": null, "category": "open", "licence": "Nyra Health Non-Commercial Research License on the standard weights (HF metadata: license `other`, license_name `nyra-health-non-commercial-research`, license_link LICENSE.md). The 'Pro' checkpoints are commercial-licence-only and manually gated on Hugging Face (gated: manual, confirmed on CrisperWhisper2.0_large_pro). The inference repository is separately MIT: \"The model weights are not MIT.\"", "licence_class": "bad", "price_note": "Free for research and non-commercial use. Commercial use — and any use of the Pro checkpoints — requires a licence from Nyra, terms not published.", "price_sort": null, "accuracy_note": "All figures are from Nyra's own 'Nyra Verbatim Speech Benchmark' and are vendor marketing until reproduced. Confirmed on the card: disfluency F1 averaged over ten languages of 93.5 for CrisperWhisper 2.0 Pro and 87.8 for CrisperWhisper 2.0, and a TIMIT mean absolute word-boundary error of 29.6 ms against xAI Grok's 37.1 ms. The competitor rows also cited in circulation — ElevenLabs Scribe v2 at 79.2 F1 and 51.3 ms, Microsoft MAI-Transcribe-1.5 at 77.5 F1 — were not confirmed on the card read and are not published here as fact. Not in the Open ASR Leaderboard snapshot, so no independent WER exists.", "wer_sort": null, "languages_note": "Multilingual — v1 was English and German only. Benchmarked across ten languages; the card says \"Verbatim and intended modes work across most languages Whisper supports\", without enumerating them.", "languages_sort": null, "runs_on": "GPU. Sizes released: large, turbo, medium, small — so the hardware envelope follows whichever Whisper tier you pick. No VRAM figures published.", "best_for": "Multilingual verbatim transcription and disfluency detection with tight word boundaries — clinical, research and speech-pathology work. Non-commercial only unless you buy a licence.", "diarization": "None.", "watch": "The number you read is not the number you can download. The headline 93.5 disfluency F1 belongs to CrisperWhisper 2.0 Pro, which is commercial-licence-only and manually gated; the freely downloadable checkpoint scores 87.8 on the same vendor benchmark. And the benchmark is Nyra's, run by Nyra, against competitors Nyra selected — there is no third-party or leaderboard confirmation of any of it as of August 2026. The MIT on the inference repo covers code only; both weight tiers are non-commercial or paid.", "standout": "~30 ms word-boundary accuracy with disfluency detection across ten languages — but every number is the vendor's own.", "facets": [ "actively-maintained", "no-diarization", "non-commercial", "self-hostable", "word-timestamps" ], "hardware": null, "params": null, "architecture": "Whisper-lineage fine-tune with CrisperWhisper's verbatim objective, paired verbatim and 'intended' output modes from the same audio, long-form processing without chunk artifacts, a 'verbatimize' mode that takes audio plus a trusted clean transcript and \"upgrade[s] an existing clean transcript with the disfluencies that are actually in the audio\", and built-in hallucination mitigation.", "vram": null, "quantisation": null, "fine_tuning": null, "streaming": null, "latency_note": "Vendor claims 1.3–1.4× speed-up with speculative decoding on the CTranslate2 backend. No hardware named.", "realtime_factor": null, "audio_limits": null, "timestamps": "Word-level, ~29.6 ms mean absolute boundary error on TIMIT read speech (vendor-measured).", "punctuation": "Restored, with disfluencies preserved.", "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host only, non-commercially.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "Trailing-month downloads checked 2026-08-01: CrisperWhisper2.0_large 2,340 · _turbo 1,273 · _medium 763 · _small 368 · _large_pro 36 (gated). The four open checkpoints total 4,744 against v1's 28,279 — about a sixth of v1's traffic.", "released": "July 2026 (HF repos created 2026-07-15, last modified 2026-07-27; paper arXiv:2607.18934, \"Transcription Policy as a Latent Variable: Activating Controllable Verbatim ASR with Word-Level Timing\", submitted 21 July 2026).", "status": "active", "verification": "vendor-claim", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/nyralabs/CrisperWhisper2.0_large", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Lite-Whisper (LiteASR)", "variants": null, "category": "open", "licence": "apache-2.0 on the weights (Hugging Face card metadata, and the Open ASR Leaderboard's own licence column)", "licence_class": "open", "price_note": "Free / self-host", "price_sort": null, "accuracy_note": "Open ASR Leaderboard, English short-form, snapshot 31-07-2026: efficient-speech/lite-whisper-large-v3-acc average WER 6.28 on cleaned references / 7.08 on original references at RTFx 203.91 — a better WER than openai/whisper-large-v3 (6.55) on the same run, at under half its throughput (462.22). Hardware per the leaderboard repo: 1× H200 (141 GB); the leaderboard paper reports A100-SXM4-80GB for its own runs. The model card's own ESB figures tell a different story per variant: lite-whisper-large-v3-turbo 12.6% WER, -turbo-acc 10.2%, against a whisper-large-v3-turbo baseline of 10.1%.", "wer_sort": 6.28, "languages_note": "The language coverage of the compressed Whisper checkpoint is preserved — the leaderboard's own column lists 99 for lite-whisper-large-v3-acc, though the large-v3 checkpoint it compresses carries 100 language tokens by the reference implementation's arithmetic. See the multilingual Whisper row for the source conflict.", "languages_sort": null, "runs_on": "GPU. Encoder memory drops with the compression; no first-party VRAM figure is published.", "best_for": "Cutting Whisper encoder cost while keeping full large-v3 language coverage, in encoder-bound workloads such as short clips and high-concurrency batch serving.", "diarization": "None.", "watch": "Effectively nobody runs it: 94 downloads in the trailing month on the most-used variant. It also only compresses the encoder, so on long transcripts — where decoding dominates — the saving largely disappears. And the trim you pick decides whether the compression was free or expensive: on the card's own ESB numbers -turbo-acc lands at 10.2 against the uncompressed turbo's 10.1, while the plain -turbo trim degrades to 12.6.", "standout": "Encoder-only low-rank compression — you keep the full language set and the full decoder while cutting encoder parameters ~41%.", "facets": [ "commercially-safe", "frozen", "no-diarization", "self-hostable" ], "hardware": null, "params": "Encoder compressed from 635 M to 374 M on the turbo variant (421 M on -turbo-acc) — a 41% encoder cut on the plain trim. Full family spans tiny through large-v3 and large-v3-turbo, each in default / -acc / -fast trims.", "architecture": "Low-rank approximation of the Whisper encoder (LiteASR, Kamahori et al., arXiv:2502.20583). The decoder is untouched.", "vram": null, "quantisation": "Not published — this is low-rank factorisation, not quantisation, and no GGUF/ONNX export is offered first-party.", "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host only.", "data_policy": null, "benchmarks": "Open ASR Leaderboard, snapshot 31-07-2026, lite-whisper-large-v3-acc per-set on the original references: AMI 14.81, Earnings22 10.69, GigaSpeech 8.53, LS-clean 1.63, LS-other 3.50, SPGISpeech 2.62, VoxPopuli 7.77. Card (ESB average WER): -turbo 12.6, -turbo-acc 10.2, whisper-large-v3-turbo 10.1.", "robustness": null, "adoption": "Trailing-month downloads checked 2026-08-01: lite-whisper-large-v3-turbo 94 (12 likes) · -turbo-acc 81 · large-v3-acc 70 · large-v3 65, with the tiny/base/small/medium trims between 4 and 19. Against 8.5 M/month for openai/whisper-large-v3-turbo.", "released": "HF repos last modified between 2025-03 and 2026-07; paper arXiv:2502.20583 (Kamahori et al., 2025).", "status": "dormant", "verification": "verified", "verification_note": null, "rating": 6.28, "source_url": "https://github.com/efeslab/LiteASR", "rating_metric": "Average WER % over 7 cleaned English test sets (lower is better)", "rating_source": "Open ASR Leaderboard (English short-form)", "rating_url": "https://huggingface.co/spaces/hf-audio/open_asr_leaderboard", "rating_as_of": "2026-07-31", "rating_votes": null, "rating_rank": null }, { "name": "Whisper-Medusa (aiOla)", "variants": null, "category": "open", "licence": "MIT declared on the Hugging Face card metadata; the GitHub repository is also MIT-licensed but the README says nothing about the weights specifically.", "licence_class": "dead", "price_note": "Free / self-host", "price_sort": null, "accuracy_note": "Repo's own figure: 4.1% WER for the Medusa-Linear variant against 4.0% for vanilla Whisper, at ~1.5× generation speed. LibriSpeech test sets only, no hardware named, never evaluated on the Open ASR Leaderboard or any multi-domain suite.", "wer_sort": null, "languages_note": "English only in practice — 'The Medusa heads were optimized for English, so for optimal performance and speed improvements, please use English audio only.' A whisper-medusa-multilingual checkpoint exists with 3 downloads in the trailing month.", "languages_sort": null, "runs_on": "GPU, Whisper large envelope plus 10 Medusa heads. No first-party VRAM figure; the Whisper repo's ~10 GB for `large` is the closest published proxy.", "best_for": "Nothing, now. Historically: faster Whisper decoding on English via multi-token prediction. Read it as a reference implementation of Medusa-style decoding on an encoder-decoder ASR model, not as something to deploy.", "diarization": "None.", "watch": "The GitHub repository aiola-lab/whisper-medusa is archived — the API returns archived: true, so this is discontinued, not merely quiet. No archival date is published: GitHub exposes no archived_at for the repo, its last push was 2026-07-02 and its last metadata update 2026-07-23, so do not trust any specific date you see quoted for it. Weights are frozen at Whisper large, the heads are English-only, and the whole point (faster decoding) is now better served by speculative decoding with distil-large-v3 as the draft model, which is maintained and guarantees bit-identical output. Medusa guarantees neither: the WER moves, if only from 4.0% to 4.1% on LibriSpeech.", "standout": "Multi-token-per-iteration decoding heads rather than a distilled or pruned decoder — a genuinely different acceleration mechanism from everything else in this section.", "facets": [ "discontinued", "english-only", "no-diarization", "self-hostable" ], "hardware": "gpu-12", "params": "Whisper large backbone plus 10 Medusa heads.", "architecture": "Medusa decoding heads predicting multiple tokens per iteration, attached to Whisper large. Two published variants, Medusa-Linear (a single linear layer per head) and Medusa-Block (a shared decoder block), trained and evaluated on LibriSpeech.", "vram": null, "quantisation": null, "fine_tuning": null, "streaming": null, "latency_note": "~1.5× faster generation than vanilla Whisper (vendor figure, hardware not named).", "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host only.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "aiola/whisper-medusa-v1: 5 downloads in the trailing month against 179 likes (checked 2026-08-01). The other three checkpoints total 10 (linear-libri 4, block-libri 3, multilingual 3). The likes are from the 2024 launch; the downloads are from nobody.", "released": "August 2024 (aiola/whisper-medusa-v1 HF repo created 2024-08-01; the aiola-lab/whisper-medusa GitHub repo was created 2024-07-17).", "status": "dead", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://github.com/aiola-lab/whisper-medusa", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "KB-Whisper (KBLab, Swedish)", "variants": null, "category": "open", "licence": "apache-2.0 (Hugging Face card metadata)", "licence_class": "open", "price_note": "Free / self-host", "price_sort": null, "accuracy_note": "KBLab's own comparison against openai/whisper-large-v3 on Swedish test sets: FLEURS 5.4 vs 7.8 WER, CommonVoice 4.1 vs 9.5, NST 5.2 vs 11.3 — the card claims the best model \"reduces the Word Error Rate (WER) by an average of 47% compared to OpenAI's whisper-large-v3\". Vendor-run on vendor-chosen sets; the model is not on the Open ASR Leaderboard, so it cannot be compared to the English rows here.", "wer_sort": null, "languages_note": "Swedish only.", "languages_sort": null, "runs_on": "GPU, inherited from the Whisper size fine-tuned from — tiny through large released. No first-party VRAM figure.", "best_for": "Swedish transcription. A ~47% WER reduction over whisper-large-v3 on Swedish is not something you recover with prompting or post-processing.", "diarization": "None.", "watch": "Every accuracy number is KBLab's own, on sets KBLab selected, against a single baseline. More importantly, the training corpus is dominated by broadcast subtitles (37,371 h) and parliamentary records (27,068 h) — text that is edited and compressed rather than verbatim — against just 608 h of NST and dialect material, and the card publishes no verbatim-versus-edited comparison. The register the model produces may not be the register your audio contains. Check that against your own material before committing.", "standout": "First-party CTranslate2, GGML, ONNX and safetensors builds shipped alongside the checkpoint, across all five sizes.", "facets": [ "commercially-safe", "frozen", "no-diarization", "self-hostable" ], "hardware": null, "params": null, "architecture": "whisper-large-v3 fine-tuned on over 50,000 hours of Swedish speech: subtitles 37,371 h, Riksdag parliamentary records 27,068 h, NST 500 h, ISOF dialect corpus 108 h.", "vram": null, "quantisation": "First-party CTranslate2, GGML (quantised and unquantised), ONNX and safetensors builds — unusual for a community fine-tune, which normally leaves conversion to third parties.", "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host only.", "data_policy": null, "benchmarks": "KBLab card, Swedish: FLEURS 5.4 WER / 89.8 BLEU, CommonVoice 4.1 / 87.2, NST 5.2 / 81.1, against whisper-large-v3's 7.8 / 84.9, 9.5 / 79.1, 11.3 / 75.1 respectively.", "robustness": null, "adoption": "Trailing-month downloads checked 2026-08-01: kb-whisper-large 7,725 (64 likes) · small 875 · base 693 · tiny 413 · medium 380.", "released": "February 2025 (HF repos created 2025-02-14); last modified 2025-08-27. No first-party dated announcement located.", "status": "dormant", "verification": "vendor-claim", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/KBLab/kb-whisper-large", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "NB-Whisper (NbAiLab, Norwegian)", "variants": null, "category": "open", "licence": "apache-2.0 (Hugging Face card YAML frontmatter)", "licence_class": "open", "price_note": "Free / self-host", "price_sort": null, "accuracy_note": "The model card carries no WER table at all — it says \"Paper: Coming soon\" and cites arXiv:2212.04356, OpenAI's Whisper paper. The figures come from the National Library of Norway's own paper, 'Whispering in Norwegian: Navigating Orthographic and Dialectic Challenges' (Kummervold et al., arXiv:2402.01917, Interspeech 2024 pp. 3984–3988), whose abstract states verbatim: \"We show that we are able to improve the Norwegian Bokmål transcription by OpenAI Whisper Large-v3 from a WER of 10.4 to 6.6 on the Fleurs Dataset and from 6.8 to 2.2 on the NST dataset.\" The card separately reports training of 250,000 steps on 8 M aligned 30-second clips, ~66,000 hours. Not on the Open ASR Leaderboard.", "wer_sort": null, "languages_note": "Norwegian Bokmål, Norwegian Nynorsk, and English.", "languages_sort": null, "runs_on": "GPU, inherited from the Whisper size: tiny 39 M through large 1550 M released.", "best_for": "Norwegian transcription across both written standards, where whisper-large-v3's Bokmål error rate is unacceptable.", "diarization": "None.", "watch": "The default checkpoints are trained to \"convert spoken language into grammatically correct written sentences, which might not always be word-for-word\" — not what was actually said. If you need verbatim Norwegian you must deliberately select the `-verbatim` checkpoints, which get 229 downloads a month against the main model's 7,194, meaning most users are getting the cleaned-up transcript without realising there was a choice. Nothing new has shipped since the distil-turbo beta of November 2024, which is still beta and was last touched in September 2025.", "standout": "Bokmål and Nynorsk in one checkpoint, with an explicitly separate verbatim variant for linguistic work.", "facets": [ "commercially-safe", "frozen", "no-diarization", "self-hostable" ], "hardware": null, "params": "39 M tiny · 74 M base · 244 M small · 769 M medium · 1550 M large", "architecture": "openai/whisper-large-v3 (and smaller siblings) fine-tuned on NST, Storting parliamentary speech, NRK subtitles and National Library audiobooks.", "vram": null, "quantisation": "whisper.cpp GGML including q5_0, plus ONNX, TensorFlow and safetensors published first-party.", "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host only.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "Trailing-month downloads checked 2026-08-01: nb-whisper-large 7,194 (38 likes) · medium 632 · small 416 · large-distil-turbo-beta 291 · large-verbatim 229.", "released": "2024 — main checkpoints, HF repos last modified 2024-07-13. nb-whisper-large-distil-turbo-beta was created 2024-11-28 and last touched 2025-09-10, and is still labelled beta.", "status": "dormant", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/NbAiLab/nb-whisper-large", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Kotoba-Whisper (v2.0 / v2.2 / bilingual v1.0)", "variants": null, "category": "open", "licence": "apache-2.0 on all Kotoba checkpoints. The catch is downstream: kotoba-whisper-v2.2's diarization pipeline will not run until you accept the gated terms-of-use for pyannote/segmentation-3.0 and pyannote/speaker-diarization-3.1 on Hugging Face — a separate licence on a separate vendor's weights that the Apache-2.0 here does not cover.", "licence_class": "warn", "price_note": "Free / self-host", "price_sort": null, "accuracy_note": "kotoba-whisper-v2.0 card, Japanese test sets, CER against whisper-large-v3: CommonVoice 8 9.2 vs 8.5, JSUT Basic 5000 8.4 vs 7.1, ReazonSpeech held-out 11.6 vs 14.9. Kotoba wins only on ReazonSpeech — the set drawn from its own training distribution — and loses to plain large-v3 on both external sets. The speed claim is 6.3× faster than large-v3. All vendor-run. The same card's WER column reads 55.6–63.7, which reflects Japanese word segmentation rather than intelligibility: for Japanese, read CER.", "wer_sort": null, "languages_note": "Japanese (v2.x). kotoba-whisper-bilingual-v1.0 adds English ASR and both ja→en and en→ja speech translation.", "languages_sort": null, "runs_on": "GPU. 756 M params — full Whisper large-v3 encoder plus a 2-layer decoder. No first-party VRAM figure.", "best_for": "Japanese transcription at roughly 6× large-v3's speed, and — via v2.2 — the one place in the Whisper lineage where transcription, punctuation and speaker labels arrive from a single first-party recipe. It is not a quality upgrade over large-v3 in general: on the card's own numbers it trades 0.7–1.3 CER points away on CommonVoice and JSUT to gain 3.3 on in-domain ReazonSpeech.", "diarization": "v2.2 only, and as postprocessing rather than in the ASR model: 'speaker diarization with diarizers and adding punctuation with punctuators'. It depends on pyannote.audio and requires accepting terms-of-use for pyannote/segmentation-3.0 and pyannote/speaker-diarization-3.1, then authenticating with huggingface-cli login. v2.0 and bilingual v1.0 have none.", "watch": "The checkpoint almost everyone downloads is v2.2 (204k/month against v2.0's 11.5k) and it is the one that will not run until you accept two gated pyannote licences and install pyannote.audio — the Apache-2.0 on the Kotoba weights stops at the Kotoba weights. Treat the diarization as a pyannote deployment with a Kotoba wrapper, and licence it accordingly. Separately, the bilingual checkpoint's translation is poor by its own card: 98.7 WER ja→en on FLEURS against a cascaded baseline's 67.1. The whole org has been untouched since October 2024.", "standout": "The only Whisper-lineage release shipping a first-party diarization and punctuation postprocessing pipeline, and the only one that translates into Japanese rather than only into English.", "facets": [ "diarization", "frozen", "licence-catch", "punctuation", "self-hostable", "translation" ], "hardware": null, "params": "756 M", "architecture": "whisper-large-v3 distilled on the ReazonSpeech `all` subset — 7,203,957 clips after filtering out transcriptions above 10 WER. Full encoder, 2-layer decoder taken from the teacher's first and last layers.", "vram": null, "quantisation": null, "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": "v2.0 does not restore Japanese punctuation reliably; v2.2 adds it via the external `punctuators` package (0.0.5) under an add_punctuation flag.", "custom_vocab": null, "output_formats": null, "translation": "Bilingual v1.0 only: ja↔en in both directions — the only checkpoint in this section that translates INTO a language other than English.", "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host only. First-party faster-whisper (CTranslate2) and GGML conversions published.", "data_policy": null, "benchmarks": "kotoba-whisper-bilingual-v1.0 card, against whisper-large-v3 where applicable: Japanese ASR CER 9.8 vs 8.5 (CommonVoice 8), 9.3 vs 7.1 (JSUT Basic 5000), 16.8 vs 14.9 (ReazonSpeech); English ASR WER 2.4 vs 2.1 (LibriSpeech); ja→en translation WER 73.9 (CoVoST2) and 98.7 (FLEURS) against a cascaded NLLB-3.3B baseline's 64.3 and 67.1; en→ja CER 69.1 (CoVoST2) and 74.4 (FLEURS) against 62.4 and 63.5.", "robustness": null, "adoption": "Trailing-month downloads checked 2026-08-01: kotoba-whisper-v2.2 203,984 (123 likes) · v2.0 11,496 · bilingual-v1.0 9,444 · v2.0-faster 2,409 · v2.1 1,186.", "released": "2024 — all repos last modified between September and October 2024.", "status": "dormant", "verification": "vendor-claim", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/kotoba-tech/kotoba-whisper-v2.0", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Belle-Whisper (Chinese)", "variants": null, "category": "open", "licence": "apache-2.0 (Hugging Face card metadata)", "licence_class": "open", "price_note": "Free / self-host", "price_sort": null, "accuracy_note": "BELLE-2's own comparison, Chinese CER against whisper-large-v3: AISHELL-1 2.945 vs 8.085, AISHELL-2 3.808 vs 5.475, WenetSpeech Net 8.998 vs 11.72, WenetSpeech Meeting 10.973 vs 20.15, HKUST dev 17.196 vs 28.597 (figures for the -zh-punct variant; the plain -zh variant scores 2.781 / 3.786 / 8.865 / 11.246 / 16.440). Vendor-run on vendor-chosen sets; not on the Open ASR Leaderboard.", "wer_sort": null, "languages_note": "Chinese (Mandarin). HKUST is telephone-channel Mandarin, so the 17.196 CER there is the honest read on narrowband audio.", "languages_sort": null, "runs_on": "GPU, whisper-large-v3 envelope for the main checkpoint (~10 GB per the Whisper repo table); the -turbo-zh variant follows large-v3-turbo (~6 GB).", "best_for": "Mandarin transcription where whisper-large-v3's CER is unusable — a near-3× cut on AISHELL-1 — under a licence you can actually ship.", "diarization": "None.", "watch": "The punctuation-restoring variant — the one most Chinese pipelines actually need, since base Whisper's Chinese punctuation is unreliable — has 53 downloads a month against the main checkpoint's 6,165. It is effectively untested in production, and its CER figures are the ones quoted above. Nothing new has shipped since the December 2024 refresh apart from a metadata touch.", "standout": "A near-3× CER reduction over whisper-large-v3 on AISHELL-1 under a clean Apache-2.0.", "facets": [ "commercially-safe", "frozen", "no-diarization", "self-hostable" ], "hardware": "gpu-8", "params": null, "architecture": "whisper-large-v3 fine-tuned for Chinese; the -punct variant adds punctuation by injecting marks from a separate punctuation model into the AISHELL-1, AISHELL-2, WenetSpeech and HKUST training data and applying LoRA fine-tuning on top.", "vram": null, "quantisation": "First-party GGML build for the turbo variant only.", "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host only.", "data_policy": null, "benchmarks": "See accuracy_note. Variants published: Belle-whisper-large-v3-zh, -turbo-zh, -zh-punct, -v2-zh, plus a GGML export of the turbo variant — five repos, no more.", "robustness": null, "adoption": "Trailing-month downloads checked 2026-08-01: Belle-whisper-large-v3-zh 6,165 (128 likes) · -turbo-zh 542 · -zh-punct 53 · -v2-zh 15.", "released": "Belle-whisper-large-v3-zh HF repo created 2024-03-11 and last modified 2024-12-16; -turbo-zh last modified 2024-12-16; -zh-punct April 2025; -v2-zh repo touched January 2026.", "status": "dormant", "verification": "vendor-claim", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/BELLE-2/Belle-whisper-large-v3-zh", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "OpenAI Audio Transcriptions API (gpt-transcribe / whisper-1 / gpt-4o-transcribe-diarize)", "variants": null, "category": "cloud", "licence": "Proprietary, closed weights. `whisper-1` is a hosted OpenAI service and a DIFFERENT artefact from the openai/whisper open weights — accuracy, limits and behaviour do not transfer in either direction.", "licence_class": "closed", "price_note": "Per audio minute (developers.openai.com pricing page, fetched 2026-08-01): gpt-transcribe $0.0045/min · whisper $0.006/min · gpt-4o-transcribe $0.006/min · gpt-4o-transcribe-diarize $0.006/min · gpt-4o-mini-transcribe $0.003/min · gpt-live-transcribe $0.017/min · gpt-realtime-whisper $0.017/min · gpt-realtime-translate $0.034/min.", "price_sort": null, "accuracy_note": "OpenAI publishes no WER for any of these models against any named public test set. The Open ASR Leaderboard figure for openai/whisper-large-v3 (6.55 avg WER) belongs to the open weights and cannot be read onto the hosted endpoint — different artefact, unknown serving configuration.", "wer_sort": null, "languages_note": "\"Whisper supports 98 languages, but accuracy varies by language\" per the docs — note this is a third distinct figure from the 99 the leaderboard prints and the 100 language tokens the open large-v3 checkpoint actually carries. gpt-transcribe accepts ISO 639-1, selected ISO 639-3 and regional locale codes, with no published language count and no published per-language accuracy.", "languages_sort": null, "runs_on": "Cloud only.", "best_for": "Transcription you do not want to operate — and the only place in the entire OpenAI speech lineage where speaker labels exist at all.", "diarization": "Yes, but only on `gpt-4o-transcribe-diarize`, taking \"up to four short audio references with known_speaker_names[] and known_speaker_references[]\", and speaker labelling is explicitly \"not supported in Realtime transcription sessions\". No other OpenAI transcription model returns speakers, and the open Whisper weights never have.", "watch": "The capability matrix is split across models and no single model has everything. Want timestamps? whisper-1 only — which is also the one model that cannot stream. Want speakers? gpt-4o-transcribe-diarize only — which cannot label speakers in Realtime sessions. Want the cheapest and newest? gpt-transcribe — which returns no timestamps. Want translation? whisper-1 again, into English only. Picking a model here means picking which capability to give up. And the 25 MB per-request cap means long-form audio has to be chunked by you, with the segment-stitching and speaker-continuity problems that implies.", "standout": "The only OpenAI speech artefact that returns speaker labels — via a dedicated model, not as a feature of the others.", "facets": [ "actively-maintained", "api-only", "diarization", "streaming", "translation", "word-timestamps" ], "hardware": "hosted", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "The docs' term is file streaming — streaming the transcript back while a completed upload is processed — supported on gpt-transcribe, gpt-4o-transcribe, gpt-4o-mini-transcribe and gpt-4o-transcribe-diarize; \"whisper-1 doesn't\". Live audio is a separate path through Realtime transcription sessions, which carry their own constraints (no speaker labelling). The docs do not characterise the file-streaming path as low-latency incremental recognition, so do not read it as realtime.", "latency_note": null, "realtime_factor": null, "audio_limits": "\"Files can be up to 25 MB.\" Accepted formats: mp3, mp4, mpeg, mpga, m4a, wav, webm.", "timestamps": "Only `whisper-1` returns timestamps, word or segment, via the timestamp_granularities[] parameter, which the docs say \"is only supported for whisper-1\". The newer, cheaper, faster gpt-transcribe does not.", "punctuation": "Restored and cased.", "custom_vocab": null, "output_formats": "verbose_json and diarized_json are named in the transcription guide; text, srt and vtt are whisper-1 response_format values and do not apply across the newer models. The docs do not publish one exhaustive per-model list.", "translation": "\"To translate a completed audio recording into English, use /v1/audio/translations with whisper-1\" — and \"This endpoint supports translation into English only.\" No other model exposes the translation endpoint.", "billing_unit": "Per audio minute", "free_tier": null, "concurrency": null, "self_host": "No.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "gpt-transcribe July 2026 and gpt-4o-transcribe March 2025 per secondary sources only — neither confirmed on a dated OpenAI-owned page.", "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://developers.openai.com/api/docs/guides/speech-to-text", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "NVIDIA Parakeet TDT 0.6B", "variants": "parakeet-tdt-0.6b-v2 (English) / parakeet-tdt-0.6b-v3 (25 languages)", "category": "open", "licence": "CC-BY-4.0 on the weights — confirmed from the Hugging Face model API license field for both nvidia/parakeet-tdt-0.6b-v2 and nvidia/parakeet-tdt-0.6b-v3 (1 Aug 2026), not just the rendered card.", "licence_class": "open", "price_note": "Free / self-host. NVIDIA charges nothing for the checkpoint; NIM/Riva hosting is a separate commercial product with its own rate.", "price_sort": null, "accuracy_note": "v2: 6.05% average WER over the 8 Open ASR Leaderboard sets (AMI 11.16, Earnings-22 11.15, GigaSpeech 9.74, LibriSpeech test-clean 1.69, test-other 3.19, SPGISpeech 2.17, TEDLIUM-v3 3.38, VoxPopuli 5.95). v3: 6.34% average on the same 8 sets. Both figures are NVIDIA's own leaderboard submissions.", "wer_sort": null, "languages_note": "v2 English only. v3 covers 25 European languages (Bulgarian, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hungarian, Italian, Latvian, Lithuanian, Maltese, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, Ukrainian).", "languages_sort": null, "runs_on": "NVIDIA GPU. Model card states a 2 GB RAM minimum and lists Volta through Blackwell as supported; tested on T4, V100, A10, A30, A100, L4, L40, H100. No CPU path is documented by NVIDIA.", "best_for": "Bulk offline English (v2) or European-language (v3) transcription where throughput per GPU-hour is the whole economics. At ~3,300x realtime batch throughput it is the cheapest way to put a very large archive through a GPU, and the licence lets you ship the result.", "diarization": "None. Neither checkpoint emits speaker labels. NVIDIA's answer is a separate Sortformer diarizer checkpoint, and that is where the licence trap lives — see watch.", "watch": "NVIDIA's ASR licensing is not one licence, it is four, and which one you get depends on which checkpoint and which year. These two are CC-BY-4.0 and safe. The diarizer you will reach for to add speakers is not: nvidia/diar_sortformer_4spk-v1 is CC-BY-NC-4.0 (non-commercial), diar_streaming_sortformer_4spk-v2 is CC-BY-4.0, and diar_streaming_sortformer_4spk-v2.1 is 'other'. NVIDIA's 2026 ASR releases have drifted off CC-BY entirely onto the NVIDIA Open Model License and OpenMDW-1.1. Re-check the licence on the exact checkpoint and revision you ship — the family name tells you nothing.", "standout": "~3,300x realtime batch throughput at 600 M parameters — an order of magnitude past anything else here on GPU-hours per audio-hour", "facets": [ "actively-maintained", "commercially-safe", "cpu-capable", "english-only", "no-diarization", "punctuation", "self-hostable", "word-timestamps" ], "hardware": "cpu", "params": "600 M (both v2 and v3)", "architecture": "FastConformer encoder with a TDT (Token-and-Duration Transducer) decoder — the duration head is what lets it skip frames and produce the very high RTFx.", "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "Not documented on these checkpoints. They are offline/batch models; NVIDIA ships separate checkpoints for streaming (see the Parakeet-unified / Nemotron-3.5 row). Treat any 'streaming Parakeet' claim as referring to a different artefact.", "latency_note": null, "realtime_factor": null, "audio_limits": "v2: up to 24 minutes in a single pass. v3: up to 24 minutes with full attention on an A100 80 GB, or up to 3 hours with local attention.", "timestamps": "Word-level, segment-level and character-level.", "punctuation": "Automatic punctuation and capitalisation.", "custom_vocab": null, "output_formats": "NeMo Python objects; SRT/VTT/JSON are the caller's job. No speaker labels.", "translation": "No — transcription only. Translation is Canary's job, not Parakeet's.", "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes, and self-host is the only free path. Weights on Hugging Face, inference via NVIDIA NeMo.", "data_policy": null, "benchmarks": "v2: RTFx 3,386.02 on the HF Open ASR Leaderboard at batch size 128 (hardware not stated in the submission). v3: RTFx 3,332.74 on the same leaderboard. Both are NVIDIA-submitted figures on NVIDIA-chosen batch settings — comparable to other leaderboard rows, not to your single-stream latency.", "robustness": null, "adoption": "747,858 downloads for v2 and 207,975 for v3 in the trailing 30 days per the Hugging Face model API, 1 Aug 2026.", "released": "v2 April 2025 (Hugging Face repo created 15 April 2025; model card states May 2025). v3 August 2025 (repo created 4 August 2025).", "status": "active", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/nvidia/parakeet-tdt-0.6b-v2", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "NVIDIA Parakeet-unified-en / Nemotron-3.5-ASR-Streaming", "variants": "parakeet-unified-en-0.6b (English) / nemotron-3.5-asr-streaming-0.6b (40 language-locales)", "category": "rt", "licence": "NOT CC-BY. nvidia/parakeet-unified-en-0.6b is under the NVIDIA Open Model License Agreement (Hugging Face tags it license:other). nvidia/nemotron-3.5-asr-streaming-0.6b is under OpenMDW-1.1. Both differ from the CC-BY-4.0 on the older Parakeet TDT checkpoints.", "licence_class": "warn", "price_note": "Free / self-host.", "price_sort": null, "accuracy_note": "parakeet-unified-en-0.6b: LibriSpeech test-clean 1.63%, test-other 3.11%, TEDLIUM 3.39%, VoxPopuli 5.77%, GigaSpeech 10.05% WER (NVIDIA's model card). nemotron-3.5-asr-streaming-0.6b on FLEURS at the 1.12 s chunk setting with the language supplied to the model (the card's 'Language Input' mode, NOT automatic language ID — auto-ID is the harder condition and is not what these numbers measure): Spanish 4.11%, Italian 4.25%, English 7.91%, German 8.31%, French 9.03% WER. Neither publishes a single Open ASR Leaderboard average, so these are not directly comparable to the 6.05% Parakeet TDT figure.", "wer_sort": null, "languages_note": "parakeet-unified: English only. nemotron-3.5-asr-streaming: 40 language-locales, tiered by NVIDIA into 19 transcription-ready, 13 broad-coverage and 8 adaptation-ready — the tiering is the honest part, only 19 are presented as production quality.", "languages_sort": null, "runs_on": "NVIDIA GPU. parakeet-unified lists Ampere/Blackwell/Hopper/Volta and was tested on V100, A100, A6000 and DGX Spark.", "best_for": "Voice agents and live captioning where you want one checkpoint to serve both the live stream and the offline re-transcription, without maintaining two models whose outputs disagree.", "diarization": "None. Speaker separation is a separate model — see the Multitalker Parakeet row, which needs an external diarizer anyway.", "watch": "The licence changed and the model name did not. Teams that cleared 'NVIDIA Parakeet, CC-BY-4.0' through legal in 2025 and then upgraded to parakeet-unified in 2026 have silently moved onto the NVIDIA Open Model License, which auto-terminates your rights if you bypass or weaken a safety guardrail without substituting a comparable one, and terminates if you bring copyright or patent litigation over the model. Nemotron-3.5 is on OpenMDW-1.1, a third licence again. Neither is a blocker for commercial use, but neither is CC-BY, and the Hugging Face badge just says 'other'. Note also that the nemotron-3.5 model card's own stated release date is internally inconsistent and should not be relied on; the date here is the Hugging Face repo creation date.", "standout": "one checkpoint that serves 80 ms streaming and offline batch from the same weights, with latency as a runtime dial rather than a model choice", "facets": [ "actively-maintained", "english-only", "licence-catch", "no-diarization", "punctuation", "self-hostable", "streaming" ], "hardware": null, "params": "600 M each", "architecture": "parakeet-unified: 24-layer FastConformer encoder with an RNN-T decoder, one weight set serving both offline and streaming modes, trained with mode-consistency regularisation. nemotron-3.5: cache-aware FastConformer-RNNT with prompt conditioning, 24-layer encoder.", "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "True streaming, not chunked pseudo-streaming — cache-aware encoders designed for incremental decode. parakeet-unified runs offline and streaming from shared weights.", "latency_note": "parakeet-unified: 160 ms minimum, defined as chunk size plus right context. nemotron-3.5: selectable at 80, 160, 320, 560 or 1120 ms via the right-context parameter.", "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": "Built-in punctuation and capitalisation on both.", "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes — weights on Hugging Face, inference via NVIDIA NeMo.", "data_policy": null, "benchmarks": "nemotron-3.5 sustains roughly 240 concurrent streams at 80 ms latency and roughly 2,400 at 1120 ms on a single H100 (NVIDIA's figure, hardware named).", "robustness": null, "adoption": null, "released": "parakeet-unified-en-0.6b April 2026 (Hugging Face repo created 7 April 2026). nemotron-3.5-asr-streaming-0.6b May 2026 (Hugging Face repo created 15 May 2026).", "status": "active", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/nvidia/parakeet-unified-en-0.6b", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "NVIDIA Multitalker Parakeet Streaming 0.6B", "variants": null, "category": "rt", "licence": "NVIDIA Open Model License Agreement (Hugging Face tags it license:other) — not the CC-BY-4.0 that covers the mainline Parakeet TDT checkpoints.", "licence_class": "warn", "price_note": "Free / self-host.", "price_sort": null, "accuracy_note": "cpWER at the 1.12 s latency setting, including overlapping speech: CH109 15.81%, AMI IHM 21.26%, Mixer 6 23.81%, AMI SDM 37.44%. In single-speaker mode it averages 7.44% WER. cpWER is concatenated-minimum-permutation WER — it charges you for speaker attribution errors as well as word errors, so it is not comparable to the plain WER quoted elsewhere in this matrix.", "wer_sort": null, "languages_note": "English only.", "languages_sort": null, "runs_on": "NVIDIA GPU, and note the multiplier: NVIDIA's card states the architecture requires one model instance per speaker, so a four-speaker meeting means four concurrent instances, not one.", "best_for": "Streaming speaker-attributed transcription of meetings and calls where you already run a diarizer and need the words tied to the right speaker as they arrive rather than in post.", "diarization": "This is the field everyone gets wrong on this model. It does NOT diarize. NVIDIA's card is explicit — 'The model only takes the speaker diarization outputs as external information' and 'A speaker diarization model is needed for tracking the speech activity of each speaker.' It consumes another model's diarization output and produces speaker-attributed text from it. Buying this because you want speakers is buying half the pipeline. Evaluated on 2–4 speakers (AMI, CH109, Mixer 6).", "watch": "Two costs nobody quotes. First, it needs an external diarizer, and NVIDIA's own streaming Sortformer is a separate checkpoint on a separate licence. Second, one model instance per speaker means your GPU bill scales with the number of people in the room — a four-way call is four Parakeets. The AMI SDM figure of 37.44% cpWER is the honest number for far-field single-distant-microphone audio, which is what most real meeting rooms actually sound like.", "standout": "streaming speaker-attributed ASR with overlapping speech handled, which the diarize-then-transcribe pipeline structurally cannot do", "facets": [ "actively-maintained", "diarization", "english-only", "licence-catch", "self-hostable", "streaming" ], "hardware": null, "params": "600 M", "architecture": "Fast-Conformer encoder with a speaker kernel injection mechanism, with RNN-T decoding.", "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "True streaming via attention context size, expressed in 80 ms frames.", "latency_note": "Configurable: attention context [70,0] gives 80 ms, [70,13] gives 1.12 s. NVIDIA does not name the hardware these were measured on.", "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes — weights on Hugging Face, inference via NeMo.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "693 downloads in the trailing 30 days per the Hugging Face model API, 1 Aug 2026 — very low for the base repo, though independent MLX, GGUF and ONNX-int8 ports exist on the Hub, so the base figure understates total uptake.", "released": "October 2025 (Hugging Face repo created 15 October 2025).", "status": "active", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/nvidia/multitalker-parakeet-streaming-0.6b-v1", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "NVIDIA Canary v2 family", "variants": "canary-1b-v2 (25 languages) / canary-1b-flash / canary-180m-flash / canary-qwen-2.5b", "category": "open", "licence": "CC-BY-4.0 on all four checkpoints — verified from the Hugging Face model API license field on 1 Aug 2026 for nvidia/canary-1b-v2, canary-1b-flash, canary-180m-flash and canary-qwen-2.5b. This is NOT the licence on the original nvidia/canary-1b, which is a separate row.", "licence_class": "open", "price_note": "Free / self-host.", "price_sort": null, "accuracy_note": "canary-qwen-2.5b: 5.63% mean WER on the Open ASR Leaderboard (English). canary-1b-v2: 7.15% mean on the Open ASR Leaderboard, plus 8.40% on FLEURS-25, 8.85% on CoVoST-13 and 7.27% on MLS-6. canary-1b-flash: LibriSpeech test-clean 1.48%, test-other 2.87%, MLS German 4.36%, Spanish 2.69%, French 4.47%.", "wer_sort": null, "languages_note": "canary-1b-v2 covers 25 European languages with bidirectional X↔English translation. canary-1b-flash and canary-180m-flash cover English, German, French and Spanish. canary-qwen-2.5b is English only, despite an encoder pretrained on German, French and Spanish.", "languages_sort": null, "runs_on": "NVIDIA GPU. canary-1b-v2 states a 6 GB RAM minimum and lists Ampere/Blackwell/Hopper. canary-qwen-2.5b additionally lists Jetson, Pascal, Turing, Lovelace and Volta and was tested on A6000, A100 and RTX 5090.", "best_for": "Multilingual European transcription plus translation from one model (canary-1b-v2), or best-in-family English accuracy with an LLM you can then ask questions of (canary-qwen-2.5b).", "diarization": "None across the whole family.", "watch": "canary-qwen-2.5b's 'LLM mode' is not a free upgrade: NVIDIA's own card says 'In LLM mode, the model does not \"understand\" the raw audio anymore - only its transcript', so it is a two-pass arrangement, not simultaneous listening and reasoning. And the family name is dangerous — searching 'NVIDIA Canary' still surfaces the original nvidia/canary-1b, which is CC-BY-NC-4.0 and cannot be used commercially. The v2 checkpoints fixed that; the 2024 one did not, and it is still live and still being updated.", "standout": "canary-qwen-2.5b transcribes and then reasons over its own transcript in one artefact — summarise or answer questions without a second model", "facets": [ "actively-maintained", "commercially-safe", "english-only", "no-diarization", "punctuation", "self-hostable", "translation", "word-timestamps" ], "hardware": "gpu-8", "params": "canary-1b-v2 978 M · canary-1b-flash 883 M · canary-qwen-2.5b 2.5 B", "architecture": "canary-1b-v2 and the flash variants are FastConformer encoder plus Transformer decoder (v2: 32 encoder layers, 8 decoder layers; flash: 32 and 4). canary-qwen-2.5b is a SALM — a speech-augmented language model built from canary-1b-flash and Qwen3-1.7B via linear projection and LoRA.", "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "Not documented. These are offline models.", "latency_note": null, "realtime_factor": null, "audio_limits": "canary-1b-flash was designed for clips under 40 s, with long-form handled by a separate chunking script. canary-qwen-2.5b trained on a 40 s maximum with a 1,024-token sequence cap. canary-1b-v2 supports long-form via dynamic chunking with 1-second overlap.", "timestamps": "Word-level and segment-level on canary-1b-v2, with segment-level also available for translated output. canary-1b-flash provides word and segment timestamps for English, German, French and Spanish.", "punctuation": "Automatic punctuation and capitalisation.", "custom_vocab": null, "output_formats": null, "translation": "Yes — bidirectional speech translation, X→English and English→X. This is the main thing Canary does that Parakeet does not.", "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes — weights on Hugging Face, inference via NeMo.", "data_policy": null, "benchmarks": "canary-qwen-2.5b: RTFx 418.28. canary-1b-v2: RTFx 749. canary-1b-flash: RTFx 1,045.75 on an A100 and 1,669.07 on an H100 — one of the few NVIDIA figures with the GPU actually named. Note the accuracy/throughput trade: canary-qwen is the most accurate and roughly 8x slower than Parakeet TDT.", "robustness": null, "adoption": null, "released": "canary-1b-flash and canary-180m-flash March 2025. canary-qwen-2.5b June/July 2025 (Hugging Face repo created 26 June 2025; NVIDIA's public launch was July 2025). canary-1b-v2 August 2025.", "status": "active", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/nvidia/canary-1b-v2", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "NVIDIA Canary-1B (original, 2024)", "variants": null, "category": "open", "licence": "CC-BY-NC-4.0 — non-commercial. Verified from the Hugging Face model API license field for nvidia/canary-1b on 1 Aug 2026. The model card states it explicitly: 'By downloading the public and release version of the model, you accept the terms and conditions of the CC-BY-NC-4.0 license.'", "licence_class": "bad", "price_note": "Free to download, but you may not use it commercially at any price. There is no paid licence path published.", "price_sort": null, "accuracy_note": "MCV-16.1 WER: English 7.97%, French 6.53%, German 4.61%, Spanish 3.99%. MLS WER: English 3.06%, German 4.19%, Spanish 3.15%, French 4.12%. LibriSpeech test-other 2.89%.", "wer_sort": null, "languages_note": "Four: English, German, French, Spanish.", "languages_sort": null, "runs_on": "NVIDIA GPU via NeMo.", "best_for": "Research and internal evaluation only. If you are shipping anything commercial, this checkpoint is the wrong artefact and canary-1b-v2 is the right one at better accuracy and 25 languages.", "diarization": "None.", "watch": "This is the single most expensive misread in the open ASR field. 'NVIDIA Canary' is CC-BY-NC only on this 2024 checkpoint; every Canary released from March 2025 onward is CC-BY-4.0. Because this repo is still being updated and still ranks, teams pull it, benchmark it, ship it, and find out at diligence. CC-BY-NC is a hard block — not a 'check with legal', not curable by attribution. The fix is free and strictly better: canary-1b-v2.", "standout": null, "facets": [ "actively-maintained", "no-diarization", "non-commercial", "self-hostable", "translation" ], "hardware": null, "params": "1 B", "architecture": "FastConformer encoder with a Transformer decoder (24 encoder layers, 24 decoder layers).", "vram": null, "quantisation": null, "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": "Yes — English, German, French, Spanish in both directions.", "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes, but only for non-commercial use.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "February 2024 (Hugging Face repo created 7 February 2024). Still maintained — the repo was last modified December 2025, which is precisely why it stays high in search results.", "status": "active", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/nvidia/canary-1b", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Moonshine", "variants": "v1 (English): Tiny · Base. v2 streaming (English): Tiny · Small · Medium. Per-language: Base checkpoints for Arabic, Japanese, Mandarin, Spanish, Ukrainian and Vietnamese, and a Tiny for Korean.", "category": "device", "licence": "DUAL, and the split is not on the model card. The repo LICENSE grants MIT to the code ('apart from the source in core/third-party') and to the English-language models — Copyright (c) 2025 Useful Sensors, Inc. (dba Moonshine AI). It then states that 'Models for other languages are released under the Moonshine Community License, which is a non-commercial license', and that licence terminates every grant above a revenue threshold: \"If at any time You or Your Affiliate(s)…generate more than USD $1,000,000 in annual revenue…any licenses granted to You under this Agreement shall terminate as of such date.\" Hugging Face card metadata on UsefulSensors/moonshine-streaming reads `license: mit` and surfaces none of this; GitHub's own licence detector reports NOASSERTION for the repo. Separately: enabling diarization pulls in a port of pyannote community-1, which upstream is CC-BY-4.0 and gated — see diarization.", "licence_class": "warn", "price_note": "Free / self-host for English, and there is no hosted Moonshine API to price. The non-English checkpoints are free below USD $1,000,000 in annual revenue; above it the Community Licence terminates and no replacement price is published.", "price_sort": null, "accuracy_note": "Publisher's own README table, evaluated with 'The English evaluations were done using the HuggingFace OpenASR Leaderboard datasets and methodology': Medium Streaming (245 M) 6.65% WER · Small Streaming (123 M) 7.84% · Base (58 M) 10.07% · Tiny Streaming (34 M) 12.00% · Tiny (v1, 26 M) 12.66%. The same table places Whisper large-v3 at 7.44%, Whisper small at 8.59% and Whisper tiny at 12.81%. 'The other languages were evaluated using the FLEURS dataset' — Spanish 4.33%, Arabic 5.63%, Korean 6.46%, Vietnamese 8.82%, Japanese 13.62%, Ukrainian 14.55% and Mandarin 25.76%. CRITICALLY, the same README also publishes what the shipped quantisation costs, on LibriSpeech test-clean — Tiny Streaming 4.49% float (paper) vs 7.57% shipped quantized; Small Streaming 2.49% vs 3.03%; Medium Streaming 2.08% vs 2.37%. The tiny model you actually ship is ~69% relatively worse than the paper number. Vendor-published; not an independent leaderboard submission.", "wer_sort": null, "languages_note": "8 for STT — 'English, Spanish, Mandarin, Japanese, Korean, Vietnamese, Ukrainian, and Arabic'. Only English is MIT; the other seven carry the revenue-capped Community Licence.", "languages_sort": null, "runs_on": "CPU-first. ONNX and memory-mappable OnnxRuntime .ort, plus TFLite, CTranslate2, Keras/PyTorch/JAX and safetensors builds. Phones, ARM SBCs, browsers via ONNX Runtime, and served by sherpa-onnx.", "best_for": "Short-utterance voice commands and live captioning on a CPU, where Whisper's fixed 30-second window makes you pay full price for a two-second phrase. The v2 streaming line is the strongest genuinely-streaming open ASR at this size.", "diarization": "Real, and better documented than the model card suggests. The opt-in `identify_speakers` flag runs a C++ port of the pyannote community-1 pipeline (moonshine-ai/cpp-annote — its README calls itself 'a faithful port of the community-1 model and code to C++') inline inside transcription calls, which the docs say 'adds significant compute'. It emits mutable speaker_spans with a stable speaker_id and an ordinal speaker_index, auto-enables word timestamps, and keeps refining speaker assignments for recent audio within a configurable diarization_cluster_window_sec in streaming sessions, while batch mode clusters full history. cpp-annote's own README measures DER 20.95% with its shipped quantized weights against 19.73% for the original Python pyannote on the same data, and 19.95% with its float ONNX weights, on the first 120 seconds of each CALLHOME part-two audio file. Two costs the headline numbers hide: the compute is on top of the quoted latencies, and the weights derive from pyannote community-1, which upstream is CC-BY-4.0 and gated on Hugging Face even though the C++ port itself ships under MIT.", "watch": "Three things. (1) 'MIT' is only true for English. Ship Spanish, Mandarin, Japanese, Korean, Vietnamese, Ukrainian or Arabic and you are on the Community Licence, which the LICENSE file itself calls non-commercial and which terminates at USD $1,000,000 in annual revenue — and the Hugging Face card still says `license: mit`, so nothing in your dependency scanner will catch it. (2) Budget for the quantised model, not the paper. The publisher's own table puts Tiny Streaming at 4.49% WER float and 7.57% shipped-quantized on LibriSpeech test-clean; the 8-bit .ort file is the default you will actually deploy. (3) Diarization is not free in either sense: `identify_speakers` runs a pyannote community-1 port that the docs say 'adds significant compute' on top of the published latencies, and those weights are CC-BY-4.0 and gated upstream despite the port shipping as MIT.", "standout": "Compute proportional to actual audio length instead of Whisper's fixed 30-second window", "facets": [ "actively-maintained", "cpu-capable", "diarization-addon", "edge-capable", "licence-catch", "self-hostable", "streaming", "word-timestamps" ], "hardware": "phone", "params": "The publisher's own two sources disagree: the HF card table gives 27 M (tiny) and 61 M (base), while the repo README gives 26 M (tiny) and 58 M (base). 34 M / 123 M / 245 M for Tiny / Small / Medium Streaming per the README.", "architecture": "Encoder-decoder transformer with Rotary Position Embedding, trained on variable-length segments with no zero-padding — so compute scales with actual audio length rather than a fixed 30 s window. The v2 streaming line caches the input encoding and part of the decoder state to accept audio incrementally; its paper describes sliding-window self-attention as achieving bounded, low-latency inference while preserving strong local context.", "vram": null, "quantisation": "8-bit quantised .ort files are the shipped on-device default, with float ONNX builds published alongside them. Unusually, the publisher states the accuracy cost of this — see accuracy_note.", "fine_tuning": null, "streaming": "TRUE streaming in the v2 line — incremental audio with cached encoder/decoder state, not a sliding 30-second re-run. Described in arXiv 2602.12241, 'Moonshine v2: Ergodic Streaming Encoder ASR for Latency-Critical Speech Applications' (Kudlur, King, Wang and Warden, submitted 12 February 2026; title, authors and date verified against the arXiv listing). This is the distinction that matters for voice agents and Moonshine is on the right side of it.", "latency_note": "README latency table, three hardware columns — 'MacBook Pro' (unspecified model), 'Linux x86' and 'R. Pi 5': Tiny Streaming 34 / 69 / 237 ms · Small Streaming 73 / 165 / 527 ms · Medium Streaming 107 / 269 / 802 ms. Same table: Whisper tiny 277 / 1,141 / 5,863 ms, Whisper large-v3 11,286 / 16,919 / N/A. The MacBook is unnamed and therefore not reproducible; the Raspberry Pi 5 column is the one to plan against. None of these figures includes the diarization stage.", "realtime_factor": null, "audio_limits": "No fixed window — compute is proportional to input length. The v1 paper reports a 5x compute reduction versus Whisper tiny-en on a 10-second segment with no WER increase.", "timestamps": "Word timestamps via the moonshine-voice transcribe CLI, alongside optional speaker IDs", "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes — fully local, no account, no key", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "10,575 GitHub stars, last push 2026-08-02 (GitHub API, moonshine-ai/moonshine, read 1 Aug 2026); served natively by sherpa-onnx and integrated in Hugging Face Transformers.", "released": "v1 Tiny/Base October 2024 — the GitHub repo was created 4 October 2024 (GitHub API). The v2 streaming line landed over December 2025 – January 2026: the UsefulSensors/moonshine-streaming Hugging Face repo was created 25 December 2025 and last modified 9 January 2026 (HF API, read 1 Aug 2026). The v2 paper, arXiv 2602.12241, was submitted 12 February 2026.", "status": "active", "verification": "mixed", "verification_note": "merged from two independent research passes on 1 Aug 2026, and the conflicts between them were resolved against primary sources rather than by preferring one pass. Re-verified this pass: the dual licence and the $1,000,000 clause (repo LICENSE), the HF card's `license: mit` and the repo's NOASSERTION detection (HF and GitHub APIs), the full WER, FLEURS, latency and quantisation tables (repo README), the language list, the per-language checkpoint sizes, the paper title, authors and 12 Feb 2026 date (arXiv 2602.12241), the cpp-annote port and its DER figures and CALLHOME protocol (cpp-annote README), pyannote community-1's CC-BY-4.0 licence and gated status (HF API), and the star count, push date and repo creation date (GitHub API). All WER and latency figures remain vendor-published. Withdrawn as unsupported: a 'diarization: None' reading, a 9.99% mean-WER and RTFx 565.97 figure for moonshine-base that contradicts the publisher's own 10.07%, per-language checkpoint sizes that made every non-English model a Tiny, a February 2026 last-modified date for the streaming repos, an 80 ms lookahead and 50 Hz frontend detail not stated in the paper abstract, a quantized_4bit variant, and a Transformers-streaming caveat that could not be located on the model card.", "rating": null, "source_url": "https://github.com/moonshine-ai/moonshine", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Kyutai STT", "variants": "stt-2.6b-en / stt-1b-en_fr", "category": "rt", "licence": "CC-BY-4.0 on the WEIGHTS (confirmed from the Hugging Face model API for kyutai/stt-2.6b-en, 1 Aug 2026), and the repo README says so too. The code is licensed separately and is split: 'The present code is provided under the MIT license for the Python parts' and the 'Apache license for the Rust backend'. CC-BY-4.0 permits commercial use, so this stays `open` — as the other CC-BY-4.0 weights in this matrix do — but attribution is a condition, and it attaches to the artefact you ship rather than the one in your source tree.", "licence_class": "open", "price_note": "Free / self-host. Kyutai runs no hosted STT API.", "price_sort": null, "accuracy_note": "stt-2.6b-en: 6.4% mean WER on the Open ASR Leaderboard sets, AMI 12.17%, RTFx 88.37 (figures from the model card's leaderboard submission).", "wer_sort": null, "languages_note": "Two languages, total. stt-2.6b-en is English only; stt-1b-en_fr is English and French. There is no multilingual checkpoint.", "languages_sort": null, "runs_on": "NVIDIA GPU for the reference server: an H100 processes 400 streams in real time, and an L40S serves 64 simultaneous connections at a real-time factor of 3x through the Rust server, which is the production path. PyTorch, Candle (`stt-2.6b-en-candle`) and MLX implementations are also published — the README directs Mac and iPhone users to MLX and states the 1B 'has been tested to work fine on an iPhone 16 Pro'.", "best_for": "Voice agents. It is the open model that was actually designed for the turn-taking problem rather than adapted to it — the 1B variant's semantic VAD predicts whether the speaker has finished, which is the thing that makes an agent feel responsive or rude. Second use, on the same weights - self-hosted realtime transcription at scale, where 400 concurrent streams on one H100 is a per-stream unit cost no hosted API exposes.", "diarization": "None. Kyutai gives you streaming words and endpointing, not speakers. Not part of the release in either model, so speakers mean bolting on pyannote or NeMo Sortformer yourself.", "watch": "The accurate model and the low-latency model are different checkpoints with different language coverage, and you cannot have both: stt-2.6b-en gets you 6.4% WER at a 2.5-second delay, stt-1b-en_fr gets you 0.5 seconds and the semantic VAD but is smaller and bilingual. The semantic VAD is a property of the 1B model only — the 2.6B card does not document it. Kyutai documents the VAD output behind a `--vad` flag on the Rust standalone server; support in the PyTorch and MLX paths is not documented either way, so confirm it in your intended runtime before choosing the model for that feature. And the licence splits three ways: the Python you clone is MIT, the Rust backend is Apache-2.0, but the weights you ship are CC-BY-4.0, so the attribution obligation attaches to the artefact in production rather than the one in your source tree. No STT release since June 2025.", "standout": "a built-in semantic voice-activity detector that predicts end-of-turn from meaning rather than silence — the single hardest part of a voice agent, shipped in the ASR model", "facets": [ "actively-maintained", "commercially-safe", "english-only", "no-diarization", "punctuation", "self-hostable", "streaming", "word-timestamps" ], "hardware": null, "params": "2.6 B (stt-2.6b-en) · ~1 B (stt-1b-en_fr)", "architecture": "Delayed Streams Modeling — a decoder-only Transformer over Mimi audio tokens, 80 ms frames at a 12.5 Hz frame rate, 32 audio tokens per frame, with the Mimi codec compressing 24 kHz audio to 1.1 kbps, using the multistream arrangement from Moshi to model the text stream conditioned on the speech stream.", "vram": null, "quantisation": "Candle (Rust) and MLX (Apple) builds published alongside PyTorch.", "fine_tuning": null, "streaming": "True streaming by construction, and the delay is an architectural constant rather than a chunking artefact: 0.5 s for the 1B en/fr model, 2.5 s for the 2.6B English model. There is no chunking and no windowing.", "latency_note": "0.5 s text-stream offset on stt-1b-en_fr, 2.5 s on stt-2.6b-en. These are model properties, not tunable knobs. Kyutai's 'flush trick', described for the Unmute stack, applies to the 1B only: because the server decodes at roughly 4x realtime, on detected end-of-speech it can clear the model's buffered 500 ms in about 125 ms (500/4). It does not shorten the 2.6B's 2.5 s delay.", "realtime_factor": null, "audio_limits": null, "timestamps": "Word-level, recovered by subtracting the model's text-stream offset from the frame offset.", "punctuation": "Yes — well-formatted transcripts with punctuation.", "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes — this is the only deployment path; Kyutai runs no commercial STT API. A Rust inference server is included.", "data_policy": null, "benchmarks": "400 simultaneous realtime streams on a single H100 (PyTorch); 64 simultaneous connections at 3x realtime on an L40S (Rust server). Both are Kyutai's figures with the hardware named. RTFx 88.37 on the Open ASR Leaderboard — far below Parakeet's 3,300, because this is a streaming architecture and not a batch one. Do not read that as slowness; it is a different job.", "robustness": null, "adoption": null, "released": "Open-sourced June 2025 (Hugging Face repo created 6 June 2025). Native Hugging Face Transformers support from version 4.53.0.", "status": "active", "verification": "verified", "verification_note": "the three-way licence split, both text-stream delays, the H100 and L40S throughput figures, the iPhone 16 Pro test and the semantic-VAD restriction to the 1B all read off the delayed-streams-modeling README on 1 Aug 2026; the weights licence separately confirmed against the Hugging Face model API.", "rating": null, "source_url": "https://github.com/kyutai-labs/delayed-streams-modeling", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Qwen3-ASR", "variants": "Qwen3-ASR-1.7B / Qwen3-ASR-0.6B / Qwen3-ForcedAligner-0.6B", "category": "open", "licence": "Apache-2.0 on both weights and code (confirmed from the Hugging Face model API for Qwen/Qwen3-ASR-1.7B on 1 Aug 2026, and stated in the QwenLM/Qwen3-ASR repository).", "licence_class": "open", "price_note": "Free / self-host. Alibaba separately sells a hosted Qwen3-ASR-Flash through DashScope; that is a different artefact with different figures.", "price_sort": null, "accuracy_note": "Qwen3-ASR-1.7B: LibriSpeech test-clean 1.63% / test-other 3.38% WER, AISHELL-2 2.71% CER, FLEURS multilingual average 4.90%, Common Voice multilingual average 9.18%. No Open ASR Leaderboard mean is published, so it cannot be lined up against the NVIDIA and IBM rows directly.", "wer_sort": null, "languages_note": "52 in total — 30 languages plus 22 Chinese dialects, with automatic language identification. Coverage includes Chinese, English, Cantonese, Arabic, German, French, Spanish, Portuguese, Indonesian, Italian, Korean, Russian, Thai, Vietnamese, Japanese, Turkish, Hindi, Malay, Dutch, Swedish, Danish, Finnish, Polish, Czech, Filipino, Persian, Greek, Hungarian, Macedonian and Romanian.", "languages_sort": null, "runs_on": "GPU, bfloat16. vLLM is the recommended backend and is mandatory for streaming.", "best_for": "Multilingual transcription with heavy Chinese and Chinese-dialect exposure, where you need one Apache-2.0 model that handles Mandarin, Cantonese and 22 regional dialects alongside European languages and can tell you which it heard.", "diarization": "None.", "watch": "Three capabilities you probably assumed were in the box are not. Timestamps need a second 0.6 B model capped at 5 minutes and 11 languages. Streaming needs vLLM and disables timestamps and batching. And there is no hotword or context-biasing mechanism at all, which is the feature most transcription buyers discover they need on day two. Note also that the hosted Qwen3-ASR-Flash sold through DashScope is a distinct closed artefact — do not transfer its figures to these weights.", "standout": "22 Chinese dialects plus 30 languages under Apache-2.0, with language identification and singing-voice transcription benchmarked", "facets": [ "actively-maintained", "commercially-safe", "no-diarization", "self-hostable", "streaming" ], "hardware": null, "params": "1.7 B and 0.6 B, with a separate 0.6 B forced-alignment model", "architecture": "Built on the Qwen3-Omni foundation model, adapted for ASR.", "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "Unified — one checkpoint serves both streaming and offline. But the repo is explicit that streaming inference is only available with the vLLM backend, and that in that mode it 'does not support batch inference or returning timestamps'.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Not from the ASR model itself. Timestamps require the separate Qwen3-ForcedAligner-0.6B, which covers 11 languages and up to 5 minutes of speech per call. That is a second model, a second load and a second inference pass.", "punctuation": null, "custom_vocab": "None documented — no hotword list, phrase boosting or context biasing in the repository.", "output_formats": null, "translation": "Not documented as a task — this is a transcription and language-ID model.", "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "January 2026 (Hugging Face repo created 28 January 2026). Native Transformers support with torch.compile added June 2026.", "status": "active", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/Qwen/Qwen3-ASR-1.7B", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "IBM Granite Speech", "variants": "granite-speech-4.1-2b / -2b-plus / -2b-nar / granite-4.0-1b-speech / granite-speech-3.3-8b", "category": "open", "licence": "Apache-2.0 across the family — confirmed from the Hugging Face model API for granite-speech-4.1-2b, granite-speech-4.1-2b-plus and granite-speech-4.1-2b-nar (1 Aug 2026), and stated on the granite-speech-3.3-8b and granite-4.0-1b-speech cards. No gating, no acceptance click, no revenue threshold.", "licence_class": "open", "price_note": "Free / self-host.", "price_sort": null, "accuracy_note": "granite-speech-4.1-2b: 5.33% mean WER on the Open ASR Leaderboard, RTFx 231.29. granite-4.0-1b-speech: 5.52% mean, RTFx 280.02. granite-speech-3.3-8b: 5.74% mean, AMI 8.98%, RTFx 145.42. These are the strongest Open-ASR-Leaderboard means in this category — better than Parakeet TDT's 6.05% and Canary-Qwen's 5.63%.", "wer_sort": null, "languages_note": "Six: English, French, German, Spanish, Portuguese and Japanese (Japanese added at 4.0/4.1; the 3.3-8b generation covered five).", "languages_sort": null, "runs_on": "GPU for the 8B. The 4.0-1b is explicitly aimed at resource-constrained and edge deployment and runs on Apple Silicon M-series via mlx-audio 0.4.1+. Native Transformers support from 4.52.1, plus vLLM for throughput serving.", "best_for": "Highest open-weights English accuracy per parameter under a clean Apache-2.0 licence, with speech translation into and out of five European languages, and an edge-sized variant that keeps most of it.", "diarization": "Not in the base models. The granite-speech-4.1-2b-plus variant adds speaker-attributed ASR and word-level timestamps — attribution, not full diarization, and only in that one variant.", "watch": "On granite-speech-3.3-8b it is two calls, not one. IBM's card for that checkpoint is explicit — it 'uses a two-pass design', and 'to process the transcribed text using the underlying Granite language model, users must make a second call as each step must be explicitly initiated'. The granite-speech-4.1-2b card carries no equivalent statement, so confirm the behaviour on the generation you actually deploy rather than assuming either way. Timestamps and speaker attribution live only in the -plus variant, so the checkpoint you benchmark for WER may not be the one that has the outputs you need. And the family versioning is confusing enough to bite: granite-4.0-1b-speech is newer than granite-speech-3.3-8b but older than granite-speech-4.1-2b, the naming order flips between them, and the '1b' in granite-4.0-1b-speech is a 2 B model.", "standout": "the best Open ASR Leaderboard mean of any open-weights model here, under plain Apache-2.0 with no gate and no attribution string", "facets": [ "actively-maintained", "commercially-safe", "no-diarization", "self-hostable", "translation", "word-timestamps" ], "hardware": null, "params": "granite-speech-4.1-2b 2 B · granite-4.0-1b-speech 2 B (the '1b' in the name is the Granite LLM backbone, not the total — the card states 2 B) · granite-speech-3.3-8b 8 B, 9 B with all components", "architecture": "Modular: a 16-block conformer speech encoder with CTC training, a window-query-transformer projector acting as a temporal downsampler, a Granite LLM backbone, and LoRA adapters (rank 64 on 3.3-8b) on the query and value projections. The 4.1 encoder uses dual-head CTC over characters and BPE, with a 2-layer q-former projector.", "vram": null, "quantisation": null, "fine_tuning": "LoRA adapters are already the adaptation mechanism in the architecture, so the fine-tuning surface is well-defined.", "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Word-level, but only on granite-speech-4.1-2b-plus. The base 4.1, 4.0 and 3.3 cards do not document timestamps.", "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": "Yes — bidirectional X↔English across the supported languages, plus English→Italian and English→Mandarin.", "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "granite-speech-3.3-8b June 2025 (19 June 2025). granite-4.0-1b-speech March 2026 (6 March 2026). granite-speech-4.1-2b-nar March 2026 (Hugging Face repo created 10 March 2026). granite-speech-4.1-2b and granite-speech-4.1-2b-plus April 2026 (both repos created 16 April 2026).", "status": "active", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/ibm-granite/granite-speech-4.1-2b", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Mistral Voxtral", "variants": "Voxtral-Mini-4B-Realtime-2602 / Voxtral-Mini-3B-2507 / Voxtral-Small-24B-2507", "category": "open", "licence": "Apache-2.0 on all released weights, including the 2026 realtime model (confirmed from the Hugging Face model API for mistralai/Voxtral-Mini-4B-Realtime-2602 on 1 Aug 2026, and stated on Mistral's launch page).", "licence_class": "open", "price_note": "Free / self-host for the open weights. Mistral's hosted transcription is separate and priced per audio minute: $0.003/min for the API-only Voxtral Mini Transcribe V2 and $0.006/min for the hosted Realtime endpoint.", "price_sort": null, "accuracy_note": "Voxtral-Mini-4B-Realtime-2602 at the recommended 480 ms delay: FLEURS average 8.72% WER, TEDLIUM long-form English 3.17%, CHiME-4 short-form English 10.50% (Mistral's model card). Mistral's launch page separately claims roughly 4% FLEURS WER for the API-only Mini Transcribe V2 — that is a different, closed artefact and the figure does not transfer to the open weights. Note that the 8.72% is a 13-language FLEURS average, not an Open ASR Leaderboard mean, so it cannot be ranked against the NVIDIA, IBM and Kyutai figures in this matrix.", "wer_sort": null, "languages_note": "13 on the 2026 realtime model: English, Chinese, Hindi, Spanish, Arabic, French, Portuguese, Russian, German, Japanese, Korean, Italian, Dutch. The 2025 Voxtral Mini 3B covered 8: English, Spanish, French, Portuguese, Hindi, German, Dutch, Italian.", "languages_sort": null, "runs_on": "Single GPU with 16 GB or more for the 4B realtime model. Voxtral-Mini-3B-2507 needs roughly 9.5 GB of GPU RAM in bf16 or fp16. The 24B is a server-class model.", "best_for": "Open-weights realtime transcription for voice agents where you want latency as a runtime parameter, under Apache-2.0, and can self-host on one mid-range GPU.", "diarization": "This is the trap in this row. Diarization is a feature of the hosted Voxtral Mini Transcribe V2 API and is not documented on the open Voxtral-Mini-4B-Realtime-2602 model card. Mistral's launch page discusses diarization at the product-family level, which reads as though the open weights have it. Assume they do not until you see it in the card.", "watch": "Mistral shipped an open model and a closed model on the same day under the same brand, and the good numbers belong to the closed one. Diarization, context biasing (up to 100 words or phrases, optimised for English with other languages experimental) and word-level timestamps are Transcribe V2 API features; the open realtime card documents none of them. If your requirement list says 'Voxtral, Apache-2.0, with speakers', check which artefact each requirement actually came from before you commit.", "standout": "the only Apache-2.0 natively-causal streaming ASR here with latency as a continuous 80 ms-to-2.4 s dial, from a vendor also running it as a production API", "facets": [ "actively-maintained", "commercially-safe", "diarization", "self-hostable", "streaming", "translation" ], "hardware": "gpu-12", "params": "Voxtral-Mini-4B-Realtime-2602: 4 B total, roughly 3.4 B language model plus a 970 M audio encoder. Voxtral-Mini-3B-2507: 3 B on a Ministral-3B backbone. Voxtral-Small-24B-2507: 24 B.", "architecture": "The 2026 realtime model is natively streaming — a custom causal audio encoder with sliding-window attention in both the encoder and the language-model backbone. The 2507 generation is an offline audio-LLM.", "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "True native streaming on Voxtral-Mini-4B-Realtime-2602, not chunked pseudo-streaming — the encoder is causal by construction.", "latency_note": "Configurable from 80 ms to 2.4 s, in 80 ms multiples up to 1,200 ms plus a standalone 2,400 ms setting. Mistral recommends 480 ms. At the 2.4 s setting Mistral says it matches the closed Mini Transcribe V2; at 480 ms it is within 1–2 WER points of it.", "realtime_factor": null, "audio_limits": "Voxtral-Mini-3B-2507: up to 30 minutes for transcription, 40 minutes for audio understanding, 32k token context.", "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": "Yes on the 2507 audio-LLM generation, which also does Q&A, summarisation and function-calling from voice.", "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes — Apache-2.0, and the realtime model is compatible with vLLM's Realtime API over WebSocket.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "Voxtral Mini 3B and Small 24B July 2025. Voxtral Transcribe 2, including the open Voxtral-Mini-4B-Realtime-2602, February 2026 — the '2602' suffix is Mistral's own Feb-2026 stamp, though the Hugging Face repo was created 21 January 2026, ahead of the launch.", "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/mistralai/Voxtral-Mini-4B-Realtime-2602", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Alibaba SenseVoice", "variants": "SenseVoiceSmall", "category": "open", "licence": "Not SPDX. Code in the SenseVoice repository is MIT; the WEIGHTS are under the 'FunASR Model Open Source License Agreement' version 1.1, which Hugging Face surfaces only as license:other. Commercial use is not prohibited, but section 2.2 requires that you 'attribute the source and author information and retain relevant model names', and section 4.2 forbids 'unjustified denigration, malicious smearing, or baseless insults' against the software, with section 5 forfeiting your rights on breach.", "licence_class": "warn", "price_note": "Free / self-host.", "price_sort": null, "accuracy_note": "Alibaba publishes comparisons against Whisper on AISHELL-1, AISHELL-2, WenetSpeech, LibriSpeech and Common Voice, and claims advantages on Chinese and Cantonese specifically. The per-set figures are presented as charts rather than a table, and no Open ASR Leaderboard submission exists, so there is no single comparable number to quote here.", "wer_sort": null, "languages_note": "50+ claimed; the model is trained and evaluated on Mandarin, Cantonese, English, Japanese and Korean, and those five are the ones with published results.", "languages_sort": null, "runs_on": "CPU or modest GPU — a small non-autoregressive model. CoreML conversions exist for Apple Silicon.", "best_for": "High-throughput Chinese and Cantonese transcription where you also want emotion and audio-event tags out of the same forward pass, and where 70 ms per 10 seconds of audio matters more than a leaderboard position.", "diarization": "None in the model. FunASR, the toolkit around it, supplies a separate campplus speaker model — a bolt-on, not a built-in.", "watch": "The licence is a bespoke Alibaba agreement, not Apache-2.0, and the MIT badge on the GitHub repo covers only the code. Clause 4.2 lets Alibaba terminate your rights over public criticism of the model — a clause no procurement team expects to find in an 'open source' ASR licence, and one worth surfacing before you build a product on it. Accuracy is also unbenchmarked in any neutral venue: there is no Open ASR Leaderboard entry, so every number you have is Alibaba's own on Alibaba's chosen sets. Neither the model card nor the repository states a parameter count.", "standout": "ASR, spoken-language ID, emotion recognition and audio-event detection (applause, laughter, crying, coughing, sneezing, background music) from a single non-autoregressive forward pass", "facets": [ "actively-maintained", "cpu-capable", "licence-catch", "no-diarization", "punctuation", "self-hostable" ], "hardware": "cpu", "params": null, "architecture": "Non-autoregressive end-to-end framework; one forward pass yields every output token, which is where the latency advantage comes from. The repo references CTC alignment for timestamp recovery. The encoder family is not stated on the model card.", "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "Not documented for SenseVoiceSmall. The streaming option in this ecosystem is Paraformer-zh-streaming, a different model.", "latency_note": "70 ms to process 10 seconds of audio; Alibaba claims roughly 15x faster than Whisper-Large and more than 5x faster than Whisper-Small at comparable parameter count. Hardware is not named — read as a vendor claim.", "realtime_factor": null, "audio_limits": null, "timestamps": "Not documented on the model card. FunASR's long-audio path returns VAD speech regions through sentence_info when token timestamps and a punctuation model are unavailable.", "punctuation": "Yes, with inverse text normalisation, via the use_itn=True flag.", "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "28,571 downloads in the trailing 30 days per the Hugging Face model API, 1 Aug 2026.", "released": "July 2024 (Hugging Face repo created 3 July 2024). Still maintained — repo last modified June 2026, with a FunASR hotfix in July 2026.", "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/FunAudioLLM/SenseVoiceSmall", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Alibaba Paraformer / FunASR", "variants": "paraformer-zh / paraformer-zh-streaming, plus the FunASR pipeline models", "category": "open", "licence": "Conflicting sources — the trap in this row. funasr/paraformer-zh on Hugging Face carries license: apache-2.0 in its card metadata (confirmed via the Hugging Face model API, 1 Aug 2026), while the FunASR toolkit's own MODEL_LICENSE is the bespoke 'FunASR Model Open Source License Agreement' v1.1 that governs the ModelScope-hosted originals. The FunASR toolkit source is MIT. Three licences across one pipeline.", "licence_class": "warn", "price_note": "Free / self-host.", "price_sort": null, "accuracy_note": "No CER or WER figures are published on the funasr/paraformer-zh model card, and there is no Open ASR Leaderboard entry. The Paraformer paper (arXiv 2206.08317) reports results on Mandarin sets, but the shipped 60,000-hour checkpoint's numbers are not stated in the distribution. This is a genuinely unbenchmarked model as distributed.", "wer_sort": null, "languages_note": "Chinese and English, including mixed Chinese-English within an utterance.", "languages_sort": null, "runs_on": "CPU or GPU — 220 M parameters, non-autoregressive. ONNX and runtime servers are part of the FunASR project.", "best_for": "Production Mandarin transcription where you need the whole pipeline — VAD, ASR, punctuation restoration and speaker labels — from one maintained toolkit rather than four separately-licensed models you integrate yourself.", "diarization": "Yes, at the pipeline level, and this is the strongest diarization story in the open non-Whisper category. FunASR composes funasr/fsmn-vad for segmentation, paraformer-zh for recognition, funasr/ct-punc for punctuation and funasr/campplus for speaker diarization into a single call — all four model ids are documented on the card. It is four models, not one, but they are packaged and maintained together.", "watch": "Two things. The licence answer depends on where you downloaded from: the Hugging Face mirror says Apache-2.0, the ModelScope originals are governed by Alibaba's own FunASR Model Open Source License with its attribution and anti-denigration clauses. Pin the source and read the licence you actually received. Second, the shipped checkpoint publishes no error rate at all — you cannot compare it to anything in this matrix without running your own evaluation, and any Paraformer accuracy figure you find in a blog post is someone else's measurement on someone else's audio.", "standout": "a maintained pipeline that ships VAD, ASR, punctuation and speaker diarization as one integrated stack — the thing most people wrongly expect a bare ASR model to do", "facets": [ "actively-maintained", "cpu-capable", "diarization", "licence-catch", "punctuation", "self-hostable", "streaming", "word-timestamps" ], "hardware": "cpu", "params": "220 M", "architecture": "Non-autoregressive parallel Transformer — the whole utterance is decoded in one pass rather than token by token, which is where the throughput comes from.", "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "Yes, via a separate checkpoint: funasr/paraformer-zh-streaming. The offline and streaming models are different artefacts.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Yes — the pipeline returns timestamps in the sentence_info structure.", "punctuation": "Yes, but only if you also load funasr/ct-punc. The ASR model alone does not punctuate.", "custom_vocab": null, "output_formats": "Pipeline output includes sentence-level segments with timestamps and, with campplus loaded, speaker labels. FunASR also offers OpenAI-compatible and MCP serving.", "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes — self-host is the whole point; there is no Alibaba-run FunASR API.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "1,111 downloads for funasr/paraformer-zh in the trailing 30 days per the Hugging Face model API, 1 Aug 2026 — low, because the ecosystem's centre of gravity is ModelScope rather than Hugging Face, so this figure understates real usage.", "released": "Paraformer paper June 2022; funasr/paraformer-zh Hugging Face repo created 1 February 2024, last modified June 2026. FunASR toolkit actively maintained, with a v1.3.29 hotfix in July 2026.", "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://github.com/modelscope/FunASR", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Meta Omnilingual ASR", "variants": "omniASR CTC and LLM families at 300M / 1B / 3B / 7B, plus a 7B zero-shot variant", "category": "open", "licence": "Apache-2.0 on both code and model weights (stated in the facebookresearch/omnilingual-asr repository and on Meta's announcement; confirmed from the Hugging Face model API for facebook/omniASR-CTC-300M). The accompanying speech corpus is separately CC-BY-4.0. This is a clean break from the CC-BY-NC that covers MMS and Seamless.", "licence_class": "open", "price_note": "Free / self-host. Meta operates no ASR API.", "price_sort": null, "accuracy_note": "Character error rate below 10 on 78% of the 1,600+ supported languages (Meta's figure, measured across its own evaluation corpus). Per-language results are published as a CSV in the repository. There is no Open ASR Leaderboard submission, so it cannot be ranked against the English-centric models here.", "wer_sort": null, "languages_note": "1,600+ languages with released checkpoints — including 500 never previously transcribed by any ASR system (Meta's own figure) — and extensible to entirely new languages from a handful of in-context examples. Meta's announcement does not publish a ceiling for how many languages the zero-shot path reaches, so treat any specific extended-coverage number you see elsewhere as unsourced. The widest language coverage of any ASR system, open or hosted.", "languages_sort": null, "runs_on": "GPU. On an A100 in BF16 at batch size 1 over 30 s of audio, Meta reports roughly 2–15 GiB VRAM for the CTC models and roughly 5–17 GiB for the LLM models across the size range; the 7 B zero-shot variant needs roughly 20 GiB. The 300M variant is positioned for low-power devices.", "best_for": "Transcribing languages that no other system covers at all. For several hundred of these languages this is the only ASR that exists, and unlike MMS it is licensed so you can actually ship it.", "diarization": "None documented.", "watch": "The 78%-under-10-CER headline is a distribution, not a floor: 22% of the supported languages are above CER 10, and the model card does not lead with which ones. Check the per-language CSV for your specific language before committing — coverage and usable quality are different claims. Note also that this supersedes MMS and answers the licence objection to it, but almost every 'Meta multilingual ASR' comparison written before November 2025 is about MMS and its CC-BY-NC weights, so the received wisdom about Meta ASR licensing is now wrong.", "standout": "1,600+ languages under Apache-2.0, extensible to unseen languages from a few in-context examples — coverage no hosted API comes close to", "facets": [ "actively-maintained", "commercially-safe", "no-diarization", "self-hostable" ], "hardware": null, "params": "300 M, 1 B, 3 B and 7 B across the W2V (SSL), CTC and LLM families; the zero-shot variant is 7 B only.", "architecture": "Four families built on fairseq2 — a wav2vec 2.0 self-supervised encoder, CTC decoders, an LLM-conditioned ASR decoder, and an LLM zero-shot variant that accepts a handful of paired audio-text examples in context to add an unseen language.", "vram": null, "quantisation": null, "fine_tuning": "Explicitly designed for extension: new languages can be added from a few paired examples via in-context learning, without retraining.", "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Not documented.", "punctuation": "Not documented.", "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes — the only deployment path.", "data_policy": null, "benchmarks": "Real-time factor on A100 BF16 batch 1: 0.001–0.006x for the CTC models and roughly 0.090–0.097x for the LLM models (0.090–0.092 for LLM, 0.092–0.097 for LLM-Unlimited). The 7 B zero-shot variant is a separate family at 0.194x and should not be folded into the LLM range. Meta names the hardware, which most of this category does not.", "robustness": null, "adoption": null, "released": "November 2025 (Meta announcement 10 November 2025; arXiv 2511.09690; Hugging Face checkpoints created 27 November 2025). Model suite updated December 2025.", "status": "active", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://github.com/facebookresearch/omnilingual-asr", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Meta MMS", "variants": "mms-1b-all / mms-1b-fl102 / mms-1b-l1107", "category": "open", "licence": "CC-BY-NC-4.0 on the weights (confirmed from the Hugging Face model API for facebook/mms-1b-all, 1 Aug 2026). Non-commercial. This is the same block that applies to Seamless and it is not curable by attribution.", "licence_class": "bad", "price_note": "Free to download, no commercial use permitted at any price.", "price_sort": null, "accuracy_note": "22.54% mean WER on the Open ASR Leaderboard sets, with AMI at 42.02% and RTFx 230.79 — by a wide margin the worst English accuracy of any model in this matrix. MMS was never optimised for English; the figure is here because people benchmark it against Whisper without realising that.", "wer_sort": null, "languages_note": "1,162 languages for ASR, implemented as language-specific adapters over a shared 1B wav2vec2 backbone.", "languages_sort": null, "runs_on": "GPU or CPU via Hugging Face Transformers. The base model stays resident while adapters are swapped per language, which keeps memory sane across many languages.", "best_for": "Research on long-tail languages, and nothing commercial. If you were reaching for MMS for its language coverage, Meta's own Omnilingual ASR is newer, wider and Apache-2.0.", "diarization": "None.", "watch": "Superseded and mislicensed. Omnilingual ASR, from the same lab, covers 1,600+ languages under Apache-2.0 and was released in November 2025 — there is now no reason to accept MMS's non-commercial terms. And if you are evaluating MMS on English to decide anything, stop: 22.54% mean WER on the Open ASR Leaderboard against 5.33% for Granite Speech 4.1 is not a close call, and it tells you nothing about how MMS performs on the long-tail languages it was actually built for.", "standout": null, "facets": [ "cpu-capable", "frozen", "no-diarization", "non-commercial", "self-hostable" ], "hardware": "cpu", "params": "1 B backbone plus per-language adapter weights", "architecture": "wav2vec 2.0 encoder with per-language adapter modules, switched at inference via load_adapter() and set_target_lang().", "vram": null, "quantisation": null, "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Not documented.", "punctuation": "Not documented, and in practice CTC output from this lineage is unpunctuated and uncased.", "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes, for non-commercial use only.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "May 2023 (arXiv 2305.13516, published 22 May 2023).", "status": "dormant", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/facebook/mms-1b-all", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Meta SeamlessM4T v2", "variants": null, "category": "open", "licence": "CC-BY-NC-4.0 on the weights (confirmed from the Hugging Face model API for facebook/seamless-m4t-v2-large, 1 Aug 2026). Non-commercial — a hard block.", "licence_class": "bad", "price_note": "Free to download, no commercial use permitted.", "price_sort": null, "accuracy_note": "Meta reported state-of-the-art translation and transcription results at release but publishes the evaluation numbers as a downloadable archive rather than on the model card. No WER figure on any named public ASR test set appears on the card, and there is no Open ASR Leaderboard entry.", "wer_sort": null, "languages_note": "101 languages accepted as speech input, 96 for text input/output. ASR is one of five supported tasks alongside speech-to-text translation, speech-to-speech translation, text-to-text and text-to-speech.", "languages_sort": null, "runs_on": "Self-hosted GPU via fairseq2 or Transformers. Meta operates no API, no SLA and no support.", "best_for": "Non-commercial research on speech translation where you want transcription and translation from one multitask model. As a pure ASR system it is the wrong tool — the translation path is what it was built for.", "diarization": "None.", "watch": "Frozen since release — the repo was last modified January 2024 — and non-commercial, and the ASR is incidental: you are running a 2.3 B translation model to get a transcript a 600 M Parakeet would produce better and faster under CC-BY-4.0. Meta's own Omnilingual ASR now covers more languages under Apache-2.0. The only reason left to reach for Seamless is speech-to-speech translation, which nothing else in this category does at all.", "standout": null, "facets": [ "frozen", "no-diarization", "non-commercial", "self-hostable", "translation" ], "hardware": null, "params": "2.3 B", "architecture": "UnitY2, with hierarchical character-to-unit upsampling and a non-autoregressive text-to-unit decoder.", "vram": null, "quantisation": null, "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Not documented.", "punctuation": "Not documented.", "custom_vocab": null, "output_formats": null, "translation": "Yes — this is the model's actual purpose, across speech and text in both directions.", "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes, non-commercially.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "November 2023 (Hugging Face repo created 29 November 2023). The accompanying Seamless paper, arXiv 2312.05187, is dated 8 December 2023 — that paper date is often quoted as the model release date and is a month late.", "status": "dormant", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/facebook/seamless-m4t-v2-large", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "wav2vec 2.0 / HuBERT / WavLM", "variants": "facebook/wav2vec2-large-960h-lv60-self · facebook/hubert-large-ls960-ft · microsoft/wavlm-large", "category": "legacy", "licence": "Mixed, and one of them is ShareAlike. facebook/wav2vec2-large-960h-lv60-self and facebook/hubert-large-ls960-ft are Apache-2.0. microsoft/wavlm-large carries NO licence tag at all on Hugging Face — the model card states only that 'The official license can be found here', linking to the Microsoft UniSpeech repository LICENSE, which is Creative Commons Attribution-ShareAlike 3.0 Unported. Commercial use is allowed, but derivatives must be released under the same ShareAlike terms.", "licence_class": "warn", "price_note": "Free / self-host.", "price_sort": null, "accuracy_note": "facebook/wav2vec2-large-960h-lv60-self: 1.9% WER on LibriSpeech test-clean and 3.9% on test-other. facebook/hubert-large-ls960-ft: 1.9% on LibriSpeech test-clean. Both figures are in-domain LibriSpeech read audio — the easiest ASR benchmark in existence and not predictive of anything conversational. Neither has a current Open ASR Leaderboard average on its card.", "wer_sort": null, "languages_note": "English for the fine-tuned CTC checkpoints listed here. Multilingual variants of the same architectures exist (XLSR, XLS-R) as separate checkpoints.", "languages_sort": null, "runs_on": "CPU or GPU. These are small by 2026 standards and run comfortably in plain PyTorch.", "best_for": "Fine-tuning a domain-specific or low-resource ASR system from a pretrained encoder, and as feature extractors for downstream speech tasks. As a finished transcription product in 2026 they are obsolete.", "diarization": "None from wav2vec2 or HuBERT. WavLM is the exception in an important way: it was explicitly designed for speaker verification, speaker diarization and speech separation as well as recognition, and it is the encoder underneath much of the modern open diarization stack — but the checkpoint itself outputs embeddings, not speaker turns.", "watch": "Two traps. First, microsoft/wavlm-large is not permissively licensed the way the Apache-2.0 Meta checkpoints are, and it is worse than a mislabelled badge — the repo carries no licence tag at all, just a link out to the UniSpeech LICENSE, which is CC-BY-SA-3.0. Anything you derive from it inherits ShareAlike, and nothing on the Hugging Face page tells you that. Second, and more common: the bare pretrained checkpoints — wavlm-large, hubert-large-ll60k, wav2vec2-large — have no tokenizer and no ASR head and will not transcribe a single word. Only the -ft / -960h fine-tuned checkpoints do. Every LibriSpeech number quoted for this family is read-audio in-domain and collapses on real conversational or accented speech.", "standout": "the encoders the rest of this category is built on — MMS and Omnilingual ASR are both wav2vec 2.0 underneath", "facets": [ "cpu-capable", "frozen", "licence-catch", "no-diarization", "self-hostable", "word-timestamps" ], "hardware": "cpu", "params": "Not stated on the model cards for the checkpoints listed.", "architecture": "Self-supervised Transformer encoders over raw waveform. wav2vec 2.0 uses contrastive masked prediction over quantised latents; HuBERT uses offline clustering to generate aligned target labels; WavLM adds masked speech denoising and utterance mixing to make the representations robust to overlapping speakers. WavLM-Large was pretrained on 94,000 hours — Libri-Light 60k, GigaSpeech 10k, VoxPopuli 24k.", "vram": null, "quantisation": null, "fine_tuning": "This is the actual product. All three are designed to be fine-tuned; the bare pretrained checkpoints cannot transcribe at all.", "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "CTC frame alignments are available in principle, but no word-level timestamp API is provided.", "punctuation": "None. These emit uppercase, unpunctuated text. Restoring case and punctuation is a separate model you must add.", "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "wav2vec 2.0 2020 (papers June and October 2020). HuBERT June 2021. WavLM October 2021 (Hugging Face repo created March 2022).", "status": "dormant", "verification": "verified", "verification_note": null, "rating": null, "source_url": null, "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "whisper.cpp", "variants": "ggml/GGUF conversions of OpenAI Whisper tiny → large-v3", "category": "runtime", "licence": "MIT on the whisper.cpp code (GitHub API reports spdx MIT). The project ships NO weights of its own — it repackages OpenAI's Whisper checkpoints (MIT) into the ggml format. A fork's checkpoint is not covered by this: check the card of whichever .bin you download.", "licence_class": "open", "price_note": "Free / self-host", "price_sort": null, "accuracy_note": "whisper.cpp does not retrain, so accuracy is Whisper's, minus whatever your quantisation costs. Reference figures on a named set: Whisper large-v3 7.44% WER, small 8.59%, tiny 12.81%, evaluated with 'the HuggingFace OpenASR Leaderboard datasets and methodology' — as published in a competitor's (Moonshine's) comparison table. Picovoice's public Apache-2.0 harness gives Whisper Tiny 5.9% / 13.8% / 6.6% / 24.4% on LibriSpeech test-clean / test-other / TED-LIUM / CommonVoice. The two sources are NOT comparable: the same Picovoice harness puts Whisper large-v3 at 3.7% on test-clean against Moonshine's 7.44% on the OpenASR suite. NO whisper.cpp-specific WER is published, and nobody publishes the WER delta from Q5_0 quantisation.", "wer_sort": null, "languages_note": "99 — inherited wholesale from Whisper. Transcribe in 99, translate-to-English via -tr.", "languages_sort": null, "runs_on": "Almost anything with a C compiler. Plain C/C++ CPU with ARM NEON, Apple Accelerate, AVX and POWER VSX paths; Core ML (Apple Neural Engine), Metal, CUDA/cuBLAS, ROCm/HIP, Vulkan, OpenVINO, Ascend NPU via CANN, Moore Threads MUSA, OpenBLAS, and WebAssembly.", "best_for": "Getting Whisper running on hardware nobody wrote a Python wheel for — a Pi, an iPhone, a browser tab, an Ascend NPU. Also the default choice when you want one static binary and no runtime dependency tree.", "diarization": "Effectively none. The README offers 'speaker segmentation via tinydiarize' behind a -tdrz flag and labels it experimental; it emits speaker-turn markers, not speaker labels or clustered identities. There is no embedding or clustering stage. If you need who-spoke-when, bolt on a separate diarizer.", "watch": "'Runs on a Raspberry Pi' is doing a lot of work. The project's own benchmark thread has a Pi 4 spending 13.8 s encoding each 30-second window with tiny and 30.6 s with base — and that is the encoder alone, before any decoding. The memory table is for unquantised weights and does not include your audio buffers. Word timestamps are a segment-splitting trick, not alignment. And the benchmark data everyone quotes was posted in October 2022.", "standout": "The one ASR runtime already ported to whatever silicon you happen to have — ANE, Vulkan, OpenVINO, Ascend, MUSA, WASM", "facets": [ "actively-maintained", "commercially-safe", "cpu-capable", "diarization", "self-hostable", "streaming", "translation", "word-timestamps" ], "hardware": "cpu", "params": "39 M (tiny) to 1.55 B (large) — the Whisper family, unchanged", "architecture": "Whisper encoder-decoder transformer over a fixed 30-second log-mel window, executed by the ggml tensor library", "vram": "README memory table (unquantised): tiny 75 MiB disk / ~273 MB mem · base 142 MiB / ~388 MB · small 466 MiB / ~852 MB · medium 1.5 GiB / ~2.1 GB · large 2.9 GiB / ~3.9 GB. Verified line-for-line against the README.", "quantisation": "Integer quantisation of the ggml models is built in (Q5_0 documented in the README, via the bundled quantize tool); quantised .bin files cut both disk and memory.", "fine_tuning": null, "streaming": "Chunked pseudo-streaming, not true streaming. The README describes the `stream` tool as sampling 'the audio every half a second and runs the transcription continuously', with documented defaults of --step 500 --length 5000 — a 5-second sliding buffer re-transcribed twice a second, which the model then pads to its fixed 30-second encoder window. Whisper's architecture is a fixed-window encoder-decoder — there is no frame-synchronous path.", "latency_note": null, "realtime_factor": null, "audio_limits": "30-second internal window; longer files are chunked by the tool. Silero-VAD filtering is supported to skip silence before inference.", "timestamps": "Segment-level by default. Word-level is obtained by forcing one token per segment (`-ml 1`), which is a formatting trick rather than a forced aligner.", "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": "Yes — Whisper's translate task outputs English from any of the 99 input languages (-tr).", "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes — that is the whole product. Inference only; no training or fine-tuning.", "data_policy": null, "benchmarks": "whisper.cpp benchmark thread (discussion #89), community-submitted, encoder-only time for one 30-second mel window, earliest entries 25 October 2022: MacBook M1 Pro (8 threads, NEON+BLAS) tiny 102 ms / base 220 ms / large 3,350 ms · Ryzen 9 5950X (8 threads, AVX2) tiny 135 ms / base 176 ms / large 1,576 ms · Raspberry Pi 4 (4 threads, NEON) tiny 13,839 ms / base 30,552 ms · iPhone 13 mini (4 threads, NEON+BLAS) base 1,091 ms. README claims Core ML on the Apple Neural Engine gives 'more than x3 faster' encoder inference than CPU-only on 'Apple Silicon devices' — no specific chip named.", "robustness": null, "adoption": "52,484 GitHub stars (GitHub API); the de facto embedding of Whisper in desktop and mobile apps last push 31 July 2026, 1,228 open issues (GitHub API", "released": "September 2022 (repo created 25 Sep 2022, GitHub API)", "status": "active", "verification": "verified", "verification_note": "licence, memory table, backend list, stream defaults, dates and the benchmark thread read off the repo and the GitHub API); benchmarks are community-submitted and nearly four years old", "rating": null, "source_url": "https://github.com/ggml-org/whisper.cpp", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "WhisperKit / Argmax OSS (Argmax)", "variants": "Open-source Swift package (repo renamed argmaxinc/WhisperKit → argmaxinc/argmax-oss-swift, now bundling WhisperKit, SpeakerKit and TTSKit) + Argmax Pro SDK", "category": "runtime", "licence": "MIT on the Swift repo — 'Argmax OSS is released under the MIT License… This project incorporates third-party software under their own license terms.' Whisper weights are OpenAI's (MIT), converted to Core ML. The diarization component (SpeakerKit) 'runs Pyannote v4 (community-1) on Apple silicon' per the repo README, and pyannote/speaker-diarization-community-1 is CC-BY-4.0 AND GATED on Hugging Face — you must accept its conditions and hand over contact details, and CC-BY-4.0 carries an attribution obligation the MIT repo badge does not.", "licence_class": "warn", "price_note": "Free for the MIT repo. The Argmax Pro SDK is a separate commercial product; no price is published.", "price_sort": null, "accuracy_note": "Argmax's own published comparison, dated 20 June 2025, on a 'Random 10% subset of the earnings22 dataset, consisting of ~12 hours of English conversations from earnings calls with analysts', with 'All results are computed on an M4 Mac mini running macOS 26 Beta Seed 1': WhisperKit base.en 15.2% WER, small.en 12.8%, against Apple's SpeechTranscriber at 14.0%. The best number in that table belongs to the paid tier — Argmax Pro SDK (nvidia/parakeet-v2) at 11.7%. Vendor-published, Argmax sells the competing SDK, the measurement is fourteen months old and was taken on a beta seed of the competitor's OS — read it as a dated vendor benchmark, not an arbitration. Accuracy otherwise inherits whichever checkpoint you load: Argmax recommends `large-v3-v20240930_626MB` for maximum multilingual accuracy and `tiny` for the fastest debug loop, but the 626 MB build is Argmax's own compression rather than a copy of openai/whisper-large-v3, and no WER delta for the compressed build is published — so neither figure above, both measured on base.en and small.en, describes it.", "wer_sort": null, "languages_note": "99 by OpenAI's own count for Whisper's language set (Argmax's comparison page says 100), plus language detection, which Apple's own framework does not offer. Coverage is the loaded checkpoint's — tiny, base and small ship in both multilingual and English-only builds.", "languages_sort": null, "runs_on": "Apple Silicon Macs, iPhone and iPad, through Core ML (Apple Neural Engine + Metal). Per the repo README: WhisperKit macOS 14.0+ (Xcode 16.0+), SpeakerKit macOS 13.0+ / iOS 16.0+, TTSKit macOS 15.0+ / iOS 18.0+. Argmax's June 2025 comparison page separately states WhisperKit at iOS 17 / macOS 14 minimum.", "best_for": "Apple-platform apps that need Whisper's full language set, language detection, diarization or custom vocabulary on-device — or that must still run on iOS 17 and macOS 14, which Apple's SpeechAnalyzer cannot.", "diarization": "Yes, and it is real, and it is in the MIT repo: SpeakerKit produces diarized transcripts with per-segment speaker labels and detectable speaker count, and the README states it 'runs Pyannote v4 (community-1) on Apple silicon to label speakers in audio', reachable from the free argmax-cli. This is the differentiator against Apple's framework, which has none. Those weights are CC-BY-4.0 and gated — see licence. Real-time transcription WITH speakers is Pro-only.", "watch": "Four things. (1) You cannot have both numbers. Speed factor 111 is base.en, which is LESS accurate than Apple's free framework; the model that beats Apple on WER (small.en, 12.8%) runs at speed factor 35 — half Apple's 70. Every comparison table that pairs the fast number with the accurate number is selling you a configuration that does not exist. (2) The benchmark is from 20 June 2025 and was run against macOS 26 BETA SEED 1; Apple shipped since. (3) MIT is the code licence — SpeakerKit runs pyannote community-1, which is CC-BY-4.0 and gated, so shipping diarization means accepting pyannote's terms and carrying an attribution notice. (4) Real-time transcription with speakers, custom vocabulary, the WebSocket server and Android are Argmax Pro SDK, whose price is not published. (5) THE REPOSITORY HAS MOVED — `github.com/argmaxinc/WhisperKit` now redirects to `argmaxinc/argmax-oss-swift`, so older links, docs, blog posts and Swift Package URLs point at a renamed target.", "standout": "On-device Whisper with real speaker diarization on Apple silicon, and it back-deploys to OS versions Apple's own SpeechAnalyzer refuses", "facets": [ "actively-maintained", "custom-vocab", "diarization", "licence-catch", "multilingual", "self-hostable", "streaming", "word-timestamps" ], "hardware": null, "params": null, "architecture": "Whisper encoder-decoder compiled to Core ML; audio chunking includes a VAD strategy that splits on silence boundaries", "vram": null, "quantisation": "Compressed Core ML variants are published — the README lists large-v3-v20240930 at 626 MB compressed alongside an uncompressed build", "fine_tuning": null, "streaming": "Streaming supported; the bundled local server exposes Server-Sent Events for real-time transcription. The WebSocket local server for real-time streaming transcription, and real-time transcription WITH speakers, are Argmax Pro SDK features, not MIT-repo ones.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Word-level and segment-level — the API exposes a timestamp_granularities parameter accepting both.", "punctuation": null, "custom_vocab": "Available, but in the Argmax Pro SDK rather than the MIT repo", "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes — fully local, no key, no network", "data_policy": null, "benchmarks": "Same 20 June 2025 run, same M4 Mac mini on macOS 26 beta seed 1. Speed factor = 'the number of seconds of input audio processed by the transcription system in one second of wall-clock time': WhisperKit base.en 111, Apple SpeechTranscriber 70, WhisperKit small.en 35, Argmax Pro SDK parakeet-v2 359. Read the speed and the accuracy off the SAME row — base.en is the one that hits 111, and it LOSES to Apple on WER (15.2% vs 14.0%). The configuration that beats Apple on accuracy, small.en at 12.8%, runs at speed factor 35, i.e. half Apple's throughput.", "robustness": null, "adoption": "6,303 GitHub stars (GitHub API, 1 Aug 2026).", "released": "argmax-oss-swift v1.0.0 released 1 May 2026 — its own release notes describe it as 'the graduation of the project from WhisperKit into the Argmax Open-Source SDK'. Last push 31 July 2026. The recommended default checkpoint is a 2024-09-30 build of large-v3, so the open-source side has not tracked newer Whisper releases.", "status": "active", "verification": "mixed", "verification_note": "licence, platform floors, SpeakerKit's pyannote lineage, model sizes and the free/Pro split read off the repo README; the pyannote community-1 licence read off its Hugging Face card; MIT licence, star count, v1.0.0 date, last push and the January 2024 repo creation date (which confirms this is the renamed WhisperKit rather than a new project) read off the GitHub API on 1 Aug 2026; all accuracy and speed figures are Argmax-published and dated June 2025", "rating": null, "source_url": "https://github.com/argmaxinc/argmax-oss-swift", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "sherpa-onnx", "variants": "next-gen Kaldi / k2-fsa", "category": "runtime", "licence": "Apache-2.0 on the sherpa-onnx code (GitHub API spdx_id, read 1 Aug 2026). It ships NO weights of its own. Every pre-trained model carries its own licence and the `sherpa-onnx-` filename prefix confers nothing — the converted files are renamed, not relicensed. Two that matter, checked upstream: the diarization segmentation model derives from pyannote/segmentation-3.0, which is MIT but GATED on Hugging Face (`gated: auto`, verified from the HF API); the NeMo Parakeet checkpoints derive from NVIDIA models such as nvidia/parakeet-tdt-0.6b-v2, whose card states 'GOVERNING TERMS: Use of this model is governed by the CC-BY-4.0 license' — permissive, but attribution-bearing, and not Apache-2.0.", "licence_class": "warn", "price_note": "Free / self-host", "price_sort": null, "accuracy_note": "None, and correctly so — accuracy belongs to whichever checkpoint you load. The catalogue spans Zipformer transducers (streaming and offline), Paraformer and Paraformer-large, Whisper, SenseVoice, Moonshine, NeMo transducers and TeleSpeech-ASR, whose accuracies have nothing in common with each other, so there is no such thing as a sherpa-onnx WER. Per-model RTF figures do appear scattered through the docs (0.04 for a Bengali model, 0.15 and 0.46 for Chinese int8 and xlarge-int8, 0.16 for a Korean fp32, 0.062–0.125 for English streaming Zipformers) but hardware and thread count are not systematically stated, so none of them is comparable to another.", "wer_sort": null, "languages_note": "Whatever the checkpoint covers. Pre-trained models exist for Chinese, English, Japanese, Korean, Cantonese, Bengali and more, plus a spoken-language-identification model.", "languages_sort": null, "runs_on": "The widest hardware envelope in the category, and it runs offline with no network. Linux, macOS, Windows, Android, iOS, HarmonyOS and WebAssembly in the browser; x64, x86, arm64, arm32 and riscv64; Raspberry Pi and NVIDIA Jetson; CUDA 10.2–12.8; and NPU back-ends for Rockchip RKNN, Qualcomm QNN/HTP, Huawei Ascend, Axera and SpacemiT.", "best_for": "Shipping a complete offline voice stack onto embedded silicon — especially anything with an RKNN, QNN, Ascend or Axera NPU, where it is often the only ASR runtime with a back-end at all. Also the fastest route to ASR + VAD + diarization + wake word + TTS from a single dependency.", "diarization": "Built in, and it is a genuine two-stage pipeline rather than a hint: a pyannote-3.0 segmentation model converted to ONNX (upstream pyannote/segmentation-3.0 is MIT but gated on Hugging Face), plus a separate speaker-embedding extractor (3D-Speaker or NVIDIA NeMo). The docs place them under two different GitHub release tags — speaker-segmentation-models and speaker-recognition-models — so they are two additional downloads with two additional licences. One of the very few edge runtimes shipping diarization as a first-class feature.", "watch": "Apache-2.0 is the code licence, not the weights licence, and this is the row where that distinction bites hardest. The diarization stack alone is two extra downloads: a pyannote segmentation model (MIT upstream, but gated — you must accept conditions on Hugging Face) and a 3D-Speaker or NeMo embedding model. Load a NeMo Parakeet checkpoint and you are on NVIDIA's CC-BY-4.0 terms, not Apache-2.0. Resolve the licence per checkpoint, because the runtime will not do it for you and the sherpa-onnx- filename prefix tells you nothing. The RTF numbers in the docs are printed without naming the machine that produced them, so they are not a planning input — measure on your own board.", "standout": "An edge runtime shipping ASR, VAD, diarization, keyword spotting, punctuation, speaker ID, speech enhancement, source separation and TTS in one binary — and the only one here with RKNN, QNN, Ascend and Axera NPU back-ends", "facets": [ "actively-maintained", "browser", "diarization-addon", "licence-catch", "punctuation", "self-hostable", "streaming" ], "hardware": "browser", "params": null, "architecture": "ONNX Runtime inference over Zipformer transducer and CTC, Conformer, LSTM transducer, Paraformer (online and offline), WeNet CTC, Whisper, Moonshine, SenseVoice, NeMo Parakeet, TeleSpeech-ASR, T-one CTC, Dolphin and FireRedASR checkpoints", "vram": null, "quantisation": "ONNX throughout, with dedicated NPU builds (RKNN, QNN) published as separate release assets.", "fine_tuning": null, "streaming": "TRUE streaming, and this is the distinction that matters: it serves genuinely streaming architectures (online Zipformer transducers and the CTC families), so the streaming is a property of the model class, not a windowing trick over a batch model. It also serves the offline families in non-streaming mode, and both modes are supported side by side.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": "Separate punctuation-restoration models are available in the model zoo — not part of the ASR output.", "custom_vocab": null, "output_formats": "Bindings for 12 languages — C++, C, Python, JavaScript, Java, C#, Kotlin, Swift, Go, Dart, Rust and Pascal — plus a WebSocket server/client", "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes, entirely — the project's stated design goal is that nothing touches the internet", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "13,917 GitHub stars, last push 2026-07-31 (GitHub API, k2-fsa/sherpa-onnx, read 1 Aug 2026); bindings in 12 programming languages.", "released": "Repo created 1 September 2022 (GitHub API). v1.13.4 is the highest version tag, at the head of an unbroken v1.13.0–v1.13.4 sequence sitting above v1.12.40; day-level dates for those tags were not confirmable in this pass and are not stated. The project also cuts frequent asset-only releases — the two most recent tags are `xcframework` and `vocoder-models`, and /releases/latest resolves to the xcframework asset bundle published 31 July 2026, not to a version tag.", "status": "active", "verification": "verified", "verification_note": "merged from two independent research passes on 1 Aug 2026, which were complementary rather than contradictory. Re-verified this pass from the GitHub API — Apache-2.0 spdx_id, 13,917 stars, last push 31 July 2026, repo created 1 September 2022, the 12-binding count in the repo description, the offline (\"without Internet connection\") design goal, and the v1.13.0–v1.13.4 tag sequence with its two asset-only tags above it; and from the Hugging Face API, pyannote/segmentation-3.0's MIT licence and its `gated: auto` status. Platform list, model families and the diarization pipeline are read off the repo and project docs; the NVIDIA licence quote off its Hugging Face card. RTF figures are published without hardware and are therefore not verifiable. Withdrawn as unsupported: a \"roughly monthly\" release cadence, a July 2026 date attached to the v1.13.4 tag itself, an 11-item list of the 12 language bindings that omitted C, and a claim that feature parity lags in the less-used bindings.", "rating": null, "source_url": "https://github.com/k2-fsa/sherpa-onnx", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Vosk", "variants": "vosk-api + per-language model zoo", "category": "device", "licence": "Apache-2.0 on vosk-api (GitHub API spdx: Apache-2.0). The MODELS are not uniformly Apache. Verified from the models page: AGPL (vosk-model-fr-0.6-linto-2.2.0, vosk-model-ar-0.22-linto-1.1.0, vosk-model-en-us-daanzu-20200905 and its lgraph variant), LGPL-3.0 (vosk-model-small-en-us-zamia-0.5, vosk-model-small-de-zamia-0.3), CC-BY-NC-SA 4.0 (vosk-model-small-fr-0.22, vosk-model-tl-ph-generic-0.6, vosk-model-nl-spraakherkenning-0.6), GPLv3.0 (vosk-model-pt-fb-v0.1.1) and MIT (Swedish and Czech Rhasspy, Breton) alongside the Apache-2.0 majority.", "licence_class": "warn", "price_note": "Free / self-host", "price_sort": null, "accuracy_note": "Publisher's own model table with test sets named, verified figure-for-figure: vosk-model-small-en-us-0.15 (40 MB) 9.85% WER on LibriSpeech test-clean and 10.38% on TED-LIUM. vosk-model-en-us-0.22 (1.8 GB) 5.69% / 6.05% and 29.78% on their 'callcenter' set. vosk-model-en-us-0.42-gigaspeech (2.3 GB) 5.64% / 6.24% / 30.17%, with the publisher's own note that it is 'mostly for podcasts, not for telephony'. The ~30% callcenter figure is the useful one — it is the only telephony number anyone in this category publishes.", "wer_sort": null, "languages_note": "'Supports 20+ languages and dialects' per the project's own front page (English, Indian English, German, French, Spanish, Portuguese, Chinese, Russian, Turkish, Vietnamese, Italian, Dutch, Catalan, Arabic, Greek, Farsi, Filipino, Ukrainian, Kazakh, Swedish, Japanese, Esperanto, Hindi, Czech, Polish); more again counting community models on the models page.", "languages_sort": null, "runs_on": "Android, iOS, Raspberry Pi and servers. 'Portable per-language models are only 50Mb each, but there are much bigger server models available' — the models page adds roughly 300 MB of runtime memory for the small models; big models run to 1.3–2.3 GB and one is listed at up to 16 GB.", "best_for": "Offline command-and-control and continuous dictation on constrained hardware where you need a real streaming API, per-word confidence, and the ability to restrict the vocabulary at runtime — things the Whisper family cannot do at all.", "diarization": "None. There is a separate 13 MB speaker-identification model (vosk-model-spk-0.4, Apache 2.0 per the models page) that emits speaker embeddings you must cluster or match yourself. That is speaker ID, not diarization, and conflating the two is the classic Vosk mistake.", "watch": "'Vosk is Apache-2.0' is true of the API and false of a named list of language models: the French and Arabic LINTO models and two older English models are AGPL, two Zamia models are LGPL-3.0, the small French, Filipino and Dutch models are CC-BY-NC-SA, and the Portuguese FalaBrazil model is GPLv3. Check the model row, not the repo badge. Punctuation is a separate 1.1–1.6 GB model — about 40x the acoustic model — which quietly destroys the 50 MB edge story the moment you need readable output. And by the publisher's own table, telephony audio lands near 30% WER.", "standout": "Runtime-reconfigurable vocabulary and grammar with per-word confidence at 50 MB — capabilities the entire Whisper lineage lacks", "facets": [ "actively-maintained", "cpu-capable", "custom-vocab", "edge-capable", "licence-catch", "no-diarization", "self-hostable", "streaming", "word-timestamps" ], "hardware": "phone", "params": null, "architecture": "Kaldi acoustic and language models exported for streaming decoding", "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "Streaming, and architecturally frame-synchronous rather than chunked — Kaldi online decoders consume frames as they arrive. What the project itself claims is narrower: it 'Provides streaming API for the best user experience (unlike popular speech-recognition python packages)'. No latency figure is published, so treat 'zero-latency' framing found elsewhere as marketing rather than a measurement.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Word-level start and end in seconds, plus a per-word confidence 0–1, returned when you call SetWords(true).", "punctuation": "NOT in the ASR. Separate recasepunc models restore case and punctuation — and per the models page they are 1.6 GB (English), 1.6 GB (Russian) and 1.1 GB (German), i.e. roughly 40x the size of the 40 MB acoustic model they punctuate.", "custom_vocab": "Genuinely strong: 'Allows quick reconfiguration of vocabulary for best accuracy' — runtime vocabulary modification on small dynamic-graph models, grammar restriction, and full LM rebuild with OpenFST/OpenGRM for the large models. The catch is that new words must already exist in the acoustic model's dictionary — you cannot introduce a novel word by LM edit alone. Acoustic fine-tuning needs about an hour of data via Kaldi scripts.", "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes — offline by design, no key, no account", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "15,019 GitHub stars (GitHub API); bindings for Python, Java, C#, Node.js, Rust and Go last push 2 July 2026, 601 open issues (GitHub API", "released": null, "status": "active", "verification": "verified", "verification_note": "licence, model table, every quoted WER figure, model sizes and feature bullets read off the project's own pages and the GitHub API", "rating": null, "source_url": "https://github.com/alphacep/vosk-api", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Silero STT", "variants": "Community Edition (CE) · Enterprise Edition (EE)", "category": "device", "licence": "CC BY-NC-SA 4.0 on the Community Edition models — the repo LICENSE file is the full 'Attribution-NonCommercial-ShareAlike 4.0 International' Creative Commons text, and the project wiki states CE is 'provided as-is under a non-commercial License'. GitHub reports the repo licence as NOASSERTION. Commercial use requires the Enterprise Edition, negotiated directly.", "licence_class": "bad", "price_note": "Free for non-commercial use only. Enterprise Edition is contact-sales; no price published.", "price_sort": null, "accuracy_note": "Publisher's own wiki benchmark, EN V6, dated February 2022. Silero CE xlarge: 6.1% WER on LibriSpeech test_clean (verified), 24.4% on Common Voice test, 13.0% mean across UK dialect sets. Google Video Premium and Phone Premium on test_clean: 7.8% and 8.7% (verified). The wiki does carry Enterprise Edition columns in its V3–V6 tables, but the specific EE xlarge triple previously quoted here (5.4 / 19.1 / 9.7) could not be re-read off the V6 table in this pass and has been withdrawn rather than published unverified. A vendor-run comparison against a named competitor on named public sets — better sourced than most in this category, but four years old, and the EE column is for a product you cannot download.", "wer_sort": null, "languages_note": "English, German, Spanish and Ukrainian in the repo's models.yml (en through v6, de through v4, es v1, ua v3). The PyTorch Hub page lists only English, German and Spanish. Russian appeared in earlier releases.", "languages_sort": null, "runs_on": "CPU. TorchScript (.jit) and ONNX artefacts; 16 kHz mono normalised input, no other preprocessing.", "best_for": "Research, prototypes, hobby projects and internal non-revenue tooling in English, German, Spanish or Ukrainian, where a compact CPU model that already restores capitalisation and basic punctuation beats wiring up a Whisper pipeline.", "diarization": "None in the Community Edition. Speaker ID, gender classification and emotion detection are listed as Enterprise Edition features only.", "watch": "The licence is the entire story: CC BY-NC-SA 4.0 forbids commercial use outright, and ShareAlike propagates to anything you derive from it. Every 'top open-source STT' listicle that includes Silero without saying this is wrong. Second: the benchmark you are reading is from February 2022 and its best columns are Enterprise Edition — a product that is sales-only and that you cannot download to check. Third: the public STT line has gone quiet while the repo stayed busy on TTS, so repo activity is not evidence that STT is maintained. Fourth: the project itself says the models 'work poorly with far-field audio and extremely noisy audio' — do not deploy this to a room microphone on the strength of a 6.1% read-audiobook number.", "standout": null, "facets": [ "actively-maintained", "cpu-capable", "edge-capable", "no-diarization", "non-commercial", "punctuation", "self-hostable" ], "hardware": "phone", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": "The models insert capital letters and basic punctuation inline — unusual for a model this size, and something Vosk needs a separate 1.1–1.6 GB model to do.", "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes, locally — but only for non-commercial purposes", "data_policy": null, "benchmarks": null, "robustness": "The project's own material claims robustness to dialects, codecs, domains, noise and lower sampling rates, while also conceding the models 'work poorly with far-field audio and extremely noisy audio'. The wiki benchmark does carry far-field and noisy columns (the VOiCES room subsets), and the CE xlarge results there run from the low teens into the 60s and 70s depending on room and microphone — but the figures sit across different table versions and no single reproducible headline number could be pinned in this pass. The published English tables stop at Feb 2022.", "adoption": "6,034 GitHub stars (GitHub API) ctive (last push 31 July 2026, GitHub API) but that activity is TTS and VAD. The STT line is dormant: English tops out at v6 with a February 2022 benchmark, the licensing wiki page was last edited 4 June 2023, and the repo's own GitHub description now reads 'Silero Models: pre-trained text-to-speech models made embarrassingly simple' with STT dropped from the headline.", "released": null, "status": "active", "verification": "verified", "verification_note": "licence read off the LICENSE file, tiers off the project wiki, language list off models.yml, repo state and description off the GitHub API; the EE figures could not be re-verified and were removed", "rating": null, "source_url": "https://github.com/snakers4/silero-models", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Apple Speech framework / SpeechAnalyzer", "variants": "SpeechAnalyzer + SpeechTranscriber (iOS 26/macOS 26) · SFSpeechRecognizer (legacy)", "category": "device", "licence": "Proprietary. A system framework with no separately licensed weights; usable only inside apps distributed under the Apple Developer Program agreement.", "licence_class": "closed", "price_note": "Free — no per-minute charge and no key. The price is the platform: you must ship an Apple app.", "price_sort": null, "accuracy_note": "Apple publishes no WER. The only measured figure available is third-party, vendor-adjacent and dated: Argmax (who sell the competing WhisperKit/Argmax Pro SDK) measured SpeechTranscriber at 14.0% WER on a 'Random 10% subset of the earnings22 dataset, consisting of ~12 hours of English conversations from earnings calls with analysts', against WhisperKit base.en 15.2% and small.en 12.8%, published 20 June 2025 with 'All results are computed on an M4 Mac mini running macOS 26 Beta Seed 1'. Apple's framework was a beta at the time of measurement and the measuring party's own paid tier (parakeet-v2) topped the table at 11.7%. Treat it as the only number available, not as a current one.", "wer_sort": null, "languages_note": "Not verified here — Apple's developer documentation renders via JavaScript and returned no body to a direct fetch. A July 2025 third-party walkthrough enumerated SpeechTranscriber.supportedLocales at 42 locales (~22 languages); Argmax's June 2025 comparison counted 10 languages for Apple SpeechAnalyzer. The two disagree by a factor of four and neither is Apple. Query supportedLocales at runtime rather than trusting any published count, including this one.", "languages_sort": null, "runs_on": "iOS 26 / macOS 26 and later for SpeechAnalyzer and SpeechTranscriber, on Apple silicon. The older SFSpeechRecognizer path back-deploys much further and still works.", "best_for": "Free, key-free, length-unlimited on-device transcription inside an Apple app — dictation, note-taking, live captions — where you would otherwise be paying a cloud vendor per minute for something the OS already does.", "diarization": "None. Neither SpeechAnalyzer nor SFSpeechRecognizer emits speaker labels. If you need speakers on Apple silicon you are going to WhisperKit/SpeakerKit or sherpa-onnx.", "watch": "Four traps. (1) SpeechAnalyzer is iOS 26+ / macOS 26+ with no back-deploy — adopting it means dropping every earlier OS, which is why WhisperKit still exists. (2) It has no custom vocabulary and the old API did; product names and domain jargon get worse when you migrate, not better. (3) 'On-device' does not mean 'already on the device' — language models are downloadable assets installed via AssetInventory, so a new locale's first run needs network, disk and a progress UI you have to build. (4) The one WER anyone quotes for Apple was measured by a competitor, on a beta seed, in June 2025 — and the locale counts in circulation range from 10 to 42, so enumerate supportedLocales yourself. There is no diarization anywhere in the framework, at any OS version.", "standout": "Free, unlimited-length, fully on-device transcription with no key, no bill and no length cap — if you can require iOS 26", "facets": [ "actively-maintained", "cpu-capable", "custom-vocab", "edge-capable", "no-diarization", "self-hostable", "streaming", "word-timestamps" ], "hardware": "phone", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "TRUE streaming — the API distinguishes volatile (in-progress) results from finalized ones, with .volatileResults as an explicit reporting option and an .offlineTranscription preset for fully local operation.", "latency_note": null, "realtime_factor": null, "audio_limits": "On-device SpeechAnalyzer: no published length cap. The legacy SFSpeechRecognizer server path is widely reported to stop tasks after about one minute per request and to be rate-limited (~1,000 requests per hour per device); these are community-reported limits, not re-verified against Apple documentation here. requiresOnDeviceRecognition removes the length cap, but only when supportsOnDeviceRecognition returns true.", "timestamps": "Word-level timing via result.text.audioTimeRange", "punctuation": null, "custom_vocab": "REMOVED. SpeechAnalyzer has no custom-vocabulary facility; Argmax notes Apple's new API 'lacks the Custom Vocabulary feature' that SFSpeechRecognitionRequest's contextual strings provided, at a measurable cost to keyword accuracy.", "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "N/A — it is the operating system. Fully local when using the offline preset.", "data_policy": "Fully on-device when the offline path is used; the legacy server path sends audio to Apple unless requiresOnDeviceRecognition is set.", "benchmarks": null, "robustness": null, "adoption": null, "released": "Announced at WWDC in June 2025; shipped with iOS 26 / macOS 26. Consistent with Argmax benchmarking macOS 26 beta seed 1 on 20 June 2025.", "status": "active", "verification": "mixed", "verification_note": "Apple's own documentation could not be fetched (JavaScript-rendered), so the API surface, locale list and legacy rate limits here rest on WWDC coverage and third-party walkthroughs; the only accuracy figure is a competitor's, published June 2025 against a beta OS", "rating": null, "source_url": "https://developer.apple.com/documentation/speech", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Android SpeechRecognizer / ML Kit GenAI Speech Recognition", "variants": null, "category": "device", "licence": "Proprietary. SpeechRecognizer is an Android system façade; the actual recognition is supplied by whichever app holds the RecognitionService role — usually but not necessarily Google's. ML Kit GenAI runs through the AICore system app against Gemini Nano.", "licence_class": "closed", "price_note": "Free at the API. Pricing for ML Kit GenAI Speech Recognition is not disclosed in the documentation.", "price_sort": null, "accuracy_note": "None published, by anyone, ever. Google publishes no WER for on-device SpeechRecognizer, and the ML Kit GenAI page says only that 'Languages in Beta may have a slightly higher word error rate' — without a baseline. Any WER you see attached to this row is somebody's guess.", "wer_sort": null, "languages_note": "ML Kit GenAI Basic mode: 15 locales, of which 14 are marked beta — only en-US is not (fr-FR, it-IT, de-DE, es-ES, hi-IN, ja-JP, pt-BR, tr-TR, pl-PL, cmn-Hans-CN, ko-KR, cmn-Hant-TW, ru-RU, vi-VN all carry the beta tag). Advanced (Gemini Nano) mode is headed '19 locales' but the page then lists 21, including th-TH, pt-PT and a further 9 beta entries. Note the Chinese locale codes are cmn-Hans-CN and cmn-Hant-TW, NOT zh-CN / zh-TW. Plain SpeechRecognizer's language set is whatever the device's recognition service happens to have installed — ERROR_LANGUAGE_NOT_SUPPORTED is the only way to discover it.", "languages_sort": null, "runs_on": "Basic: 'Android devices using API level 31 and higher' that actually have an on-device recognition engine installed. Advanced: 'Pixel 10' only at time of writing, via the AICore app and Gemini Nano — 'This API is not supported on devices with an unlocked bootloader.'", "best_for": "Free voice input in an Android app where a graceful fallback exists — dictation into a text field, voice search, accessibility input. It is the cheapest path to 'good enough' and the wrong path to anything you must guarantee.", "diarization": "None documented in either the platform API or the ML Kit GenAI API.", "watch": "There is no such thing as 'Android's ASR'. SpeechRecognizer is a façade over whatever RecognitionService the OEM shipped — nothing guarantees the implementation is Google's, that on-device recognition exists at all, or that your locale is present, and createOnDeviceSpeechRecognizer simply fails when it is not. In ML Kit GenAI Basic, 14 of the 15 locales are beta; only en-US is not, so 'supports 15 languages' means 'supports English, plus fourteen you are testing for Google'. Use cmn-Hans-CN / cmn-Hant-TW, not zh-CN / zh-TW, or you will get ERROR_LANGUAGE_NOT_SUPPORTED. The interesting new path, Gemini Nano Advanced mode, is Pixel 10 only, alpha, has no SLA and no deprecation policy, and is blocked on unlocked bootloaders. Nobody publishes a WER, a model size or a memory figure for any of it. Budget a bundled fallback engine as a requirement, not a contingency.", "standout": null, "facets": [ "cpu-capable", "edge-capable", "no-diarization", "self-hostable", "streaming" ], "hardware": "phone", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "Partial results via RecognitionListener.onPartialResults. ML Kit GenAI requires that 'Data must be provided to the file descriptor at a real-time rate (e.g., yielding 16,000 samples, or approximately 32 KB, every second)' — so it is realtime-paced whether or not your source is.", "latency_note": null, "realtime_factor": null, "audio_limits": "ML Kit GenAI file input: 'Format: Raw, headerless 16-bit PCM. Channels: Mono (single channel). Sample Rate: 16 kHz.'", "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": "Free; no published quota", "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "SpeechRecognizer is a stable platform API (createOnDeviceSpeechRecognizer added at API 31, hardened at API 33 to fail outright when no local engine exists). ML Kit GenAI Speech Recognition 'is offered in alpha, and is not subject to any SLA or deprecation policy. Changes may be made to this API that break backward compatibility.'", "released": null, "status": "unknown", "verification": "verified", "verification_note": "from Google's ML Kit documentation and the Android API reference — locale lists, beta flags, device restrictions, audio format and alpha status read verbatim; no accuracy or footprint figures exist to verify", "rating": null, "source_url": "https://developer.android.com/reference/android/speech/SpeechRecognizer", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Picovoice Cheetah", "variants": null, "category": "device", "licence": "Proprietary, closed weights. Every SDK requires an AccessKey issued from the Picovoice Console.", "licence_class": "closed", "price_note": "Not published. Picovoice's own FAQ states 'Picovoice is a B2B company focused on on-device AI tools for enterprises. At this time, there are no dedicated free or paid plans for personal or non-commercial use.' A free trial AccessKey exists, metered in seconds of audio processed, and 'Usage resets every 30 days. You can view real-time consumption on your Picovoice Usage Page.' Beyond the trial it is contact-sales. Third-party aggregators quote annual figures ($6,000 Foundation, $30,000 Enterprise) that Picovoice does not confirm on its own site — its pricing and checkout pages render via JavaScript and returned empty to direct fetches.", "price_sort": null, "accuracy_note": "Picovoice's own public benchmark lists Cheetah's core-hour (0.083) and model size (34 MB) but NOT its WER — verified: Cheetah appears in the resource tables and in no WER table, and the WER rows on that page are Leopard's. A 14.34% Cheetah WER circulates in third-party write-ups; it does not appear in Picovoice's published benchmark and should be treated as unattributed.", "wer_sort": null, "languages_note": "6 in the Cheetah docs prose — 'English, French, German, Italian, Portuguese, and Spanish', with other languages available to Enterprise Plan customers on request. The same docs page's language selector also surfaces Japanese and Korean, so the page is internally ambiguous; confirm for your target language before committing.", "languages_sort": null, "runs_on": "'Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64, arm64), Android, iOS, Web, Raspberry Pi (3, 4, 5)'. Runs on a single CPU core.", "best_for": "Realtime on-device dictation and voice control on a small ARM board or in a browser, where you need genuine frame-by-frame streaming with endpoint detection and a 34 MB model, and you are a company that can sign a commercial agreement.", "diarization": "None in Cheetah. Picovoice sells diarization as a separate engine (Falcon) — buying Cheetah does not get you speakers.", "watch": "On-device is not the same as untethered. The FAQ says the engines run offline without sending data to the cloud, and in the same breath describes usage metered in seconds of audio that resets every 30 days and is viewable in real time on your Picovoice Usage Page — the documentation never explains how usage reaches that page from an offline device. Resolve that before you commit to anything air-gapped. There is also no published price and no self-service plan; the FAQ says outright there are no dedicated plans for personal or non-commercial use. Picovoice publishes no WER for Cheetah at all — the accuracy numbers on its benchmark page belong to Leopard. And custom vocabulary means regenerating a model file in their Console, so it is a build-time step, not a request parameter.", "standout": "True frame-synchronous streaming with endpointing and per-word confidence in a 34 MB single-core model", "facets": [ "actively-maintained", "cpu-capable", "custom-vocab", "edge-capable", "no-diarization", "punctuation", "self-hostable", "streaming", "word-timestamps" ], "hardware": "phone", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "TRUE streaming — process() 'Processes a frame of audio and returns newly-transcribed text and a flag indicating if an endpoint has been detected', over 16-bit linearly-encoded single-channel audio at the SDK's sample rate, with endpoint_duration_sec defined as 'Duration of endpoint in seconds. A speech endpoint is detected when there is a chunk of audio (with a duration specified herein) after an utterance without any speech in it.' Not chunked pseudo-streaming.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Word-level — the CheetahWord class exposes word, start_sec, end_sec and confidence via processAnnotated() / flushAnnotated()", "punctuation": "Optional — enable_automatic_punctuation, 'Set to True to enable automatic punctuation insertion'", "custom_vocab": "Custom vocabulary and keyword boosting, configured in the Picovoice Console; the result is a new downloaded model file, not a runtime parameter.", "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Runs entirely on-device with no cloud dependency after model download — but see watch.", "data_policy": null, "benchmarks": "Picovoice's own harness (code Apache-2.0 on GitHub), on an 'Ubuntu 22.04 machine with AMD CPU (AMD Ryzen 9 5900X (12) @ 3.70GHz), 64 GB of RAM, and NVMe storage, using 10 cores simultaneously': Cheetah core-hour 0.083, model 34 MB. Comparators from the same table: Whisper Tiny 0.16 / 73 MB, Whisper Base 0.32 / 139 MB, Whisper Small 0.99 / 462 MB, Whisper Medium 1.52 / 1,457 MB — and, usefully for this category, Vosk Small 0.12 / 68 MB, Vosk Large 0.34 / 2,733 MB, whisper.cpp Streaming Tiny 0.77 / 73 MB and Moonshine Streaming Tiny 1.03 / 49 MB. Vendor-run, but on a published harness with named hardware — the only vendor in this category that names its CPU.", "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "mixed", "verification_note": "API surface, platforms, languages, the absence of a Cheetah WER row, and the full benchmark methodology verified from Picovoice docs and their public GitHub harness; pricing could not be verified from any Picovoice-owned page", "rating": null, "source_url": "https://picovoice.ai/products/voice/streaming-speech-to-text/", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Picovoice Leopard", "variants": null, "category": "device", "licence": "Proprietary, closed weights. AccessKey from the Picovoice Console required by every SDK.", "licence_class": "closed", "price_note": "Not published — same terms as Cheetah. B2B only, trial AccessKey metered in seconds of audio with usage resetting every 30 days, contact-sales beyond that. No Picovoice-owned page states a figure.", "price_sort": null, "accuracy_note": "Picovoice's own public harness, verified figure-for-figure: Leopard 5.1% WER on LibriSpeech test-clean, 11.1% on test-other, 6.4% on TED-LIUM and 16.1% on CommonVoice (average 9.7%), measured on Ubuntu 22.04 / AMD Ryzen 9 5900X. Same run: Whisper Tiny 5.9 / 13.8 / 6.6 / 24.4, Whisper Small 3.3 / 7.2 / 4.8 / 12.7, Whisper Large V3 3.7 / 5.4 / 4.6 / 9.0, Amazon Transcribe 2.3 / 4.6 / 4.0 / 6.4, Azure 2.9 / 6.0 / 4.6 / 8.4. Vendor-run against named competitors on named public corpora, with the harness published under Apache-2.0 — unusually well documented for a vendor benchmark, and still a vendor benchmark.", "wer_sort": null, "languages_note": "The Leopard docs page states 8: 'Leopard Speech-to-Text currently supports English, French, German, Italian, Japanese, Korean, Portuguese, and Spanish.' The Leopard FAQ page on the same site lists 6, omitting Japanese and Korean. The product docs page is the stronger source, but Picovoice contradicts itself — confirm availability for your specific target language before committing.", "languages_sort": null, "runs_on": "'Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64, arm64), Android, iOS, Web, Raspberry Pi (3, 4, 5)'. Single CPU core, 37 MB model.", "best_for": "Batch transcription of recorded audio on a device or an on-prem box where the file must not leave — voice notes, call recordings, field recordings — and where 37 MB and 0.026 core-hours per audio hour beats standing up a GPU.", "diarization": "Built in, which is uncommon here: enable_diarization=True attaches a speaker_tag integer to every returned word, with 0 reserved for unknown speakers, and needs no second model. Among the on-device engines in this category, Leopard, sherpa-onnx, WhisperKit/SpeakerKit and Moonshine all offer diarization in some form — though only Leopard does it without pulling a separate pyannote-derived download.", "watch": "Same AccessKey and pricing opacity as Cheetah: no published price, no self-service plan, and metered usage that the docs never explain how an offline device reports. Beyond that, note what the 5.1% is measured on — LibriSpeech is read-aloud audiobook speech. There is no published Leopard number for telephony, far-field or noisy audio, and the CommonVoice column (16.1%) is the closest thing to a realistic one; on the same harness Amazon Transcribe reaches 6.4% there. Picovoice's own pages also disagree on how many languages it supports.", "standout": "On-device batch ASR with built-in per-word speaker tags in a 37 MB model — diarization without a second model download or a cloud call", "facets": [ "actively-maintained", "cpu-capable", "custom-vocab", "diarization", "edge-capable", "punctuation", "self-hostable", "word-timestamps" ], "hardware": "phone", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "None — Leopard is batch. Cheetah is the streaming sibling.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Word-level start_sec, end_sec, confidence and speaker_tag", "punctuation": "Optional — enable_automatic_punctuation, defaulting to False", "custom_vocab": "Custom vocabulary and keyword boosting via the Picovoice Console, baked into a downloaded model file", "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Runs entirely on-device after model download", "data_policy": null, "benchmarks": "Picovoice harness, 'Ubuntu 22.04 machine with AMD CPU (AMD Ryzen 9 5900X (12) @ 3.70GHz), 64 GB of RAM, and NVMe storage, using 10 cores simultaneously': core-hour 0.026, model size 37 MB — verified. Picovoice's FAQ separately frames this as 'transcribing an hour long audio takes Leopard 1.56 minutes whereas Whisper Base, which has matching accuracy, takes 19.4 minutes', and an older Picovoice figure gives 0.05 RTF on an Intel Core i5-6500 @ 3.20 GHz; both are vendor FAQ claims not re-verified against the harness.", "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "mixed", "verification_note": "every WER and resource figure verified line-for-line against Picovoice's Apache-2.0 harness README, platforms and language list against their docs; pricing unverifiable; language count self-contradictory across their own pages", "rating": null, "source_url": "https://picovoice.ai/products/voice/speech-to-text/", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "transformers.js (whisper-web)", "variants": "transformers.js runtime · whisper-web reference app · onnx-community Whisper conversions", "category": "runtime", "licence": "Apache-2.0 on transformers.js (GitHub API spdx). whisper-web, the reference demo everyone links to, is MIT (GitHub API spdx). Neither ships weights — you load ONNX conversions from the Hub and each carries its own card licence (the onnx-community/whisper-* conversions inherit Whisper's MIT).", "licence_class": "open", "price_note": "Free. The compute bill is your user's laptop battery.", "price_sort": null, "accuracy_note": "None published for the runtime, and none published for the quantised Whisper conversions. Accuracy is the underlying Whisper checkpoint's, degraded by whichever dtype you pick — q8 is the WASM default, q4 is available, and no WER is published for either at any model size. That gap matters more here than anywhere else in the category, because in the browser you are almost always running a quantised tiny or base. (For contrast on what disclosure looks like: Moonshine publishes its own float-vs-shipped-quantized WER delta; the Whisper ONNX conversions do not.)", "wer_sort": null, "languages_note": "Whatever the loaded checkpoint covers — 99 for multilingual Whisper; Moonshine and wav2vec2 conversions are also available.", "languages_sort": null, "runs_on": "Any browser, plus Node. ONNX Runtime Web on WebAssembly by default; WebGPU optionally, and the official WebGPU guide warns of 'the experimental nature of WebGPU, especially in non-Chromium browsers' and still carries an 'As of October 2024, global WebGPU support is around 70%' note, with feature flags required in Firefox and Safari.", "best_for": "Transcription that provably never leaves the tab — a privacy demo, a clinical or legal note-taker with a hard no-upload requirement, or a static site with no backend at all. Zero install, zero key, zero server bill.", "diarization": "None. No diarization path exists in the browser stack.", "watch": "whisper-web is the demo everyone copies and it has not been touched since 1 October 2024; do not treat it as current transformers.js. Budget the download, not the parameter count: base at q8 is ~77 MB of ONNX before your app renders anything, and fp32 is ~291 MB. WebGPU is still described by the official guide as experimental outside Chromium — and that guide's own support figure is dated October 2024 — so the fast path is not the default path; on WASM you are on one CPU-bound worker. And nobody publishes what q4 or q8 quantisation costs you in WER on these Whisper conversions, which is precisely the configuration a browser forces you into.", "standout": "ASR that never leaves the browser tab — no server, no key, no upload, and it works from a static host", "facets": [ "actively-maintained", "browser", "commercially-safe", "no-diarization", "self-hostable", "streaming" ], "hardware": "browser", "params": null, "architecture": null, "vram": null, "quantisation": "fp32 (WebGPU default), fp16, q8 (WASM default) and q4, selectable per pipeline via a dtype parameter", "fine_tuning": null, "streaming": "Chunked — the underlying Whisper model has a fixed 30-second window, and browser demos slide it. Not true streaming.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes — static files, no server component of any kind", "data_policy": null, "benchmarks": "REAL DOWNLOAD FOOTPRINT, read off the onnx-community/whisper-base file listing at the sizes the Hub displays — the number that actually decides whether this ships. fp32: encoder 82.5 MB + merged decoder 209 MB ≈ 291 MB. fp16: 41.3 + 105 ≈ 146 MB. q4: 18.8 + 124 ≈ 143 MB. int8/q8: 23.2 + 53.7 ≈ 77 MB. Add ~4 MB of tokenizer, vocab and merges JSON. All of that crosses the wire on a user's first visit.", "robustness": null, "adoption": "transformers.js 16,223 GitHub stars; whisper-web 3,340 (GitHub API) ormers.js active (last push 31 July 2026). whisper-web has NOT been pushed since 1 October 2024 (GitHub API) — the demo is nearly two years stale against a runtime that has moved several major versions.", "released": null, "status": "active", "verification": "verified", "verification_note": "licences and push dates from the GitHub API, dtype options and WebGPU status quoted from the official docs, file sizes read off the Hub repository listing", "rating": null, "source_url": "https://github.com/huggingface/transformers.js", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Cerence embedded ASR (ex-Nuance automotive)", "variants": "Cerence SDK V9 · Cerence Compact (AIoT edge) · CaLLM Edge", "category": "device", "licence": "Proprietary, closed. Licensed per programme to OEMs and through integration partners (Vivoka, Code Factory, Creoir). No public terms.", "licence_class": "closed", "price_note": "Not published. Automotive and industrial licensing is negotiated per programme — no public price, no self-service tier, no published per-unit cost.", "price_sort": null, "accuracy_note": "None published, anywhere. The SDK V9 announcement — a Cerence newsroom blog post, 'Cerence SDK V9: Production-Ready Embedded Voice AI', dated 13 May 2026 — claims higher recognition accuracy with no percentage, no baseline and no test set. Verified separately: the Speech Input & Output product page carries no WER, latency, footprint or chipset figure of any kind. There is no Cerence WER on any public corpus. This is the largest installed ASR footprint in shipped vehicles and the least measurable system in this entire category.", "wer_sort": null, "languages_note": "42 for Cerence ASR per the Speech Input & Output product page — 'it supports 42 languages and adapts to complex use cases' (verified verbatim). Partner Creoir states 40 for its EdgeVUI product built on Cerence models.", "languages_sort": null, "runs_on": "Embedded automotive head units and AIoT/edge silicon, with cloud, on-device and hybrid deployment options. Cerence Compact is the low-footprint line for AIoT edge (Compact Speech AI covers wake-up plus recognition, Compact Audio AI covers noise reduction); CaLLM Edge is the on-device LLM, described as running on 'several different chipsets'. No chipset, RAM or flash figure is published for any of it.", "best_for": "Putting voice into a car, truck or industrial device where the buyer is an OEM, the requirement is offline operation in a noisy cabin, and the programme review demands automotive-grade support and ISO/SAE 21434 cybersecurity process — conditions no open model will pass.", "diarization": "Not documented publicly.", "watch": "Nothing about this is measurable from outside, and that was confirmed rather than assumed: the product page states a language count and not one other number. No footprint in MB, no RAM figure, no latency, no WER, no price, no chipset list — the SDK V9 post is entirely qualitative and the low-footprint IoT material names no numbers either. You cannot benchmark Cerence against Whisper or Vosk without an NDA and an evaluation SDK, which means the evaluation IS the procurement process. Anyone comparing Cerence to open models in a spreadsheet is comparing measured numbers to adjectives.", "standout": "The incumbent inside the vehicle — 42 languages of embedded ASR with automotive cybersecurity process behind it", "facets": [ "actively-maintained", "cpu-capable", "edge-capable", "no-diarization", "self-hostable", "streaming" ], "hardware": "phone", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "Streaming ASR support is stated for SDK V9; no latency figure accompanies it.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "Cerence SDK V9 announced in a newsroom blog post dated 13 May 2026", "status": "active", "verification": "vendor-claim", "verification_note": "every statement here comes from Cerence marketing and newsroom pages or partner sites; the 42-language figure and the total absence of any accuracy, latency, footprint or chipset number were both verified directly against the product page; nothing is independently measurable", "rating": null, "source_url": "https://www.cerence.com/products/speech-input-output", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Coqui STT (ex-Mozilla DeepSpeech)", "variants": null, "category": "device", "licence": "MPL-2.0 on the code (GitHub API spdx). The released models live in the separate coqui-ai/STT-models repository and carry per-model licences that vary by contributor — the MPL on the engine covers none of them.", "licence_class": "dead", "price_note": "Free / self-host — but the model index is no longer hosted.", "price_sort": null, "accuracy_note": "No current figure worth quoting. Picovoice's comparison found its engines 'much better than Mozilla DeepSpeech' with acoustic and language models 60x smaller. The publisher's own online Model Zoo is offline, so the per-language numbers can no longer be retrieved from the source that produced them.", "wer_sort": null, "languages_note": "Community-contributed models across a few dozen languages. The online Model Zoo that indexed them is no longer hosted; the models themselves largely remain as release artefacts in the coqui-ai/STT-models repository.", "languages_sort": null, "runs_on": "CPU and GPU, x86 and ARM including Raspberry Pi; multi-GPU training was part of the toolkit", "best_for": "Nothing new. Its only remaining job is maintaining a system that already ships it — and even that is a migration plan, not a deployment.", "diarization": "None.", "watch": "It is over, and the repo says so. What was lost is the Model Zoo INDEX, not necessarily the models: release artefacts still sit in the first-party coqui-ai/STT-models repository, but there is no longer a curated list, no per-language accuracy table, and each model carries a contributor-specific licence you have to chase individually — and anything you find outside that repo is a mirror of unknown provenance. It nonetheless remains a top hit for 'open source offline speech recognition' in a great many tutorials and listicles written before 2023 — that is the trap this row exists to close. Migrate to whisper.cpp, sherpa-onnx, Vosk or Moonshine.", "standout": null, "facets": [ "cpu-capable", "discontinued", "edge-capable", "no-diarization", "self-hostable", "streaming" ], "hardware": "phone", "params": null, "architecture": "End-to-end deep-learning acoustic model with an external scorer/language model — the DeepSpeech lineage", "vram": null, "quantisation": null, "fine_tuning": "Full training and transfer-learning toolkit, which is more than most engines in this category ever offered", "streaming": "Yes — streaming inference with confidence scoring was a core feature, and was genuinely ahead of Whisper on that axis when it shipped.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "the repository carries the notice, verified verbatim, that 'This project is no longer actively maintained, and we have stopped hosting the online Model Zoo', pointing users toward newer models such as Whisper instead. Last push 11 March 2024 (GitHub API).", "released": null, "status": "dead", "verification": "verified", "verification_note": "status notice, code licence and last-push date read off the repository and the GitHub API", "rating": null, "source_url": "https://github.com/coqui-ai/STT", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Deepgram Streaming (Nova-3 / Flux)", "variants": null, "category": "rt", "licence": "Proprietary, closed weights. Self-hosted containers are licensed, not open — an Enterprise plan is required to obtain the image distribution credentials.", "licence_class": "closed", "price_note": "Per audio MINUTE, streaming rates (pay-as-you-go / Growth): Nova-3 monolingual $0.0048 / $0.0042; Nova-3 multilingual $0.0058 / $0.0050; Flux English $0.0065 / $0.0057; Flux multilingual $0.0078 / $0.0068. Pre-recorded is dearer than streaming: Nova-3 mono $0.0077 / $0.0065, multilingual $0.0092 / $0.0078. Diarization is a separate meter at $0.0020/min pay-as-you-go ($0.12/hr), $0.0017/min on Growth. $0.0048/min works out at $0.288 per audio hour.", "price_sort": null, "accuracy_note": "Deepgram publishes no WER against a named public test set. Its own headline is a '54.2% reduction in word error rate (WER) for streaming and 47.4% for batch processing compared to competitors' — no competitor named, no dataset named, so it is marketing, not a number. The only comparative figures found are competitor-run: AssemblyAI's benchmarks page puts Nova-3 streaming at 9.39% WER / 247 ms median TTCT and Flux at 8.87% WER on AssemblyAI's own audio. Separately, Pipecat's open-source benchmark (1,000 samples of pipecat-ai/smart-turn-data-v3.1-train) puts Deepgram at 247 ms median TTFS — the fastest median in that table — at 76.5% perfect transcripts and 1.62% pooled WER.", "wer_sort": null, "languages_note": "Nova-3: 60+ languages and dialects, with a `multi` code-switching mode over 10 (English, Spanish, French, German, Hindi, Russian, Portuguese, Japanese, Italian, Dutch). Flux: `flux-general-en` English-only, or `flux-general-multi` over the same 10.", "languages_sort": null, "runs_on": "Cloud. Self-hosted is genuinely available — Docker/Podman, Kubernetes, SageMaker or bare metal on NVIDIA GPUs — but only on an Enterprise plan.", "best_for": "Voice agents that need turn-taking as a first-class signal rather than a VAD guess. Flux emits StartOfTurn / TurnInfo / EagerEndOfTurn / TurnResumed events from the ASR model itself, so the agent orchestration reads a state machine instead of inferring one.", "diarization": "Built in and billed separately at $0.0020/min. Available on streaming AND pre-recorded for the Nova family — but `diarize_model=v2` is documented as NOT supported on streaming and returns a validation error (streaming resolves to v1), and diarization does not appear at all in Flux's published feature matrix. Whisper via Deepgram Cloud is explicitly excluded.", "watch": "Flux is not Nova-3 with extra events; it is a narrower model family. Diarization is absent from Flux's feature matrix, and Deepgram's own diarization doc says the v2 diarizer is unsupported on streaming outright. Streaming is CHEAPER than pre-recorded here, which inverts everyone else's pricing and quietly punishes batch workloads. And the 54.2% WER-reduction headline names neither a competitor nor a test set.", "standout": "Model-integrated end-of-turn detection — the turn boundary is an output of the ASR model, not a VAD heuristic bolted on top.", "facets": [ "actively-maintained", "code-switching", "custom-vocab", "diarization-addon", "english-only", "punctuation", "self-hostable", "streaming", "word-timestamps" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "TRUE streaming over WebSocket. Nova-3 emits interim results with an `is_final` flag and refines predictions as audio arrives; `endpointing` (e.g. 300 ms of silence) controls finalisation. Flux replaces that continuous-transcript model with a turn-based state machine.", "latency_note": "Flux: ~260 ms end-of-turn detection at p50 with default settings (vendor figure, hardware not applicable — hosted). `eager_eot_threshold` (0.3–0.9, off by default) fires EagerEndOfTurn 150–250 ms ahead of EndOfTurn at thresholds of 0.3–0.5, at the cost of 50–70% more LLM calls from speculative starts.", "realtime_factor": null, "audio_limits": null, "timestamps": "Word-level, supported across all Flux models and the Nova family.", "punctuation": "Smart formatting, numeral conversion and profanity filtering. On Flux, numerals exclude Hindi and Japanese, and redaction is number-only.", "custom_vocab": "Keyterm Prompting on Nova-3; self-serve vocabulary customisation. Flux exposes `language_hint` to bias output toward a language.", "output_formats": null, "translation": null, "billing_unit": null, "free_tier": "$200 credit on signup.", "concurrency": "150 concurrent streaming (WebSocket) connections on pay-as-you-go, alongside 50 REST. Deepgram documents that pay-as-you-go and Growth limits cannot be raised but does not publish the Growth streaming number, so it is not stated here.", "self_host": "Yes — Enterprise plan only. Docker/Podman, Kubernetes, SageMaker, bare metal; AWS, GCP, Oracle, Azure. NVIDIA GPU with the Container Toolkit.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "Flux GA October 2025; Flux Multilingual GA April 2026.", "status": "active", "verification": "mixed", "verification_note": "prices, concurrency and the diarization feature matrix read off Deepgram's own pages; accuracy figures are competitor-run or from Pipecat.", "rating": null, "source_url": "https://deepgram.com/product/speech-to-text", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Speechmatics Realtime", "variants": null, "category": "rt", "licence": "Proprietary, closed weights.", "licence_class": "closed", "price_note": "Per HOUR. The pricing page publishes exactly one rate — Pro 'from $0.129/hr' — and does not break out real-time versus batch, or Enhanced versus Standard versus Melia. Billed to the second. Automatic 20% volume discount above 500 hours/month per STT type, with further discounts from 24,000 hours/year. Free tier is $100 of credit, no card.", "price_sort": null, "accuracy_note": "The only first-party real-time figures are from Speechmatics' own Ursa write-up (published May 2023) over 'six internal test sets' it does not name: 11.20% WER at a 2 s max_delay against a 10.25% batch baseline, i.e. an 8.5% relative degradation for streaming. That delta is worth having because it compares the vendor to itself; the same page's competitor rankings are vendor-run over the same unnamed internal sets and are not reproduced here. Melia-1 carries a 2026 accuracy headline in third-party round-ups, but the figure quoted names no test set, so it is not published here — and Melia-1 is batch-only regardless.", "wer_sort": null, "languages_note": "56+ languages for transcription; 69 language pairs for translation. Melia-1 code-switches natively across all 56+ in a single pass with per-word language labels — but only in batch.", "languages_sort": null, "runs_on": "Cloud, plus a documented on-premises container deployment.", "best_for": "Broadcast, media and contact-centre live captioning where you need to trade latency for accuracy explicitly and want diarization in the same stream. It is the one vendor that exposes the accuracy/latency trade as a documented dial.", "diarization": "Built into real-time — speaker and channel diarization with `max_speakers`, `speaker_sensitivity` (0–1) and `prefer_current_speaker` to stop label flapping between similar voices. Melia-1, Enhanced and Standard all support it.", "watch": "`max_delay` defaults to 4 seconds. Out of the box you are four times slower than the number the marketing implies, and nothing tells you — you have to turn it down yourself. Melia-1, the model carrying the 2026 accuracy headline and the code-switching story, is BATCH ONLY on Speechmatics' own docs; real-time still runs Enhanced or Standard. The pricing page publishes a single 'from $0.129/hr' figure and no real-time rate at all, so you cannot compare it to a per-minute vendor without a sales call. And the custom dictionary you will want costs you up to 15 s of session startup.", "standout": "`max_delay` is an explicit, documented accuracy-versus-latency dial from 0.7 s to 4 s, with the WER cost of the setting published.", "facets": [ "actively-maintained", "code-switching", "custom-vocab", "diarization", "self-hostable", "streaming", "translation" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "TRUE streaming over WebSocket. `max_delay` ranges 0.7–4.0 s with `max_delay_mode` flexible or fixed. Partial transcripts exist but are OFF unless `transcription_config.enable_partials` is set true.", "latency_note": null, "realtime_factor": null, "audio_limits": "Maximum session duration 48 hours; idle timeout 1 hour with warnings at 15, 10 and 5 minutes.", "timestamps": null, "punctuation": null, "custom_vocab": "`additional_vocab` custom dictionary with phonetic alternatives — carries a documented latency and memory penalty, with up to 15 seconds of initialisation delay on large word lists.", "output_formats": null, "translation": "Yes — `translation_config` with target language codes; 69 pairs.", "billing_unit": null, "free_tier": "$100 credit, no card required, with access to 56+ languages.", "concurrency": "2 concurrent real-time sessions on Free, 50 on Pro, unlimited on Enterprise. Pro also caps file jobs at 10/second.", "self_host": "Yes — container deployment is documented, with its own performance-and-cost guidance.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "Melia-1 is documented on Speechmatics' own models page as available for Batch transcription only, with Enhanced and Standard serving Realtime and Batch. Its mid-2026 release date rests on secondary sources. Ursa real-time benchmarking dates to May 2023.", "status": "active", "verification": "mixed", "verification_note": "pricing, concurrency and the Melia-1 batch-only restriction read off Speechmatics' own pages; the Ursa WER figures are vendor-run over unnamed internal sets.", "rating": null, "source_url": "https://www.speechmatics.com/product/real-time", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Gladia Live (Solaria-1)", "variants": null, "category": "rt", "licence": "Proprietary, closed weights.", "licence_class": "closed", "price_note": "Per HOUR. Starter (pay-as-you-go): real-time $0.75/hr, async $0.61/hr. Growth (upfront commit): real-time 'as low as' $0.25/hr, async 'as low as' $0.20/hr — a 3x spread the vendor itself describes as '67% less than Starter'. Diarization is included in the rate on every tier. Free tier is €50 of credits, which the vendor puts at 60+ real-time hours.", "price_sort": null, "accuracy_note": "No WER is published for Solaria-1 specifically. The vendor claims 'top accuracy in EN, ES, FR and IT' referencing Common Voice and FLEURS without a figure, and quotes '94% word accuracy rate' with no test set named. The published WER figures all belong to Solaria-3, and several DO name public sets: Earnings22 Cleaned AA 6.4%, Multilingual LibriSpeech 8.0%, VoxPopuli Cleaned AA 2.9%, Common Voice 1.4%, Switchboard 33.9%, plus 9.6% on an internal English production set of meeting and support-call audio. All are vendor-run. Note the Earnings22 comparison is Gladia ranking its rivals on audio Gladia selected.", "wer_sort": null, "languages_note": "100 languages with native code-switching, including 42 the vendor claims are unsupported by any alternative API vendor. Solaria-3, by contrast, is optimised for five European languages (English, French, German, Spanish, Italian).", "languages_sort": null, "runs_on": "Cloud only.", "best_for": "Live multilingual meeting and conference transcription where speakers switch language mid-sentence and you need diarization without a second bill. The long-tail language coverage is the reason to pick it over Deepgram or AssemblyAI.", "diarization": "Built in and included in the hourly rate on all tiers — not an add-on meter. Vendor claims 3x lower diarization error than other vendors; no benchmark, dataset or competitor named. Multi-channel input preserves speaker identity through channel mapping as a separate mechanism.", "watch": "Gladia contradicts itself on which model you can stream against. The live-transcription docs state the endpoint accepts `solaria-1` only; the June 2026 Solaria-3 announcement says Solaria-3 is 'live today' across async and real-time. Until that resolves, assume the accuracy headline describes an artefact you may not be able to stream, and test before committing. Partial transcripts are OFF by default and you will think the API is slow until you set `receive_partial_transcripts: true`. Sessions hard-stop at 3 hours. And the Starter-to-Growth spread is 3x, so $0.75/hr is a list price nobody at volume pays — budget against the commit tier or you will misjudge the vendor entirely.", "standout": "100 languages including 42 the vendor claims no other API covers, with diarization bundled into the hourly rate rather than metered.", "facets": [ "actively-maintained", "code-switching", "diarization-addon", "self-hostable", "streaming", "translation" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "TRUE streaming over WebSocket — POST to /v2/live to mint a session URL, then the client connects directly. Results carry an `is_final` property. Audio as binary frames or base64 in JSON.", "latency_note": "Vendor, from the Solaria page: 103 ms latency on interrupt (time to first byte) and 698 ms latency on final transcript. Gladia publishes no measurement conditions — no chunk length, sample rate, region or network profile — so these are not comparable to a percentile-qualified figure from another vendor. Hosted, so no client hardware applies.", "realtime_factor": null, "audio_limits": "A single real-time session cannot exceed 3 hours — you must open a new session before the cap.", "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": "Yes, plus post-processing add-ons that run only after the recording stops.", "billing_unit": null, "free_tier": "€50 in credits (vendor: 80+ async hours or 60+ real-time hours).", "concurrency": "Unlimited concurrent requests on Enterprise; Starter and Growth limits not published.", "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "Solaria-3 announced 10 June 2026 on Gladia's own blog.", "status": "active", "verification": "mixed", "verification_note": "pricing, the 3-hour cap, the partial-transcript default and the solaria-1-only live restriction read off Gladia's own docs; all accuracy and latency figures are vendor-run.", "rating": null, "source_url": "https://www.gladia.io/product/real-time", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Soniox Realtime (stt-rt-v5)", "variants": null, "category": "rt", "licence": "Proprietary, closed weights.", "licence_class": "closed", "price_note": "Per HOUR: $0.12/hr real-time, $0.10/hr async. The cheapest real-time rate found in this survey by a wide margin. Speaker diarization, language identification and smart formatting are bundled into the hourly rate — there is no add-on meter. Translation across 3,600+ language pairs runs in the same real-time call at no extra cost.", "price_sort": null, "accuracy_note": "Pipecat's open-source STT benchmark (1,000 samples from the `pipecat-ai/smart-turn-data-v3.1-train` dataset, measuring semantic WER and time-to-final-segment) carries both Soniox generations. stt-rt-v4: 84.1% perfect transcripts, 1.25% mean WER, 1.29% pooled WER, 249 ms median TTFS. stt-rt-v5: 83.3% perfect, 1.34% mean WER, 1.27% pooled WER, 260 ms median TTFS. So v5 trails v4 on perfect-transcript rate, mean WER and latency, and edges ahead only on pooled WER — a wash at best on this benchmark, not the step change the release implies. A separate vendor study across 60 languages on YouTube audio claims 1.25% English WER against Deepgram 1.71% and AssemblyAI 1.74%; that one is Soniox-run on Soniox-selected audio.", "wer_sort": null, "languages_note": "60+ languages, freely mixable within a single conversation. Vendor names Danish, Hungarian, Turkish, Arabic, Korean and Japanese as languages it considers underserved elsewhere.", "languages_sort": null, "runs_on": "Cloud, with on-premises deployment and regional cloud in US, EU and JP offered for data residency.", "best_for": "High-volume multilingual real-time transcription where diarization and translation would otherwise be separate line items. At $0.12/hr with diarization included it is roughly a quarter of AssemblyAI's diarized streaming rate.", "diarization": "Built in and included in the price — configured per session, with 'reinvented speaker separation for identifying who said what in live conversations'. This is the notable one: Deepgram, AssemblyAI and Azure all meter diarization separately.", "watch": "You cannot evaluate this one for free. Free credits were withdrawn on 27 October 2025, so a trial costs money from the first minute — unusual in a field where $50–200 of credit is standard. And read the v5 announcement against the neutral Pipecat table: v5 sits behind v4 on perfect-transcript rate, mean WER and latency, and ahead only on pooled WER. The claimed improvement is in noise, telephony, far-field and code-switching, none of which that benchmark measures — so on the one independent number available, the newer model is not the better buy.", "standout": "Cheapest per-hour real-time rate found, with diarization, language ID, smart formatting and translation all bundled rather than metered.", "facets": [ "actively-maintained", "custom-vocab", "diarization", "self-hostable", "streaming", "translation" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "TRUE streaming over WebSocket. Tokens carry `is_final`: non-final tokens are provisional and may change, final tokens are guaranteed never to change. Semantic endpointing finalises on detected end-of-speech, and a client-sent `{'type': 'finalize'}` message force-finalises all pending tokens.", "latency_note": "Pipecat benchmark, stt-rt-v5: 260 ms median TTFS, 305 ms P95, 313 ms P99 — slightly slower than v4 at 249 / 281 / 310 ms. Hosted service, so no client hardware applies.", "realtime_factor": null, "audio_limits": "Audio up to 5 hours in a single request.", "timestamps": null, "punctuation": null, "custom_vocab": "Context field for domain terms, product names, people's names and translation preferences, plus custom vocabulary.", "output_formats": null, "translation": "Yes — one-way (all languages to a target) or two-way (bidirectional between a pair), 3,600+ pairs, in the same real-time call.", "billing_unit": null, "free_tier": "None for new accounts. Free API credits were discontinued on 27 October 2025 after mass signup abuse with fake and duplicate accounts; the vendor says existing credits may still be valid and directs users to check their console.", "concurrency": null, "self_host": "On-premises deployment offered; regional cloud in US, EU and JP.", "data_policy": null, "benchmarks": null, "robustness": "Vendor claims v5's gains over v4 are in noisy audio, telephony, far-field microphones, accents, interruptions, overlapping speech and mixed-language conversation — not on clean benchmark audio.", "adoption": null, "released": null, "status": "active", "verification": "mixed", "verification_note": "pricing and features read off Soniox's own docs; the v4 and v5 benchmark figures both come from Pipecat's public results table, the 60-language study is vendor-run.", "rating": null, "source_url": "https://soniox.com/speech-to-text", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "AssemblyAI Streaming (Universal-3.5 Pro Realtime / Universal-Streaming)", "variants": null, "category": "rt", "licence": "Proprietary, closed weights.", "licence_class": "closed", "price_note": "Per HOUR: Universal-3.5 Pro Realtime $0.45/hr; Universal-Streaming English or Multilingual $0.15/hr. Async for comparison: Universal-3.5 Pro $0.21/hr, Universal-2 $0.15/hr. Streaming diarization (with revision) is an add-on the pricing page lists at +$0.12/hr, giving $0.57/hr all-in on U3.5 Pro Realtime. Async diarization is +$0.02/hr standard, +$0.065/hr experimental — so streaming diarization costs 6x the pre-recorded rate.", "price_sort": null, "accuracy_note": "Vendor-run on AssemblyAI's own audio, and the streaming table names no dataset at all: Universal-3.5 Pro Realtime 5.53% WER at 335 ms median TTCT; Deepgram Nova-3 9.39%; Deepgram Flux 8.87%. (The 'synthetic medical, accented English, general speech, webinar audio' composition AssemblyAI publishes describes its PRE-RECORDED benchmark, where async Universal-3.5 Pro scores 4.35%.) Treat all of these as marketing. On the neutral Pipecat benchmark (1,000 samples of `pipecat-ai/smart-turn-data-v3.1-train`): universal-3-5-pro at 84.7% perfect transcripts, 1.44% mean WER, 1.22% pooled WER, 282 ms median TTFS — the highest perfect-transcript rate in that table. The older universal-streaming-english sits far lower at 66.8% perfect and 3.49% mean WER.", "wer_sort": null, "languages_note": "Universal-Streaming ships English and Multilingual variants at the same $0.15/hr. The vendor claims '99+ language support' for Universal-3 Pro Streaming; the streaming API reference itself does not enumerate a language list.", "languages_sort": null, "runs_on": "Cloud only.", "best_for": "Production voice agents that must start generating before the speaker finishes. Immutable finals mean a word, once emitted as final, never changes — so the LLM turn can start on partial output without risk of retraction.", "diarization": "Streaming diarization shipped in May 2026 — inline labels applied as audio arrives, with earlier labels revised as context accumulates, up to 10 speakers per the vendor. It is a separate meter, listed on the pricing page as a diarization-with-revision add-on across the streaming models rather than as a property of one checkpoint. The core streaming API reference does not mention it.", "watch": "The billing trap: streaming bills on how long the socket stays open, not on how much audio you send. A session left open by a crashed client bills to its 3-hour auto-close. Second, treat the competitive latency claims with care — AssemblyAI's own benchmarks page shows Deepgram Nova-3 FASTER (247 ms vs 335 ms) while its marketing cites a third-party study showing the reverse (307 ms vs 516 ms), and the independent Pipecat run agrees with the page, not the marketing. Third, its benchmark page prices Deepgram Nova-3 streaming at $0.46/hr when Deepgram's own page gives $0.0048/min — $0.288/hr. And streaming diarization is 6x the pre-recorded rate: +$0.12/hr against +$0.02/hr.", "standout": "Immutable finals from the first emission — a word marked final never changes, which is precisely what lets an agent commit to an LLM turn early.", "facets": [ "actively-maintained", "custom-vocab", "diarization", "self-hostable", "streaming", "word-timestamps" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "TRUE streaming over WebSocket at `wss://streaming.assemblyai.com/v3/ws`. Emits Begin / Turn / Termination messages; Turn objects carry `turn_order`, `end_of_turn`, `turn_is_formatted`, `end_of_turn_confidence`, `transcript` and a `words` array with millisecond timings. Finals are immutable from first emission.", "latency_note": "Vendor: ~300 ms word emission, quoted as 307 ms P50 against Deepgram Nova-3 at 516 ms, sourced to a Hamming.ai study over 4M+ production calls (not independently checked here). AssemblyAI's OWN benchmarks page contradicts this, listing Deepgram Nova-3 at 247 ms median TTCT against Universal-3.5 Pro Realtime's 335 ms — and Pipecat independently measures Deepgram faster too, at 247 ms against 282 ms.", "realtime_factor": null, "audio_limits": "A streaming session auto-closes after 3 hours. Unterminated sessions are billed for their full duration.", "timestamps": "Word-level; word timings in milliseconds inside the Turn object's `words` array.", "punctuation": null, "custom_vocab": "Dynamic key term prompting — up to 1,000 domain terms, updatable turn-by-turn mid-conversation (vendor claim).", "output_formats": null, "translation": null, "billing_unit": "Per hour of WEBSOCKET SESSION DURATION — 'the time the connection is open, not the duration of audio sent. Idle connection time counts.'", "free_tier": "$50 in credits on signup, no card required.", "concurrency": "5 new streams per minute on the free tier, 100 per minute pay-as-you-go. The marketing separately claims 'unlimited concurrency', which the documented rate limits contradict.", "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "Streaming speaker diarization live May 2026; no day-level date published on an AssemblyAI-owned page.", "status": "active", "verification": "mixed", "verification_note": "pricing, concurrency and the session-duration billing unit read off AssemblyAI's own pages; streaming accuracy figures are vendor-run on unnamed audio, with Pipecat as the independent check.", "rating": null, "source_url": "https://www.assemblyai.com/products/streaming-speech-to-text", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Azure AI Speech — real-time transcription", "variants": null, "category": "hyper", "licence": "Proprietary, closed weights.", "licence_class": "closed", "price_note": "Read off the Azure Retail Prices API for eastus on 1 Aug 2026, NOT the pricing page (which renders via JavaScript): real-time 'S1 Speech To Text' $1.00 per audio HOUR; 'Fast Transcription Speech To Text' $0.36/hr; batch 'S1 Speech to Text Batch' $0.18/hr; diarization and continuous language ID arrive as 'S1 Speech to Text Enhanced Feature Audio' at $0.30/hr. Custom real-time ('S1 Custom Speech To Text') is $1.20/hr and custom fast transcription $0.45/hr. Commitment tiers run $1,600/month for 2K hours ($0.80/hr overage) down to $40,000/month for 100K hours ($0.40/hr overage). Free-tier meters exist at $0.00.", "price_sort": null, "accuracy_note": "Microsoft publishes no WER for Azure speech-to-text on any named test set. The independent figure available is Pipecat's benchmark over 1,000 samples of `pipecat-ai/smart-turn-data-v3.1-train`: Azure at 82.9% perfect transcripts and 1.21% mean WER (1.18% pooled) — competitive on accuracy — but 1,016 ms median time-to-final-segment, roughly four times slower than the voice-agent vendors in the same table, and 1,791 ms at P99.", "wer_sort": null, "languages_note": "100+ locales for real-time, batch and fast transcription. Post-stream refinement is much narrower: ~20 locales monolingual GA and ~15 multilingual in public preview (25 languages with automatic mid-stream language switching). A separate MAI-Transcribe-1 family covers 45+ languages.", "languages_sort": null, "runs_on": "Cloud, plus disconnected containers — the Retail Prices API returns 'Azure Speech - Disconnected' SKUs priced per YEAR (e.g. Fast Transcription Disconnected 10K unit at $41,040/year), which is a published air-gapped price almost no vendor offers.", "best_for": "Enterprises already inside the Azure compliance and identity boundary that need 100+ locales, diarization and an air-gapped option with a listed price. It is not the choice for a latency-sensitive voice agent.", "diarization": "Available in real-time, and supported with both monolingual and multilingual post-stream refinement. Billed as the separate $0.30/hr 'Enhanced Feature Audio' meter, which also covers continuous language identification.", "watch": "Real-time costs $1.00/hr — 2.8x the $0.36/hr fast-transcription rate and 5.6x batch, for identical audio. Widely republished third-party figures put Azure fast transcription at $0.66/hr; the Retail Prices API returns $0.36. Worse for anyone maintaining a price scraper: the service no longer answers to `serviceName eq 'Cognitive Services'` in that API — a query on that name returns zero rows, confirmed again on 1 Aug 2026. It is `serviceName: 'Foundry Tools'`, `productName: 'Azure Speech'`. Every stale Azure comparison you read was probably built on the old filter. Diarization is a separate $0.30/hr meter on top.", "standout": "The only major vendor publishing an air-gapped, disconnected-container price in a machine-readable API.", "facets": [ "actively-maintained", "custom-vocab", "diarization-addon", "self-hostable", "streaming" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "TRUE streaming. Continuous recognition through the SDK emits `recognizing` (interim) and `recognized` (final) events until you call stop. Single-shot recognition is capped at 15 seconds of audio before the utterance ends. Post-stream refinement runs a second pass in parallel with 'no impact to first-token latency' — interim results stay fast, only finals use the wider context.", "latency_note": "1,016 ms median time-to-final-segment on the Pipecat benchmark, 1,345 ms P95 and 1,791 ms P99 — an order of magnitude behind the voice-agent specialists on the same test.", "realtime_factor": null, "audio_limits": "Single-shot recognition ends after 15 s of audio; continuous recognition has no documented per-session cap.", "timestamps": null, "punctuation": null, "custom_vocab": "Phrase lists (supported with monolingual post-stream refinement, NOT with the multilingual preview) and full Custom Speech via an endpoint ID.", "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes — connected and disconnected containers, with disconnected SKUs priced annually in the public price API.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "verified", "verification_note": "for pricing (Retail Prices API, primary, re-queried this pass); vendor-silent on accuracy, with Pipecat as the only independent figure.", "rating": null, "source_url": "https://learn.microsoft.com/en-us/azure/ai-services/speech-service/how-to-recognize-speech", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Qwen3-Omni-30B-A3B", "variants": null, "category": "open", "licence": "Apache-2.0 on the weights and the code.", "licence_class": "open", "price_note": "Free / self-host. Alibaba also sells hosted Qwen audio APIs — a different artefact with different figures; no rate established here.", "price_sort": null, "accuracy_note": "Vendor-reported from the model card's benchmark table, file-level (not streaming): LibriSpeech clean 1.22 / other 2.48; Fleurs-en 2.72, Fleurs-zh 2.20; CommonVoice CV15-en 6.05, CV15-zh 4.28; Wenetspeech net 4.69 / meeting 5.89. The paper claims open-source SOTA on 32 of 36 audio and audio-visual benchmarks and overall SOTA on 22, outperforming Gemini-2.5-Pro, Seed-ASR and GPT-4o-Transcribe.", "wer_sort": null, "languages_note": "119 text languages, 19 speech-INPUT languages, 10 speech-output languages. The 119 figure is text and does not describe ASR coverage — the ASR number is 19.", "languages_sort": null, "runs_on": "Large multi-GPU. The model card's BF16 footprints are 78.85 GB for 15 s of video context, 88.52 GB at 30 s, 107.74 GB at 60 s and 144.81 GB at 120 s for the Instruct variant. 'Only 3B active' does not put this on a consumer card.", "best_for": "Self-hosted systems that need transcription, translation and spoken response from a single checkpoint — where the ASR is one mode of a dialogue model rather than a separate service to orchestrate.", "diarization": "None. No speaker separation, no speaker labels, nothing documented.", "watch": "Do not read the 30B-A3B name as a small model. The card's own BF16 figures start at 78.85 GB and reach 144.81 GB with long video context, and the HF page says 35B params, which reconciles with neither half of the name. It is also already being superseded — the Qwen3.5-Omni technical report is on arXiv (2604.15804, April 2026). No diarization, no documented word timestamps, and the 119-language headline is text coverage; speech input is 19.", "standout": "Transcribes, translates and answers in speech from one Apache-2.0 checkpoint — the ASR is a mode of a dialogue model, not a separate system to deploy.", "facets": [ "actively-maintained", "commercially-safe", "no-diarization", "self-hostable", "streaming", "translation" ], "hardware": "gpu-80", "params": "Named 30B-A3B — 30B total, 3B active under the MoE. The Hugging Face model page separately shows '35B params', which does not reconcile with the name; the card does not state active parameters explicitly.", "architecture": "MoE Thinker–Talker — Thinker reasons, Talker generates speech, in one end-to-end omni-modal model over text, image, audio and video.", "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "Streaming exists in the Thinker–Talker sense — real-time audio and video interaction with streaming speech OUT and natural turn-taking. For ASR specifically, every published benchmark is file-level; nothing on the card establishes streaming-transcription accuracy.", "latency_note": "211 ms pure model end-to-end audio dialogue latency; 234 ms theoretical first-packet latency from cold start (vendor, hardware unstated).", "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": "Yes — speech translation and lyric transcription are trained tasks, not just ASR.", "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host only for the weights; Apache-2.0 makes commercial deployment clean.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "Technical report arXiv:2509.17765, submitted 22 September 2025.", "status": "active", "verification": "mixed", "verification_note": "Apache-2.0 licence, the BF16 memory table and the ASR benchmark figures verified from the model card; parameter count contradicts itself across Qwen's own pages.", "rating": null, "source_url": "https://github.com/QwenLM/Qwen3-Omni", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "OpenAI Realtime API (gpt-realtime / gpt-live-transcribe)", "variants": null, "category": "rt", "licence": "Proprietary, closed weights.", "licence_class": "closed", "price_note": "Two incompatible billing models. Speech-to-speech is per TOKEN: gpt-realtime $32.00 / 1M audio input tokens, $0.40 cached audio input, $64.00 / 1M audio output; text $4.00 in / $24.00 out per 1M. gpt-realtime-mini: $10.00 / $0.30 / $20.00 audio, $0.60 / $2.40 text. Transcription-only models are per MINUTE: gpt-live-transcribe $0.017/min ($1.02/hr), gpt-transcribe $0.0045/min ($0.27/hr). The older file models remain: gpt-4o-transcribe $0.006/min, gpt-4o-mini-transcribe $0.003/min, whisper $0.006/min, gpt-4o-transcribe-diarize $0.006/min.", "price_sort": null, "accuracy_note": "OpenAI publishes no WER for gpt-live-transcribe or gpt-transcribe against any test set. The only comparative figures found apply to DIFFERENT, older artefacts: AssemblyAI's benchmarks page lists GPT-4o Transcribe (async file model) at 5.338% WER on AssemblyAI's own audio, and Pipecat's benchmark carries an 'openai' row at 75.9% perfect transcripts, 3.06% pooled WER and 637 ms median TTFS without pinning the model version. Neither describes the current SKUs.", "wer_sort": null, "languages_note": "Not published. Neither the pricing page nor the realtime-transcription guide names a language count or list for gpt-live-transcribe or gpt-transcribe. That absence is the finding — do not carry Whisper's 99-language figure across to these models.", "languages_sort": null, "runs_on": "Cloud only.", "best_for": "Voice agents where the transcription and the reasoning should be one session rather than an ASR hop feeding an LLM — you pay for that integration in observability, not in orchestration.", "diarization": "None in the streaming path. The docs state plainly that gpt-live-transcribe 'doesn't return word-level timestamps, speaker labels, or transcription confidence scores' and instruct you to use a file transcription model or an application-level fallback. Diarization exists only as a separate file model, gpt-4o-transcribe-diarize, at $0.006/min.", "watch": "The realtime transcription path returns no word timestamps, no speaker labels and no confidence scores. OpenAI says so in its own documentation and tells you to build a fallback — find that out at integration time, not at design time. The model names have also churned: gpt-live-transcribe and gpt-transcribe are separate SKUs from the gpt-4o-transcribe family they succeed, and they price per minute while gpt-realtime prices per audio token, so cost per conversation is not derivable from audio duration. Cached audio input is 80x cheaper than fresh ($0.40 vs $32.00 per 1M), which means your bill swings on prompt structure more than on call volume.", "standout": "The transcription and the reasoning share one session — no separate ASR hop before the model that answers.", "facets": [ "actively-maintained", "no-diarization", "self-hostable", "streaming" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "TRUE streaming — the API 'returns transcript deltas as speech arrives', with a tunable delay setting (minimal / low / medium / high / xhigh). Turn boundaries come either from explicit per-turn commit (which the docs recommend) or from server-side voice activity detection.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "None on gpt-live-transcribe — explicitly documented as absent, along with speaker labels and confidence scores.", "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": "Audio tokens for gpt-realtime; per audio minute for gpt-live-transcribe and gpt-transcribe.", "free_tier": null, "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": null, "status": "active", "verification": "verified", "verification_note": "for pricing and the capability gaps (both read off OpenAI's own pages, re-checked this pass).", "rating": null, "source_url": "https://developers.openai.com/api/docs/guides/realtime", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "faster-whisper", "variants": null, "category": "runtime", "licence": "MIT — on the RUNTIME CODE ONLY. It ships no weights. The licence you actually deploy under is whatever the checkpoint carries: MIT for openai/whisper and distil-whisper, but community CTranslate2 conversions on the Hub carry their own terms and are frequently unlabelled.", "licence_class": "warn", "price_note": "Free / self-host.", "price_sort": null, "accuracy_note": "Inherits the model you point it at. faster-whisper trains nothing and alters no weights — it re-implements Whisper inference on CTranslate2. The repository publishes speed and memory and never publishes WER, because it has no WER of its own. Any accuracy figure belongs to the checkpoint. Note that INT8 quantisation, which is the whole reason to use it, can move accuracy and the repo quantifies that shift nowhere.", "wer_sort": null, "languages_note": "Whatever the loaded checkpoint supports — 99 for openai/whisper-large-v3, English-only for the English distil-whisper builds.", "languages_sort": null, "runs_on": "CPU or NVIDIA GPU. Repo benchmarks, 13 minutes of audio: on an RTX 3070 Ti 8GB with large-v2 — FP16 1m03s at 4,525 MB VRAM, INT8 59 s at 2,926 MB, batched (size 8, INT8) 16 s at 4,500 MB, batched FP16 17 s at 6,090 MB. On an Intel Core i7-12700K (8 threads) with the small model — FP32 2m37s at 2,257 MB RAM, INT8 1m42s at 1,477 MB.", "best_for": "Batch transcription throughput on modest hardware. The batched INT8 path turns 13 minutes of audio into 16 seconds of work on a 3070 Ti, which is the reason most Whisper deployments sit on this rather than on openai/whisper.", "diarization": "None. Speech-to-text only. Diarization means adding WhisperX or a standalone pyannote pipeline — this is the single most common wrong assumption about faster-whisper.", "watch": "No release since 31 October 2025 and no push since 19 November 2025 — roughly nine months quiet, while WhisperX, whisper-ctranslate2 and a large fraction of self-hosted Whisper deployments sit directly on top of it. Because it is a Whisper inference engine it inherits every Whisper failure mode, including hallucinated text over silence, and adds one of its own: new checkpoint architectures do not work until somebody ports them to CTranslate2.", "standout": "The batched INT8 path — 13 minutes of audio in 16 seconds on an RTX 3070 Ti at 4.5 GB.", "facets": [ "cpu-capable", "english-only", "frozen", "licence-catch", "no-diarization", "self-hostable", "word-timestamps" ], "hardware": "cpu", "params": null, "architecture": null, "vram": null, "quantisation": "INT8 and FP16 on both CPU and GPU, via CTranslate2.", "fine_tuning": null, "streaming": "No true streaming. Silero VAD is integrated for silence filtering, not for low-latency decoding. Realtime use requires the separate whisper-streaming community project, and the model underneath is still non-streaming Whisper.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Word-level via `word_timestamps=True`.", "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host only — there is no hosted service.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "24.7k GitHub stars.", "released": "v1.2.1 released 31 October 2025; last push to the repository 19 November 2025.", "status": "dormant", "verification": "verified", "verification_note": "benchmark table, licence, star count and release dates all read off the repository and the GitHub API on 1 Aug 2026.", "rating": null, "source_url": "https://github.com/SYSTRAN/faster-whisper", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "WhisperX", "variants": null, "category": "runtime", "licence": "BSD-2-Clause — on the RUNTIME CODE ONLY (confirmed via the GitHub API, 1 Aug 2026). It ships no weights of its own: ASR is OpenAI Whisper (MIT) served through faster-whisper/CTranslate2, alignment uses per-language wav2vec2 phoneme models whose licences vary, and the diarization step pulls pyannote `speaker-diarization-community-1`, which is GATED — you must accept the terms on Hugging Face and pass a read token. That pipeline is itself CC-BY-4.0, so the attribution obligation is real even though the gate is free to pass. The BSD-2 badge covers roughly none of what actually runs.", "licence_class": "warn", "price_note": "Free / self-host.", "price_sort": null, "accuracy_note": "Inherits the ASR model you point it at — it runs faster-whisper underneath. What WhisperX changes is timestamp quality, not word accuracy: it discards Whisper's decoder-guessed segment timings and replaces them with wav2vec2 phoneme forced alignment. The repo publishes speed (70x realtime with large-v2 batched, under 8 GB VRAM at beam_size=5) and never publishes WER. The paper took 1st place at the Ego4D transcription challenge (INTERSPEECH 2023) — a WER result. And no DER is published for the diarization path at all: WhisperX benchmarks transcription and word timing, never speaker attribution, so its diarization accuracy is community-1's minus whatever the timestamp-overlap word assignment loses.", "wer_sort": null, "languages_note": "ASR coverage is the Whisper checkpoint's. ALIGNMENT coverage is much narrower: the default torchaudio phoneme models cover {en, fr, de, es, it} only — everything else requires you to locate a phoneme-based ASR model on the Hub yourself (the repo maintains a `DEFAULT_ALIGN_MODELS_HF` list as a starting point).", "languages_sort": null, "runs_on": "NVIDIA GPU, under 8 GB VRAM for large-v2 at beam_size 5; the README directs both Linux and Windows users to install CUDA toolkit 12.8. It also runs without a GPU — '--compute_type int8 --device cpu' is the documented path 'to run on CPU instead of GPU (and for running on Mac OS X)', slowly. CPU is therefore the floor, not the recommendation.", "best_for": "Offline transcription that must produce accurate word timestamps AND speaker labels in one pass — subtitling, interview transcription, meeting archives. It is the default answer for 'Whisper but with speakers'.", "diarization": "Yes, and it is the reason people install it — pyannote-audio, `speaker-diarization-community-1`, gated behind Hugging Face terms acceptance and an `--hf_token`. But BOLT-ON, NOT BUILT-IN: WhisperX calls the pipeline as a separate model, then maps words to speakers by timestamp overlap in assign_word_speakers(). Nothing about the ASR is speaker-aware, so overlapping speech reconciles badly. This is the single largest source of the belief that 'Whisper does diarization' — Whisper does not, and never has.", "watch": "The alignment model is the hidden constraint. Outside {en, fr, de, es, it} you must find a phoneme-level wav2vec2 yourself, and timestamp quality silently becomes whatever you found — there is no error, just worse timings. Diarization is gated: it needs a Hugging Face token AND a human click accepting community-1's conditions, and `pip install whisperx` gives no hint of this, so the dependency is invisible until --diarize 401s in CI. The repo's own Limitations section states that 'Diarization is far from perfect' and that 'Overlapping speech is not handled particularly well by whisper nor whisperx' — cross-talk is the normal case in real meetings. Speaker assignment runs AFTER transcription by timestamp overlap, so a word whose alignment slipped gets the wrong speaker at full confidence, and words containing no characters in the alignment dictionary (the README's own examples are '2014.' and '£13.60') get no timing and therefore no speaker. And it is batch-only by design, so no amount of tuning makes it a voice-agent component.", "standout": "Word-level timestamps by forced alignment rather than by the decoder's own guess — a different and better mechanism than every Whisper wrapper that just reads Whisper's timings.", "facets": [ "actively-maintained", "cpu-capable", "diarization-addon", "licence-catch", "self-hostable", "word-timestamps" ], "hardware": "cpu", "params": null, "architecture": null, "vram": "Under 8 GB for large-v2 at beam_size 5; reduce batch_size or use --compute_type int8 below that.", "quantisation": null, "fine_tuning": null, "streaming": "None. Batch-only by construction — it runs inference `without_timestamps` to enable single-pass batching, then aligns afterwards. That design choice is exactly what forecloses streaming.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Word-level by wav2vec2 forced alignment — the distinguishing feature. Segment-per-sentence via nltk sent_tokenize since v3.", "punctuation": null, "custom_vocab": null, "output_formats": "Speaker labels are attached per word and per segment when --diarize is passed; --min_speakers and --max_speakers are accepted when the count is known, and --highlight_words True visualises word timings in the SRT.", "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host only — pip install whisperx, and everything runs locally once the gated pyannote weights are cached.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "23,381 GitHub stars (GitHub API, 1 Aug 2026) — more than pyannote.audio itself at 10,371, which is why so many teams meet pyannote through this wrapper without realising it.", "released": "v3 introduced the faster-whisper backend and the 70x speed-up. v3.8.6 released 25 May 2026, with a v3.8.7rc1 pre-release on 26 June 2026; last push 13 July 2026.", "status": "active", "verification": "verified", "verification_note": "licence, star count, release dates, the 70x/8 GB claims, the CPU and macOS path, the five-language alignment default, the Limitations quotations and the pyannote gate all read off the repository README and the GitHub API on 1 Aug 2026.", "rating": null, "source_url": "https://github.com/m-bain/whisperX", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "insanely-fast-whisper", "variants": null, "category": "runtime", "licence": "Apache-2.0 — on the CLI CODE ONLY. It ships no weights.", "licence_class": "warn", "price_note": "Free / self-host.", "price_sort": null, "accuracy_note": "Inherits the checkpoint. It is a CLI over Transformers, Optimum and flash-attn; it publishes wall-clock times and never WER. Its speed comes partly from the Transformers chunked long-form algorithm, which Hugging Face itself describes as 'not technically 100% the same thing as running the model on the whole file' — so the accuracy it inherits is the chunked one, not the sequential one.", "wer_sort": null, "languages_note": "Whatever the loaded Whisper checkpoint supports.", "languages_sort": null, "runs_on": "NVIDIA GPU with Flash Attention 2. Repo benchmark, 150 minutes of audio on an A100 80 GB: large-v3 with FP16, batch 24 and Flash Attention 2 in 1 min 38 s; distil-large-v2 on the same settings in 1 min 18 s; large-v2 via faster-whisper 8-bit at beam_size 1 in 8 min 15 s.", "best_for": "One-shot bulk transcription on a rented A100 or H100 where the job is 'get 150 minutes of audio into text before the coffee is cold' and nothing depends on the tool being maintained.", "diarization": "Yes, via pyannote in the CLI, with options for a fixed speaker count or a min/max range.", "watch": "The default branch has not moved since 27 May 2024 and there has never been a tagged release — over two years unmaintained, pinned against Transformers, Optimum and flash-attn, three of the fastest-moving dependencies in the ecosystem. (The repo's 'last updated' badge shows October 2025 from a side-branch push; do not read that as maintenance.) Install failures on current versions are the expected outcome, not an edge case. The only performance evidence is on an A100 80 GB, which is not the hardware most buyers have, and the 13k stars are a reputation earned in 2023–24 and never revised.", "standout": null, "facets": [ "diarization-addon", "frozen", "licence-catch", "self-hostable", "word-timestamps" ], "hardware": "gpu-80", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "None. Chunked batching with a default batch size of 24 — parallel windows over a file, not streaming.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Chunk-level and word-level timestamp modes exposed as CLI flags.", "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "13.0k GitHub stars.", "released": "No tagged release has ever been published — the releases API returns an empty list. The default branch's last commit is 27 May 2024; the repository's last push of any kind is 25 October 2025, to a non-default branch.", "status": "dormant", "verification": "verified", "verification_note": "benchmark table from the repo; commit history, empty release list and push dates from the GitHub API on 1 Aug 2026.", "rating": null, "source_url": "https://github.com/Vaibhavs10/insanely-fast-whisper", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "whisper-ctranslate2", "variants": null, "category": "runtime", "licence": "MIT — on the CLI CODE ONLY. It ships no weights.", "licence_class": "warn", "price_note": "Free / self-host.", "price_sort": null, "accuracy_note": "Inherits the checkpoint. It is a drop-in replacement for the `openai/whisper` command line that swaps the backend to CTranslate2 via faster-whisper — same weights, same errors, different speed. Its speed claim ('up to 4 times faster than openai/whisper for the same accuracy while using less memory', 4x–16x with batching) is inherited from faster-whisper, not measured here.", "wer_sort": null, "languages_note": "Whatever the loaded Whisper checkpoint supports.", "languages_sort": null, "runs_on": "CPU or NVIDIA GPU — inherits faster-whisper's envelope exactly, including its INT8/FP16 quantisation options.", "best_for": "Swapping the backend under an existing openai/whisper shell script without touching a single flag, and getting pyannote speaker labels from the same command.", "diarization": "Yes — speaker identification via pyannote.audio, in the CLI. The plain faster-whisper library does not give you this, which is the main reason to reach for this wrapper instead.", "watch": "It inherits faster-whisper's maintenance risk one level down — the upstream engine has not shipped since October 2025, and this wrapper cannot move faster than its backend. The 'real-time microphone transcription' feature is chunked capture over a non-streaming model; treating it as a voice-agent path will produce latency you cannot tune away.", "standout": "The only Whisper CLI that is argument-compatible with openai/whisper AND emits pyannote speaker labels from the same invocation.", "facets": [ "actively-maintained", "cpu-capable", "custom-vocab", "diarization-addon", "licence-catch", "self-hostable" ], "hardware": "cpu", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "No true streaming. There is a live microphone transcription mode, but the model underneath is Whisper, which is not a streaming architecture — this is chunked capture through a batch decoder, not low-latency decoding. Do not read 'real-time' on the README as a latency claim.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": "Supports custom fine-tuned models via a model directory; VAD filtering and confidence-based colour-coded output.", "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "1.3k GitHub stars.", "released": "Latest tag 0.5.7; last push 14 February 2026.", "status": "active", "verification": "verified", "verification_note": "licence, star count, latest tag and push date from the GitHub API on 1 Aug 2026.", "rating": null, "source_url": "https://github.com/Softcatala/whisper-ctranslate2", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "NVIDIA NeMo (NVIDIA-NeMo/Speech)", "variants": null, "category": "runtime", "licence": "Apache-2.0 on the FRAMEWORK. The checkpoints are the trap and they do not share it: `parakeet-tdt-0.6b-v3` is CC-BY-4.0, `canary-1b-v2` is CC-BY-4.0, and `nemotron-3.5-asr-streaming-0.6b` is OpenMDW-1.1 — three different licences under one Apache-2.0 framework. Older Canary checkpoints were CC-BY-NC (non-commercial); verify the specific revision you pull.", "licence_class": "warn", "price_note": "Free / self-host. NVIDIA separately sells hosted Riva/NIM endpoints — a different artefact with different terms.", "price_sort": null, "accuracy_note": "Inherits the checkpoint. NeMo publishes no framework-level WER because it does not have one. Per-checkpoint, from the model cards: canary-1b-v2 (978M params) gives 7.15% mean WER on the HF Open ASR Leaderboard, 8.40% on Fleurs-25-languages, 8.85% on CoVoST-13, 7.27% on MLS-6, at RTFx 749. parakeet-tdt-0.6b-v3 gives 6.34% average on the Open ASR Leaderboard, with LibriSpeech test-clean 1.93 / test-other 3.59, AMI 11.31, Earnings-22 11.42, GigaSpeech 9.59, TEDLIUM-v3 2.75, VoxPopuli 6.14. nemotron-3.5-asr-streaming-0.6b gives FLEURS WER at 1.12 s chunk: Spanish 4.11, Italian 4.25, Portuguese 5.48, English 7.91, German 8.31, French 9.03 — averaging 8.84% across its 19 transcription-ready locales. Independent: Pipecat's benchmark puts NVIDIA Nemotron 3.0 ASR (en) at 76.1% perfect transcripts, 1.90% mean WER, 221 ms median TTFS — the fastest median in that table — while the multilingual Nemotron 3.5 row is markedly weaker at 62.0% perfect and 4.54% mean WER.", "wer_sort": null, "languages_note": "By checkpoint. Parakeet-TDT-0.6B-v3 and Canary-1B-v2 cover 25 European languages (Canary also does X→English and English→X translation for 24). Nemotron 3.5 ASR streaming covers 40 language-locales, which NVIDIA tiers as 19 transcription-ready, 13 broad-coverage and 8 adaptation-ready — read that tiering before assuming 40 usable languages.", "languages_sort": null, "runs_on": "NVIDIA GPU. Python 3.12+, PyTorch 2.7+; GPU required for training and recommended for inference. Nemotron 3.5 tested on H100, supported on Turing through Blackwell plus Jetson.", "best_for": "Self-hosted streaming ASR at agent latency with a published latency dial and first-party diarization in the same framework — and the only serious open path if you also intend to fine-tune on your own audio.", "diarization": "Yes, and first-party: Sortformer and the NeMo diarizer ship inside the framework. One of the very few ASR stacks where diarization is not a pyannote bolt-on. Note the Nemotron 3.5 streaming card itself documents no diarization — it is the framework that carries it, not that checkpoint.", "watch": "`github.com/NVIDIA/NeMo` now redirects to `NVIDIA-NeMo/Speech` — the monorepo was split by modality in 2026, and v2.7.0 is the last release with the other modalities, so pinned installs, tutorials and Dockerfiles point at a repo that moved under them. The licence is per-checkpoint and inconsistent in a way that will surprise legal: Parakeet-TDT-0.6B-v3 and Canary-1B-v2 are both CC-BY-4.0, but nemotron-3.5-asr-streaming-0.6b is OpenMDW-1.1, a licence most teams have never reviewed, and earlier Canary revisions were CC-BY-NC. Check the exact checkpoint and revision, not the family name — 'Canary is non-commercial' and 'Canary is CC-BY' are both true depending on which one you pulled. Finally, this is the one 'runtime' here that is really a training framework — expect a framework's install surface, not a library's.", "standout": "Cache-aware streaming with a published latency dial from 80 ms to 1.12 s, plus first-party diarization and training in the same framework.", "facets": [ "actively-maintained", "diarization-addon", "licence-catch", "self-hostable", "streaming" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": "Yes — this is the exception in the runtime group. NeMo is a full training framework, not just a serving stack; NVIDIA publishes a fine-tuning guide for Nemotron 3.5 ASR by language, domain and accent.", "streaming": "TRUE streaming via cache-aware FastConformer — encoder states are reused across chunks rather than recomputed from raw audio, with configurable chunk latency at 80, 160, 320, 560 and 1,120 ms. NVIDIA claims up to 17x lower latency than naive chunk-based streaming and 240–2,400 concurrent streams on a single H100.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host is the point.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "17.8k GitHub stars.", "released": "Repository split by modality in 2026 — v2.7.0 is the last release carrying the other modalities. v2.7.3 released 23 April 2026; last push 1 August 2026. Nemotron 3.5 ASR released June 2026; Canary-1B-v2 and Parakeet-TDT-0.6B-v3 documented in arXiv:2509.14128, submitted 17 September 2025.", "status": "active", "verification": "verified", "verification_note": "all three checkpoint licences read individually off their own model cards this pass (CC-BY-4.0, CC-BY-4.0, OpenMDW-1.1), WER tables off the same cards, repository split and dates from the GitHub API on 1 Aug 2026.", "rating": null, "source_url": "https://github.com/NVIDIA-NeMo/Speech", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "SpeechBrain", "variants": null, "category": "runtime", "licence": "Apache-2.0 on the TOOLKIT. Pretrained checkpoints on Hugging Face carry their own per-model terms; the toolkit licence does not extend to them.", "licence_class": "warn", "price_note": "Free / self-host.", "price_sort": null, "accuracy_note": "Inherits the recipe or checkpoint. SpeechBrain publishes no toolkit-level WER because it has none. Its published example, `speechbrain/asr-streaming-conformer-librispeech`: 2.72% WER on LibriSpeech test-clean in non-streaming greedy mode, 6.47% on test-other non-streaming, and a full streaming grid on test-clean — at a 960 ms chunk, 3.07% with 16 or 32 left-context chunks falling to 3.13% at 4 and 3.24% at 2; at a 320 ms chunk the same grid runs 3.44% to 4.38%. That is one model on one corpus.", "wer_sort": null, "languages_note": "By recipe — 200+ training recipes across 40+ datasets including LibriSpeech, CommonVoice and TIMIT, with 100+ pretrained models on Hugging Face.", "languages_sort": null, "runs_on": "PyTorch — CPU or GPU for inference, GPU for training.", "best_for": "Research and in-house model training where you need to change the architecture rather than just call it — 200+ recipes and clean fine-tuning hooks into Whisper, Wav2Vec2, WavLM and HuBERT.", "diarization": "Yes — ECAPA-TDNN and x-vector speaker embeddings with spectral clustering, with a published recipe on AMI. Recipe-shaped rather than product-shaped.", "watch": "That 2.72 → 3.07 delta is the honest shape of streaming's cost, but it is measured on LibriSpeech read speech, which is the easiest audio that exists — treat it as a floor, not an estimate for your telephony. Note too that the cost depends on left context as much as chunk size: shrink the context to 2 chunks at 320 ms and the same model goes to 4.38%. And be clear about what you are adopting: this is a research toolkit. It will train you a model; it will not give you a serving stack, a low-latency server or an SLA.", "standout": "It publishes the full streaming-versus-non-streaming WER grid for the same model — 2.72% non-streaming against 3.07–3.24% at a 960 ms chunk depending on left context — where almost nobody else in this table quantifies what streaming costs them at all.", "facets": [ "actively-maintained", "cpu-capable", "diarization", "licence-catch", "self-hostable", "streaming" ], "hardware": "cpu", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": "Yes — trains from scratch or fine-tunes Whisper, Wav2Vec2, WavLM, HuBERT, GPT2 and Llama2. Like NeMo, this is a training framework, not merely a serving stack.", "streaming": "TRUE streaming supported via Dynamic Chunk Training and chunked attention on the Conformer-Transducer: self-attention is restricted to the current chunk plus a bounded left context, so no future audio is required. Pretrained streaming checkpoints exist for LibriSpeech and GigaSpeech.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "11.7k GitHub stars.", "released": "v1.1.0 released 30 March 2026; last push 15 June 2026. SpeechBrain 1.0 announced January 2024, with a JMLR paper the same year.", "status": "active", "verification": "verified", "verification_note": "for the streaming WER grid (read off the model card this pass), the star count and the push date (GitHub API, 1 Aug 2026); the v1.1.0 tag date was not re-confirmed against the releases API.", "rating": null, "source_url": "https://github.com/speechbrain/speechbrain", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "ESPnet", "variants": null, "category": "runtime", "licence": "Apache-2.0 on the TOOLKIT. Per-recipe checkpoints carry their own terms.", "licence_class": "warn", "price_note": "Free / self-host.", "price_sort": null, "accuracy_note": "Inherits the recipe or checkpoint. ESPnet publishes per-recipe results, never a toolkit-level number. Its own OWSM series is an open reproduction of Whisper-style multilingual multitask training, and OWSM's figures belong to OWSM, not to ESPnet.", "wer_sort": null, "languages_note": "By recipe. Corpora include WSJ, Switchboard, LibriSpeech, CHiME and TEDLIUM among many others; OWSM is multilingual by design.", "languages_sort": null, "runs_on": "PyTorch (2.9.1–2.11.0 compatibility referenced), CPU or GPU, with Kaldi-style data preparation. DistributedDataParallel for multi-node training.", "best_for": "Reproducible speech research and any task where a published recipe already exists — the recipe coverage across ASR, TTS, speech translation and enhancement is the broadest of any toolkit here.", "diarization": "Yes — diarization recipes exist (mini_librispeech among them), as recipes rather than as a packaged capability.", "watch": "Kaldi-style data preparation means shell-script stages and a genuinely steep setup — this is the least pip-install-and-go option in the table. Versioning is date-stamped (v.202604-patch1) rather than semver, so dependency pinning and 'is this newer?' questions are harder than they look. Enormous recipe coverage, thin productisation.", "standout": "OWSM — an open, fully reproducible Whisper-style multilingual multitask model trained inside the toolkit, with the data pipeline published rather than described.", "facets": [ "actively-maintained", "cpu-capable", "diarization", "licence-catch", "self-hostable", "streaming" ], "hardware": "cpu", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": "Yes — a full training framework with on-the-fly feature extraction and text processing.", "streaming": "TRUE streaming — Streaming Transformer/Conformer ASR with blockwise synchronous beam search and contextual block processing.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "9.9k GitHub stars; created 13 December 2017, the oldest actively maintained toolkit in this group.", "released": "v.202604-patch1 released April 2026; last push 28 July 2026.", "status": "active", "verification": "verified", "verification_note": "for the star count, creation date and push date (GitHub API, 1 Aug 2026); the day-level date of the v.202604-patch1 tag was not confirmed and is not stated.", "rating": null, "source_url": "https://github.com/espnet/espnet", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Transformers ASR pipeline", "variants": null, "category": "runtime", "licence": "Apache-2.0 — on the LIBRARY CODE ONLY. It ships no weights. Every checkpoint on the Hub carries its own licence and they vary enormously.", "licence_class": "warn", "price_note": "Free / self-host.", "price_sort": null, "accuracy_note": "Inherits the checkpoint entirely. The one thing the pipeline itself changes is long-form handling: passing `chunk_length_s` switches on the chunked algorithm — overlapping chunks, edge logits dropped, clean centres chained — which Hugging Face's own write-up says is 'not technically 100% the same thing as running the model on the whole file'. Whisper's sequential long-form path and the chunked path can therefore return different transcripts from identical weights on identical audio, and no WER delta between them is published.", "wer_sort": null, "languages_note": "By checkpoint. The library covers essentially every ASR architecture on the Hub — Whisper, Wav2Vec2, CTC models, Moonshine, Parakeet and more.", "languages_sort": null, "runs_on": "CPU or GPU via PyTorch. `batch_size` defaults to 1, so out-of-the-box throughput is poor until you set it.", "best_for": "Evaluating or serving an arbitrary ASR checkpoint from the Hub with no conversion step — the fastest path from 'someone published a model' to 'I have a transcript'.", "diarization": "None. The pipeline emits text and timestamps; speakers are somebody else's problem entirely.", "watch": "Two different long-form algorithms produce two different transcripts from the same weights, and which one you get depends silently on whether you passed `chunk_length_s`. The documentation names the discrepancy and publishes no WER cost for it. Default generation values (`max_new_tokens` 256, `num_beams` 5) also apply silently whenever a checkpoint's `generation_config.json` does not set them, which changes both speed and output. And `batch_size` defaults to 1 — most 'Transformers is slow' benchmarks are measuring that default.", "standout": "The only runtime here that loads essentially any ASR architecture on the Hub with no conversion step.", "facets": [ "actively-maintained", "cpu-capable", "licence-catch", "no-diarization", "self-hostable", "word-timestamps" ], "hardware": "cpu", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": "Yes — Trainer-based fine-tuning is the documented workflow, though that is the library rather than the pipeline.", "streaming": "None. `chunk_length_s` with `stride_length_s` (defaulting to one sixth of the chunk length on each side) is chunked batch processing of a file, not streaming. Nothing here is a realtime path.", "latency_note": null, "realtime_factor": null, "audio_limits": "Whisper's encoder is fixed at 30 seconds; anything longer goes through either the sequential long-form path or the chunked path.", "timestamps": "`return_timestamps='word'` for word level (CTC and Whisper), `'char'` for CTC character level, `True` for Whisper segment level.", "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "163k GitHub stars.", "released": "Last push 1 August 2026 — the most actively developed repository in this group.", "status": "active", "verification": "verified", "verification_note": "star count, licence and push date from the GitHub API on 1 Aug 2026.", "rating": null, "source_url": "https://huggingface.co/docs/transformers/tasks/asr", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "pyannote speaker-diarization-3.1", "variants": null, "category": "diar", "licence": "MIT on the pipeline weights (HF cardData `license: mit`, read off the HF API 1 Aug 2026). The pipeline is a composite and the composite is not all MIT: it pulls pyannote/segmentation-3.0 (MIT, also `gated: auto`) and pyannote/wespeaker-voxceleb-resnet34-LM (CC-BY-4.0, not gated) — all three confirmed via the HF API 1 Aug 2026. What you ship is MIT + CC-BY-4.0.", "licence_class": "warn", "price_note": "Free, self-host", "price_sort": null, "accuracy_note": "DER from the model card's own table under its 'Full' protocol — the card states verbatim 'no forgiveness collar' and 'evaluation of overlapped speech': VoxConverse v0.3 11.3, AISHELL-4 12.2, AMI headset-mix 18.8, DIHARD 3 (full) 21.7, AliMeeting ch.1 24.4, AMI array1-ch1 22.4, MSDWild 25.3, REPERE phase2 7.8, AVA-AVD 50.0. The pyannote.audio repo's comparison table (last updated Sept 2025) restates 3.1 as `legacy` with slightly different figures — AMI IHM 18.8, AMI SDM 22.7, DIHARD 3 21.4, VoxConverse 11.2, CALLHOME part 2 28.5, AVA-AVD 49.7, Ego4D dev 51.2, MSDWild 25.4, RAMC 22.2, REPERE phase2 7.9, AISHELL-4 12.2, AliMeeting ch.1 24.5. Quote one table or the other, not a mix.", "wer_sort": null, "languages_note": "Language-independent by construction — the pipeline takes no language argument. Its published benchmark set spans Mandarin (AISHELL-4, AliMeeting, RAMC), French (REPERE) and multilingual in-the-wild corpora (VoxConverse, MSDWild, AVA-AVD, Ego4D).", "languages_sort": null, "runs_on": "CPU or any CUDA GPU via PyTorch. Mono 16 kHz input; multi-channel is downmixed by averaging channels and other rates resampled automatically. 3.1 removed the onnxruntime dependency and runs in pure PyTorch.", "best_for": "Pipelines already pinned to it, and the narrow case where an MIT weights licence is a hard procurement requirement — its own successor moved to CC-BY-4.0. For anything new, community-1 beats it on every dataset in the vendor's comparison table except REPERE phase2 (7.9 vs 8.9), and ties it on VoxConverse v0.3 (11.2 both).", "diarization": "Built-in — this IS the diarization and it is the only thing it does. Output is speaker turns with start/stop times and no words at all. You run ASR separately and join the two by timestamp yourself.", "watch": "THE GATING TRAP, and it is real. Both pyannote/speaker-diarization-3.1 and pyannote/segmentation-3.0 are `gated: auto` on Hugging Face. 'auto' does not mean automatic — a human must click Accept on the account owning the token, once per repo, and there are two repos here. The model card page renders publicly to anyone, so it looks open; the FILES do not. An unauthenticated fetch of the README returns HTTP 401 Unauthorized — verified 1 Aug 2026 for both repos. That is exactly why this works on the laptop of the engineer who clicked Accept and 401s in CI under a service-account token that never did. Second trap: pyannote.audio 4.x ships telemetry ON BY DEFAULT — src/pyannote/audio/telemetry/config.yaml contains `metrics_enabled: true` and an OTLP endpoint at https://otel.pyannote.ai/v1/traces — sending pipeline-init events and per-file events carrying file duration and your num_speakers/min_speakers/max_speakers values. Set PYANNOTE_METRICS_ENABLED=0.", "standout": "MIT on the pipeline weights, where its own successor is CC-BY-4.0", "facets": [ "cpu-capable", "diarization-addon", "frozen", "licence-catch", "self-hostable", "word-timestamps" ], "hardware": "cpu", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": "Yes — pyannote.audio ships a tutorial for adapting the pretrained pipeline to your own data, and the author used that route to take 1st place at Ego4D 2022 (also 1st at Albayzin 2022, 6th at VoxSRC 2022). Caveat the README states directly above the tutorial list: 'Those tutorials were written for older versions of pyannote.audio and should be updated.'", "streaming": "None. Offline batch pipeline over a whole file.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Speaker turn boundaries in seconds. No words, no text, no punctuation.", "punctuation": null, "custom_vocab": null, "output_formats": "RTTM via pyannote.core, plus Python objects.", "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes — fully local once weights are cached. A community tutorial for offline use is linked from the repo (2024-04-05), under a heading the README labels 'Community contributions (not maintained by the core team)'.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "~8.62 M Hugging Face downloads in the trailing 30 days (8,622,264), 2,927 likes (HF API, 1 Aug 2026) — the most-downloaded diarization artefact by a wide margin, which is why stale tutorials keep pointing here.", "released": "November 2023 (HF repo created 16 Nov 2023); last modified 10 May 2024.", "status": "dormant", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/pyannote/speaker-diarization-3.1", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "pyannote speaker-diarization-community-1", "variants": null, "category": "diar", "licence": "CC-BY-4.0 on the pipeline weights (HF cardData `license: cc-by-4.0`, read off the HF API 1 Aug 2026). Note the split and the direction of travel: the pyannote.audio CODE is MIT, these WEIGHTS are CC-BY-4.0, and the 3.1 weights they replace were MIT. Attribution is now required where it previously was not.", "licence_class": "warn", "price_note": "Free, self-host. A hosted Community-1 also exists on pyannoteAI at EUR 0.035 per audio hour.", "price_sort": null, "accuracy_note": "DER from the comparison table published identically on the community-1 model card and in the pyannote.audio README, last updated Sept 2025. The scoring protocol is stated on the MODEL CARD, not the README — 'fully automatic processing, no forgiveness collar, nor skipping overlapping speech': REPERE phase2 8.9, VoxConverse v0.3 11.2, AISHELL-4 11.7, AMI IHM 17.0, AMI SDM 19.9, DIHARD 3 (full) 20.2, AliMeeting ch.1 20.3, RAMC 20.8, MSDWild 22.8, CALLHOME part 2 26.7, AVA-AVD 44.6, Ego4D dev 46.8. Better than 3.1 on every set except REPERE (8.9 vs 7.9) and level on VoxConverse (11.2 both).", "wer_sort": null, "languages_note": "Language-independent by construction — no language argument. Benchmarks span Mandarin (AISHELL-4, AliMeeting, RAMC), French (REPERE) and multilingual in-the-wild sets.", "languages_sort": null, "runs_on": "CPU by default, CUDA GPU via PyTorch. Mono 16 kHz; stereo and other rates converted automatically. Requires ffmpeg — the README's install step 1 is 'Make sure ffmpeg is installed on your machine (needed by torchcodec audio decoding library)'.", "best_for": "The default open-weights diarizer in 2026: best published open DER, one gate instead of two, and an 'exclusive' output mode that removes overlap so turns can be joined to an ASR transcript without ambiguity.", "diarization": "Built-in — again, diarization only. It does not transcribe. The 'exclusive speaker diarization' mode (output.exclusive_speaker_diarization) exists precisely because joining raw overlapping turns to a transcript is the step everyone gets wrong; the card describes it as backported from the commercial Precision-2 model.", "watch": "Same gating trap as 3.1 but one repo instead of two: pyannote/speaker-diarization-community-1 is `gated: auto`, and an unauthenticated fetch of its files returns HTTP 401 Unauthorized (verified 1 Aug 2026). Your CI needs a token from an account that has clicked Accept. The licence changed underneath people: 3.1's weights were MIT, these are CC-BY-4.0, so a product that quietly upgraded picked up an attribution obligation nobody signed off. And pyannote.audio 4.x turns telemetry on by default (metrics_enabled: true in src/pyannote/audio/telemetry/config.yaml, posting to https://otel.pyannote.ai/v1/traces with per-file duration and speaker-count parameters) — disable with PYANNOTE_METRICS_ENABLED=0 before anything touches customer audio.", "standout": "An 'exclusive' diarization mode that strips overlap so speaker turns can be joined to a transcript unambiguously", "facets": [ "actively-maintained", "cpu-capable", "diarization", "licence-catch", "self-hostable", "word-timestamps" ], "hardware": "cpu", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": "Yes — pyannote.audio ships training and adaptation recipes.", "streaming": "None. Offline batch. Streaming diarization from this project exists only as pyannoteAI's hosted Live-1.", "latency_note": null, "realtime_factor": "31 s per hour of audio on AMI IHM (~1 h files) and 37 s per hour on DIHARD 3 (~5 min files), self-hosted on an NVIDIA H100 80 GB HBM3 — the vendor's own figures from the pyannote.audio README.", "audio_limits": null, "timestamps": "Speaker turn boundaries in seconds. No words.", "punctuation": null, "custom_vocab": null, "output_formats": "RTTM via pyannote.core, plus Python objects.", "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes — the model card ships an explicit 'Offline use' section (git-lfs clone, then from_pretrained on a local path, no internet connection required).", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "~4.91 M Hugging Face downloads in the trailing 30 days (4,911,373), 896 likes (HF API, 1 Aug 2026). WhisperX's README now routes its diarization path to this model.", "released": "September 2025 (pyannoteAI changelog entry 'Community-1 OSS Model', 29 Sept 2025, released alongside pyannote.audio 4.0). HF repo created 15 April 2025, last modified 29 Sept 2025.", "status": "active", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/pyannote/speaker-diarization-community-1", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "pyannoteAI (Precision-2 / Live-1)", "variants": null, "category": "diar", "licence": "Proprietary, closed weights. API-only; self-hosted deployment is Enterprise-tier only.", "licence_class": "closed", "price_note": "Billed per audio HOUR, in EUROS: Precision-2 batch EUR 0.112/hr, Live-1 streaming EUR 0.198/hr, hosted Community-1 EUR 0.035/hr. Also Speaker Identification EUR 0.096/hr, STT Orchestration EUR 0.168/hr, Voice Prints EUR 0.015 each. Developer EUR 19/mo includes 170 h; Starter EUR 99/mo includes 1,030 h; Enterprise custom (pyannote.ai/pricing, fetched 1 Aug 2026).", "price_sort": null, "accuracy_note": "Precision-2 DER from the comparison table on the community-1 model card and the pyannote.audio README (last updated Sept 2025), scored on the same public corpora and — per the model card's protocol note — the same no-collar/with-overlap protocol as the free pipelines: REPERE phase2 7.4, VoxConverse v0.3 8.5, RAMC 10.5, AISHELL-4 11.4, AMI IHM 12.9, DIHARD 3 (full) 14.7, AliMeeting ch.1 15.2, AMI SDM 15.6, CALLHOME part 2 16.6, MSDWild 17.3, AVA-AVD 37.1, Ego4D dev 39.0. Separately, the Precision-2 blog post (pyannote.ai/blog/precision-2, page dated 30 Jul 2026 — note the model itself shipped in the API on 2 Sept 2025) claims Precision-2 is 14% more accurate than Precision-1 and 28% more accurate than the OSS 3.1 pipeline, predicts the correct speaker count on 70% of an internal '250+ files with 2 to 10 speakers' benchmark against 50% for Precision-1, and adds 5% relative timestamp-precision and cross-talk improvement over Precision-1 (15% over the open-source pipeline). Those four are the vendor's own audio and the vendor's own metric, and are marketing.", "wer_sort": null, "languages_note": "Not published. No supported-language list appears on docs.pyannote.ai for any model; the underlying approach is language-independent and the open-pipeline benchmarks span Mandarin, French and multilingual sets.", "languages_sort": null, "runs_on": "Cloud API. Self-hosted container on Enterprise plans only.", "best_for": "Buying the best published diarization accuracy without running a GPU, and the only realistic route to sub-second streaming speaker labels from the pyannote lineage. Speaker identification and voiceprints on top are the reason people pick it over a bolt-on.", "diarization": "Built-in and standalone — this vendor does nothing but speaker intelligence. STT Orchestration will call an external ASR (OpenAI Whisper Large V3 Turbo since the changelog entry of 15 Jan 2026; NeMo Parakeet at its 11 Dec 2025 launch) and align the transcript for you, but pyannoteAI does not transcribe.", "watch": "Priced per audio HOUR in euros while every ASR vendor you will benchmark it against prices per audio minute in dollars — EUR 0.112/hr is EUR 0.0019/min, and buyers routinely compare the wrong units. More importantly it is a SECOND vendor bill: pyannoteAI does not transcribe, so this sits on top of whatever you pay for ASR, and Deepgram or AssemblyAI would have given you speaker labels as a metered add-on to a bill you already have. Live-1's sub-300 ms figure carries no hardware, region or percentile. The DER table is unusually honest; the blog percentages are not, and they are what the sales page leads with.", "standout": "The only diarization vendor that publishes its paid model's DER on the same public corpora, under the same scoring protocol, as its free one", "facets": [ "actively-maintained", "diarization", "self-hostable", "streaming" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "TRUE streaming via Live-1 — a dedicated streaming model, not chunked batch.", "latency_note": "Live-1: sub-300 ms speaker labels (Live-1 launch blog, pyannote.ai/blog/introducing-live-1-streaming-diarization). No hardware, region or percentile stated — vendor claim.", "realtime_factor": "Precision-2 self-hosted: 14 s per hour of audio on both AMI IHM and DIHARD 3, on an NVIDIA H100 80 GB HBM3 — 2.2x and 2.6x faster than community-1 on the same box (vendor figures, pyannote.audio README).", "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": "Per audio hour", "free_tier": "One-month trial, 150 h of audio and 10 voiceprints, premium models included, no credit card.", "concurrency": "Developer and Starter: 10 concurrent streaming connections, 100 requests/min. Enterprise custom (500 req/min cited as an example).", "self_host": "Enterprise tier only ('on-premise available').", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "Precision-2 in the API 2 September 2025; Live-1 beta 4 May 2026, GA 7 July 2026 (vendor changelog). Streaming supports a maximum of 8 speakers and up to 10 parallel streams.", "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": null, "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "NVIDIA NeMo speaker diarization (Sortformer / MSDD)", "variants": null, "category": "diar", "licence": "THREE DIFFERENT LICENCES ACROSS THREE CHECKPOINTS OF THE SAME MODEL FAMILY, all verified via the HF API 1 Aug 2026: nvidia/diar_sortformer_4spk-v1 is CC-BY-NC-4.0 (NON-COMMERCIAL — you may not ship it); nvidia/diar_streaming_sortformer_4spk-v2 is CC-BY-4.0; nvidia/diar_streaming_sortformer_4spk-v2.1 is `license: other` with license_name `nvidia-open-model-license` (the NVIDIA Open Model License — commercially usable but a bespoke agreement, not OSI-approved; read the terms rather than assuming, they are at nvidia.com/en-us/agreements/enterprise-software/nvidia-open-model-license/). None of the three is gated. The cascaded path's TitaNet-large embedding checkpoint (nvidia/speakerverification_en_titanet_large) is CC-BY-4.0 and ungated. The NeMo framework code is Apache-2.0.", "licence_class": "warn", "price_note": "Free, self-host", "price_sort": null, "accuracy_note": "All figures from the NVIDIA model cards; note the post-processing status differs between them, so do not read across. Sortformer v1 (offline), DER WITH optimised post-processing: DIHARD3-eval 14.76 (0 s collar), CALLHOME part 2 5.85 / 8.46 / 12.59 for 2 / 3 / 4 speakers (0.25 s collar), CH109 6.86 (its best CH109 is 6.27, without post-processing). Streaming v2 model-index, also WITH post-processing, at 1.04 s input-buffer latency: DIHARD III eval 13.24 for 1-4 speakers but 42.56 for 5-9; CALLHOME part 2 6.57 / 10.05 / 12.44. The v2.1 card's own like-for-like comparison table is WITHOUT post-processing and is the only place the two streaming models are scored on identical terms — at 1.04 s: DIHARD III 15.09 (<=4 spk) / 41.42 (>=5 spk) for v2.1 against 14.49 / 42.22 for v2; CALLHOME 6.65 / 11.25 / 13.35; AliMeeting near-field 12.60; AMI IHM 16.67. v2.1's real gain is on meeting speech (AliMeeting test near 11.73 vs v2's 19.63 at 30.4 s latency).", "wer_sort": null, "languages_note": "English. All three cards state performance may degrade on non-English speech; training corpora are primarily English.", "languages_sort": null, "runs_on": "NVIDIA GPU under the NeMo framework — the cards specify no Python or PyTorch version floor, only 'install Cython and latest PyTorch version'. The v1 card cites a practical ceiling of roughly 12 minutes of audio in one pass on an RTX A6000 48 GB. Training used 8 nodes of 8x Tesla V100. The published RTF figures were measured at batch size 1 on an NVIDIA RTX 6000 Ada Generation.", "best_for": "Streaming speaker labels for voice agents on an NVIDIA stack where at most four speakers will ever be present, with a published accuracy-vs-latency curve to pick a point on. For unbounded speaker counts you drop to the cascaded MarbleNet VAD + TitaNet embedding + MSDD clustering pipeline instead.", "diarization": "Built-in and standalone — Sortformer emits speaker labels only. NeMo's ASR models are separate artefacts; joining them is your job, although Sortformer's Sort Loss was designed so speaker tokens can be interleaved into a token-based ASR objective rather than permutation-matched after the fact.", "watch": "THE FOUR-SPEAKER CEILING IS HARD, and it does not degrade gracefully. The streaming v2 card's own table shows DIHARD III DER going from 13.24% at 1-4 speakers to 42.56% at 5-9; v2.1 is 15.09% against 41.42% on the same split. That is not degradation, that is failure, and any meeting-transcription product will hit it in week one. Second: the licence differs per checkpoint and the one most tutorials and blog posts still link — diar_sortformer_4spk-v1 — is CC-BY-NC-4.0, which you may not ship. Check the exact model string in your config, not the family name; 'Sortformer' tells you nothing about whether you can sell it. Third: v2.1 is neither CC-BY nor Apache but the NVIDIA Open Model License, a bespoke agreement your legal team has not read. For unbounded speaker counts, the cascaded ClusteringDiarizer/MSDD path has no 4-speaker cap and no NC checkpoint.", "standout": "A published RTF-versus-latency table at four named streaming operating points from 0.32 s to 30.4 s — nobody else states the speed/latency trade-off as a table", "facets": [ "actively-maintained", "diarization-addon", "licence-catch", "self-hostable", "streaming" ], "hardware": "gpu-48", "params": "123 M (v1 card badge); 117 M (streaming v2 card badge). Not published on the v2.1 card.", "architecture": "End-to-end neural diarizer: an L-size NEST encoder (18 layers in v1, 17 in v2/v2.1) built on Fast-Conformer, followed by an 18-layer Transformer encoder with hidden size 192 and two feedforward layers with 4 sigmoid outputs per frame. HF badge: FastConformer-Transformer. Trained with a hybrid objective combining Sort Loss with permutation-invariant loss (the shipped config is sortformer_diarizer_hybrid_loss_4spk-v1.yaml), which is what lets it resolve permutation by speaker arrival-time order. The alternative cascaded path is MarbleNet VAD + TitaNet-large speaker embeddings + Multi-Scale Diarization Decoder.", "vram": null, "quantisation": null, "fine_tuning": "Yes — supported inside the NeMo framework for both inference and fine-tuning.", "streaming": "TRUE streaming in v2 and v2.1 via an Arrival-Order Speaker Cache (AOSC) storing frame-level acoustic embeddings of previously observed speakers. v1 is offline only.", "latency_note": "Configurable input buffer measured in 80 ms frames. The v2 card publishes four configurations with their RTF: ultra-low 0.32 s (chunk 3 + right context 1, RTF 0.180), low 1.04 s (chunk 6 + RC 7, RTF 0.093), high 10.0 s (chunk 124 + RC 1, RTF 0.005), very-high 30.4 s (chunk 340 + RC 40, RTF 0.002). The v2.1 card publishes only two (1.04 s and 30.4 s). Latency here is input-buffer latency — chunk + right context — and explicitly excludes compute time. Published DERs are at 1.04 s and 30.4 s only.", "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "Hugging Face trailing-30-day downloads on 1 Aug 2026: v2.1 88,548; v2 42,955; v1 11,688. The licence-clean checkpoints have overtaken the non-commercial one, which is the encouraging reading; 11,688 downloads a month of a CC-BY-NC model is the discouraging one.", "released": "v1 December 2024 (HF repo created 9 Dec 2024); streaming v2 June 2025 (repo created 4 Jun 2025); streaming v2.1 October 2025 (repo created 22 Oct 2025).", "status": "active", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://huggingface.co/nvidia/diar_sortformer_4spk-v1", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "SpeechBrain (diarization recipes)", "variants": null, "category": "diar", "licence": "Apache-2.0 on the toolkit (confirmed via the GitHub API, 1 Aug 2026). Pretrained checkpoints are licensed separately on Hugging Face: speechbrain/spkrec-ecapa-voxceleb is Apache-2.0 and NOT gated (HF API, 1 Aug 2026) — the only major diarization component in this section you can pull in CI with no token and no click.", "licence_class": "open", "price_note": "Free, self-host", "price_sort": null, "accuracy_note": "AMI corpus DER from the repo's own recipe README (recipes/AMI/Diarization), ECAPA-TDNN embeddings + spectral clustering, dev/eval: HeadsetMix 2.02%/1.78% with oracle speaker count and 2.43%/4.03% with estimated count; LapelMix 2.17%/2.36% and 2.34%/2.57%; Array-1 2.95%/2.75% and 3.07%/3.30%. READ THE PROTOCOL BEFORE QUOTING THESE: the recipe README states a 'forgiveness collar of 0.25 sec' and that 'overlaps are ignored'. pyannote scores 18.8% on the same AMI headset mix with no collar and overlap included. The order-of-magnitude gap is protocol, not quality. Embedding backbone: 0.80% EER on VoxCeleb1-test (cleaned), per the spkrec-ecapa-voxceleb model card.", "wer_sort": null, "languages_note": "Language-independent clustering over speaker embeddings; the shipped embedding models are trained on VoxCeleb 1+2, predominantly English.", "languages_sort": null, "runs_on": "PyTorch — CPU or CUDA GPU.", "best_for": "Research, teaching, and building a bespoke diarizer where you want to swap the embedding model, the clustering algorithm and the VAD independently. It is a toolkit for constructing diarization, not a pipeline you call.", "diarization": "Recipe-level, not a packaged pipeline. You run experiment.py against an ecapa_tdnn.yaml or xvectors.yaml hparams file and supply your own VAD. There is no from_pretrained() diarization pipeline equivalent to pyannote's, which is why people who want an answer rather than a construction kit end up on pyannote.", "watch": "THE AMI NUMBERS ARE NOT COMPARABLE TO ANYONE ELSE'S. 1.78% DER on AMI HeadsetMix against pyannote's 18.8% on the same corpus is a scoring-protocol artefact: SpeechBrain uses a 0.25 s forgiveness collar, ignores overlapped speech, and the best column additionally assumes an ORACLE speaker count. With the count estimated rather than given, the same eval set is 4.03%. Put the 1.78% figure in a vendor comparison and you will be wrong by an order of magnitude and it will be your fault. Second: speechbrain.processing.diarization is now a deprecation shim whose docstring reads 'This file ensures old links to diarization continue to work while providing a Deprecation warning' — the module moved to speechbrain.integrations.alignment.diarization — so pinned tutorial code warns today and breaks eventually.", "standout": "The one option where the embedding model, the clustering step and the VAD are all swappable — and the only one with ungated weights", "facets": [ "actively-maintained", "commercially-safe", "cpu-capable", "diarization", "self-hostable" ], "hardware": "cpu", "params": null, "architecture": "ECAPA-TDNN (convolutional and residual blocks, attentive statistical pooling, Additive Margin Softmax loss) or x-vector speaker embeddings, followed by spectral clustering.", "vram": null, "quantisation": null, "fine_tuning": "Full training recipes for the embedding models from scratch, plus the VoxCeleb SpeakerRec recipes the diarization recipes depend on.", "streaming": "None in the diarization recipes.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Yes, entirely — and uniquely in this section, with no gated download.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "11,730 GitHub stars (GitHub API, 1 Aug 2026).", "released": "SpeechBrain 1.0 January 2024; latest release v1.1.0 published 30 March 2026; repo last pushed 15 June 2026.", "status": "active", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://github.com/speechbrain/speechbrain/tree/develop/recipes/AMI/Diarization", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Deepgram Speaker Diarization (Batch V2 / streaming v1)", "variants": null, "category": "diar", "licence": "Proprietary, closed weights", "licence_class": "closed", "price_note": "$0.0020 per audio MINUTE as a metered add-on, on top of transcription ($0.0017/min on Growth). Nova-3 pre-recorded is $0.0077/min monolingual and $0.0092/min multilingual; streaming $0.0048 and $0.0058/min (deepgram.com/pricing, fetched 1 Aug 2026, which carries the footnote 'Limited-time promotional rates on streaming' — so the streaming line is not a stable number).", "price_sort": null, "accuracy_note": "NO DER ON ANY NAMED PUBLIC TEST SET, for either generation. For Batch Diarization V2 (announced May 2026) the only quantified claims are that it was 'preferred 3.3X over our current production diarizer (v1)' in side-by-side human evaluation (158 votes: 63.3% V2, 19.0% V1, 17.7% no preference) and roughly 80% median confusion-error-rate reduction on contact-centre audio; the launch post's CER charts cover Voice Agent, Contact Center and Medical audio and carry no numbers in the text. SEPARATELY AND MUCH EARLIER, Deepgram's 2023 'Trained on 100,000+ Voices' next-gen diarization post — describing the diarizer that is NOW v1, not V2 — claimed 53.1% overall accuracy improvement over its predecessor, median CER improvements of 61.5% (meeting), 72.7% (podcast) and 48.5% (phonecall) measured over 250,000+ internally human-annotated examples, and '10X faster turnaround time (TAT) than the next fastest vendor'. Do not attribute that second set to V2. Every figure on both sides is the vendor's own audio, the vendor's own annotation and the vendor's own metric. Marketing, not a benchmark.", "wer_sort": null, "languages_note": "Described as language-agnostic. The '80 languages and 100,000 speakers' training claim comes from the 2023 next-gen post and therefore describes the v1-era embedding models; Deepgram publishes no per-language diarization support list. (The English/Spanish/Hindi/German list often quoted alongside it is from that post's LANGUAGE DETECTION results, not diarization.)", "languages_sort": null, "runs_on": "Cloud API; self-hosted deployment is offered under contract.", "best_for": "Adding speaker labels to audio you already send to Deepgram, at the lowest incremental per-minute cost in this section and without standing up a second vendor or a GPU.", "diarization": "Built into the API but NOT into the acoustic model — Deepgram's own description is a cascade of segmentation, embedding and clustering modules attached to the ASR. Every word returns a speaker id, and in batch a speaker_confidence score. Speaker count is detected automatically; the docs expose no parameter to pin it.", "watch": "THE GOOD DIARIZER IS NOT THE STREAMING DIARIZER. Batch V2 — the one every 2026 accuracy claim above is about — rejects streaming connections outright with a validation error; your voice agent silently gets v1, and gets it without confidence scores. Diarization is also flatly incompatible with Deepgram's Whisper models ('Diarization is compatible with all Nova batch models (Nova-1, Nova-2, Nova-3) as well as enhanced and base. Whisper is not supported.'), which is the combination a lot of migration plans assume. And it is a metered add-on that does not appear in the headline per-minute price anyone budgets from: it is roughly a 26% surcharge on Nova-3 monolingual pre-recorded, and roughly 42% on streaming.", "standout": "A per-minute diarization add-on you can switch on inside an ASR bill you already have", "facets": [ "actively-maintained", "diarization", "self-hostable", "streaming", "word-timestamps" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "Yes, but only on the OLD diarizer. The docs state 'diarize_model=v2 — not supported on streaming. Returns a validation error.' Streaming falls back to v1, and 'When using diarization for live streaming audio, only the speaker value will be returned' — no confidence scores.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Per-word, with a speaker id attached to each word.", "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": "Per audio minute", "free_tier": "$200 in credits, no credit card required.", "concurrency": "50 concurrent REST requests, 150 concurrent WebSocket connections on the standard tier (150/225 on Growth).", "self_host": "Offered under contract; terms not published.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "Batch Diarization V2 announced in the Deepgram changelog dated 13 May 2026 ('available today on an opt-in basis'), via the new diarize_model parameter (values: latest, v1, v2). The legacy diarize=true continues to route to v1.", "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://developers.deepgram.com/docs/diarization", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "AssemblyAI Speaker Diarization (speaker_labels)", "variants": null, "category": "diar", "licence": "Proprietary, closed weights", "licence_class": "closed", "price_note": "Priced per audio HOUR as an add-on: async standard +$0.02/hr, async experimental +$0.065/hr, streaming +$0.12/hr — on top of transcription at $0.15/hr (Universal-2) or $0.21/hr (Universal-3.5 Pro) async, and $0.15-0.45/hr streaming (assemblyai.com/pricing, fetched 1 Aug 2026). NOTE THE CONFLICT: the 2 June 2026 streaming-diarization blog quotes $0.06/hr for the same streaming add-on. The two disagree by 2x and the pricing page is the later fetch.", "price_sort": null, "accuracy_note": "NO DER ON A NAMED PUBLIC TEST SET IS PUBLISHED. The documentation gives qualitative guidance only: accuracy improves the more each speaker talks, and 'Each speaker should speak for at least 30 seconds uninterrupted' for optimal accuracy. For streaming, AssemblyAI cites a third-party Hamming.ai figure of 307 ms P50 latency (with 8.14% WER) across 4M+ production calls for Universal-3 Pro Streaming, against Deepgram Nova-3 at 516 ms P50 — that is a transcription-latency number and says nothing about speaker accuracy.", "wer_sort": null, "languages_note": "Diarization on Universal is marketed at 99+ languages; Universal-3.5 Pro is stated at 18 languages with native code-switching and dialect handling. The speaker-diarization documentation page itself lists no supported languages, so the count depends on which model you actually call.", "languages_sort": null, "runs_on": "Cloud API", "best_for": "Async speaker-attributed transcripts where you want utterance-level turns out of the box, and inline streaming speaker labels on the same WebSocket you already opened for transcription.", "diarization": "Built into the API. Returns an utterances array — contiguous single-speaker segments — rather than raw turn boundaries, which is closer to what a product actually wants. speakers_expected pins an exact count; max_speakers_expected defaults to no limit under 2 minutes, 10 for 2-10 minute audio and 30 for 10+ minutes.", "watch": "STREAMING SPEAKER LABELS ARE FINAL PER TURN — the docs say 'Once it assigns a speaker label to a piece of audio, that decision is final. There's no going back to fix mistakes like batch processing allows.' So a mislabel made in the first thirty seconds, while the model is still building voice profiles, stays wrong for the whole call. Batch has no such constraint and is materially better on identical audio; if your product can tolerate latency, do not stream. Two more: setting speakers_expected wrong actively DEGRADES accuracy — the docs say 'Only set speakers_expected when you are certain of the exact speaker count' and to use the min/max parameters otherwise — and streaming is billed on SESSION duration, not audio duration, so holding a connection open for 60 minutes while sending 30 minutes of audio bills you 60. Finally, the streaming add-on price is quoted as $0.12/hr on the pricing page and $0.06/hr in the June 2026 blog; get it in writing before you model it.", "standout": "Speaker labels arriving inline, per turn, on the same streaming WebSocket as the transcript", "facets": [ "actively-maintained", "code-switching", "diarization", "self-hostable", "streaming" ], "hardware": null, "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "TRUE inline streaming — speaker_labels: true on the same WebSocket as transcription, supported on Universal-3 Pro Streaming (u3-rt-pro), Universal-Streaming English, Universal-Streaming Multilingual and Whisper Streaming (whisper-rt), with 1-10 configurable speakers.", "latency_note": "Two separate figures, not one decomposition. Hamming.ai measured 307 ms P50 transcription latency for Universal-3 Pro Streaming across 4M+ production calls. Separately, AssemblyAI's own streaming-diarization blog cites ~221 ms turn delivery under aggressive turn-detection settings. Neither is a diarization-specific latency.", "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": "Per audio hour (session duration for streaming, see watch)", "free_tier": "$50 in credits on signup, no card. Free accounts are capped at 5 new streams per minute against 100 for paid.", "concurrency": null, "self_host": null, "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "Streaming inline diarization documented 2 June 2026.", "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://www.assemblyai.com/docs/speech-to-text/speaker-diarization", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Picovoice Falcon", "variants": null, "category": "diar", "licence": "The repo LICENSE is Apache-2.0 and that is what the GitHub API and badge report. What you actually run is lib/common/falcon_params.pv, a 6,184,091-byte (6.2 MB) binary model carrying no separate licence file, and it will not execute without a Picovoice AccessKey validated against Picovoice's licence servers. Read the Apache badge as covering the bindings, not the product.", "licence_class": "warn", "price_note": "Free tier through the Picovoice Console. A third-party aggregator (SaaSworthy, April 2026) reports 250 minutes/month free for Falcon with paid plans quote-based; Picovoice's own pricing page did not render to the fetcher on 1 Aug 2026 and the README routes continued use past the trial to Enterprise Sales. No per-minute rate was found on a primary source.", "price_sort": null, "accuracy_note": "VoxConverse: Falcon 10.3% DER / 19.9% JER against pyannote at 9.0% DER / 27.4% JER — Picovoice's own benchmark (picovoice.ai/blog/state-of-speaker-diarization/, published 18 December 2023, updated 11 March 2026). The blog itself names no evaluation hardware, but the benchmark report it links (picovoice.ai/docs/benchmark/speaker-diarization/) does: AMD Ryzen 7 5700X (16) @ 3.400 GHz, 64 GB RAM, NVMe storage. Note what the numbers say: Falcon is 1.3 DER points WORSE than pyannote and better on JER. The headline the post leads with is the compute figure, not the accuracy.", "wer_sort": null, "languages_note": "Not published — the Falcon documentation and README list no supported languages at all.", "languages_sort": null, "runs_on": "CPU, genuinely and unusually: Linux x86_64, macOS x86_64/arm64, Windows x86_64/arm64, Raspberry Pi 3/4/5, Android, iOS, and Chrome/Safari/Firefox/Edge in the browser. Picovoice's own figures are 0.1 GiB per stream against pyannote's 1.5 GiB, and 2 core-hours per 100 audio hours against pyannote's 442 (15x and 221x respectively).", "best_for": "Diarization on a device or inside a browser tab where there is no GPU and the audio must not leave the machine — the only entry in this section that runs on a Raspberry Pi and in a web page from the same vendor SDK.", "diarization": "Built-in and standalone — it is only a diarizer. Picovoice positions it explicitly as the speaker-label layer for any ASR, Whisper included, which is an accurate statement of what the gap in the market is.", "watch": "LOCAL IS NOT OFFLINE. The README states outright: 'You would need internet connectivity to validate your AccessKey with Picovoice license servers even though the speaker recognition is running 100% offline.' So the air-gapped deployment that on-device diarization is sold for does not work without separately arranging licence-server access, and the key also enforces usage limits server-side. The Apache-2.0 badge is the bindings; the 6.2 MB .pv model is unlicensed in the repo and gated at runtime. And the accuracy trade is the reverse of how it reads: the 221x-less-compute and 15x-less-memory claims are the real product, and the accuracy underneath them is 1.3 DER points worse than pyannote on VoxConverse, on Picovoice's own benchmark.", "standout": "Diarization in a browser tab and on a Raspberry Pi 3, at roughly 0.1 GiB per stream", "facets": [ "actively-maintained", "browser", "cpu-capable", "diarization", "edge-capable", "licence-catch", "self-hostable" ], "hardware": "browser", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Inference is fully local and audio never leaves the device. But see watch: it is local, not offline.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "76 GitHub stars (GitHub API, 1 Aug 2026) — small, for a shipping commercial SDK, and worth weighing against the compute claims.", "released": "v2.0 released 13 December 2025 (GitHub release); repo last pushed 27 July 2026. The repo has no CHANGELOG.md, so the contents of that release are not documented at source.", "status": "active", "verification": "mixed", "verification_note": null, "rating": null, "source_url": "https://github.com/Picovoice/falcon", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Kaldi", "variants": null, "category": "legacy", "licence": "Apache-2.0 — but the COPYING file prepends a long clarifying note about copyright headers, and GitHub's licence detector consequently reports NOASSERTION rather than Apache-2.0 (verified via the GitHub API, 1 Aug 2026). Automated licence scanners in your supply chain will flag it as unknown and someone will have to write the exception.", "licence_class": "open", "price_note": "Free, self-host", "price_sort": null, "accuracy_note": "From the recipe results committed in the repo itself (egs/librispeech/s5/RESULTS): best LibriSpeech test-clean 4.17% WER (chain_cleaned TDNN, unpruned 4-gram 'fglarge' rescoring), best test-other 10.57% (chain TDNN 6z + sMBR, fglarge). The SAT GMM baseline (tri4b, fglarge) on the same recipe is 9.10% / 30.33%. For scale, the modern open Whisper/Parakeet class sits comfortably under 3% on test-clean — Kaldi's ceiling is roughly where a 2026 model starts.", "wer_sort": null, "languages_note": "Language-independent framework, not a model. Recipes ship for many corpora, but you train your own acoustic and language models; there is no pretrained multilingual checkpoint to download.", "languages_sort": null, "runs_on": "C++ on Linux, macOS, Cygwin and Windows; CUDA (including ppc64le), OpenBLAS/ATLAS/MKL; Android NDK and WebAssembly builds exist. CPU-only training is possible and slow.", "best_for": "Almost nothing new in 2026. It stays the right answer for exactly two jobs: reproducing a published result whose recipe IS a Kaldi egs/ directory, and forced alignment or phonetic research where the HMM-GMM machinery and lattice tooling still have no modern equivalent.", "diarization": "Present but archaeological — egs/callhome_diarization and x-vector recipes exist, but you train them yourself and the reference DERs long predate the neural end-to-end era. Nobody should start here for diarization in 2026.", "watch": "Last commit was 22 September 2025 — over ten months stale at the time of writing — and there has never been a tagged release, so 'the version you have' is a git SHA. Development moved years ago to Next-gen Kaldi (k2 / Lhotse / icefall) under the same lead author, and the original repo is maintained in the sense that build fixes get merged, not in the sense that anything new lands. Budget weeks, not days: Kaldi is a build system, a shell-script recipe culture and a C++ codebase rather than a library you import, and the LibriSpeech ceiling in its own RESULTS file is 4.17% test-clean against sub-3% for a model you can download today. Choose it deliberately or not at all.", "standout": "Lattice manipulation and forced-alignment tooling that no neural toolkit has replaced", "facets": [ "commercially-safe", "cpu-capable", "diarization", "frozen", "self-hostable", "streaming" ], "hardware": "cpu", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "Yes — online decoders (online2-*) exist and are what most 'Kaldi in production' deployments actually used.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host only; there is no hosted Kaldi.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "15,446 GitHub stars, 5,355 forks (GitHub API, 1 Aug 2026). An enormous amount of academic and telco infrastructure is still built on it.", "released": "2011; last commit to master 22 September 2025 ('Fix openblas related errors in configuration', #4978). No tagged releases, ever — the GitHub tags endpoint returns an empty array.", "status": "dormant", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://github.com/kaldi-asr/kaldi", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "PocketSphinx (CMU Sphinx)", "variants": null, "category": "legacy", "licence": "A bundle of permissive licences, all commercially usable: a CMU 2-clause-BSD-style licence for the core, BSD-3-Clause for the bundled WebRTC VAD, and MIT for the Python VAD bindings and test data. GitHub reports NOASSERTION (verified via the GitHub API, 1 Aug 2026) because the LICENSE file concatenates all three — again, a scanner exception, not a real restriction.", "licence_class": "open", "price_note": "Free, self-host", "price_sort": null, "accuracy_note": "NOT PUBLISHED on any named public test set by the project — there is no WER to quote, which is itself the finding. The README's guidance on running its example is that the results 'may not be wonderful', and it states that 'the algorithms and models implemented by PocketSphinx are now quite old (dating back to the 1970s in some cases!)' while remaining 'useful in many applications due to their compactness and efficiency'. It is HMM-GMM with a fixed trigram LM.", "wer_sort": null, "languages_note": "Ships a US English acoustic model, cmudict-en-us.dict (3,275,645 bytes, 3.3 MB) and a 27 MB trigram LM (en-us.lm.bin, 27,114,385 bytes). Other languages exist as community downloads from the CMUSphinx site, of varying age and quality.", "languages_sort": null, "runs_on": "CPU, tiny. CMake build; the README says Linux and Windows 'should work reasonably well' and, on macOS, 'Not certain about Mac OS X because I don't have one of those.' The bundled audio library was removed in 5.x.", "best_for": "Keyword spotting, forced alignment and grammar-constrained command recognition on hardware where a neural model will not fit and the vocabulary is small and known in advance. Not open-vocabulary transcription.", "diarization": "None. No speaker segmentation, no embeddings, no clustering, nothing. Pair it with something else or do without.", "watch": "Two opposite things, and both matter. It is BETTER MAINTAINED THAN KALDI — v5.1.1 shipped 6 June 2026 and the repo was pushed to on 27 July 2026 — so 'PocketSphinx is dead' is wrong. But it publishes no WER on any public test set, because HMM-GMM over a fixed trigram LM is not in the same category as a 2026 neural model and the maintainer says as much about the algorithms' age. If you found it in a tutorial as 'the free speech recognition option', that tutorial is a decade out of date. For CPU-only open-vocabulary ASR in 2026 the honest replacements are whisper.cpp or a Vosk/Kaldi-derived streaming model; keep PocketSphinx for the fixed-grammar and forced-alignment jobs it is genuinely still good at.", "standout": "Still shipping releases in 2026 on a footprint no neural model comes near", "facets": [ "actively-maintained", "commercially-safe", "cpu-capable", "no-diarization", "self-hostable", "streaming", "word-timestamps" ], "hardware": "cpu", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "Yes — the default `live` command detects speech segments in each input, runs recognition on them and writes results to standard output as line-delimited JSON.", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": "Word-level start (`b`) and duration (`d`) in seconds in the JSON output, with an estimated probability (`p`) per word; optional phone-level segmentation via -phone_align yes, in the same format.", "punctuation": null, "custom_vocab": null, "output_formats": "Line-delimited JSON (per-utterance objects with b, d, p, t and a `w` word list carrying the same four fields).", "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host only, and it fits where nothing else does.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "4,327 GitHub stars (GitHub API, 1 Aug 2026)", "released": "v5.1.1 published 6 June 2026; repo last pushed 27 July 2026.", "status": "active", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://github.com/cmusphinx/pocketsphinx", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "Julius", "variants": null, "category": "legacy", "licence": "BSD-3-Clause on the engine (confirmed via the GitHub API, 1 Aug 2026). The acoustic and language models are distributed separately and carry their own terms — julius-speech/dictation-kit reports NOASSERTION on GitHub and was last pushed 18 April 2019, and English models come from the third-party JuliusModels project on SourceForge. The engine licence tells you nothing about what you will actually ship.", "licence_class": "warn", "price_note": "Free, self-host", "price_sort": null, "accuracy_note": "NOT PUBLISHED on any named public test set by the project. Julius is a decoder; its accuracy is whatever the acoustic and language models you supply deliver, and no reference figure was found on a primary source.", "wer_sort": null, "languages_note": "Japanese is the officially supported model set — the Japanese Dictation Kit ships a 60k-word 3-gram LM trained on BCCWJ with triphone HMMs of both GMM and DNN. For English, models come from the third-party JuliusModels project on SourceForge, which also hosts Polish models (whose DNN versions require a modified Julius from a third-party fork). Separately, the README reports that another researcher found Julius 'worked well in English, Slovenian (see pp.681--684 of Proc. ICSLP2002), French, Thai language, and many other Languages' — reported deployments, not shipped models.", "languages_sort": null, "runs_on": "CPU, C. The README claims 'less than 32MBytes required for work area (<64MBytes for 20k-word dictation with on-memory 3-gram LM).'", "best_for": "Japanese-language decoding on constrained hardware, and grammar-based recognition where the Japanese Dictation Kit's models remain the most convenient thing available. Outside Japanese there is no reason to choose it in 2026.", "diarization": "None.", "watch": "Present largely for historical reasons outside Japan. The last tagged release is v4.6 from September 2020 and the last commit was June 2025, which is housekeeping rather than development; the Japanese Dictation Kit that makes it usable has not been touched since April 2019. It still works and it is still BSD-3-Clause, but it is a 2010-era DNN-HMM system, and the licence you need to check is on the MODELS, not the engine — dictation-kit shows NOASSERTION and the English models come from a third-party SourceForge project.", "standout": "Realtime large-vocabulary continuous decoding in under 64 MB of working memory", "facets": [ "cpu-capable", "frozen", "licence-catch", "no-diarization", "self-hostable", "streaming" ], "hardware": "cpu", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": "Yes — a two-pass tree-trellis decoder built for realtime, with DNN-HMM front-end decoding added in the 4.x line (a separate front-end module computes per-frame HMM state probabilities and sends them to Julius over a socket).", "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Self-host only.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": "1,930 GitHub stars (GitHub API, 1 Aug 2026)", "released": "v4.6, 2 September 2020 (last tagged release). Last commit to master 16 June 2025.", "status": "dormant", "verification": "verified", "verification_note": null, "rating": null, "source_url": "https://github.com/julius-speech/julius", "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null }, { "name": "HTK (Hidden Markov Model Toolkit)", "variants": null, "category": "legacy", "licence": "HTK End User License Agreement (University of Cambridge). Free of charge, but clause 2.2 states verbatim: 'The Licensed Software either in whole or in part can not be distributed or sub-licensed to any third party in any form.' You may not ship it, embed it in a product, or publish a container image containing it. Registration on the HTK site is required to download, and redistribution is forbidden — which is why every GitHub mirror of it is a licence violation. (A further restriction limiting use to within the Licensee's own organisation is widely reported at clause 2.1 but could not be read at source on 1 Aug 2026 — see watch.)", "licence_class": "bad", "price_note": "Free of charge; registration required, redistribution forbidden", "price_sort": null, "accuracy_note": "No headline figure exists and none can — HTK is a training toolkit and ships no pretrained recogniser at all. Any WER you find attributed to HTK belongs to a specific paper's models, not to the toolkit.", "wer_sort": null, "languages_note": "None shipped. HTK contains no acoustic or language models whatsoever; you build everything from your own data.", "languages_sort": null, "runs_on": "CPU, C; Unix-like systems plus Windows. HTK 3.5 added ANN/DNN training support on top of the HMM machinery.", "best_for": "Reproducing pre-2015 HMM research and teaching HMM speech recognition from first principles. Nothing production-facing, and nothing you can distribute.", "diarization": "None.", "watch": "THE LICENCE FORBIDS REDISTRIBUTION OR SUB-LICENSING TO ANY THIRD PARTY IN ANY FORM. HTK therefore cannot legally be embedded in a product, a published container image, or a shared repository. That single clause disqualifies it from almost every commercial context, and it is why the GitHub copies people find are unlawful rather than convenient. Practically it is also close to unobtainable: the official site is the only permitted download route, and htk.eng.cam.ac.uk returned HTTP 502 on both the root and /docs/license.shtml on every attempt on 1 August 2026 — which also means the full licence text and the version history cannot currently be read at source. Present here for historical reasons; if the site stays down there is no lawful way to obtain it at all.", "standout": null, "facets": [ "cpu-capable", "frozen", "no-diarization", "non-commercial", "self-hostable" ], "hardware": "cpu", "params": null, "architecture": null, "vram": null, "quantisation": null, "fine_tuning": null, "streaming": null, "latency_note": null, "realtime_factor": null, "audio_limits": null, "timestamps": null, "punctuation": null, "custom_vocab": null, "output_formats": null, "translation": null, "billing_unit": null, "free_tier": null, "concurrency": null, "self_host": "Local build only. No hosted service exists and the licence forbids anyone creating one for third parties.", "data_policy": null, "benchmarks": null, "robustness": null, "adoption": null, "released": "Reported as HTK 3.5 beta, with the HTK Book 3.5a dated December 2015, and 3.4.1 before it in 2009 — not re-verifiable at source, because the official site is down (see watch).", "status": "dormant", "verification": "mixed", "verification_note": null, "rating": null, "source_url": null, "rating_metric": null, "rating_source": null, "rating_url": null, "rating_as_of": null, "rating_votes": null, "rating_rank": null } ], "corrections": [ { "claim": "Picovoice Falcon is a device-category system, grouped with the on-device transcription engines (Vosk, Silero, Apple Speech, Android SpeechRecognizer, Picovoice's own Cheetah and Leopard).", "reality": "Falcon does not transcribe anything. Its own diarization field says \"Built-in and standalone — it is only a diarizer,\" and Picovoice sells it explicitly as the speaker-label layer for someone else's ASR, Whisper included. Recategorised to diar, alongside pyannote and NVIDIA NeMo speaker diarization." }, { "claim": "NVIDIA Multitalker Parakeet Streaming 0.6B is a diar-category system.", "reality": "NVIDIA's own model card is explicit that it does the opposite of diarizing — \"It does NOT diarize... It consumes another model's diarization output\" and returns speaker-attributed text from an externally supplied diarization signal. It is streaming, speaker-attributed transcription, not a diarizer. Recategorised to rt, alongside Deepgram Streaming and Soniox Realtime." } ], "gaps": [ "APPLE PUBLISHES NO WER, no model size and no asset-download size for SpeechTranscriber. The only accuracy figure in existence comes from Argmax, who sell a competing SDK. The locale count also could not be pinned to an Apple page — 42 locales comes from a third-party enumeration of supportedLocales dated July 2025, while Argmax counted 10 at launch, so the number is moving and should be queried at runtime.", "Alibaba Paraformer ships no published error rate at all. The funasr/paraformer-zh distribution carries no CER or WER on its card and has no leaderboard entry. The Paraformer paper's numbers are from 2022 and are not the shipped 60,000-hour checkpoint. This model is genuinely unbenchmarked as distributed.", "Alibaba's China (Beijing) and US (Virginia) rates differ from the International (Singapore) rates recorded here, and the pricing page presents them on separate tabs. Only the International tab was read in full, apart from the legacy Paraformer models, which are priced only in China (Beijing).", "Amazon Nova 2 Pro appears on the Artificial Analysis board as an ASR path under provider 'Amazon Bedrock' (AA-WER 4.9%, $3.10 per 1,000 minutes), i.e. a second and cheaper AWS-hosted transcription route than Transcribe itself. No AWS-owned pricing or capability page for Nova-as-ASR was located, so it is not given a row.", "Amazon Transcribe's maximum streaming session duration is not stated in the AWS General Reference quotas table, the developer guide pages read, or the pricing page. The commonly cited 4-hour limit could not be confirmed against a primary source and is therefore not recorded.", "Azure does not publish a maximum speaker count for real-time or batch diarization. The only Azure speaker-count figure sourced is Fast Transcription's 2–35. Real-time and batch diarization are documented only by their 240-minute session/file caps and by the Guest-1/Guest-2 labelling scheme.", "Azure's public pricing page rendered 'N/A' for Fast Transcription, Neural HD TTS and several other meters in the default region, while the Azure Retail Prices API returns real prices for the same meters in eastus. The rows use the API figure; which regions genuinely lack the offering was not enumerated.", "BATTERY, THERMAL AND SUSTAINED-LOAD COST is unpublished for every single system here. Not one vendor states mAh per audio hour, thermal throttling behaviour, or what happens on the fifth consecutive minute of transcription on a phone.", "Baidu's language coverage and diarization support are unestablished for the same reason — the price and billing pages carry rates and quota mechanics but no capability tables. Baidu also publishes no USD rate card, so all Baidu figures here are CNY.", "CERENCE PUBLISHES NOTHING QUANTITATIVE. No footprint, no RAM, no flash, no latency, no WER, no price, no chipset list, no per-unit royalty, no SLA. The 42-language count and the deployment-mode list are the only hard facts obtainable. Everything else requires an NDA.", "Concurrency and quota limits for Google Cloud Speech-to-Text V2 were not fetched; the AWS and Azure equivalents were.", "Concurrency limits for Gladia's Starter and Growth tiers, and AssemblyAI's true concurrency ceiling (its docs give 5 and 100 new streams per minute while its marketing claims 'unlimited concurrency'), were not resolved.", "Concurrency limits, audio duration limits and free tiers are published by a minority. Only Deepgram, AssemblyAI and Gladia publish concurrency. Only Rev, ElevenLabs, Together, OpenAI, Groq and Mistral publish audio limits. For voice-agent capacity planning this is the field that decides whether a vendor is viable at scale, and two thirds of the category leaves it blank.", "Concurrency, free-tier and data-retention policy for the OpenAI hosted API were not established — the pricing and speech-to-text guide pages carry rates and capabilities but not quota or training-data-use terms, and I did not reach a page that states them.", "DER is not comparable across vendors unless the scoring protocol matches, and almost nobody states it in the same place as the number. pyannote and NVIDIA publish with no forgiveness collar and overlap included; SpeechBrain publishes with a 0.25 s collar, overlap excluded and (in its best column) an oracle speaker count; Picovoice publishes DER and JER on VoxConverse with no protocol statement at all. The only genuinely cross-comparable figures in this whole section are pyannote 3.1 / community-1 / precision-2, because one table produced all three.", "DIARIZATION IS ABSENT FROM MOST OF THIS CATEGORY, which is the single most conflated capability in the field. Of thirteen systems: sherpa-onnx has a real pipeline (pyannote segmentation + 3D-Speaker/NeMo embeddings, both separate downloads with their own licences), Picovoice Leopard has it built in (per-word speaker_tag), WhisperKit has it via SpeakerKit/pyannote v4, and Moonshine has an opt-in flag its own model card says is unevaluated. whisper.cpp has experimental turn markers only. Vosk, Silero CE, Apple SpeechAnalyzer, Android SpeechRecognizer, Picovoice Cheetah, transformers.js and Coqui STT have NONE. Vosk's 13 MB speaker model is speaker identification, not diarization — it returns embeddings you must cluster yourself.", "Data-retention and model-training policies were not read for most vendors. The only concrete finding is Google's V1 split SKU ($0.016/min with data logging vs $0.024/min without). Whether AWS, Azure, IBM, Tencent, Baidu or Alibaba train on customer audio, and what the opt-out is, was not established for any of them.", "Data-retention and training-on-customer-audio policies were not established for any of the hosted realtime vendors in this pass. That is a live commercial question (the TTS matrix found several vendors training on customer content by default) and it is unanswered here for Deepgram, Speechmatics, Gladia, Soniox, AssemblyAI, Azure and OpenAI.", "Deepgram Flux's diarization status is an absence, not a denial. Diarization does not appear in Flux's published feature matrix and Deepgram's diarization documentation does not mention Flux either way. The row states that it is absent from the feature matrix rather than asserting it is unsupported.", "Deepgram's batch/streaming price relationship contradicts every secondary source. Two independent fetches of deepgram.com/pricing give Nova-3 Monolingual streaming at $0.0048/min and pre-recorded at $0.0077/min — batch more expensive than streaming. Every third-party comparison and Artificial Analysis' own price column ($4.30/1,000 min = $0.0043/min) carry the inverted 2025 rate card. The current page was read cleanly row by row and is recorded as printed, but a buyer should confirm against an invoice before committing, because one of these two accounts is stale and the direction of the error is 80%.", "Deepgram's self-hosted terms, GPU requirements and data-retention policy could not be established — the self-hosted introduction URL 404s. Deepgram and AssemblyAI data-retention and training-on-your-audio policies were not established for either vendor and are omitted from both rows rather than guessed.", "Deepgram's total Nova-3 language count is stated as '60+ languages and dialects' in its docs overview but no enumerated list was retrievable; the exact figure is therefore given as the vendor's '60+' rather than a count.", "Diarization pricing is inconsistent in kind, not just in amount. AssemblyAI meters it three ways as a per-hour add-on; Speechmatics, Gladia and Soniox include it in the base rate and say so; Deepgram includes it with no line item; Fireworks reportedly charges a ~40% compute surcharge that could not be confirmed on a Fireworks page; OpenAI requires an entirely different model. There is no common unit, so 'does it include diarization' cannot be answered from a price comparison.", "Diarization quality is essentially unmeasured in public. AssemblyAI is the only vendor in this entire category that publishes a diarization metric (cpWER 30.17 averaged over DiPCo, CALLHOME, NOTSOFAR and AMI). Rev publishes a relative improvement over pyannote 3.0 but no absolute DER. Deepgram, Speechmatics, Gladia, ElevenLabs, Soniox, Voicegain and Mistral all ship diarization with no accuracy figure, no test set and mostly no speaker cap. A buyer cannot compare speaker attribution across vendors on any published evidence.", "First-party dated release announcements could not be located for distil-large-v3.5, KB-Whisper or Belle-Whisper. Repository creation and last-modified dates are used instead and are labelled as such in each row. Month granularity only; no day is invented.", "GOOGLE PUBLISHES NO WER, no model size, no memory figure and no latency for on-device Android speech recognition, in either the platform API or ML Kit GenAI.", "Google's own pages disagree on Chirp 3's language count: the chirp_3 model page says 19 GA + 67 preview (86), the V2 supported-languages page says 100+. Neither is dated. Similarly, the V2 speaker-diarization page claims support 'for all speech recognition methods' while the chirp_2 model page says diarization is 'Not supported' — the contradiction is recorded in the rows but not resolved.", "Julius, HTK, PocketSphinx and Kaldi-as-a-toolkit publish no WER on a named public test set that belongs to the project rather than to a paper. Only Kaldi has a project-owned number, because its LibriSpeech recipe results are committed in the repo. The absence in the other three is the finding, and it is stated in each accuracy_note rather than papered over.", "Kyutai STT's release date was not established from a primary source and the composition of the model card's 'mean WER 6.4' could not be fully read; only AMI (12.17) is named. The released field is therefore omitted on that row.", "LIVE OPEN ASR LEADERBOARD VALUES could not be read — the Hugging Face Space renders client-side and returned only its shell. The leaderboard-methodology figures quoted in the whisper.cpp and Moonshine rows are Moonshine's own reproduction of that methodology, and are labelled as such rather than presented as leaderboard standings.", "Language coverage for diarization is largely unpublished across the board, because diarization is acoustic rather than lexical and vendors treat it as not applicable. pyannoteAI, Picovoice and the AssemblyAI diarization docs list no languages at all; NVIDIA states English only. Only Deepgram gives a number (80+ languages in embedding training, 15+ named).", "Latency is claimed everywhere and measured nowhere with stated conditions. Deepgram (~260 ms EOT), ElevenLabs (<150 ms), Soniox (<200 ms), Gladia (103 ms interrupt) and Mistral (sub-200 ms configurable) all publish figures without naming hardware, region or client location. The only figures with methodology attached are AssemblyAI's own P50/P90 time-to-complete-turn and the Pipecat benchmark's percentile latencies for Soniox — and the Pipecat numbers (249 ms median) are worse than Soniox's own marketing claim (sub-200 ms) on Soniox's own preferred benchmark.", "MEASURED vs CLAIMED realtime factor — the specific question asked. Only ONE vendor in the category names the machine: Picovoice (Ubuntu 22.04, AMD Ryzen 9 5900X 12-core @ 3.70 GHz, 64 GB RAM, NVMe, 10 concurrent cores) with a public Apache-2.0 harness — and that is a desktop CPU, not an edge device, so it does not answer 'will this run on my board'. Moonshine says 'a MacBook Pro' with no generation. Argmax names an M4 Mac mini on a macOS 26 beta seed. sherpa-onnx prints per-model RTFs (0.04–0.46) with no hardware at all. whisper.cpp has community-submitted encoder timings from October 2022. Apple, Google, Cerence and Vosk publish no RTF whatsoever. Conclusion: for this whole category, the published realtime factor is claimed, not measured, everywhere except Picovoice — and Picovoice measured it on a desktop.", "MODEL SIZE ON DISK had to be measured rather than read. Moonshine's, whisper-base-ONNX's and Moonshine-streaming's real footprints in the rows above come from file listings on the Hugging Face Hub, not from any published spec sheet. Vendors quote parameter counts (27 M, 34 M, 61 M) that bear no fixed relation to what you actually download (28 MB int8 Tiny vs 214 MB of .ort for the 34 M Tiny Streaming).", "NO INDEPENDENT BENCHMARK EXISTS FOR THIS CATEGORY. Every accuracy and speed number above is either (a) published by the vendor about its own product, (b) published by a competitor about the vendor, or (c) community-submitted with the hardware unstated. There is no on-device equivalent of the Open ASR Leaderboard that controls for device, thread count and quantisation. Any cross-row speed comparison in this section is unsound and should be labelled as such on the page.", "NOBODY PUBLISHES A FAR-FIELD OR NOISY-AUDIO WER for an on-device engine. Silero's wiki is the only source with a far-field/noisy column and its English numbers stop at February 2022. Vosk's ~30% 'callcenter' figure is the single published telephony number in the category. Everything else is read-aloud audiobook speech (LibriSpeech) or curated crowd audio (CommonVoice).", "No Whisper checkpoint from OpenAI or from any fine-tune in this section performs diarization inside the model. The single exception, kotoba-whisper-v2.2, does it as postprocessing via pyannote. This is a confirmed absence, not a failure to find something: diarization is a separate product class and every 'Whisper gives me speakers' assumption is wrong.", "No controlled, published benchmark exists for the large-v3-vs-large-v2 hallucination regression. Every source for it is a GitHub discussion thread (openai/whisper #1836, #2280; whisper.cpp #1490) or a competitor's blog. The belief is widespread and possibly correct; the evidence is not benchmark-grade, and I did not find a single reproducible experiment.", "No first-party CPU, phone, browser or edge real-time factor is published anywhere in this lineage — including for distil-small.en, which the vendor markets as on-device. Every CPU figure in circulation belongs to a runtime (whisper.cpp, faster-whisper, ONNX Runtime), which is a different artefact and, per the brief, a different category.", "No hosted vendor in this section publishes a DER on a named public corpus. Deepgram and AssemblyAI both decline: Deepgram gives human-preference ratios and relative improvements over its own prior version on 250,000 internally annotated clips; AssemblyAI gives no accuracy figure of any kind for diarization. Their diarization quality is therefore unverifiable from outside, and the only way to compare them to pyannote is to run your own audio through both." ], "counts": { "total": 106, "by_category": { "cloud": 16, "rt": 11, "legacy": 6, "hyper": 17, "open": 26, "device": 10, "runtime": 12, "diar": 8 } }, "lab": { "schema_version": 1, "title": "OpenGauntlet ASR Lab — RTX 5090", "measured_at": "2026-08-10", "host": "imprynt-omen", "gpu": "NVIDIA GeForce RTX 5090", "microphone": "Jabra USB", "recording_seconds": 465, "clips": 8, "speakers": 2, "note": "Fourteen systems were scored against the same owner-approved 847-word reference. Native-streaming and accuracy lanes are labelled and must not be conflated.", "standout_detail": "Qwen led the native-streaming finalists. The result applies only to this disclosed recording and operating point.", "method_url": "research/asr/benchmarks/2026-08-10-imprynt-omen-rtx5090-owner.md", "external_leaderboard_url": "https://huggingface.co/spaces/hf-audio/open_asr_leaderboard", "results": [ { "model": "Qwen3-ASR 1.7B", "lane": "native streaming", "wer_pct": 6.02, "rtf_p50": 0.074678, "vram_mib": 25262, "first_partial_ms_p50": 1031.779, "execution": "native stateful realtime replay" }, { "model": "Voxtral Mini 4B Realtime 2602", "lane": "native streaming", "wer_pct": 13.7, "rtf_p50": null, "vram_mib": 29894, "first_partial_ms_p50": 3091.895, "execution": "native stateful realtime replay" }, { "model": "Granite Speech 4.1 2B", "lane": "accuracy", "wer_pct": 13.93, "rtf_p50": 0.020811, "vram_mib": 4634, "first_partial_ms_p50": null, "execution": "official transformers whole utterance" }, { "model": "Parakeet TDT 0.6B v3", "lane": "accuracy", "wer_pct": 14.29, "rtf_p50": 0.004516, "vram_mib": 1459, "first_partial_ms_p50": null, "execution": "transformers pipeline whole utterance" }, { "model": "MOSS Transcribe Diarize 0.9B", "lane": "feature", "wer_pct": 16.06, "rtf_p50": 0.049248, "vram_mib": 1929, "first_partial_ms_p50": null, "execution": "whole utterance native diarization; max new tokens=2048; hotwords=Scotty, Krista, Silas" }, { "model": "Nemotron Speech Streaming 0.6B", "lane": "native streaming", "wer_pct": 17.36, "rtf_p50": null, "vram_mib": 2906, "first_partial_ms_p50": 3321.957, "execution": "native stateful realtime replay" }, { "model": "ARK-ASR 3B", "lane": "accuracy", "wer_pct": 19.13, "rtf_p50": 0.020914, "vram_mib": 7426, "first_partial_ms_p50": null, "execution": "official transformers 28s windows 2s overlap" }, { "model": "Higgs Audio v3 STT", "lane": "accuracy", "wer_pct": 24.09, "rtf_p50": 0.029372, "vram_mib": 6422, "first_partial_ms_p50": null, "execution": "official whole utterance" }, { "model": "Whisper Large v3 Turbo", "lane": "accuracy", "wer_pct": 24.44, "rtf_p50": 0.014514, "vram_mib": 1687, "first_partial_ms_p50": null, "execution": "native sequential long form generate" }, { "model": "SenseVoiceSmall", "lane": "feature", "wer_pct": 24.68, "rtf_p50": 0.000851, "vram_mib": 1177, "first_partial_ms_p50": null, "execution": "whole utterance under 30s" }, { "model": "Canary-Qwen 2.5B", "lane": "accuracy", "wer_pct": 24.91, "rtf_p50": 0.022978, "vram_mib": 5182, "first_partial_ms_p50": null, "execution": "official whole utterance" }, { "model": "MOSS Transcribe Preview 2B", "lane": "accuracy", "wer_pct": 35.18, "rtf_p50": 0.014547, "vram_mib": 5229, "first_partial_ms_p50": null, "execution": "whole utterance" }, { "model": "Hojo-ASR V1", "lane": "accuracy", "wer_pct": 42.27, "rtf_p50": 0.027545, "vram_mib": 14479, "first_partial_ms_p50": null, "execution": "official whole utterance" }, { "model": "Fun-ASR Nano 2512", "lane": "realtime", "wer_pct": 44.39, "rtf_p50": 0.020152, "vram_mib": 3438, "first_partial_ms_p50": null, "execution": "official pytorch smoke; vllm streaming target chunk ms=720" } ] } }