Instructions to use BuzzASR/wolof with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use BuzzASR/wolof with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("automatic-speech-recognition", model="BuzzASR/wolof")# Load model directly from transformers import AutoProcessor, AutoModelForSpeechSeq2Seq processor = AutoProcessor.from_pretrained("BuzzASR/wolof") model = AutoModelForSpeechSeq2Seq.from_pretrained("BuzzASR/wolof", device_map="auto") - Notebooks
- Google Colab
- Kaggle
| language: wo | |
| license: mit | |
| library_name: transformers | |
| pipeline_tag: automatic-speech-recognition | |
| base_model: openai/whisper-large-v3 | |
| tags: [automatic-speech-recognition, whisper, wolof, buzzasr] | |
| datasets: [google/fleurs] | |
| metrics: [cer, wer] | |
| # BuzzASR — Wolof | |
| A monolingual automatic speech recognition model for **Wolof**, fine-tuned from | |
| [openai/whisper-large-v3](https://huggingface.co/openai/whisper-large-v3). Part of **BuzzASR**, | |
| a suite of 102 language-specialized ASR models (Findings of EMNLP 2026). | |
| This model uses **full fine-tuning (native per-language tokenizer replacement + text multitask fine-tuning)**. | |
| ## Results (normalized CER / WER, %) | |
| | Test set | CER | WER | Whisper-large-v3 (zero-shot) CER | | |
| |---|---|---|---| | |
| | FLEURS | 15.67 | 43.89 | 79.82 | | |
| | Common Voice 25 | -100.0 | -100.0 | None | | |
| | Combined | 15.67 | 43.89 | 79.82 | | |
| ~5.1x CER reduction over Whisper zero-shot on the combined test set. | |
| ## Usage | |
| ```python | |
| import torch, torchaudio | |
| from transformers import WhisperForConditionalGeneration, WhisperProcessor | |
| model = WhisperForConditionalGeneration.from_pretrained("BuzzASR/wolof", torch_dtype=torch.float16).to("cuda").eval() | |
| proc = WhisperProcessor.from_pretrained("BuzzASR/wolof") | |
| wav, sr = torchaudio.load("audio.wav") # 16 kHz mono | |
| 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](https://huggingface.co/datasets/google/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 (Wolof only). Evaluated on FLEURS / Common Voice test splits; other domains or dialects may differ. | |
| ## Citation | |
| Project page: https://lemn-lab.github.io/buzzasr-docs/ | |