Multi-user synthetic speech data generator Space for VoxCPM (Twi/Ewe/Dagbani) — task queue, resume, retries, email notifications
---
title: VoxCPM Synthetic Data Generator
emoji: 🏭
colorFrom: green
colorTo: blue
sdk: gradio
sdk_version: 5.46.0
app_file: app.py
pinned: false
hf_oauth: true
---
# VoxCPM Synthetic Speech Data Generator — Twi · Ewe · Dagbani
Generates synthetic TTS training data with
ghananlpcommunity/voxcpm-twi-ewe-dagbani-full,
voice-cloning the built-in male/female reference speakers.
## How it works
1. Sign in with Hugging Face (usage is logged to `_usage/usage_log.jsonl`
in the output repo).
2. Pick a dataset — all `ghananlpcommunity` datasets are pre-listed
(searchable), or type any custom id. "Inspect dataset" detects the string
columns: auto-selected if there is exactly one, otherwise you choose.
3. **Preview 5 samples** to hear the result before committing to a big run.
4. Choose voices: all male, all female, or a custom male/female split
(deterministic per row, so resumed runs assign the same voice).
5. Set target hours of audio (capped at 10 h) and a GPU profile — the profile
sets how many parallel VoxCPM instances run off a shared work queue
(~4.5 GB VRAM each). Live status shows throughput and ETA.
6. Output goes to the public dataset repo
**ghananlpcommunity/voxcpm-twi-ewe-dagbani-synthetic** under
` - /`:
- `audio/ _ .wav` — 16 kHz mono, silence-trimmed (raw files, not parquet)
- `manifest.jsonl` — id, file, text, gender, speaker, duration per row
- `progress.json` — resume state
7. Commits are batched (default 200 files / 10 min) to stay under HF's
128 commits/hour limit.
## Task queue
Tasks from any signed-in user queue up and run one at a time while the Space
is alive. The live table shows status, progress, ETA, attempts and a **link
to each task's data folder** (partial results appear there as commits land).
The queue snapshot is persisted to `_usage/tasks_state.json`, so unfinished
tasks resume automatically after a Space restart.
## Retries & notifications
A failing attempt (GPU exhaustion, stall >15 min, 20 consecutive row errors)
is retried up to 3× …