Instructions to use oluwagbotty/w2vbert-ky-ft with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use oluwagbotty/w2vbert-ky-ft with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("automatic-speech-recognition", model="oluwagbotty/w2vbert-ky-ft")# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForCTC processor = AutoProcessor.from_pretrained("oluwagbotty/w2vbert-ky-ft") model = AutoModelForCTC.from_pretrained("oluwagbotty/w2vbert-ky-ft", device_map="auto") - Notebooks
- Google Colab
- Kaggle
w2v-BERT 2.0 for Kinyarwanda speech, fine-tuned for one epoch on stuttered speech
This is an early, one-epoch version. A longer run with better results is in oluwagbotty/w2vbert-ky-ft-3ep, which we suggest you use instead.
badrex/w2v-bert-2.0-kinyarwanda-asr (w2v-BERT 2.0 with a CTC head, about 600 million parameters, trained on about 1,000 hours of Kinyarwanda) fine-tuned on the CDLI non-standard speech dataset, whose speakers are mostly young adults who stutter. It is a CTC model, so it cannot get stuck in repetition loops. It writes lower-case Kinyarwanda letters, spaces and apostrophes, with no punctuation.
How to use
import soundfile as sf
import torch
from transformers import AutoProcessor, Wav2Vec2BertForCTC
repo = "oluwagbotty/w2vbert-ky-ft"
processor, model = AutoProcessor.from_pretrained(repo), Wav2Vec2BertForCTC.from_pretrained(repo).eval()
audio, rate = sf.read("clip_16khz_mono.wav") # 16 kHz, mono
inputs = processor(audio, sampling_rate=16000, return_tensors="pt")
with torch.no_grad():
logits = model(**inputs).logits
print(processor.batch_decode(logits.argmax(-1))[0])
Results
Test split of the CDLI Kinyarwanda dataset, 1,169 recordings from 9 speakers, greedy decoding, with plain scoring (Whisper's basic text normaliser): WER 42.8%, CER 12.8%, per-utterance WER 44.6%. Before fine-tuning the same model scored WER 49.7% and CER 15.2%. A second one-epoch run with the same settings gave WER 42.3% and CER 12.5%, so the two agree within the noise of this test set. Validation split (6 speakers): WER 44.05% at the chosen checkpoint (step 500, epoch 0.69), 45.3% after the full epoch.
The test split has only 9 speakers, so differences of less than about 3 WER points between models cannot be confirmed.
Training
- Starting point: badrex/w2v-bert-2.0-kinyarwanda-asr. Train split only. Dev split for choosing the checkpoint.
- AdamW, learning rate 2e-5, linear schedule with 10% warm-up, effective batch size 16 (2 per GPU, 2 GPUs, 4 accumulation steps), mixed precision, 1 epoch (721 steps).
- Targets were lower-cased and reduced to the model's characters. Stutter repetitions were kept.
Data and attribution
Data sourced from the CDLI Non-Standard Speech Dataset, Centre for Digital Language Inclusion, UCL, 2025. This project was funded by UK International Development through the AT2030 Programme with support from Google.org.
The model was fine-tuned on the train split of the CDLI Rwandan Kinyarwanda non-standard speech dataset v1.0 (access is gated; accept the CDLI terms and conditions there). The dataset is not included in this repository and cannot be shared from it.
- Train: 11,536 recordings from 46 speakers (47.7 hours). The speakers are mostly young adults. Most of them stutter, and a few have other speech differences.
- The dev split (6 speakers) was used only to choose the checkpoint. The test split (9 speakers) was scored once, after training.
- The
extrasplit was never used. - No speaker is in both train and dev or test.
- The audio was recorded in Rwanda in 2026, indoors with low noise, on a tablet app, from picture prompts (free descriptions) and text prompts (sentences that the speaker reads).
Limitations and risks
- Few test speakers. The test split has 9 speakers (3 mild, 3 moderate, 3 severe). A difference of less than about 3 WER points between two models cannot be confirmed with this many speakers. Each speaker group in the tables has only 3 speakers, so do not read conclusions from them.
- Verbatim output. The training transcripts are verbatim, so the model often writes repetitions as they were said (for example "mu mu mu mwaka"). Blocks and prolongations are not visible in text. If you need the fluent sentence, clean the text after decoding.
- Spelling and spacing. The transcripts use competing spelling and word-spacing conventions (for example "uyumunsi" and "uyu munsi"). About two thirds of the word errors are spelling or spacing variants, so WER overstates the difficulty and CER is the fairer number.
- Speakers and conditions. The data is mostly young adults (18 to 30), mostly male (44 of the 61 speakers in the full dataset), recorded indoors with low noise. Performance on children, older speakers, other dialects, noisy places or phone audio is not known. Whispered speech is not covered.
- Long clips. About a quarter of the recordings stop at about 25 seconds because of an app limit, so speech may be cut off in the data.
- Prompt type. Sentences that speakers read in the text prompts also appear in the train transcripts, so text-prompt results are easier than free speech. Picture-prompt results are the better guide for open speech.
- Not for decisions about people. This model must not be used to diagnose or assess any speech condition, or for legal, law enforcement or clinical decisions. It must not be used to identify speakers or to profile or monitor people. The CDLI terms and conditions forbid re-identifying speakers, building voices that mimic a speaker, and training models that promote exclusion or harm.
- Errors can hurt. A wrong transcript can change the meaning of what a person said. Show the text to the speaker so that they can check it, and do not act on it automatically.
Citation
If you use this model, please also cite the dataset:
@misc{cdli_speech_2026,
author = {Centre for Digital Language Inclusion (CDLI), a project of UCL's (University College London's) GDI Hub (Global Disability Innovation Hub)},
title = {CDLI Non-Standard Speech Datasets},
year = {2026},
url = {https://huggingface.co/cdli/datasets}
}
- Downloads last month
- 85
Model tree for oluwagbotty/w2vbert-ky-ft
Base model
facebook/w2v-bert-2.0