Piper-Scratch / README.md
Thorsten-Voice's picture
Upload folder using huggingface_hub
d3a9707 verified
|
Raw History Blame Contribute Delete
4.04 kB
metadata
license: cc0-1.0
language:
  - de
pipeline_tag: text-to-speech
library_name: piper
tags:
  - piper
  - tts
  - onnx
  - vits
  - thorsten-voice
  - german

Thorsten-Voice – Piper (German, trained from scratch, v0.1 experimental)

A German single-speaker Piper voice by Thorsten-Voice, trained entirely from scratch on Thorsten's own CC0 recordings.

Most Piper voices are fine-tuned from the en_US-lessac checkpoint, whose underlying dataset is licensed for research use only. This model uses no third-party checkpoint at all – no --ckpt_path, no --model.warmstart_ckpt, no --model.vocoder_warmstart_ckpt. The weights are derived exclusively from the CC0 dataset below and are released under CC0 1.0.

Status: experimental (v0.1). Clearly intelligible and recognisably Thorsten's voice, but pronunciation and stress of some words are noticeably weaker than in the existing lessac-based Thorsten Piper voice (see Limitations). Published mainly as a clean, license-unencumbered base checkpoint.

Files

File Description
de_DE-thorsten_scratch-medium.onnx Voice model (epoch 1799, end of LR schedule)
de_DE-thorsten_scratch-medium.onnx.json Voice config
checkpoints/epoch=1799-last.ckpt Full Lightning checkpoint (generator + discriminators + optimizer) for fine-tuning
checkpoints/epoch=1791-val_mos=3.3306.ckpt Checkpoint with best UTMOS score

Usage

pip install piper-tts
echo "Hallo, ich bin die Stimme von Thorsten." | \
  piper -m de_DE-thorsten_scratch-medium.onnx -f hallo.wav

Fine-tuning on top of this checkpoint

Use it as a lessac-free starting point (any espeak-ng language, medium quality):

python3 -m piper.train fit ... --model.warmstart_ckpt checkpoints/epoch=1799-last.ckpt

Training data

  • Dataset: Thorsten-Voice 2022.10 (neutral), CC0
  • 12,450 utterances, 11.22 h, 22,050 Hz, mono, mean utterance length 3.24 s
  • Text: lower-cased, normalized; phonemized with espeak-ng (de)
  • Split: 10 % validation (validation_split 0.1), 20 test examples – these were not used for training

Training setup

Code piper1-gpl, commit <COMMIT> (version <VERSION>)
Framework PyTorch 2.15.0+cu132, Lightning
Hardware 1 × NVIDIA A40 (48 GB)
Duration ~4.3 days (Nov 4–9, 2026)
Epochs 1,800 (~214 vocoder passes over the training audio)
Batch size 32, length bucketing enabled
Quality medium, 22,050 Hz
LR schedule exponential decay to 5 % of initial LR, derived from max_epochs

Final validation metrics

Checkpoint val_mel val_mos (UTMOS)
epoch 1799 (last) 0.3751 –
epoch 1791 – 3.33

UTMOS is trained mainly on English; German voices typically land between 3.3 and 3.8.

Limitations

  • Pronunciation/stress: compared with the lessac-based Thorsten Piper voice, some words are stressed or pronounced less accurately (e.g. Intendantin, Rathaus, sprichst, Tobias, Rheinufer, Gratiszeitungen). Likely causes: only ~10 h of training audio without any pretraining, combined with espeak-ng phonemization errors for these words that a model with more data compensates for better.
  • Single speaker, neutral style only.

Export note

With PyTorch ≥ 2.9 the ONNX export in piper1-gpl needed two adjustments: pip install onnxscript, and dynamo=False in the torch.onnx.export(...) call of src/piper/train/export_onnx.py (the new exporter fails on the VITS spline flows).

License

Model weights and this card: CC0 1.0 (public domain dedication). The Piper training/runtime code (piper1-gpl) and espeak-ng are GPL-3.0; this affects the software, not the voice model.

Credits

Voice and dataset: Thorsten Müller / Thorsten-Voice. Training framework: Piper by Michael Hansen and contributors.