Instructions to use boazsew/Ethio-ASR-mms-300m-uf with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use boazsew/Ethio-ASR-mms-300m-uf with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("automatic-speech-recognition", model="boazsew/Ethio-ASR-mms-300m-uf")# Load model directly from transformers import AutoProcessor, AutoModelForCTC processor = AutoProcessor.from_pretrained("boazsew/Ethio-ASR-mms-300m-uf") model = AutoModelForCTC.from_pretrained("boazsew/Ethio-ASR-mms-300m-uf") - Notebooks
- Google Colab
- Kaggle
Ethio-ASR-mms-300m-uf
Reproduction of MMS-300M fine-tune. Beats the paper-published checkpoint by 1.06% macro WER on the WAXAL test split.
This model is part of an independent reproduction of Ethio-ASR
(Abdullah et al., 2026) carried out at the University of Florida on
the HiPerGator HPC cluster (NVIDIA B200 GPUs). It is fine-tuned from
facebook/mms-300m on the
WAXAL Ethiopian subset
covering Amharic, Tigrinya, Oromo, Sidaama and Wolaytta.
Performance
Word Error Rate on the WAXAL test split (18 810 utterances), with paper-faithful post-processing (Ge'ez homophone collapse + punctuation removal):
| Language | WER (%) |
|---|---|
| Amharic | 30.85 |
| Oromo | 26.64 |
| Sidaama | 31.08 |
| Tigrinya | 42.74 |
| Wolaytta | 38.21 |
| Macro avg | 33.90 |
Without post-processing the macro WER is 37.55% (raw model output).
Usage
from transformers import AutoProcessor, AutoModelForCTC
import torch, librosa
REPO = "boazsew/Ethio-ASR-mms-300m-uf"
processor = AutoProcessor.from_pretrained(REPO)
model = AutoModelForCTC.from_pretrained(REPO, torch_dtype=torch.bfloat16).to("cuda").eval()
# Load any 16 kHz audio
audio, sr = librosa.load("your_audio.wav", sr=16000, mono=True)
inputs = processor(audio, sampling_rate=16000, return_tensors="pt")
key = "input_features" if "input_features" in inputs else "input_values"
in_kwargs = {key: inputs[key].to("cuda", dtype=torch.bfloat16)}
if "attention_mask" in inputs:
in_kwargs["attention_mask"] = inputs["attention_mask"].to("cuda")
with torch.no_grad():
logits = model(**in_kwargs).logits
pred_ids = logits.argmax(dim=-1)
text = processor.batch_decode(pred_ids)[0]
print(text) # starts with [AMH]/[TIR]/[ORM]/[WAL]/[SID] language tag
Training details
- Encoder:
facebook/mms-300m(300M parameters) - Dataset:
badrex/waxalNLP-ethiopic-final(~1106 h, 5 Ethiopian languages) - Max steps: 36 800 (≈7 epochs, effective batch size 32)
- Hardware: 1 × NVIDIA B200
- Optimizer: AdamW, linear warmup over 10 % of steps, mixed-precision bf16 (except AfriHuBERT which used fp32)
- CTC objective with prepended [LANG] token (joint LID + ASR)
Citation
If you use this model please cite both the original paper and the reproduction:
@article{abdullah2026ethioasr,
title={Ethio-ASR: Joint Multilingual Speech Recognition and Language
Identification for Ethiopian Languages},
author={Abdullah, Badr M. and others},
journal={arXiv preprint arXiv:2603.23654},
year={2026}
}
Full reproduction code, configs and evaluation utilities are at
https://github.com/boaztulu/Ethio-ASR under reproduction_uf/.
License
CC-BY-NC-4.0 — inherits from the upstream facebook/mms-300m license.
- Downloads last month
- 24
Model tree for boazsew/Ethio-ASR-mms-300m-uf
Base model
facebook/mms-300m