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 | 11.09 | 50.0 | 28.47 |
| Common Voice 25 | 29.99 | 42.92 | 49.2 |
| Combined | 24.97 | 44.8 | 43.65 |
~1.7x 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/luganda", torch_dtype=torch.float16).to("cuda").eval()
proc = WhisperProcessor.from_pretrained("BuzzASR/luganda")
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 (Luganda only). Evaluated on FLEURS / Common Voice test splits; other domains or dialects may differ.
Citation
Project page: https://lemn-lab.github.io/buzzasr-docs/