Files
2026-07-19 23:52:25 +04:00

30 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# piper student — train FROM SCRATCH on the OmniVoice-generated dataset.
# run on the workstation (gfx1100, ROCm) AFTER the LLM CPT frees the GPU.
#
# prereq: piper-train installed from rhasspy/piper (src/python): torch + pytorch-lightning.
# espeak-ng installed. piper/dataset/ built (build_dataset.py) & sanity-checked.
set -euo pipefail
cd "$(dirname "$0")/../.." # → esp32-whisper-fine-tune/
export HSA_OVERRIDE_GFX_VERSION=11.0.0
DATASET=tts/piper/dataset
TRAIN=tts/piper/train
# 1. preprocess: text → espeak-ng phonemes → training cache
python -m piper_train.preprocess \
--language ru --input-dir "$DATASET" --output-dir "$TRAIN" \
--dataset-format ljspeech --single-speaker --sample-rate 22050
# 2. train from scratch (NO --resume_from_checkpoint), medium = CPU-real-time target
python -m piper_train \
--dataset-dir "$TRAIN" --accelerator gpu --devices 1 \
--batch-size 16 --quality medium --precision 32 \
--max_epochs 4000 --checkpoint-epochs 100 --validation-split 0.02
# 3. export best checkpoint → ONNX (adjust version_/last.ckpt path to your run)
CKPT=$(ls -t "$TRAIN"/lightning_logs/version_*/checkpoints/*.ckpt | head -1)
python -m piper_train.export_onnx "$CKPT" tts/piper/maven.onnx
cp "$TRAIN"/config.json tts/piper/maven.onnx.json
echo "[✓] exported → tts/piper/maven.onnx (+ .json). scp both to homesrv."