African speech intelligence interfaces (ASR, TTS, LID, code-switching)
# adara-speech
African speech intelligence interfaces: ASR, TTS, LID, diarization, code-switching, audio preprocessing.
## Status
**Experimental**
Classification: `INTELLIGENCE` · Visibility: `public` · License: `Apache-2.0`
## Overview
Provider-agnostic interfaces for African languages and accents. Implementations may call open or commercial engines. Nothing here is a shipped production ASR.
## Why this exists
Speech must be independently releasable and evaluable without pulling the whole platform.
## Quickstart
```bash
pip install -e ".[dev,whisper]"
# 1. Which African languages can anything installed actually handle?
python scripts/coverage_report.py
# 2. Make a real speech .wav using the OS's own TTS (no network, no extra deps)
python scripts/make_sample_audio.py sample.wav --text "The momo no enter since yesterday"
# 3. Run the whole pipeline over it
python scripts/understand_audio.py sample.wav --whisper --whisper-model-size tiny
# 4. Measure real backends against real African speech
pip install -e ".[corpora]" # FLEURS + community corpora
pip install -e ".[mms]" # MMS + community models (transformers + torch, large)
python scripts/run_benchmark.py --languages sw yo ig zu --backends whisper mms --limit 8
python scripts/run_benchmark.py --languages tw --backends whisper mms community:akan-w2v2
```
Step 4 is ADARA SpeechBench. It streams genuine recordings — FLEURS where it has the language,
Ghanaian community corpora where it does not (FLEURS has no Twi) — and scores each backend
independently, producing a language × backend matrix rather than a single verdict. Every result
carries the corpus's exact commit SHA. Put an `HF_TOKEN` in `.env` for higher download rate
limits; scripts load `.env` automatically.
Step 1 is the one worth reading first. Of the 36 African languages in
`src/languages/registry.py`, Whisper claims **9** (~377M speakers) and Meta's MMS claims
**29**. Only a handful are reachable by neither. Those counts …