Files
Aletheia/tools/tts/GPU_TRAINING.md

56 lines
2.2 KiB
Markdown

# Aletheia Russian Piper/VITS training
The selected deployment format is a single-speaker Piper/VITS model exported to ONNX. Piper's current official
training interface consumes `wav-file|text` CSV rows, supports Russian through the `ru` espeak-ng voice, and
exports a checkpoint with `python3 -m piper.train.export_onnx`.
## GPU host prerequisites
- Windows or Linux with an NVIDIA CUDA GPU and a working `nvidia-smi`.
- Git, Python 3, build-essential, CMake, and Ninja.
- A checkout of `https://github.com/OHF-Voice/piper1-gpl` with the `[train]` dependencies installed and
`build_monotonic_align.sh` completed.
- The generated Aletheia dataset directory containing `metadata.csv` and `wav/`.
## Scratch training
```bash
git clone https://github.com/OHF-Voice/piper1-gpl.git
cd piper1-gpl
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -e '.[train]'
./build_monotonic_align.sh
python3 setup.py build_ext --inplace
/path/to/Aletheia/tools/tts/train_piper.sh \
/path/to/tts-dataset \
/path/to/tts-training \
"$PWD" \
2000
```
No `--ckpt_path` is passed: the Aletheia acoustic model is initialized from scratch. This is intentionally slower
than Piper's recommended checkpoint fine-tuning. The exported deliverables are `aletheia_ru.onnx`,
`aletheia_ru.onnx.json`, and `artifacts.json` with byte counts and SHA-256 hashes.
Before accepting the model, synthesize a held-out Russian validation list at multiple `length_scale`,
`noise_scale`, and `noise_scale_w` settings, measure real-time factor on the target phone, and listen for skipped
words, unstable stress, clicks, and repeated phonemes. A successful export alone is not a quality gate.
The epoch-500 book-reading profile selected by listening comparison is stored in
`aletheia_book_profile.json`. Keep its duration, noise, and sentence-pause values together when evaluating the ONNX
model or integrating it into the reader.
On native Windows, first run the one-batch CUDA check:
```powershell
.\train_piper_windows.ps1 `
-DatasetDir C:\path\to\tts-dataset `
-OutputDir C:\path\to\tts-smoke `
-PythonExe C:\path\to\.venv\Scripts\python.exe `
-SmokeTest
```
The default Windows batch size is 4 so the smoke test can establish actual memory use before increasing it.