w2v-bert-hau_pcm_wol_en_fra — Nigeria & Senegal multilingual ASR
DONDO (Democratizing Oral Neural Dialect Ontology) open multilingual speech-recognition base model for
Nigeria & Senegal. A single checkpoint covering: English, Hausa, Wolof, Pidgin (NG), French. Fine-tuned from
w2v-BERT 2.0.
Region: Nigeria & Senegal
Languages: English, Hausa, Wolof, Pidgin (NG), French
A multilingual base model for the languages of Nigeria & Senegal. One checkpoint
transcribes any of its languages when steered with a language prefix (below). Use
directly, or fine-tune further on your own in-domain data. DONDO is also an open
test bed for new low-resource speech techniques; aligned research groups are
welcome to collaborate.
Training data
Primarily read speech derived from religious texts with verified transcripts
in standard orthography, pooled across the region's languages so the shared
encoder learns cross-lingual acoustic structure (especially helpful for the
smallest languages).
Training procedure
Two-step learning-rate-annealed fine-tuning (a third step for some families):
Step 1 — coarse adaptation (LR 5e-5): adapt the shared encoder to the full
multilingual mixture.
Step 2 — annealing (LR 5e-6): recover most of the gap to monolingual
baselines; for some languages, surpass them.
Step 3 — optional (LR 5e-7): a further small improvement.
Evaluation — WER (%)
Setting
Avg
English
Hausa
Wolof
Pidgin (NG)
French
Monolingual
—
16.9
11.6
7.3
7.5
8.5
Step 1 (5e-5)
18.3
48.5
15.4
24.4
22.6
14.2
Step 2 (5e-6)
11.1
32.5
10.2
14.9
13.2
5.78
"x" = not evaluated; "-" = not computed at that step. Lower is better.
How to use
This is a multilingual model. Language identity is injected as a short
one-hot language prefix prepended to the acoustic features, so you must tell
the model which language to transcribe. Not sure where to start? Try the
interactive Demo linked above first.
Use the exact language_map below (shared across all DONDO multilingual models):
python
1import torch, torchaudio
2from transformers import AutoProcessor, AutoModelForCTC
34model_id ="KhayaAI/w2v-bert-hau_pcm_wol_en_fra"5processor = AutoProcessor.from_pretrained(model_id)6model = AutoModelForCTC.from_pretrained(model_id)78# Full language -> prefix-id map used by the DONDO multilingual models:9language_map ={"Adangme":0,"Akuapem Twi":1,"Asante Twi":2,"Dagbani":3,"Dagaare":4,10"Ewe":5,"African English":6,"Fante":7,"French":8,"Ga":9,"Gonja":10,11"Gurene":11,"Hausa":12,"Igbo":13,"Kasem":14,"Kikuyu":15,12"Konkomba (Likpakpaanl)":16,"Konkomba (Likoonli)":17,"Krio":18,13"Kusaal":19,"Luo":20,"Mampruli":21,"Mende":22,"Meru/Kimeru":23,14"Nzema":24,"Pidgin":25,"Shona":26,"Swahili":27,"Temne":28,15"Wali":29,"Wolof":30,"Yoruba":31}1617defadd_language_prefix(features, lang_id, num_langs, prefix_len=1):18# features: (time, feature_dim). Build a one-hot language vector, map it19# into the feature dimension, repeat over `prefix_len` frames and prepend.20 T, D = features.shape
21 lang_vec = torch.zeros(D)22 lang_vec[lang_id % D]=1.0# crude one-hot -> feature bin23 prefix = lang_vec.unsqueeze(0).repeat(prefix_len,1)24return torch.cat([prefix, features], dim=0)2526speech, sr = torchaudio.load("audio.wav")27if sr !=16000:28 speech = torchaudio.functional.resample(speech, sr,16000)29feats = processor(speech.squeeze().numpy(), sampling_rate=16000,30 return_tensors="pt").input_features[0]3132lang_id = language_map["Asante Twi"]# pick any language this model supports33feats = add_language_prefix(feats, lang_id, num_langs=len(language_map))3435with torch.no_grad():36 logits = model(input_features=feats.unsqueeze(0)).logits
37pred_ids = torch.argmax(logits, dim=-1)38print(processor.batch_decode(pred_ids)[0])
Limitations
Read-religious-text domain; specify the target language via the prefix (no
built-in language ID yet). WERs are in-domain. The African English column is
harder in the multilingual setting than in a dedicated model.
License
Released under the Apache-2.0 license. You are free to use, modify, redistribute and build upon this model, including for commercial purposes. The only substantive requirement is attribution.
Professional services & hosted APIs
This model is free to use under Apache-2.0. If your team would like help
deploying it offline on your own infrastructure and data, Khaya AI offers
professional services (integration, fine-tuning and on-premises deployment). For
ready-to-use and more advanced ASR, including APIs for interested parties,
see Khaya Studio.
1@article{azunre2026dondo,
2 title = {DONDO: Open w2v-BERT Speech Recognition Base Models for African Languages},
3 author = {Azunre, Paul and Ibrahim, Naafi and Budu, Joel and Adu-Gyamfi, Lawrence},
4 year = {2026},
5 eprint = {2607.21540},
6 archivePrefix = {arXiv},
7 primaryClass = {cs.CL},
8 note = {Democratizing Oral Neural Dialect Ontology. Funded by the Huniki Federation.}
9}
Acknowledgements
Funded by the Huniki Federation. We thank Ghana-NLP and Algorine Research for their support with benchmarking, testing and data, and Hugging Face for compute credits. We also thank the language communities and data contributors whose recordings and transcriptions made this work possible.