Logo Lanfrica

meyng-hub/sango-audio-pipeline

Domaine:

natural language processing

Type de record:

dataset
Créateur:
mey
Hôte:
Field pipeline for a native-speaker Sango pronunciation corpus: record -> split -> normalize -> validate -> manifest. Python stdlib + ffmpeg. # sango-audio-pipeline Field toolchain for building a native-speaker pronunciation corpus for **Sango** (ISO 639-3: `sag`) — the national language of the Central African Republic — from nothing more than a phone, a quiet room, and `ffmpeg`. This is the pipeline behind the audio work for `MEYNG/sango-vocabulary` (open trilingual Sango–French–English vocabulary, CC-BY-SA-4.0). It is deliberately low-tech: no studio, no proprietary tools, no cloud dependency — so that it can be replicated for any language in a similar zero-resource situation (Gbaya, Banda, Yakoma, other creoles and lingua francas). ## Pipeline ``` word-list selection gen-top-50-from-jsonl.py vocabulary JSONL → recording queue CSV │ phone recording session one continuous take, ~2 s silence between words │ split + normalize splitter.py ffmpeg silencedetect → one MP3 per word, │ 96 kbps mono, −16 LUFS (EBU R128) per-file conversion convert-individual-recordings.py for retakes / individual files │ validation validate-recordings.sh/.ps1 duration, clipping, voice presence │ manifest gen-manifest.py audio-manifest.json for consuming apps ``` ## Requirements - Python 3.11+ (standard library only) - `ffmpeg` on `PATH` — check with `ffmpeg -version` ## Quickstart ```bash # 1. Build the recording queue from the open dataset # (download vocabulary.jsonl from the MEYNG/sango-vocabulary dataset) python gen-top-50-from-jsonl.py # → top-50.csv (a ready-made copy is included) # 2. Record: say each word in queue order, once, naturally, # with ~2 seconds of silence between words. One continuous take. # Phone voice-recorder quality (M4A) is sufficient. # 3. Split the session into per-word MP3s (normalized to −16 LUFS) python splitter.py recording-2026-04-20.m4a top-50.csv out/audio # 4. Validate every clip (duration, clipping, voice presen …