WhisperX-aligned Darija TTS release packaging, validation, and reporting workflow
# Algerian Darija speech-data preparation
WhisperX-based preparation workflow for the CAFE Algerian Arabic/French
code-switching `small-clean` subset. One command creates training-ready STT
data, a stricter TTS subset, review/rejection manifests, and QC reports.
## Release snapshot
The preserved release export contains 940 validated segments: 16 kHz mono,
6.597 s mean duration, 0.00% clipping, 99.30% mean alignment coverage, and
96.60% of segments at coverage ≥ 0.95.
## One-command run
Install the reproducible Windows environment with Python 3.11:
```powershell
python -m pip install -r requirements.windows-py311.lock.txt
```
Run against the live Hugging Face dataset:
```powershell
python scripts/prepare_dataset.py
```
Run against a local CAFE archive instead:
```powershell
python scripts/prepare_dataset.py --source .\cafe-small-clean.zip --output-dir .\prepared
```
On Windows, `prepare_dataset.py` automatically relaunches with the repository
`.venv311` interpreter when `python` resolves to Python 3.12/3.13. The explicit
launcher is also available:
```powershell
.\scripts\prepare_dataset.cmd --source .\cafe-small-clean.zip --output-dir .\prepared
```
The command processes only `small-clean`. It downloads Croissant metadata,
reads the subset Parquet file directly, downloads only its audio records, then
runs the existing WhisperX alignment and segmentation pipeline.
Fresh WhisperX alignment is CPU/GPU work; use the Colab notebook when local
resources are limited. Local Windows remains useful for smoke tests,
validation, or repackaging a matching existing `tts_export`.
## Output
```text
prepared/
├── stt/accepted/metadata.csv # training input: audio|text
├── stt/review/ # held-out review samples
├── stt/rejected/ # rejected source/segment records
├── tts/accepted/metadata.csv # stricter TTS training input
├── tts/review/
├── tts/rejected/
├── source/ # normalized source audio + ma …