omniasr-ctc-300m-waxal-orm
Fine-tune of Meta's Omnilingual ASR (wav2vec2_asr (CTC)) on Oromo conversational speech from the WAXAL corpus, part of a 19-language WAXAL×Omnilingual ASR benchmark.
Results (held-out WAXAL test set)
| Metric | Score |
|---|---|
| WER | 25.8% |
| UER (unit/char error rate) | 6.2% |
Fine-tuned for 5,000 steps from facebook/omniASR-CTC-300M on 2×H200.
Usage
# pip install git+https://github.com/facebookresearch/omnilingual-asr.git
from pathlib import Path
import torch
from huggingface_hub import snapshot_download
from fairseq2.data.tokenizers.hub import load_tokenizer
from omnilingual_asr.models.inference.pipeline import ASRInferencePipeline
from fairseq2.models.wav2vec2.asr.hub import get_wav2vec2_asr_model_hub as get_hub
ckpt = snapshot_download("waxal-benchmarking/omniasr-ctc-300m-waxal-orm")
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
dtype = torch.bfloat16 if device.type == "cuda" else torch.float32
hub = get_hub()
config = hub.get_arch_config("300m")
model = hub.load_custom_model(Path(ckpt) / "model", config, device=device, dtype=dtype)
tokenizer = load_tokenizer("omniASR_tokenizer_v1")
pipe = ASRInferencePipeline(model_card=None, model=model, tokenizer=tokenizer, device=device, dtype=dtype)
texts = pipe.transcribe(["your_audio.flac"]) # CTC needs no language token
print(texts)
Audio should be mono 16 kHz (the pipeline resamples if needed); .transcribe() also accepts a
list of raw bytes or np.int8 arrays. Keep clips under 40 s.
Checkpoint format
Native fairseq2 sharded checkpoint (model/pp_00/tp_00/sdp_00.pt + model.yaml) —
not a transformers model, so AutoModel will not load it. Load with the
omnilingual_asr / fairseq2
libraries, pointing the ASR recipe's model.path at the downloaded model/ directory
with model.family=wav2vec2_asr, model.arch=300m, tokenizer=omniASR_tokenizer_v1.
Citation
This model accompanies the WAXAL ASR Benchmark (arXiv:2606.02375).
@article{waxalnet2026,
title = {The WAXAL ASR Benchmark: Fine-Tuned Edge Models Across 19 African Languages},
author = {Olufemi, Victor Tolulope and Babatunde, Oreoluwa and Njema, Ramsey and
Gbotemi, Bolarinwa and Yen, Wanchi Lucia and Uzodinma, John and
Ajayi, Sunday and Williams, Oluwademilade and Moshood, Kausar and
Anyaele, Innocent Elendu and Arefaine, Akebert Tesfahunegn and
Hunzwi, Candace and Daniel, Wongel Dawit and Namuganga, Emmilly Immaculate and
Kadima, Cleophas and Bahizire, Athanase Biluge and Ranaivoson, Onitsiky and
Aaron, Emmanuel and Ladislaus, Nicholaus Dismas and Muhammed, Idris and
Simenya, Jonathan Enoch and Koome, Martin and Endaylalu, Matewos Tegete and
Adeyemo, Peter Ifeoluwa and Birindwa, Hondi Prisca and Eze-Mbey, Ukachi Agnes and
Oduro-Yeboah, Yacoba and Aremu, Toluwani and Adjovi, Pericles and
Ngueajio, Mikel K and Mitra, Prasenjit},
year = {2026},
note = {arXiv preprint arXiv:2606.02375}
}
Acknowledgements
We thank the native-speaker contributors for their language expertise and evaluation support. This work was supported by Lynguallabs (compute, researchers & storage), Open Token (compute resources), and CMU Africa (researchers & native speakers).
Model tree for waxal-benchmarking/omniasr-ctc-300m-waxal-orm
Base model
facebook/omniASR-CTC-300M