Instructions to use BuzzASR/occitan with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use BuzzASR/occitan with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("automatic-speech-recognition", model="BuzzASR/occitan")# Load model directly from transformers import AutoProcessor, AutoModelForSpeechSeq2Seq processor = AutoProcessor.from_pretrained("BuzzASR/occitan") model = AutoModelForSpeechSeq2Seq.from_pretrained("BuzzASR/occitan", device_map="auto") - Notebooks
- Google Colab
- Kaggle
File size: 2,357 Bytes
69361b6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | ---
language: oc
license: mit
library_name: transformers
pipeline_tag: automatic-speech-recognition
base_model: openai/whisper-large-v3
tags: [automatic-speech-recognition, whisper, occitan, buzzasr]
datasets: [google/fleurs]
metrics: [cer, wer]
---
# BuzzASR — Occitan
A monolingual automatic speech recognition model for **Occitan**, 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)**.
> 🏆 **State-of-the-art (open-source).** On the combined FLEURS + Common Voice test set, this model
> achieves the lowest CER of every open system we compare against: Whisper-large-v3, Omnilingual 1B/7B, MMS, Qwen3-ASR, and Cohere Transcribe.
## Results (normalized CER / WER, %)
| Test set | CER | WER | Whisper-large-v3 (zero-shot) CER |
|---|---|---|---|
| FLEURS | 10.86 | 28.69 | 24.22 |
| Common Voice 25 | 1.76 | 4.38 | 24.63 |
| Combined | 10.24 | 26.87 | 24.07 |
~2.4x 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/occitan", torch_dtype=torch.float16).to("cuda").eval()
proc = WhisperProcessor.from_pretrained("BuzzASR/occitan")
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 (Occitan only). Evaluated on FLEURS / Common Voice test splits; other domains or dialects may differ.
## Citation
Project page: https://lemn-lab.github.io/buzzasr-docs/
|