Skip to content

Instantly share code, notes, and snippets.

@dannote
Created August 28, 2026 17:38
Show Gist options
  • Select an option

  • Save dannote/1c4e14b88af811db0639b68acdc7769d to your computer and use it in GitHub Desktop.

Select an option

Save dannote/1c4e14b88af811db0639b68acdc7769d to your computer and use it in GitHub Desktop.
Russian technical speech-to-text: methodology and comparison of six STT systems

Comparing STT Systems on Russian Technical Speech

A reproducible, human-calibrated, automated benchmark of six transcription systems

Benchmark: russian-technical-stt-v1
Scope: Russian podcasts with embedded English and IT terminology
Evaluated audio: two one-hour podcast episodes
Primary metric: LLM-judged acceptable-term rate on selected technical disagreements
Evaluation dates: 27–28 August 2026

Executive summary

We compared six speech-to-text systems on Russian technical podcasts containing English product names, programming terminology, acronyms, code-switching, and Cyrillic transliterations:

  1. Google Gemini 3.5 Transcribe
  2. ElevenLabs Scribe v2
  3. OpenAI GPT Transcribe
  4. Qwen3 ASR 1.7B
  5. OpenAI Whisper Large v3
  6. Deepgram Nova-3

A conventional WER benchmark was not possible because no complete trusted reference transcript existed. More importantly, ordinary WER does not reflect the practical importance of technical terms: confusing Rustler with Raster or omitting ASN.1 matters more to a technical reader than many filler-word differences.

We therefore evaluated the systems on a targeted technical-terminology challenge set. Candidate cases came from disagreements among the six transcripts. GPT-5.6 Sol selected atomic technical disagreements without assigning the answer. Gemini 3.7 Flash then judged anonymous alternatives using local transcript context.

Before using this process without humans, we calibrated the Gemini judge against 18 blind human-annotated technical cases. It included the human answer in 94.4% of cases and reproduced human-derived provider scores with correlation 0.983. We then applied the same automated protocol to a second podcast with no human annotation.

Practical recommendation

The observed results support a leading tier of Gemini and ElevenLabs, not a statistically conclusive universal winner:

  • Choose Gemini 3.5 Transcribe when maximizing technical-term coverage is the priority; it had the highest observed acceptable-term score on both episodes.
  • Choose ElevenLabs Scribe v2 when canonical, publication-ready spelling matters most; it had the highest cross-episode canonical score and remained close to Gemini on acceptable terms.
  • Choose GPT Transcribe when an existing OpenAI integration is valuable enough to accept a clear observed quality gap from the leading pair.
  • Choose Qwen3 ASR when low reported API cost matters more than top-tier terminology quality.
  • Deepgram was the fastest in aggregate request time here, but its technical-term score was substantially lower.

The intervals for Gemini and ElevenLabs overlap. The report therefore describes Gemini as having the highest observed score, rather than proving that it is universally superior.

Final observed ranking

Rank Provider Automated acceptable-term score Automated canonical-form score
1 Google Gemini 3.5 Transcribe 93.1% 75.0%
2 ElevenLabs Scribe v2 88.2% 77.8%
3 OpenAI GPT Transcribe 73.6% 68.8%
4 Qwen3 ASR 1.7B 64.6% 36.8%
5 Whisper Large v3 56.2% 31.2%
6 Deepgram Nova-3 29.2% 18.8%

Gemini had the highest observed acceptable-term score. ElevenLabs had the highest canonical-form score. The top three providers and the last-place provider were stable across both episodes.

These are LLM-judged targeted challenge-set scores, not verified population accuracy or population WER.


1. Objective and research questions

The goal was to build a repeatable comparison of STT systems for a specific production problem:

How reliably does each system transcribe important English and IT terminology embedded in Russian speech?

The benchmark addresses four questions:

  1. Which provider most often produces a faithful rendering of the spoken technical term?
  2. Which provider most often produces the canonical written form?
  3. Can an LLM judge reproduce human-derived provider rankings well enough to remove routine human evaluation?
  4. Does the ranking replicate on a second technical domain?

The benchmark does not attempt to estimate general Russian WER, diarization quality, punctuation quality, or verbatimness.


2. Benchmark material

We collected six candidate Russian technical podcast episodes and reproducibly prepared the first hour of each source as mono 16 kHz AAC at 48 kbps. No loudness normalization was applied, and intros, ads, and other material occurring within the first hour were retained. Two episodes were selected for benchmark v1 because they contain dense but different technical vocabularies.

2.1 Elixir ecosystem

Podlodka Podcast #487 — “Как Elixir стал актуален благодаря AI в 2026”

Topics include Elixir, Erlang, BEAM, Phoenix, LiveView, Rustler, NIF, ONNX and related tools.

  • Frozen run: podlodka-487-raw-v2
  • Source SHA-256: a870431dae3be016f50756d94efe8967831a0e78df258ac7b97f53927b73939e
  • Role in methodology: human calibration and automated scoring

2.2 Databases

OrgProg #78 — “Эволюция баз данных: SQL, NoSQL и доминирование PostgreSQL”

Topics include MySQL, PostgreSQL, Tarantool, Scylla, NoSQL, OLTP, Couchbase, Aerospike, BSON and related database concepts.

  • Frozen run: orgprog-78-raw-v1
  • Source SHA-256: c66527a7463c4e2caa6d4069f948d7e37de12b6b83ca78bd5bef90991c93f4c9
  • Role in methodology: fully automated replication

2.3 Common audio segmentation

Each hour was split into 12 contiguous chunks near five minutes long. All providers received the same chunk audio.

The segmentation protocol:

  • uses speech-activity estimates to prefer low-speech boundary points;
  • selects boundaries jointly across the hour;
  • preserves the complete source without gaps or overlaps;
  • records source, chunk boundaries, durations, and SHA-256 hashes.

Total benchmark material:

2 episodes
120 minutes
24 common chunks

The available YouTube captions were retained only as quarantined source material. They were never used as evaluation truth.


3. Systems under comparison

Provider ID Route Episode coverage
elevenlabs/scribe-v2 ElevenLabs API 24/24 chunks
openai/gpt-transcribe OpenRouter 24/24
deepgram/nova-3 OpenRouter 24/24
openai/whisper-large-v3 OpenRouter 24/24
google/gemini-3.5-transcribe Vercel AI Gateway 23/24
qwen/qwen3-asr-1.7b OpenRouter 24/24

Gemini missed one chunk in the first frozen run because of the gateway's free-tier restriction. It completed the full second episode.

Where supported, requests used a fixed Russian language hint. Each provider response was stored with status, transcript, latency, usage, cost, error details, model identity, and audio provenance.


4. Evaluation methodology

4.1 Generate independent hypotheses

Every provider transcribed the same audio chunks independently. No provider output was treated as the reference.

4.2 Identify material disagreements

The transcripts were aligned to locate local spans where systems produced materially different text. Differences limited to casing, punctuation, or equivalent formatting were not sufficient by themselves.

Each candidate contained:

  • the chunk and time range;
  • short context before and after the disputed span;
  • one local hypothesis per provider;
  • provider identities hidden from downstream selection and judging.

The candidate generator preserves multi-token expansions and omissions so that co-occurring terms are not incorrectly presented as mutually exclusive alternatives.

4.3 Select a technical challenge set

GPT-5.6 Sol acted as a case curator, not an answer key.

It received the deterministic candidate pool and selected cases under a versioned policy. A case was eligible only if the disputed span itself represented a technical entity, such as a:

  • language, runtime, framework, library, or product;
  • protocol, standard, API, format, or command;
  • acronym, identifier, algorithm, or established specialized phrase.

The curator had to reject:

  • generic Russian lexical differences;
  • fillers and boundary artifacts;
  • punctuation-only differences;
  • cases combining several independent decisions;
  • duplicated terms without additional evaluation value;
  • cases where an omission could falsely make two co-occurring terms look mutually exclusive.

The curator could only select and narrow cases. It could not mark any provider correct.

The deterministic candidate universe contained 1,508 candidates for the first episode and 1,845 for the second. Each complete pool was submitted in one curator request. The prompt instructed the curator to remove duplicate terms and distribute useful cases across the source, but the final selection was not a random or statistically representative sample.

The first episode contributed 18 technical cases used for human calibration. The second contributed 24 technical-only cases. Total scored cases: 42.

4.4 Judge anonymous alternatives

Gemini 3.7 Flash acted as the routine evaluator.

For each case it received:

local transcript context with [TARGET]
anonymous candidate labels and texts

It did not receive:

  • provider identities;
  • human annotations;
  • a declared reference answer;
  • audio in the routine condition.

It returned:

  • all acceptable candidate labels;
  • labels using canonical technical spelling;
  • canonical text;
  • confidence;
  • an uncertainty indication and short rationale.

Candidate order was deterministically permuted to reduce positional bias.

4.5 Score two notions of correctness

For each provider and case:

  • acceptable-term score gives credit for any judge-accepted representation of the intended term, including valid transliteration;
  • canonical-form score gives credit only when the provider's option is among the judge's canonical labels.

Examples of potentially acceptable variants include:

Erlang / Эрланг
Rustler / Растлер
F# / F sharp / эф-шарп

This distinction avoids penalizing a recognizer merely for using Cyrillic while still measuring publication-quality spelling.

4.6 Aggregate by episode

Scores are reported separately for each episode. The headline score is the arithmetic mean of the two episode accuracies, so each domain contributes equally regardless of its number of cases.

A pooled case score is intentionally not the primary aggregate because the second episode contains more cases.

4.7 Quantify uncertainty

For each episode/provider score, we computed a deterministic case-level bootstrap interval using 5,000 resamples. These are within-challenge case-resampling intervals only. They do not account for episode selection, LLM case selection, judge uncertainty, related terms, or future upstream model changes, and must not be interpreted as population confidence intervals for Russian technical speech.

We also report a high-confidence view using judge confidence ≥0.75. Cases below that threshold are treated as abstentions in that view; they are not sent to humans.


5. Validating automation against humans

Human evaluation was used once to validate the judge, not as a routine pipeline stage.

5.1 Blind annotation protocol

A human annotator listened to the first episode's audit clips with provider identities hidden. Multiple labels could be selected when several renderings faithfully represented the same spoken term.

The 18 technical cases used for calibration were all marked clear and high confidence.

5.2 Judge calibration results

Metric Gemini 3.7 Flash text-only
Human answer included 94.4%
Acceptable-label F1 0.833
Exact acceptable-label set 61.1%
Correlation with human-derived provider scores 0.983

Exact-set agreement is stricter than the ranking objective: the judge often accepted additional equivalent transliterations that the human did not select. The near-perfect provider-score correlation showed that this disagreement had little effect on comparative ranking.

5.3 Why text-only judging was selected

We separately tested text-only, audio-only, and audio-plus-context judges. The text-only Gemini model gave the strongest combination of:

  • agreement with human-derived provider scores;
  • acceptable-label F1;
  • low cost;
  • reliable structured output.

Audio judges did not improve the ranking signal in this calibration. Therefore, the routine benchmark uses one text-only judge and explicitly limits its claim to practical terminology quality rather than independent acoustic truth.

5.4 Repeatability

We repeated all 42 judgments twice with new deterministic option permutations.

Runs compared Exact acceptable-label-set agreement
primary vs repeat 1 92.9%
primary vs repeat 2 88.1%
repeat 1 vs repeat 2 88.1%
all three identical 85.7%

The provider ranking remained practically stable. Routine evaluation uses one pass; repeated passes are an optional diagnostic.


6. Results

6.1 Cross-episode macro ranking

Rank Provider Acceptable-term score Canonical-form score
1 Google Gemini 3.5 Transcribe 93.1% 75.0%
2 ElevenLabs Scribe v2 88.2% 77.8%
3 OpenAI GPT Transcribe 73.6% 68.8%
4 Qwen3 ASR 1.7B 64.6% 36.8%
5 Whisper Large v3 56.2% 31.2%
6 Deepgram Nova-3 29.2% 18.8%

6.2 Elixir episode

Provider Accepted Score (95% within-challenge bootstrap interval) Canonical High-confidence score
Gemini 3.5 Transcribe 17/18 94.4% (83.3–100%) 83.3% 15/16 (93.8%)
ElevenLabs Scribe v2 16/18 88.9% (72.2–100%) 72.2% 14/16 (87.5%)
GPT Transcribe 13/18 72.2% (50.0–88.9%) 66.7% 11/16 (68.8%)
Qwen3 ASR 12/18 66.7% (44.4–88.9%) 44.4% 10/16 (62.5%)
Whisper Large v3 9/18 50.0% (27.8–72.2%) 33.3% 8/16 (50.0%)
Deepgram Nova-3 6/18 33.3% (11.1–55.6%) 16.7% 4/16 (25.0%)

The cases included CommonJS, ECMAScript, BEAM, Ecto Query Builder, LINQ, C#, ASN.1, PyTorch, BERT, ONNX, Livebook, Gleam, Rustler, NIF, Quickbeam, Volt, and VibeKit.

6.3 Database episode

Provider Accepted Score (95% within-challenge bootstrap interval) Canonical High-confidence score
Gemini 3.5 Transcribe 22/24 91.7% (79.2–100%) 66.7% 18/20 (90.0%)
ElevenLabs Scribe v2 21/24 87.5% (75.0–100%) 83.3% 17/20 (85.0%)
GPT Transcribe 18/24 75.0% (58.3–91.7%) 70.8% 15/20 (75.0%)
Whisper Large v3 15/24 62.5% (41.7–83.3%) 29.2% 11/20 (55.0%)
Qwen3 ASR 15/24 62.5% (41.7–79.2%) 29.2% 13/20 (65.0%)
Deepgram Nova-3 6/24 25.0% (8.3–41.7%) 20.8% 2/20 (10.0%)

The cases included Hexlet, MySQL, Tarantool, Picodata, Teradata, Exadata, Scylla, NoSQL, OLTP, PostgreSQL, blob store, key-value, Foursquare, CQL/SQL, Couchbase, Aerospike, ANSI, joins, CedarDB, Firebird, CPU-bound, MCP/gRPC, and BSON.

6.4 Cross-domain consistency

Both episodes produced the same top three:

1. Gemini
2. ElevenLabs
3. GPT Transcribe

Deepgram was last in both. Qwen and Whisper were less clearly separated and tied on the database episode.

6.5 Characteristic error patterns

The case-level evidence shows qualitatively different failure modes:

  • Omissions: Deepgram omitted MySQL, blob store, ANSI, and CPU-bound in selected cases; Gemini omitted OLTP and BSON on the database episode.
  • Phonetic approximations: examples include pitorch for PyTorch, tarantul for Tarantool, coachbase for Couchbase, and airspike for Aerospike.
  • Familiar-word substitutions: Whisper produced bird for BERT and python where the context indicated BSON.
  • Identifier corruption: systems produced onxx, o n x x, and similar forms for ONNX; asi.т, esi.1, and asa.1 for ASN.1.
  • Valid but noncanonical transliteration: Растлер, Эрланг, форсквер, and similar Cyrillic forms often remained acceptable while receiving no canonical-form credit.
  • Multiword truncation or identity substitution: examples include Acta Query Builder for Ecto Query Builder and xata for Exadata.

These patterns explain why acceptable-term and canonical-form scores answer different product questions.


7. Cost and latency

Provider-reported STT totals across the two episodes:

Provider Reported cost Aggregate request-seconds
Qwen3 ASR $0.0540 463.9
Whisper Large v3 $0.1130 184.8
Gemini 3.5 Transcribe $0.3478 177.7
Deepgram Nova-3 $0.5160 65.5
GPT Transcribe $0.5409 264.1
ElevenLabs Scribe v2 not reported 388.3

ElevenLabs responses did not expose cost; “not reported” must not be interpreted as free.

The primary plus two repeat judge passes cost $0.5048 for 126 stored judgments. Routine evaluation uses one pass. GPT-5.6 Sol curation of the second 24-case audit cost $2.5719 and is performed once per frozen audit.

Costs reflect gateway-reported values at the time of the experiment, not universal list prices.


8. Interpretation

Gemini 3.5 Transcribe

Gemini produced the highest observed acceptable-term score on both episodes. Its canonical score was lower than ElevenLabs on the database episode because it sometimes omitted a term or used a noncanonical rendering despite identifying most terms acceptably. The overlapping intervals mean the benchmark does not establish a statistically conclusive universal advantage over ElevenLabs.

ElevenLabs Scribe v2

ElevenLabs was consistently close to Gemini and had the strongest canonical spelling overall. It is the best result when publication-ready technical typography is prioritized.

GPT Transcribe

GPT Transcribe was consistently third. It handled most common technical vocabulary well but made more identity substitutions than the two leaders.

Qwen3 ASR and Whisper Large v3

Both were substantially behind the top three. Qwen had a stronger acceptable-term score on the Elixir episode, while the systems tied on the database episode. Their canonical-form scores were much weaker than their acceptable-term scores.

Deepgram Nova-3

Deepgram was fastest by aggregate request time but had the weakest technical-term score. Its errors frequently produced plausible phonetic approximations, omissions, or ordinary-word substitutions rather than canonical technical entities.


9. Reproducibility

The frozen benchmark definition records:

  • evaluation dates and requested provider model IDs/routes;
  • curator and judge model/prompt versions;
  • confidence threshold;
  • source audio and configuration hashes;
  • run and audit identifiers.

The proprietary model IDs were mutable service aliases at evaluation time unless a gateway exposed a pinned upstream version. Repeating the benchmark later may therefore exercise updated provider implementations even with identical local configuration.

The automated workflow is:

uv run stt-eval evaluate \
  --episode <episode-id> \
  --run-id <stable-run-id> \
  --audit-version <new-audit-version> \
  --max-parallel 4 \
  --output artifacts/<episode>-report.md

It executes:

chunk → transcribe → align disagreements → curate → judge → score → report

Completed transcription, curation, and judgment stages are resumable. Structured records and provenance are stored in SQLite; audio remains external and is referenced by hash.

The publication bundle includes:

  • this methodology and results report;
  • a readable case-level appendix;
  • aggregate result CSV;
  • compact chunk boundary/hash CSV;
  • frozen reproduction configuration;
  • curator and judge protocols.

The implementation source is not public and is available on request. The published artifacts expose the data, prompts, configurations, hashes, case decisions, and aggregate calculations needed to inspect the claims, but independent end-to-end execution requires requesting the source.


10. Limitations

  1. Targeted challenge set: results apply to LLM-selected technical disagreements, not all words or general Russian speech.
  2. Observed, automated scores: the second episode has no human/acoustic answer key; its scores are Gemini-judged technical plausibility, not verified transcription accuracy.
  3. Two episodes: the domains differ, but the sample remains small and within-challenge intervals overlap for the leading systems.
  4. Text-only judge: it measures technical plausibility and rendering quality, not independent acoustic fidelity.
  5. Shared language priors: the judge may favor familiar terms also preferred by language-model-heavy STT systems.
  6. Curator selection: the LLM determines which disagreements enter the challenge set, so the cases are not a random sample.
  7. One human calibrator: ranking calibration was strong, but definitive case-level ground-truth replacement was not demonstrated; exact label-set agreement was 61.1%.
  8. Gateway and model mutability: routing, model implementations, prices, and availability can change.
  9. No population WER claim: these scores do not measure punctuation, diarization, filler preservation, or general transcript completeness.
  10. Private implementation: source is available on request rather than through a public repository.

11. Conclusion

On this two-episode Russian technical-speech challenge set:

  • Gemini 3.5 Transcribe had the highest observed acceptable-term score;
  • ElevenLabs Scribe v2 was a close second and had the highest canonical-form score;
  • GPT Transcribe ranked consistently third;
  • Qwen3 ASR and Whisper Large v3 formed a weaker middle tier;
  • Deepgram Nova-3 ranked last despite low latency.

Methodologically, the experiment shows that a disagreement-based challenge set can be curated and judged automatically after a one-time human calibration. The resulting automated ranking replicated across a second podcast and removed routine human labeling from the evaluation workflow.

The claim is deliberately narrow:

A calibrated LLM-based evaluator can compare the practical technical-terminology quality of STT systems on Russian podcasts without routine human annotation.

It does not claim that a text LLM establishes acoustic ground truth.


References

  1. Radford, A. et al. Robust Speech Recognition via Large-Scale Weak Supervision. 2022. arXiv:2212.04356
  2. Shi, X. et al. Qwen3-ASR Technical Report. 2026. arXiv:2601.21337
  3. Ma, R. et al. Can Generative Large Language Models Perform ASR Error Correction? 2023. arXiv:2307.04172
  4. Fiscus, J. Recognizer Output Voting Error Reduction (ROVER). 1997. NIST
  5. Huang, R. et al. ConEC: Earnings Call Dataset with Real-world Contexts for Benchmarking Contextual Speech Recognition. LREC-COLING 2024. ACL Anthology
  6. Li, Y. et al. CB-Whisper: Contextual Biasing Whisper Using Open-Vocabulary Keyword-Spotting. LREC-COLING 2024. ACL Anthology
  7. Morris, A. et al. From WER and RIL to MER and WIL: Improved Evaluation Measures for Connected Speech Recognition. 2004. ISCA Archive
  8. JiWER. GitHub
  9. kaldialign. GitHub
  10. error-align. GitHub

Case-level evidence

Provider identities are shown only in this post-evaluation appendix. means omission.

audit-v4-gpt-curated / case-001

Context: эволюцию с-- начиная с [TARGET] и заканчивая какими то

  • A — commandjs — deepgram/nova-3
  • B — commonjs — elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/gpt-transcribe, openai/whisper-large-v3, qwen/qwen3-asr-1.7b

Judge acceptable: B
Judge canonical: B (CommonJS)
Confidence: 0.95
Reason: CommonJS is the standard JavaScript module system commonly referenced in the history/evolution of JS module formats; commandjs is not a valid technical term.

Blind human labels: B

audit-v4-gpt-curated / case-002

Context: э э э последними [TARGET] за за это время

  • A — muscript — deepgram/nova-3
  • B — ecmascript — elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/gpt-transcribe, openai/whisper-large-v3, qwen/qwen3-asr-1.7b

Judge acceptable: B
Judge canonical: B (ECMAScript)
Confidence: 0.90
Reason: ECMAScript is a widely established technical standard; 'muscript' is an acoustic truncation/misrecognition following the ending '-ми'.

Blind human labels: B

audit-v4-gpt-curated / case-003

Context: на .net либо собственно [TARGET] виртуальная машина на которой

  • A — beam — elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/gpt-transcribe
  • B — bim — deepgram/nova-3, openai/whisper-large-v3, qwen/qwen3-asr-1.7b

Judge acceptable: A
Judge canonical: A (BEAM)
Confidence: 0.95
Reason: BEAM is the Erlang/Elixir virtual machine contextually referenced alongside .NET runtime.

Blind human labels: A

audit-v4-gpt-curated / case-004

Context: этом прекрасном метапрограммировании сделан [TARGET] то есть это э

  • A — acta query builder — openai/gpt-transcribe
  • B — ector query builder — deepgram/nova-3
  • C — ecto query builder — elevenlabs/scribe-v2, google/gemini-3.5-transcribe
  • D — экто query builder — qwen/qwen3-asr-1.7b
  • E — экто кьюри билдер — openai/whisper-large-v3

Judge acceptable: D, C, E
Judge canonical: C (Ecto query builder)
Confidence: 0.95
Reason: Ecto is the standard query builder and database library in Elixir, famously built using its metaprogramming system.

Blind human labels: C

audit-v4-gpt-curated / case-005

Context: например от того же [TARGET] это не надстройка там

  • A — entity framework — qwen/qwen3-asr-1.7b
  • B — active record — deepgram/nova-3, elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/gpt-transcribe, openai/whisper-large-v3

Judge acceptable: B, A
Judge canonical: B, A (Active Record)
Confidence: 0.50
Reason: Both 'active record' and 'entity framework' are contextually and grammatically valid after 'от того же', requiring audio to disambiguate.

Blind human labels: B

audit-v4-gpt-curated / case-006

Context: в других языках это [TARGET] в c sharp вот

  • A — link — deepgram/nova-3, openai/whisper-large-v3
  • B — linq — elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/gpt-transcribe, qwen/qwen3-asr-1.7b

Judge acceptable: B
Judge canonical: B (LINQ)
Confidence: 0.95
Reason: LINQ is a distinctive C# feature phonetically pronounced as 'link'.

Blind human labels: B

audit-v4-gpt-curated / case-007

Context: это там linq в [TARGET] а так в принципе

  • A — c sharp — elevenlabs/scribe-v2
  • B — си шарп — openai/whisper-large-v3
  • C — c — deepgram/nova-3, google/gemini-3.5-transcribe, openai/gpt-transcribe, qwen/qwen3-asr-1.7b

Judge acceptable: A, B
Judge canonical: none (C#)
Confidence: 0.95
Reason: LINQ is specifically associated with C# (C Sharp / си шарп), making 'c' incorrect in this context.

Blind human labels: A, C

audit-v4-gpt-curated / case-008

Context: виде парсеров там стандарта [TARGET] впоследствии erlang использовали а

  • A — asi.т — qwen/qwen3-asr-1.7b
  • B — esi.1 — elevenlabs/scribe-v2
  • C — asa — deepgram/nova-3
  • D — asa.1 — openai/whisper-large-v3
  • E — asn.1 — google/gemini-3.5-transcribe, openai/gpt-transcribe

Judge acceptable: E
Judge canonical: E (ASN.1)
Confidence: 0.95
Reason: ASN.1 is a well-known standard with dedicated parser implementations in Erlang.

Blind human labels: E

audit-v4-gpt-curated / case-009

Context: поддерживает различные backend типа [TARGET] и позволяет запускать а

  • A — pytorch — elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/gpt-transcribe, qwen/qwen3-asr-1.7b
  • B — па й тор ч — openai/whisper-large-v3
  • C — pitorch — deepgram/nova-3

Judge acceptable: A
Judge canonical: A (PyTorch)
Confidence: 0.98
Reason: PyTorch is the standard machine learning framework and backend mentioned in this context.

Blind human labels: A

audit-v4-gpt-curated / case-010

Context: трансформеры начиная с моделей [TARGET] запускать там модели формата

  • A — bert — elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/gpt-transcribe, qwen/qwen3-asr-1.7b
  • B — berd — deepgram/nova-3
  • C — bird — openai/whisper-large-v3

Judge acceptable: A
Judge canonical: A (BERT)
Confidence: 0.98
Reason: In the context of transformers in machine learning, BERT is the standard model architecture.

Blind human labels: A

audit-v4-gpt-curated / case-011

Context: позволяет запускать там модели [TARGET] и так далее в

  • A — o n x x — deepgram/nova-3, qwen/qwen3-asr-1.7b
  • B — onnx — google/gemini-3.5-transcribe
  • C — onxx — elevenlabs/scribe-v2, openai/gpt-transcribe, openai/whisper-large-v3

Judge acceptable: B
Judge canonical: B (ONNX)
Confidence: 0.95
Reason: В контексте машинного обучения и запуска моделей стандартным форматом является ONNX (Open Neural Network Exchange).

Blind human labels: B

audit-v4-gpt-curated / case-012

Context: аналог питоновских ноутбуков называется [TARGET] плюс минус то же

  • A — livebook — elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/gpt-transcribe, openai/whisper-large-v3, qwen/qwen3-asr-1.7b
  • B — lifebok — deepgram/nova-3

Judge acceptable: A
Judge canonical: A (Livebook)
Confidence: 0.98
Reason: Livebook is an interactive notebook tool analogous to Python Jupyter notebooks.

Blind human labels: A

audit-v4-gpt-curated / case-013

Context: на rust да про [TARGET] у нас тоже был

  • A — gleam — elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/whisper-large-v3
  • B — глим — deepgram/nova-3, qwen/qwen3-asr-1.7b
  • C — glim — openai/gpt-transcribe

Judge acceptable: A, B
Judge canonical: A (Gleam)
Confidence: 0.95
Reason: Gleam is a well-known programming language whose compiler is written in Rust, making it the clear intended term in this context.

Blind human labels: A

audit-v4-gpt-curated / case-014

Context: а а популярная библиотека [TARGET] позволяет писать эти nif

  • A — raster — qwen/qwen3-asr-1.7b
  • B — rustler — deepgram/nova-3, elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/gpt-transcribe
  • C — растлер — openai/whisper-large-v3

Judge acceptable: B, C
Judge canonical: B (Rustler)
Confidence: 0.95
Reason: Rustler is the well-known library used to write safe Erlang/Elixir NIFs in Rust.

Blind human labels: B

audit-v4-gpt-curated / case-015

Context: rustler позволяет писать эти [TARGET] на rust вот а

  • A — inf — deepgram/nova-3
  • B — нив — openai/whisper-large-v3
  • C — nif — elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/gpt-transcribe, qwen/qwen3-asr-1.7b

Judge acceptable: C
Judge canonical: C (NIF)
Confidence: 0.98
Reason: Rustler is a well-known library for writing Erlang/Elixir NIFs (Native Implemented Functions) in Rust.

Blind human labels: C

audit-v4-gpt-curated / case-016

Context: свой javascript runtime называется [TARGET] то есть это

  • A — quickbim — openai/gpt-transcribe, qwen/qwen3-asr-1.7b
  • B — quickbeam — deepgram/nova-3, elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/whisper-large-v3

Judge acceptable: B
Judge canonical: B (Quickbeam)
Confidence: 0.85
Reason: 'Quickbeam' is the meaningful and standard English spelling, whereas 'quickbim' is a phonetic transcription artifact of 'beam'.

Blind human labels: B

audit-v4-gpt-curated / case-017

Context: каких либо потерь на [TARGET] я на него пе

  • A — вольт — google/gemini-3.5-transcribe
  • B — world — openai/whisper-large-v3
  • C — vault — openai/gpt-transcribe
  • D — volt — deepgram/nova-3, elevenlabs/scribe-v2, qwen/qwen3-asr-1.7b

Judge acceptable: D, A, C
Judge canonical: C (Vault)
Confidence: 0.75
Reason: Context strongly suggests the tech tool Vault (HashiCorp, Obsidian, etc.), but audio is required to confirm whether Vault, Volt, or вольт was spoken.

Blind human labels: D

audit-v4-gpt-curated / case-018

Context: а а который называется [TARGET] через подчеркивание вот и

  • A — вайп — openai/whisper-large-v3
  • B — vitekit — openai/gpt-transcribe
  • C — vibe.kit — elevenlabs/scribe-v2, google/gemini-3.5-transcribe, qwen/qwen3-asr-1.7b
  • D — vype kit — deepgram/nova-3

Judge acceptable: B, C, D
Judge canonical: none (vibe_kit)
Confidence: 0.40
Reason: Without audio, it is impossible to distinguish among acoustically similar candidates such as vitekit, vibe.kit, and vype kit.

Blind human labels: C

orgprog-78-technical-v1 / case-001

Context: делали э подкаст для [TARGET] и соответственно тема была

  • A — hexlet — elevenlabs/scribe-v2, openai/gpt-transcribe
  • B — хекслета — deepgram/nova-3, google/gemini-3.5-transcribe, openai/whisper-large-v3, qwen/qwen3-asr-1.7b

Judge acceptable: A, B
Judge canonical: A (Hexlet)
Confidence: 0.85
Reason: Both candidates refer to the programming education platform Hexlet; audio is needed to verify whether the speaker declined the name in Russian (хекслета) or used the uninflected English form (Hexlet).

orgprog-78-technical-v1 / case-002

Context: который стоял у истоков [TARGET] был core девелопером внес

  • A — ∅ (omitted) — deepgram/nova-3
  • B — mysqlа — qwen/qwen3-asr-1.7b
  • C — mysql — elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/gpt-transcribe, openai/whisper-large-v3

Judge acceptable: B, C
Judge canonical: C (MySQL)
Confidence: 0.85
Reason: Both inflected ('MySQL-а') and uninflected ('MySQL') forms are common and plausible after 'у истоков' in technical speech.

orgprog-78-technical-v1 / case-003

Context: истоков mysql эээ был [TARGET] туда гигантский вклад э

  • A — ∅ (omitted) — deepgram/nova-3
  • B — core девелопером — elevenlabs/scribe-v2
  • C — корд девелопером — qwen/qwen3-asr-1.7b
  • D — корот девелопером — openai/whisper-large-v3
  • E — core developer — openai/gpt-transcribe
  • F — кор девелопером — google/gemini-3.5-transcribe

Judge acceptable: B, F
Judge canonical: B (core девелопером)
Confidence: 0.95
Reason: Context requires the instrumental case after 'был'; 'core девелопером' / 'кор девелопером' fits technical speech regarding MySQL contributions.

orgprog-78-technical-v1 / case-004

Context: уже многие слышали про [TARGET] которым ты много лет

  • A — тарантул — google/gemini-3.5-transcribe, qwen/qwen3-asr-1.7b
  • B — tarantul — deepgram/nova-3, openai/whisper-large-v3
  • C — tarantool — elevenlabs/scribe-v2, openai/gpt-transcribe

Judge acceptable: C, A
Judge canonical: C (Tarantool)
Confidence: 0.95
Reason: Tarantool is a widely known open-source database and application server; Cyrillic 'тарантул' is a valid spoken Russian transliteration.

orgprog-78-technical-v1 / case-005

Context: компанию есть у тебя [TARGET] pika data да ну

  • A — pico data — google/gemini-3.5-transcribe, openai/gpt-transcribe, openai/whisper-large-v3
  • B — пика дейта — qwen/qwen3-asr-1.7b
  • C — pika data — elevenlabs/scribe-v2
  • D — pico date — deepgram/nova-3

Judge acceptable: A, C, B
Judge canonical: A (Picodata)
Confidence: 0.80
Reason: Context discusses a company, likely referring to Picodata; audio is needed to distinguish exact pronunciation and phrasing among plausible variants.

orgprog-78-technical-v1 / case-006

Context: как назвать решили постебаться [TARGET] есть exadata есть мы

  • A — taradata — deepgram/nova-3
  • B — террадата — openai/whisper-large-v3
  • C — tarantoolata — openai/gpt-transcribe
  • D — teradata — elevenlabs/scribe-v2
  • E — terradata — google/gemini-3.5-transcribe
  • F — тародата — qwen/qwen3-asr-1.7b

Judge acceptable: D, A, E, B
Judge canonical: D, A (Taradata)
Confidence: 0.50
Reason: Context suggests a pun or reference involving Exadata and Teradata/Taradata, but audio is required to determine the exact coined name or term.

orgprog-78-technical-v1 / case-007

Context: решили постебаться teradata есть [TARGET] есть мы решили взять

  • A — exadata — elevenlabs/scribe-v2, google/gemini-3.5-transcribe
  • B — xata — openai/gpt-transcribe
  • C — экзодата — openai/whisper-large-v3, qwen/qwen3-asr-1.7b
  • D — exodate — deepgram/nova-3

Judge acceptable: A, C
Judge canonical: A (Exadata)
Confidence: 0.95
Reason: Oracle Exadata is the standard enterprise DWH platform frequently paired with Teradata in this context.

orgprog-78-technical-v1 / case-008

Context: чтобы понять что такое [TARGET] нужно одно слово discord

  • A — cilla — openai/gpt-transcribe
  • B — ссыла — deepgram/nova-3
  • C — ссылка — openai/whisper-large-v3
  • D — scylla — elevenlabs/scribe-v2
  • E — сильы — qwen/qwen3-asr-1.7b
  • F — сцилла — google/gemini-3.5-transcribe

Judge acceptable: D, F
Judge canonical: D (Scylla)
Confidence: 0.95
Reason: Discord is famously associated with ScyllaDB architecture, making Scylla the unambiguous technical referent.

orgprog-78-technical-v1 / case-009

Context: классно что начали с [TARGET] потому что собственно мой

  • A — новускель — qwen/qwen3-asr-1.7b
  • B — nosql — elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/gpt-transcribe
  • C — ноу скейт — openai/whisper-large-v3
  • D — noscale — deepgram/nova-3

Judge acceptable: B
Judge canonical: B (NoSQL)
Confidence: 0.95
Reason: NoSQL is a standard IT term that uniquely fits the presentation context; other candidates are phonetic misrecognitions.

orgprog-78-technical-v1 / case-010

Context: у тебя диска вот [TARGET] классических у тебя все

  • A — oltp — elevenlabs/scribe-v2, openai/gpt-transcribe
  • B — ontp — deepgram/nova-3
  • C — нтп — openai/whisper-large-v3
  • D — ∅ (omitted) — google/gemini-3.5-transcribe
  • E — онтп — qwen/qwen3-asr-1.7b

Judge acceptable: A
Judge canonical: A (OLTP)
Confidence: 0.90
Reason: OLTP is a standard database workload term frequently discussed in the context of storage and disk performance.

orgprog-78-technical-v1 / case-011

Context: базы вот вот допустим [TARGET] там ему обычно дают

  • A — позгрис — qwen/qwen3-asr-1.7b
  • B — postgres — deepgram/nova-3, elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/gpt-transcribe
  • C — под грязь — openai/whisper-large-v3

Judge acceptable: A, B
Judge canonical: B (Postgres)
Confidence: 0.95
Reason: In the context of databases ('базы'), the target clearly refers to Postgres. Candidate C is the canonical technical term, and Candidate A is a phonetic Cyrillic transliteration.

orgprog-78-technical-v1 / case-012

Context: это не какой то [TARGET] это именно база данных

  • A — ∅ (omitted) — deepgram/nova-3
  • B — blob store — elevenlabs/scribe-v2, openai/gpt-transcribe, qwen/qwen3-asr-1.7b
  • C — блок стор — openai/whisper-large-v3
  • D — блоб стор — google/gemini-3.5-transcribe

Judge acceptable: C, D, B
Judge canonical: D, B (blob store)
Confidence: 0.75
Reason: Both 'blob store' and 'block store' are contextually plausible storage terms contrasted with a database, requiring audio verification.

orgprog-78-technical-v1 / case-013

Context: данных она тебе по [TARGET] достаточно эффективно с этим

  • A — key value — elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/gpt-transcribe, qwen/qwen3-asr-1.7b
  • B — ки велю — openai/whisper-large-v3
  • C — k value — deepgram/nova-3

Judge acceptable: A, B
Judge canonical: A (key value)
Confidence: 0.95
Reason: In database and data storage contexts, 'key value' (transliterated phonetically in Russian as 'ки велю') is the standard technical term.

orgprog-78-technical-v1 / case-014

Context: данные если ты помнишь [TARGET] много веселых было историй

  • A — foursquare — elevenlabs/scribe-v2, google/gemini-3.5-transcribe
  • B — форсквер — openai/whisper-large-v3, qwen/qwen3-asr-1.7b
  • C — в horsesql — openai/gpt-transcribe
  • D — for square — deepgram/nova-3

Judge acceptable: B, A
Judge canonical: A (Foursquare)
Confidence: 0.95
Reason: The context refers to user data and historical stories about the location service Foursquare (форсквер).

orgprog-78-technical-v1 / case-015

Context: бы немножко знаешь синтаксис [TARGET] ты просто и ты

  • A — cql — deepgram/nova-3
  • B — sql — elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/gpt-transcribe, openai/whisper-large-v3, qwen/qwen3-asr-1.7b

Judge acceptable: B, A
Judge canonical: B, A (SQL)
Confidence: 0.60
Reason: Both SQL and CQL are query languages with distinctive syntax, making both candidates contextually plausible without audio evidence.

orgprog-78-technical-v1 / case-016

Context: года у какого нибудь [TARGET] не было sql подобного

  • A — ковчугбейса — qwen/qwen3-asr-1.7b
  • B — coachbase — deepgram/nova-3
  • C — couchbase — elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/gpt-transcribe, openai/whisper-large-v3

Judge acceptable: C
Judge canonical: C (Couchbase)
Confidence: 0.95
Reason: Couchbase is a well-known NoSQL database that introduced an SQL-like query language (N1QL), matching the technical context perfectly.

orgprog-78-technical-v1 / case-017

Context: sql подобного языка у [TARGET] не было там особо

  • A — aerospike — openai/gpt-transcribe
  • B — аэроспайка — google/gemini-3.5-transcribe
  • C — лайраспайка — qwen/qwen3-asr-1.7b
  • D — lrspike — elevenlabs/scribe-v2
  • E — airspike — openai/whisper-large-v3
  • F — aira spike — deepgram/nova-3

Judge acceptable: B, A
Judge canonical: A (Aerospike)
Confidence: 0.95
Reason: Aerospike is a well-known NoSQL database matching the SQL-query context; 'аэроспайка' represents the inflected Russian genitive form.

orgprog-78-technical-v1 / case-018

Context: они обсуждают добавление полностью [TARGET] в cassandra вот я

  • A — ∅ (omitted) — deepgram/nova-3
  • B — ansi — elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/gpt-transcribe, openai/whisper-large-v3, qwen/qwen3-asr-1.7b

Judge acceptable: B
Judge canonical: B (ANSI)
Confidence: 0.75
Reason: ANSI (e.g. ANSI SQL standard compliance) fits the context of Cassandra features, but audio is required to verify the utterance against omission.

orgprog-78-technical-v1 / case-019

Context: обсуждают и оптимизатор запросов [TARGET] уже в списке рассылки

  • A — join — deepgram/nova-3, elevenlabs/scribe-v2, openai/whisper-large-v3
  • B — джойны — google/gemini-3.5-transcribe
  • C — это живое на — qwen/qwen3-asr-1.7b
  • D — joins — openai/gpt-transcribe

Judge acceptable: B, D
Judge canonical: B (джойны)
Confidence: 0.85
Reason: In database optimization contexts, Russian technical jargon 'джойны' (A) and English 'joins' (D) are both plausible, with 'джойны' being the standard natural spoken form.

orgprog-78-technical-v1 / case-020

Context: из cedar db чуваки [TARGET] такой европейский значит стартап

  • A — coder db — openai/gpt-transcribe
  • B — cender db — deepgram/nova-3
  • C — cedar db — elevenlabs/scribe-v2, google/gemini-3.5-transcribe, qwen/qwen3-asr-1.7b
  • D — цедер дебе — openai/whisper-large-v3

Judge acceptable: C, D
Judge canonical: C (CedarDB)
Confidence: 0.95
Reason: CedarDB is a known European database startup, matching the preceding context.

orgprog-78-technical-v1 / case-021

Context: называется ай firebird точно [TARGET] я помню что что

  • A — firebird — elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/gpt-transcribe, openai/whisper-large-v3
  • B — фарбер — qwen/qwen3-asr-1.7b
  • C — firebase — deepgram/nova-3

Judge acceptable: C, A
Judge canonical: C, A (Firebase / Firebird)
Confidence: 0.50
Reason: Without audio, it is impossible to determine whether the speaker corrected Firebird to Firebase or reiterated Firebird.

orgprog-78-technical-v1 / case-022

Context: iops все становится снова [TARGET] но опять же знаешь

  • A — ∅ (omitted) — deepgram/nova-3
  • B — cpu bound — elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/gpt-transcribe, qwen/qwen3-asr-1.7b
  • C — cpu баунт — openai/whisper-large-v3

Judge acceptable: B, C
Judge canonical: B (CPU bound)
Confidence: 0.95
Reason: CPU bound is the standard computing term contrasting with IOPS bottlenecks.

orgprog-78-technical-v1 / case-023

Context: то есть вот есть [TARGET] сервера и в целом

  • A — grpc — openai/gpt-transcribe
  • B — mcp — deepgram/nova-3, elevenlabs/scribe-v2, google/gemini-3.5-transcribe, openai/whisper-large-v3
  • C — мсп — qwen/qwen3-asr-1.7b

Judge acceptable: C, A, B
Judge canonical: A, B (MCP)
Confidence: 0.50
Reason: Both MCP servers and gRPC servers are contextually plausible technical terms; audio is required to determine the acronym spoken.

orgprog-78-technical-v1 / case-024

Context: хранятся в json или [TARGET] почему mongo это делает

  • A — python — elevenlabs/scribe-v2, openai/whisper-large-v3
  • B — pison — deepgram/nova-3
  • C — ∅ (omitted) — google/gemini-3.5-transcribe
  • D — bson — openai/gpt-transcribe, qwen/qwen3-asr-1.7b

Judge acceptable: D
Judge canonical: D (BSON)
Confidence: 0.98
Reason: MongoDB stores data in BSON format, which directly contrasts with JSON in this context.

episode_id source_sha256 chunk start_seconds end_seconds duration_seconds boundary_type audio_sha256
podlodka-487 a870431dae3be016f50756d94efe8967831a0e78df258ac7b97f53927b73939e 0 0.0 202.688 202.688 vad_silence af87d9691bc6ce676af3ba95be46887979eabe02d6ece30e36970b9f4fb8dcf2
podlodka-487 a870431dae3be016f50756d94efe8967831a0e78df258ac7b97f53927b73939e 1 202.688 539.264 336.576 vad_low_probability ffbb0959b4abde1183d92c0627c56234d5c2e363139806166a572aa66fecc26e
podlodka-487 a870431dae3be016f50756d94efe8967831a0e78df258ac7b97f53927b73939e 2 539.264 838.704 299.44 vad_low_probability 7d45a7d60a4cdc6864a5dafb77509fe966c210f87883fe460aa641713ce5f93b
podlodka-487 a870431dae3be016f50756d94efe8967831a0e78df258ac7b97f53927b73939e 3 838.704 1197.44 358.736 vad_silence 7118d73b86e71550dc5d57959490b8242f7a3f87e1aab18887ed3a67b368f5aa
podlodka-487 a870431dae3be016f50756d94efe8967831a0e78df258ac7b97f53927b73939e 4 1197.44 1496.048 298.608 vad_low_probability 7eb7d5184f79c557b10626afe82c9f776082e225e28501c3f79125bd6d706e4a
podlodka-487 a870431dae3be016f50756d94efe8967831a0e78df258ac7b97f53927b73939e 5 1496.048 1741.328 245.28 vad_silence 71253c588d28dfe14a0b473de21891bf844321d4c81d7f7a7739ab57ed916089
podlodka-487 a870431dae3be016f50756d94efe8967831a0e78df258ac7b97f53927b73939e 6 1741.328 2088.976 347.648 vad_low_probability 1f8c2a6e5bb7220372c78650e0dd488ec00528ec12a13bbe6e4512e7760aa52b
podlodka-487 a870431dae3be016f50756d94efe8967831a0e78df258ac7b97f53927b73939e 7 2088.976 2419.408 330.432 vad_low_probability d95358cffc0b8ad574e0592294d2eff2e5654f912377032dc0cbd7f3436901f9
podlodka-487 a870431dae3be016f50756d94efe8967831a0e78df258ac7b97f53927b73939e 8 2419.408 2695.92 276.512 vad_low_probability ef1fd47cc4a9ce475ec3981477d963519c20d47edfa6dee653450a854c72bc54
podlodka-487 a870431dae3be016f50756d94efe8967831a0e78df258ac7b97f53927b73939e 9 2695.92 2982.048 286.128 vad_silence 128f4656987269b362a4d812be4995c15155dbd93eff31d92a9c41c7fa00cef0
podlodka-487 a870431dae3be016f50756d94efe8967831a0e78df258ac7b97f53927b73939e 10 2982.048 3326.304 344.256 vad_silence d85923c934a8d4385456368bd8e4a4050b4b87e63ed6dbf6b02cef9d17902eb2
podlodka-487 a870431dae3be016f50756d94efe8967831a0e78df258ac7b97f53927b73939e 11 3326.304 3600.0 273.696 end 95e62704ad19aba4f0a4c229e2523c24a2ff25013649922e4604251593a132a3
orgprog-78 c66527a7463c4e2caa6d4069f948d7e37de12b6b83ca78bd5bef90991c93f4c9 0 0.0 251.552 251.552 vad_silence 488db12adc67cb9b08aa7d9941ce9bd34943f92a10f36c144808da1ed16f5bc6
orgprog-78 c66527a7463c4e2caa6d4069f948d7e37de12b6b83ca78bd5bef90991c93f4c9 1 251.552 577.808 326.256 vad_silence a1deb2dc5e9a15ecf3a6656b88413a5581f7a94f56ba75a59979b8c0fe62a807
orgprog-78 c66527a7463c4e2caa6d4069f948d7e37de12b6b83ca78bd5bef90991c93f4c9 2 577.808 910.352 332.544 vad_silence fb4abec179d46c97a526fcc6dce03fd9098b9611b4421fde50032a2ea4b0258c
orgprog-78 c66527a7463c4e2caa6d4069f948d7e37de12b6b83ca78bd5bef90991c93f4c9 3 910.352 1177.088 266.736 vad_silence 581cad0353ee8da5eabe5429d1ca74e99236b3a0efe60fb0e710df0e304553a8
orgprog-78 c66527a7463c4e2caa6d4069f948d7e37de12b6b83ca78bd5bef90991c93f4c9 4 1177.088 1476.224 299.136 vad_silence f53820bba9b86657a991c23380d6c6c9895d401d025dcf705d37355e25eb09b0
orgprog-78 c66527a7463c4e2caa6d4069f948d7e37de12b6b83ca78bd5bef90991c93f4c9 5 1476.224 1804.512 328.288 vad_silence c9b6ddd50213188b6517a6498598253afbee63cbd53bc1a18e8feaf3f4eac5d0
orgprog-78 c66527a7463c4e2caa6d4069f948d7e37de12b6b83ca78bd5bef90991c93f4c9 6 1804.512 2096.288 291.776 vad_silence 47a5a2ae6c271e69a177b40a6700ef53a8a08c71b04e66bf4c556a4d8cbe6673
orgprog-78 c66527a7463c4e2caa6d4069f948d7e37de12b6b83ca78bd5bef90991c93f4c9 7 2096.288 2398.096 301.808 vad_silence 64b85cb452bb9f310291c204f71a98d0e71aff177cc6ee6898d2efb9b82c0276
orgprog-78 c66527a7463c4e2caa6d4069f948d7e37de12b6b83ca78bd5bef90991c93f4c9 8 2398.096 2711.424 313.328 vad_silence d700ff66bc000777e40993424ccdbdbd540694489b0ae9025128be243805da6a
orgprog-78 c66527a7463c4e2caa6d4069f948d7e37de12b6b83ca78bd5bef90991c93f4c9 9 2711.424 3012.368 300.944 vad_silence 050e7a825a0ae835a509915a649b5f1336185c2a0ea2f5aa71f52a26ff350b55
orgprog-78 c66527a7463c4e2caa6d4069f948d7e37de12b6b83ca78bd5bef90991c93f4c9 10 3012.368 3286.816 274.448 vad_silence 6f0fda637917dcead77d5a1fc58d06e980206243a0602d5dfe9c648aab3f86d0
orgprog-78 c66527a7463c4e2caa6d4069f948d7e37de12b6b83ca78bd5bef90991c93f4c9 11 3286.816 3600.0 313.184 end d337a44672f0dd0ba2c51f28fdc5351a3bd7c814fda9020551174ce812b76991
audit_version provider correct total accuracy ci_low ci_high canonical_accuracy high_confidence_correct high_confidence_total high_confidence_accuracy
audit-v4-gpt-curated deepgram/nova-3 6 18 0.3333333333333333 0.1111111111111111 0.5555555555555556 0.16666666666666666 4 16 0.25
audit-v4-gpt-curated elevenlabs/scribe-v2 16 18 0.8888888888888888 0.7222222222222222 1.0 0.7222222222222222 14 16 0.875
audit-v4-gpt-curated google/gemini-3.5-transcribe 17 18 0.9444444444444444 0.8333333333333334 1.0 0.8333333333333334 15 16 0.9375
audit-v4-gpt-curated openai/gpt-transcribe 13 18 0.7222222222222222 0.5 0.8888888888888888 0.6666666666666666 11 16 0.6875
audit-v4-gpt-curated openai/whisper-large-v3 9 18 0.5 0.2777777777777778 0.7222222222222222 0.3333333333333333 8 16 0.5
audit-v4-gpt-curated qwen/qwen3-asr-1.7b 12 18 0.6666666666666666 0.4444444444444444 0.8888888888888888 0.4444444444444444 10 16 0.625
orgprog-78-technical-v1 deepgram/nova-3 6 24 0.25 0.08333333333333333 0.4166666666666667 0.20833333333333334 2 20 0.1
orgprog-78-technical-v1 elevenlabs/scribe-v2 21 24 0.875 0.75 1.0 0.8333333333333334 17 20 0.85
orgprog-78-technical-v1 google/gemini-3.5-transcribe 22 24 0.9166666666666666 0.7916666666666666 1.0 0.6666666666666666 18 20 0.9
orgprog-78-technical-v1 openai/gpt-transcribe 18 24 0.75 0.5833333333333334 0.9166666666666666 0.7083333333333334 15 20 0.75
orgprog-78-technical-v1 openai/whisper-large-v3 15 24 0.625 0.4166666666666667 0.8333333333333334 0.2916666666666667 11 20 0.55
orgprog-78-technical-v1 qwen/qwen3-asr-1.7b 15 24 0.625 0.4166666666666667 0.7916666666666666 0.2916666666666667 13 20 0.65

Audit case curator v3

You curate a reproducible blind human-audit challenge set from disagreements among speech-to-text systems.

The source is Russian technical speech containing English product names, abbreviations, programming terms, and ordinary Russian. You receive candidate alignment spans generated deterministically from several anonymous ASR outputs. You do not receive audio and must not decide which hypothesis is correct.

Objective

Build a technical-terminology challenge set, not a general Russian ASR sample. Select exactly the requested number of cases and narrow each one to the smallest contiguous token span that makes one useful, answerable audit question.

A technical_term case is eligible only when the disputed acoustic span itself is a technical entity or term. Technical context does not make an ordinary Russian target technical.

Hard eligibility gate

For every proposed technical_term, silently complete this sentence:

The disputed span names or renders the technical ______.

Fill the blank with a concrete class such as language, library, product, protocol, standard, API, runtime, framework, identifier, acronym, command, data format, algorithm, or established specialized phrase. If this cannot be done without referring merely to nearby context, reject the candidate.

Eligible examples:

BEAM / Бим / BIM                 runtime acronym
Rustler / Растлер / Raster       library name
F# / эф-шарп / F sharp           programming-language name
ONNX / ONXX / O N X X            format/runtime acronym
Active Record / Entity Framework named software technologies

Ineligible even inside technical discussion:

писать / описать                 ordinary Russian verbs
знать / узнать                   ordinary Russian verbs
вести / отвезти                  ordinary Russian verbs
образцово / особо                ordinary Russian adverbs
читать / считывать               ordinary Russian verbs
backend работает / backend не работает

The last example contains a technical word, but the disputed decision is the ordinary predicate. Do not select it as a technical case.

general_content is a separate control stratum. Return it only when the request explicitly asks for a nonzero number. If general_content requested count is zero, return no ordinary-Russian cases at all. Never fill a technical quota with general content, and never invent a general-content quota from prior examples.

Selection policy

The primary failure mode to avoid is false mutual exclusion caused by alignment. A candidate option can be a deletion or expansion of another, not an alternative phrase. Before selecting a question, compare each option with its immediate context and reject any case where the source utterance may contain both apparent alternatives.

Example to reject:

Context: "native bundle ... [TARGET] ..."
Hypothesis A: "under Android"
Hypothesis B: "under iOS and under Android"

Do not turn this into "Android versus iOS". The hypotheses disagree about an omitted phrase; the source may contain both platform names. Select the complete span (Android versus iOS and Android) only if it remains a useful atomic omission question, otherwise reject it.

Examples of valid technical disagreements include all scripts:

BEAM / Бим / BIM
Erlang / Эрланг / Ирланг
Rustler / Растлер / Raster
F# / эф-шарп / F sharp
ONNX / ONXX / O N X X

Cyrillic transliteration is a valid technical rendering and must not be classified as ordinary Russian merely because it uses Cyrillic.

  1. Prefer material lexical disagreements over punctuation, casing, optional fillers, false starts, or excerpt-boundary differences.
  2. Select only atomic English/IT terms, product names, abbreviations, and jargon where hypotheses differ materially in identity or canonical spelling. This is a hard requirement, not merely a preference.
  3. Include exactly the requested number of ordinary-Russian general_content controls. A requested count of zero means none.
  4. Avoid questions combining independent decisions. For example, split Rustler / NIF / Rust / RustQ into separate cases.
  5. Avoid duplicate occurrences of the same underlying term unless repeated-use consistency is itself valuable and alternatives differ materially.
  6. Prefer spans whose answer is not completely revealed by the surrounding context alone. The eventual annotator will hear audio.
  7. Keep each selected range within its source candidate's token bounds.
  8. Keep target spans short—normally one to five tokens. Use a longer span only when it is one indivisible technical phrase.
  9. technical_term means the disputed target itself is a product name, library, language, protocol, standard, acronym, identifier, command, algorithm, data format, runtime, API, or established specialized IT phrase. Nearby technical context is insufficient.
  10. general_content means ordinary lexical or grammatical content and must not be a filler-only difference.
  11. Do not output a correct answer, canonical reference, winning option, or any judgment of which model is right.
  12. Candidate and model order has no meaning.

Output

Each case must reference one input candidate_id, assign a question type, and return one target_text for every model hypothesis. Each target must be an exact contiguous substring of that hypothesis after the supplied normalization; use an empty string when the model omitted the target. Add a short selection reason. Do not add facts or identify a correct option.

Routine judge protocol

Model and condition

  • Model: google/gemini-3.7-flash
  • Prompt version: llm-judge-v7
  • Condition: text only
  • Temperature: 0
  • Reasoning effort: high
  • Maximum output tokens: 4,000

System prompt

You evaluate ASR hypotheses for Russian technical speech with English names, acronyms, and jargon.

This is intentionally a TEXT-ONLY condition. It measures what can be inferred from language and technical prior knowledge without listening. Set needs_audio=true whenever context does not actually discriminate among acoustically different but contextually plausible candidates.

Rules:
1. Labels are anonymous and order has no meaning.
2. Several options can express the same spoken phrase with different script, spacing, capitalization, or transliteration.
3. Return every option semantically compatible with the likely intended phrase.
4. Distinguish likely intended phrase from preferred canonical technical spelling.
5. Do not reward detail, fluency, or familiarity alone.
6. Do not invent a term unless all options are inadequate.
7. The label fields must contain candidate LABELS like ["A", "C"], never candidate text.
8. No tools or external search. Return JSON only.

User-message template

Case ID: {case_id}
Context:
{context_before} [TARGET] {context_after}
Candidates:
A. {candidate_a}
B. {candidate_b}
...
Use only the evidence allowed in this condition. Return one JSON object matching the schema.

Structured response fields

acceptable_labels: string[]
canonical_labels: string[]
heard_text: string
canonical_text: string
needs_audio: boolean
needs_human_review: boolean
intelligibility: not_available | clear | partially_clear | unclear
confidence: number from 0 to 1
decision_basis: audio | known_term | grammar | context | multiple_plausible | insufficient_evidence
short_reason: string

Unknown fields are forbidden. Candidate labels are validated against those presented in the request.

Option permutation

Source option labels are deterministically shuffled for every tuple:

(prompt_version, case_id, judge_model, condition)

The judge sees newly assigned display labels. Its answer is mapped back to the frozen source labels before storage and scoring. The two repeatability runs changed prompt_version, producing independent deterministic permutations while leaving the prompt text and model unchanged.

Confidence policy

The full-coverage score uses all completed judgments. The high-confidence view includes only cases with confidence >= 0.75; lower-confidence cases are automated abstentions in that view.

{
"benchmark_version": "russian-technical-stt-v1",
"curator": {
"config": "config/audit-curator.json",
"prompt": "prompts/audit-case-curator-v3.md",
"prompt_version": "audit-case-curator-v3",
"model": "openai/gpt-5.6-sol",
"reasoning_effort": "medium",
"technical_count": 24,
"general_count": 0
},
"judge": {
"config": "config/judge-models.json",
"prompt_version": "llm-judge-v7",
"model": "google/gemini-3.7-flash",
"condition": "text_only",
"confidence_threshold": 0.75,
"max_parallel": 4
},
"artifact_sha256": {
"config/transcription-models.json": "0bd3c2561ffcdeda307af3f852e29d90241f95514c46990d37fca1276e50894c",
"config/audit-curator.json": "3aca9998b6d744ca99c4308d2addd6de8994c6b6f5072d09af4ac62cd3f71797",
"config/judge-models.json": "d4d7d5f573066644336e21187d7e33b372903b979358978b155489e5fc2aeaed",
"prompts/audit-case-curator-v3.md": "30f31b390e1ca1d447b0696318935fcf427b74419d6a9ee790d35c812b3bf7e6"
},
"frozen_audits": [
{
"audit_version": "audit-v4-gpt-curated",
"run_id": "podlodka-487-raw-v2",
"episode_id": "podlodka-487",
"audio_sha256": "a870431dae3be016f50756d94efe8967831a0e78df258ac7b97f53927b73939e"
},
{
"audit_version": "orgprog-78-technical-v1",
"run_id": "orgprog-78-raw-v1",
"episode_id": "orgprog-78",
"audio_sha256": "c66527a7463c4e2caa6d4069f948d7e37de12b6b83ca78bd5bef90991c93f4c9"
}
],
"provider_models": [
{
"id": "elevenlabs/scribe-v2",
"gateway": "elevenlabs",
"model": "scribe_v2",
"enabled": true
},
{
"id": "openai/gpt-transcribe",
"gateway": "openrouter",
"model": "openai/gpt-transcribe",
"enabled": true
},
{
"id": "deepgram/nova-3",
"gateway": "openrouter",
"model": "deepgram/nova-3",
"enabled": true
},
{
"id": "google/chirp-3",
"gateway": "openrouter",
"model": "google/chirp-3",
"enabled": false,
"disabled_reason": "OpenRouter/Google accepts 55s but rejects 90s and 359s recordings; unsuitable for common 5-minute chunks"
},
{
"id": "mistralai/voxtral-small-24b-2507-stt",
"gateway": "openrouter",
"model": "mistralai/voxtral-small-24b-2507-stt",
"enabled": false,
"disabled_reason": "OpenRouter returned unsupported/malformed audio for M4A smoke test"
},
{
"id": "openai/whisper-large-v3",
"gateway": "openrouter",
"model": "openai/whisper-large-v3",
"enabled": true
},
{
"id": "google/gemini-3.5-transcribe",
"gateway": "vercel",
"model": "google/gemini-3.5-transcribe",
"enabled": true
},
{
"id": "qwen/qwen3-asr-1.7b",
"gateway": "openrouter",
"model": "qwen/qwen3-asr-1.7b",
"enabled": true
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment