Results (normalized CER / WER, %)
Table with columns: Test set, CER, WER, Whisper-large-v3 (zero-shot) CER| Test set | CER | WER | Whisper-large-v3 (zero-shot) CER |
|---|
| FLEURS | 4.51 | 14.6 | 8.74 |
| Common Voice 25 | 16.97 | 20.42 | 26.36 |
| Combined | 12.69 | 18.33 | 22.9 |
~1.8x CER reduction over Whisper zero-shot on the combined test set.
Usage
import torch, torchaudio
from transformers import WhisperForConditionalGeneration, WhisperProcessor
model = WhisperForConditionalGeneration.from_pretrained("BuzzASR/swahili", torch_dtype=torch.float16).to("cuda").eval()
proc = WhisperProcessor.from_pretrained("BuzzASR/swahili")
wav, sr = torchaudio.load("audio.wav")
feats = proc(wav[0], sampling_rate=16000, return_tensors="pt").input_features.to("cuda").half()
ids = model.generate(feats, num_beams=1, no_repeat_ngram_size=3, repetition_penalty=1.2)
print(proc.batch_decode(ids, skip_special_tokens=True)[0])
The language/task prompt is baked into the generation config, so no language= argument is needed.
Training data
FLEURS + Common Voice Corpus 25.0 (Mozilla, March 2025; https://commonvoice.mozilla.org/en/datasets), capped per the paper. Text-only data from the Goldfish corpus (Chang et al., 2026).
Limitations
Monolingual (Swahili only). Evaluated on FLEURS / Common Voice test splits; other domains or dialects may differ.
Citation
Project page: https://lemn-lab.github.io/buzzasr-docs/