Results
Error rates in percent. CER and WER are computed after lowercasing and
removing punctuation; raw CER compares the output exactly as produced.
Table with columns: Test set, Clips, Speakers, CER, WER, raw CER| Test set | Clips | Speakers | CER | WER | raw CER |
|---|
| official test split | 4,983 | 258 | 5.5 | 23.6 | 7.0 |
| run 2's test set | 1,122 | 80 | 5.2 | 22.8 | 6.7 |
For comparison, stock Whisper-large-v3 gets 33.0% CER on the official test
split. The full comparison is in the write-up.
Usage
import torchfrom transformers import pipeline asr = pipeline( "automatic-speech-recognition", model="ifs/whisper-large-v3-tt-cv27-run1", dtype=torch.float16, # torch.float32 on a CPU device="cuda", # or "cpu")result = asr( "audio.mp3", return_timestamps=True, # needed for audio longer than 30 seconds generate_kwargs={ "language": "tatar", "task": "transcribe", "num_beams": 1, "no_repeat_ngram_size": 3, "repetition_penalty": 1.2, },)print(result["text"])
The decoding settings are the ones used in evaluation; they follow
BuzzASR. The weights are stored in
float32 (6.2 GB); float16 halves the memory and works well for inference.
Training data
All clips come from the validated bucket of Common Voice Scripted Speech 27.0
Tatar. This run kept the official test split untouched, which leaves few
speakers for everything else:
Table with columns: Split, Clips, Speakers, How it was built| Split | Clips | Speakers | How it was built |
|---|
| test | 4,983 | 258 | the official test split |
| dev | 628 | 2 | two light speakers, one clip per sentence |
| train | 19,605 | 9 | every other validated clip sharing no speaker and no sentence with dev or test |
One speaker accounts for 58% of the training clips. The exact splits are in
the splits/ folder of this repository. Labels keep their
original casing and punctuation.
Training procedure
Full fine-tuning following the BuzzASR recipe, with
finetune.py --max-dev-speaker-clips 350:
- learning rate 6.48e-6 for the decoder, 0.3 times that for the encoder
- cosine schedule, 150 warm-up steps, weight decay 4e-5
- effective batch size 32 (4 clips × 8 gradient accumulation steps)
- bf16 mixed precision, with the weights loaded in float32
- evaluation on dev CER, early stopping with patience 3, best checkpoint kept
- seed 42
Hardware: one NVIDIA A100 80GB on RunPod. Software: PyTorch 2.8.0,
Transformers 5.18.0 (full environment in the
write-up).
Limitations
- Trained on only 9 speakers, one of whom contributes 58% of the clips.
- Evaluated on read speech only. Accuracy on spontaneous speech, such as
YouTube videos or podcasts, is untested and likely lower.
- Code-switching into Russian and timestamp accuracy are untested.
Licence
MIT, like the base model. The training data is CC0.
Author
Ilnar Salimzianov