Lightweight speech-to-text model for Pidgin and Igbo, built to demonstrate accurate ASR for African low-resource languages that runs efficiently even on low-end devices.
# SpeachLTE
Cameroonian Pidgin + Ewondo speech-to-text that still runs on low-end devices. The repo ships a tiny Conformer-CTC model, the data prep it needs, and a demo that actually prints what the model hears.
## Why it exists
Most Cameroonian audio—radio shows, town-hall recordings, WhatsApp notes—mixes Pidgin, French, and local languages like Ewondo. This project gives researchers and product teams a hackable, low-resource ASR stack so they can caption local content, build accessibility tools, or power voice commands without waiting on massive commercial APIs.
## What you actually get
- **Training pipeline** – Hydra-driven script that builds manifests (synthetic by default), extracts mel features with torchaudio, and trains a compact Conformer. Output: `artifacts/base-conformer/best.ckpt`.
- **Data plumbing** – JSONL manifests, text normalization, and tokenizer utilities ready for FLEURS/Common Voice or your own recordings.
- **Demo output** – `scripts/demo_infer.py` loads any checkpoint, runs greedy decoding on a sample clip, and writes the transcript to `outputs/demo_transcript.txt` so you can see tangible words, not just logs.
## Run it (5‑minute tour)
```bash
python -m venv .venv
source .venv/bin/activate
pip install -e .[dev]
# 1. Train a quick model (uses synthetic audio if you haven't prepared real data yet)
python3.10 scripts/train_model.py training.epochs=1 training.batch_size=2 model.num_layers=2
# 2. Show the transcript produced by that checkpoint
python3.10 scripts/demo_infer.py --checkpoint artifacts/base-conformer/best.ckpt
cat outputs/demo_transcript.txt
```
Need real data? Drop your curated audio + transcripts into `data/raw`, run `scripts/prepare_data.py`, and the same commands train on them.
### Use Common Voice Pidgin (real data)
```bash
export HF_TOKEN=hf_xxx # Common Voice download requires a Hugging Face token
python3.10 scripts/download_datasets.py --datasets common_voice --language pcm --cv-max-samples 200
python3.10 scripts/pre …