Easy access to speech data across 142 African languages for training TTS and ASR models.
# AfriSpeech Selector
**AfriSpeech Selector gives you access to 142 languages · 2267.9 hours · 35
countries of African speech for training TTS and ASR models.**
Select languages by recorded **hours** (strength) — a country-balanced top-N or a
hand-picked set, sized the way you want — and get the **audio + metadata in the
format your training pipeline expects**. You take it from there; the tool doesn't
do any text normalisation or cleaning (that's your framework's job).
It's clean read speech with aligned transcripts, so the natural fit is **TTS** —
export WAVs + a manifest for **LJSpeech, Piper, VITS, or MeloTTS**. It works for
**ASR** too (`load_from_disk` / Parquet, or stream with `stream_dataset(...)`),
which is handy for supplementing low-resource languages.
**Redistribution:** building a *local* working set for your own training is fine.
Redistributing copies of the audio (e.g. `--push` to a public repo) is **not
recommended**, given the permissions of the underlying public data sources.
## Available languages
**142 languages · 2267.9 hours · 35 countries.** Hours is the strength signal
used for ranking. The `--languages` value is the name you pass to pick a language
(e.g. `--languages twi_twi`). List them anytime with `afrispeech-select --list-langs`, or see the full **language catalog** at the bottom.
## Install
```bash
git clone
github.com
cd afrispeech-selector
python3 -m venv .venv && source .venv/bin/activate
pip install -e . # gives you the `afrispeech-select` command
```
(Use `python3` — the code uses non-ASCII text and won't run under Python 2.)
## Quickstart — one language, ready to train
Most people just want one language for **TTS**. Pick its name
(`afrispeech-select --list-langs`, or the catalog at the bottom) and run one
command. Clips are filtered to a **3–15 s** window by default, so the result is
training-ready.
```bash
# ~5 hours of Twi as an LJSpeech TTS dataset (wavs/ + metad …