You need to agree to share your contact information to access this model
This repository is publicly accessible, but you have to accept the conditions to access its files and content.
This model was fine-tuned on non-standard Kenyan English speech data, including speech from individuals with speech-related personal circumstances. By requesting access, you agree to use this model for research, accessibility, or product development purposes only, to cite this work if used in a publication or product, and not to use it in any way that stigmatizes or misrepresents the speakers whose data contributed to this model.
Log in or Sign Up to review the conditions and access this model content.
Whisper-small-kenyan-english-nonstandard-v2 (Non-Standard, Noise-Robust)
Fine-tuned from openai/whisper-small on non-standard Kenyan English speech, with waveform-level noise augmentation to improve robustness under real-world Kenyan field deployment conditions (mobile networks, ambient crowd noise, device volume variation).
Developed by Alexander Sheldon Mainye.
Model Details
| Property | Value |
|---|---|
| Base model | openai/whisper-small |
| Total parameters | 241,734,912 |
| Trainable parameters | 241,734,912 (full fine-tuning) |
| Language | Kenyan English (en-KE) |
| Task | Automatic Speech Recognition |
| Domain | Non-standard Kenyan English |
| Training dataset | cdli/kenyan_english_nonstandard_speech_v1.0 |
Training Report
Performance
Evaluated on the held-out test split of cdli/kenyan_english_nonstandard_speech_v1.0 (926 examples). Clean evaluation uses unaugmented audio; noisy evaluation applies the same waveform augmentation pipeline used during training.
| Split | WER | CER |
|---|---|---|
| Dev set (clean) | 21.65% | 13.47% |
| Test set (clean) | 15.77% | 9.32% |
| Test set (noise-augmented) | 21.62% | 13.61% |
| Robustness gap (clean → noisy) | 5.85 pp | 4.29 pp |
The 5.85 pp robustness gap represents a 56% relative reduction compared to earlier runs trained at higher augmentation probability (prior best: 13.5 pp gap), while clean test WER remained competitive.
Training Details
Dataset
cdli/kenyan_english_nonstandard_speech_v1.0 — nnon-standard Kenyan English speech covering etiologies.
| Split | Raw size | Filtered (<= 30s) |
|---|---|---|
| Train | 4,378 | 4,243 |
| Validation | 542 | 542 |
| Test | 928 | 926 |
Augmentation Pipeline
Waveform-level augmentation was applied during training only (AUGMENT_PROB = 0.4). Evaluation always used clean audio for reproducible WER/CER comparisons.
| Augmentation | Parameters | Purpose |
|---|---|---|
| Volume perturbation | Gain range 0.7–1.3 (always applied) | Device volume variation |
| Gaussian noise | Level 0.002–0.015 | Ambient crowd noise |
| GSM codec simulation | 8kHz downsample/resample | Mobile network compression |
| Room reverb | Disabled (AUG_REVERB = False) |
— |
SpecAugment was also applied during training (mask_time_prob = 0.05, mask_feature_prob = 0.05).
Hyperparameters
| Hyperparameter | Value |
|---|---|
| Learning rate | 3e-6 |
| LR scheduler | Polynomial decay (lr_end = 1e-8, power = 1) |
| Warmup steps | 100 |
| Weight decay | 0.01 |
| Batch size | 32 |
| Max steps | 2,000 |
| Early stopping patience | 7 |
| Best checkpoint step | 1,800 |
| Precision | FP16 |
Training ran the full 2,000-step budget without early stopping triggering. The best validation WER (21.65%) was achieved at step 1,800, confirming that patience 7 and the polynomial decay schedule were appropriate for this dataset size.
Usage
from transformers import WhisperProcessor, WhisperForConditionalGeneration
import torch
processor = WhisperProcessor.from_pretrained("smainye/whisper-small-kenyan-english-nonstandard")
model = WhisperForConditionalGeneration.from_pretrained("smainye/whisper-small-kenyan-english-nonstandard")
# Load your audio (must be 16kHz, mono)
# audio is a numpy array or torch tensor of shape (samples,)
inputs = processor(audio, sampling_rate=16000, return_tensors="pt")
with torch.no_grad():
predicted_ids = model.generate(
inputs["input_features"],
language="en",
task="transcribe"
)
transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)
print(transcription[0])
Notes on intended use
- Optimised for non-standard Kenyan English.
- Most robust to ambient crowd noise and GSM/mobile codec artifacts (as trained).
- Not fine-tuned for standard American or British English; general-purpose WER on those varieties may be lower than
openai/whisper-smallbaseline. - Evaluation was conducted on a noise-augmented test set simulating field conditions; real-world WER will vary based on recording quality and acoustic environment.
Limitations
- Dataset size: the training set comprises 4,243 examples. Performance on speaker demographics, dialects, or acoustic conditions not well-represented in
cdli/kenyan_english_nonstandard_speech_v1.0may degrade. - Room reverb not covered: reverb-heavy environments (lecture halls, large rooms) were not part of the augmentation pipeline in this run. Performance in strongly reverberant conditions is untested.
- Model capacity: based on
whisper-small(241M parameters). Larger Whisper variants may yield lower WER on this domain. - Language: Suited for Kenyan English speakers.
Training Infrastructure
Training was conducted using Modal GPU infrastructure with the Hugging Face transformers Seq2SeqTrainer.
Citation
If you use this model in your work, please cite it as:
@misc{whisper-small-kenyan-english-nonstandard,
author = {Mainye, Alexander Sheldon},
title = {Whisper Small Fine-tuned on Non-Standard Kenyan English Speech},
year = {2026},
publisher = {Hugging Face},
url = {https://huggingface.co/smainye/whisper-small-kenyan-english-nonstandard}
}
- Downloads last month
- -
Model tree for smainye/whisper-small-kenyan-english-nonstandard-v2
Base model
openai/whisper-small