Instructions to use Thorsten-Voice/Piper-Scratch with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Piper
How to use Thorsten-Voice/Piper-Scratch with Piper:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
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.
- Downloads last month
- -