# 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.