32 systems, the same 94 audio clips, one results table. We compare 20 OpenRouter speech-to-text routes and 12 local model pipelines on 92.28 minutes of English meeting audio, measuring transcription accuracy, who said what, processing speed, API cost, and GPU memory.
The results page explains each metric before the table, identifies OpenRouter or Local 4090 for every row, and links each model to its OpenRouter page or Hugging Face model card. It is sorted by WER, with medals for the three lowest measured values in each metric column.
This repository includes the Python harness, adapters, pinned model revisions, runtime versions, saved predictions, references, scores, and verification tools. Measurements are from 27 September 2026. This is a small controlled meeting-audio comparison, not an OpenASR leaderboard reproduction or a universal model ranking.
The comparison includes hosted transcription services, joint models that return words and speaker labels, and local pipelines that add alignment and diarization to an ASR model. Speaker labels are anonymous IDs within each clip; they do not identify a person by name.
Local ASR counterparts let us compare downloadable weights with hosted routes, but serving settings and releases can differ. Adding pyannote measures a complete local pipeline, not native diarization in the ASR weights. Hosted Voxtral Mini Transcribe and Qwen Flash are not the same releases as the downloadable Voxtral and Qwen models tested here.
Some models can also describe sound events. Annotation/event accuracy is not evaluated here; bracketed VibeVoice sound annotations are retained in raw output but excluded from speech-word scoring. Names ending in + pyannote identify local pipelines; the hosted routes retain their provider model names. Check each provider's model license and access terms separately.
The scoring libraries are MeetEval and pyannote.metrics. Model cards describe upstream capabilities; the results table contains this repository's own measurements. More authoritative sources and related evaluations are collected in References.
We use the AMI Meeting Corpus, with official manual annotations, release 1.6.2, and the pinned pyannote AMI speaker-activity references.
| Setting | Measured configuration |
|---|---|
| Meetings | ES2004a, IS1009a, TS3003a, EN2002a: four AMI test meeting groups |
| Input | Array1-01 distant microphone, mono 16 kHz English audio; overlapping speech included |
| Windows | 94 nonoverlapping clips, each at most 60 seconds; 5,536.704 seconds total |
| Hardware | Local: one NVIDIA RTX 4090, 24 GB, one model at a time; hosted: provider-controlled |
| Precision | Local: BF16 or NeMo checkpoint default; Voxtral Small: NF4; hosted: provider-defined; no oracle speakers or reference text |
| Timing | Local: loading excluded, no warmup; API: request wall time, including network/provider time |
| Randomness | One local trial with per-window seeds from recording IDs; API generation seeds are not controlled |
| Streaming | The same supplied audio, processed without artificial waits; state resets per window |
Text normalization preserves fillers, repetitions, and number spellings. No LLM cleans up the references or hypotheses. Errors are summed before division; the results are not an average of per-clip percentages. See the full protocol, including exact boundary handling, decoding settings, and pipeline limitations.
Lower error rates are better. cpWER measures transcription and speaker attribution while allowing anonymous labels to be renamed. DER measures who spoke when: missed speech, false alarms, and speaker confusion. It uses zero collar and includes overlap here. These are different objectives, so their rankings need not agree.
The single results table contains all 32 scored systems, sorted by WER. WER uses 94 clips. Speaker metrics use one shared set of clips where all four speaker-labelled hosted routes supplied usable labels, including for the local systems; the count is in the column headings. The full JSON also retains each system's full-dataset metrics. Streaming has no native speech timestamps, so its DER and tcpWER remain unavailable. The historical 25-window local run is retained in the archive and is excluded from the current comparison.
These are four correlated English meeting groups and one seeded trial. AMI may appear in model training or development. This does not measure multilingual accuracy, long-session speaker consistency, named-person recognition, or sound-event annotation quality. Native segment times and forced alignment also provide different timestamp sources. Testing on held-out recordings from the intended application, a second corpus such as NOTSOFAR, and repeated trials would be the most useful extensions.
The checked-in results require no GPU, model download, token, or audio download to verify:
uv sync --locked --python 3.12
uv run pytest -q
uv run python scripts/consolidate_results.py --verify
The verifier recomputes all 3,008 clip scores (1,880 hosted and 1,128 local) from saved predictions and references, and checks that local and API clip hashes and references match. Running the models covers environments, access terms, downloads, the shared four-meeting recipe, and the adapter interface. Verification makes no inference calls; new hosted runs require a cost estimate and explicit paid-request opt-in.
Original harness code and documentation are MIT licensed. AMI-derived references and transcript material retain their separate CC BY 4.0 attribution and terms. Model weights and source audio are not redistributed. Each upstream model and library retains its own license; this repository's license does not override those terms.
32 systems, the same 94 audio clips, one results table. We compare 20 OpenRouter speech-to-text routes and 12 local model pipelines on 92.28 minutes of English meeting audio, measuring transcription accuracy, who said what, processing speed, API cost, and GPU memory.
The results page explains each metric before the table, identifies OpenRouter or Local 4090 for every row, and links each model to its OpenRouter page or Hugging Face model card. It is sorted by WER, with medals for the three lowest measured values in each metric column.
This repository includes the Python harness, adapters, pinned model revisions, runtime versions, saved predictions, references, scores, and verification tools. Measurements are from 27 September 2026. This is a small controlled meeting-audio comparison, not an OpenASR leaderboard reproduction or a universal model ranking.
The comparison includes hosted transcription services, joint models that return words and speaker labels, and local pipelines that add alignment and diarization to an ASR model. Speaker labels are anonymous IDs within each clip; they do not identify a person by name.
Local ASR counterparts let us compare downloadable weights with hosted routes, but serving settings and releases can differ. Adding pyannote measures a complete local pipeline, not native diarization in the ASR weights. Hosted Voxtral Mini Transcribe and Qwen Flash are not the same releases as the downloadable Voxtral and Qwen models tested here.
Some models can also describe sound events. Annotation/event accuracy is not evaluated here; bracketed VibeVoice sound annotations are retained in raw output but excluded from speech-word scoring. Names ending in + pyannote identify local pipelines; the hosted routes retain their provider model names. Check each provider's model license and access terms separately.
The scoring libraries are MeetEval and pyannote.metrics. Model cards describe upstream capabilities; the results table contains this repository's own measurements. More authoritative sources and related evaluations are collected in References.
We use the AMI Meeting Corpus, with official manual annotations, release 1.6.2, and the pinned pyannote AMI speaker-activity references.
| Setting | Measured configuration |
|---|---|
| Meetings | ES2004a, IS1009a, TS3003a, EN2002a: four AMI test meeting groups |
| Input | Array1-01 distant microphone, mono 16 kHz English audio; overlapping speech included |
| Windows | 94 nonoverlapping clips, each at most 60 seconds; 5,536.704 seconds total |
| Hardware | Local: one NVIDIA RTX 4090, 24 GB, one model at a time; hosted: provider-controlled |
| Precision | Local: BF16 or NeMo checkpoint default; Voxtral Small: NF4; hosted: provider-defined; no oracle speakers or reference text |
| Timing | Local: loading excluded, no warmup; API: request wall time, including network/provider time |
| Randomness | One local trial with per-window seeds from recording IDs; API generation seeds are not controlled |
| Streaming | The same supplied audio, processed without artificial waits; state resets per window |
Text normalization preserves fillers, repetitions, and number spellings. No LLM cleans up the references or hypotheses. Errors are summed before division; the results are not an average of per-clip percentages. See the full protocol, including exact boundary handling, decoding settings, and pipeline limitations.
Lower error rates are better. cpWER measures transcription and speaker attribution while allowing anonymous labels to be renamed. DER measures who spoke when: missed speech, false alarms, and speaker confusion. It uses zero collar and includes overlap here. These are different objectives, so their rankings need not agree.
The single results table contains all 32 scored systems, sorted by WER. WER uses 94 clips. Speaker metrics use one shared set of clips where all four speaker-labelled hosted routes supplied usable labels, including for the local systems; the count is in the column headings. The full JSON also retains each system's full-dataset metrics. Streaming has no native speech timestamps, so its DER and tcpWER remain unavailable. The historical 25-window local run is retained in the archive and is excluded from the current comparison.
These are four correlated English meeting groups and one seeded trial. AMI may appear in model training or development. This does not measure multilingual accuracy, long-session speaker consistency, named-person recognition, or sound-event annotation quality. Native segment times and forced alignment also provide different timestamp sources. Testing on held-out recordings from the intended application, a second corpus such as NOTSOFAR, and repeated trials would be the most useful extensions.
The checked-in results require no GPU, model download, token, or audio download to verify:
uv sync --locked --python 3.12
uv run pytest -q
uv run python scripts/consolidate_results.py --verify
The verifier recomputes all 3,008 clip scores (1,880 hosted and 1,128 local) from saved predictions and references, and checks that local and API clip hashes and references match. Running the models covers environments, access terms, downloads, the shared four-meeting recipe, and the adapter interface. Verification makes no inference calls; new hosted runs require a cost estimate and explicit paid-request opt-in.
Original harness code and documentation are MIT licensed. AMI-derived references and transcript material retain their separate CC BY 4.0 attribution and terms. Model weights and source audio are not redistributed. Each upstream model and library retains its own license; this repository's license does not override those terms.