sobadsodead/asr-spell-correction-ru-hw01
Russian ASR correction: homework 01 1020 pairs: 450 Groq-generated ASR-like inputs, 180 Groq-generated numeral-to-word pairs, and 390 identity examples added by copying screened clean targets. Model: openai/gpt-oss-120b. Generation: 8bae1a605e8506a1; prompt version: groq_asr_numbers_v2. The ASR target names come from the existing Groq-generated pool targets.jsonl. No Python character corruption is used. This is synthetic text, not real ASR output. Generation and… See the full description on the dataset page: https://huggingface.co/datasets/sobadsodead/asr-spell-correction-ru-hw01.
Russian ASR correction: homework 01
1020 pairs: 450 Groq-generated ASR-like inputs, 180 Groq-generated numeral-to-word pairs, and 390 identity examples added by copying screened clean targets. Model: openai/gpt-oss-120b. Generation: 8bae1a605e8506a1; prompt version: groq_asr_numbers_v2. The ASR target names come from the existing Groq-generated pool targets.jsonl. No Python character corruption is used. This is synthetic text, not real ASR output.
Generation and checks
For each small batch, Groq receives fixed clean names with IDs and a requested error family: phonetic, boundaries, mixed alphabet, word confusion, or inflection. The code joins returned inputs to the fixed targets. It rejects copies, cosmetic changes, duplicate inputs, letter fragments, added accents, gross spelling changes, known clean-entity substitutions, and similarity to the 96 homework references. Manual target exclusions are also applied. These checks do not prove acoustic plausibility or correct spelling of every entity. error_type records the requested family, not an independently verified classification of the generated error.
Groq generates both strings for numeric pairs, e.g. Выпуск 2 → Выпуск два. num2words verifies cardinal numbers 1–2099 and rejects other textual changes. The numeric subset covers simple numbers in nominative form; dates, ordinals and case-dependent agreement are outside this subset. All final targets contain words, not digits. This is training data: no number conversion is applied to WER or predictions.
Splits and evaluation
Train: 913; validation: 107. Splits group normalized targets with seed 42, keeping variants of the same target together. Synthetic validation selects the training checkpoint. The 96 real audio references are the agreed development evaluation, not an independent test set. Exact, near and known alias matches are excluded again before training; automatic string matching cannot guarantee that every semantic alias has been detected. All three pipelines use the same normalized WER: NFKC, case folding, ё→е, punctuation removal and whitespace normalization. Digits and their spoken forms remain different words. Improvement must be measured, not assumed.
Artifacts and reproduction
dataset.jsonl, hf_dataset/, train.parquet and validation.parquet contain the same final rows. Training uses input and output; Spell correct: is added during tokenization. Other columns are provenance and split metadata, including id, target_id, kind, category, error_type, model, batch, review. groq/8bae1a605e8506a1/ stores the manifest, accepted candidates, rejected rows and batch progress. api_log.jsonl stores prompts, settings and raw API responses, without credentials. Old trial logs may remain as experimental evidence and are not training data. Repeated collection resumes saved work; fresh API results vary.
Run the notebook step 3 or python step3_data.py collect followed by python step3_data.py export. Continue with steps 4 and 5 for training and WER.
