dondo_v1_graphic

w2v-bert-ada_ewe_fat_fra_gaa_nzi_twi_en β€” Southern Ghana multilingual ASR

DONDO (Democratizing Oral Neural Dialect Ontology) open multilingual speech-recognition base model for Southern Ghana. A single checkpoint covering: English, Adangme, Ewe, Fante, French, Ga, Nzema, As. Twi. Fine-tuned from w2v-BERT 2.0.

  • Region: Southern Ghana
  • Languages: English, Adangme, Ewe, Fante, French, Ga, Nzema, As. Twi
  • Task: Automatic Speech Recognition (CTC), language-conditioned
  • Backbone: w2v-BERT 2.0
  • License: Apache-2.0 (attribution only; commercial use permitted)
  • Best result: 11.4% average WER (Step 2)
  • Paper: arXiv:2607.21540
  • Part of: the DONDO family β€” https://huggingface.co/KhayaAI

Intended use

A multilingual base model for the languages of Southern Ghana. 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):

  1. Step 1 β€” coarse adaptation (LR 5e-5): adapt the shared encoder to the full multilingual mixture.
  2. Step 2 β€” annealing (LR 5e-6): recover most of the gap to monolingual baselines; for some languages, surpass them.
  3. Step 3 β€” optional (LR 5e-7): a further small improvement.

Evaluation β€” WER (%)

Setting Avg English Adangme Ewe Fante French Ga Nzema As. Twi
Monolingual β€” 16.9 5.38 4.5 30.1 8.5 9.7 12.6 15.75
Step 1 (5e-5) 14.7 34.9 11.6 8.41 18.1 6.87 19.4 27.9 19.3
Step 2 (5e-6) 11.4 27.4 8.78 6.57 13.4 3.64 16.0 20.8 14.7

"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.

import torch, torchaudio
from transformers import AutoProcessor, AutoModelForCTC

model_id = "KhayaAI/w2v-bert-ada_ewe_fat_fra_gaa_nzi_twi_en"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForCTC.from_pretrained(model_id)

# Map each supported language to a fixed integer id (see repo for the full map)
LANGUAGE_MAP = { "English": 0, "French": 1, "...": 2 }   # example

def add_language_prefix(features, lang_id, num_langs, prefix_len=1):
    # features: (time, feature_dim). Build a one-hot language vector, map it
    # into the feature dimension, repeat over `prefix_len` frames and prepend.
    T, D = features.shape
    lang_vec = torch.zeros(D)
    lang_vec[lang_id % D] = 1.0                 # crude one-hot -> feature bin
    prefix = lang_vec.unsqueeze(0).repeat(prefix_len, 1)
    return torch.cat([prefix, features], dim=0)

speech, sr = torchaudio.load("audio.wav")
if sr != 16000:
    speech = torchaudio.functional.resample(speech, sr, 16000)
feats = processor(speech.squeeze().numpy(), sampling_rate=16000,
                  return_tensors="pt").input_features[0]

lang_id = LANGUAGE_MAP["English"]
feats = add_language_prefix(feats, lang_id, num_langs=len(LANGUAGE_MAP))

with torch.no_grad():
    logits = model(input_features=feats.unsqueeze(0)).logits
pred_ids = torch.argmax(logits, dim=-1)
print(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.

Citation

@article{azunre2026dondo,
  title         = {DONDO: Open w2v-BERT Speech Recognition Base Models for African Languages},
  author        = {Azunre, Paul and Ibrahim, Naafi and Budu, Joel and Adu-Gyamfi, Lawrence},
  year          = {2026},
  eprint        = {2607.21540},
  archivePrefix = {arXiv},
  primaryClass  = {cs.CL},
  note          = {Democratizing Oral Neural Dialect Ontology. Funded by the Huniki Federation.}
}

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.

Downloads last month
144
Safetensors
Model size
0.6B params
Tensor type
F32
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for KhayaAI/w2v-bert-ada_ewe_fat_fra_gaa_nzi_twi_en

Quantizations
1 model

Space using KhayaAI/w2v-bert-ada_ewe_fat_fra_gaa_nzi_twi_en 1

Collection including KhayaAI/w2v-bert-ada_ewe_fat_fra_gaa_nzi_twi_en

Paper for KhayaAI/w2v-bert-ada_ewe_fat_fra_gaa_nzi_twi_en

Evaluation results