30 lines
1.4 KiB
Bash
Executable File
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."
|