Finetuned OpenAI Whisper Model on Nigerian Pidgin English for accurate Speech-to-text (STT)
# Pidgin Whisper
Open-source Nigerian Pidgin English speech-to-text. Fine-tunes
`openai/whisper-large-v3-turbo`
with LoRA on ~8.6 hours of curated Pidgin audio. Trained on a free
Kaggle T4 in under 4 hours.
## Result
| Metric | Pidgin Whisper v1 | Wav2Vec2-XLSR-53 baseline |
|---|---|---|
| Test WER | **21.37%** | 29.6% |
| Test CER | **9.90%** | — |
That's an **8.2 percentage-point absolute improvement (28% relative)**
over the strongest published Pidgin ASR result on the same dataset,
using a free GPU and a single fine-tuning run.
## Links
- 🤗 **Model:** michaelodafe/whisper-pidgin-v1 (LoRA adapter, 26 MB)
- 🎤 **Demo Space:** try it in your browser
- 📦 **Dataset:** michaelodafe/pidgin-asr-combined (~8.6 h, combined from public Pidgin sources)
- 📖 **Full design notes:** documentation.md
## Quick start — run locally
```bash
git clone
github.com
cd pidgin-whisper
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# edit .env: paste your HF_TOKEN
# one-time: pull base model + adapter, merge, convert to int8 CTranslate2 (~5 min)
HF_HUB_DISABLE_XET=1 python infer/01_merge_and_convert.py
# live mic → Pidgin transcription
python infer/02_streaming_demo.py
```
Speak into your mic; transcripts print after each utterance. Ctrl-C to quit.
On macOS, grant microphone permission to Terminal/iTerm on first run.
## Reproducing v1
End-to-end training pipeline — about 1 hour of your time + 4 hours of
free Kaggle GPU.
1. **Build the dataset** — `python scripts/01_fetch_data.py` pulls and
normalizes `asr-nigerian-pidgin/nigerian-pidgin-1.0`
and `Rexe/nigerian-pidgin-speech`,
pushes the combined dataset to your HF account.
2. **Inspect** — `python scripts/02_inspect.py` writes 20 random sample
clips to `data/samples/` so you can listen.
3. **Train on Kaggle** — paste cells from
`notebooks/03_finetune_kaggle.py`
into a Kaggle GPU notebook. Add `HF_TOKEN` to Kaggle Secrets. …