Speech AI research lab for the Akan language — building ASR, TTS, and voice datasets for one of West Africa's most spoken languages.
# Akan Speech Lab
Reusable fine-tuning and evaluation infrastructure for Akan-language speech systems. The active ASR target is an expressive Akan recognizer: stronger word transcription plus punctuation, pause, emphasis, and stretch capture where the data supports it.
The goal is commercial-grade speech infrastructure for domains such as health, ecommerce, customer support, family care, and local voice agents. This repo is intentionally separate from the hackathon app so experiments, datasets, checkpoints, and Modal jobs do not bloat product code.
## Milestones
1. Audit Waxal Akan ASR and freeze a reproducible, speaker-balanced benchmark.
2. Normalize Akan text consistently and inspect data quality before training.
3. Evaluate existing baselines:
- `teckedd/whisper_small-waxal_akan-asr-v1`
- MMS ASR variants
- any strong public Whisper/Akan checkpoint we validate
4. Publish the experimental Round 2 model with its failed-promotion limitations.
5. Build ASR Milestone 1: correction capture, punctuation restoration, and expressive prosody tags.
6. Build commercially usable Asante Twi TTS after ASR Milestone 1 has a clean feedback loop.
7. Run Modal only for durable gated jobs; one container maximum and scale-to-zero.
## Repository Layout
```text
configs/ Training and dataset configs.
data/ Local raw/processed data and manifests; gitignored.
docs/ Pipeline notes, dataset cards, Modal usage, eval protocol.
modal_jobs/ Modal GPU entrypoints.
src/ Reusable Python package.
scripts/ CLI scripts for prep, smoke tests, and publishing.
evals/ Small local samples and generated reports.
tests/ Unit tests for normalization and manifest logic.
```
## Quick Start
```bash
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
python scripts/smoke_test.py
pytest
```
## Local UI
Run the Gradio control console:
```bash
python app.py
```
Open `
127.0.0.1`.
The UI can:
- build a fix …