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
|
Download README.md from Thorsten-Voice/Piper-Scratch: direct link, hf CLI and curl.
- Browser
- Download file 4.04 kB
-
https://huggingface.co/Thorsten-Voice/Piper-Scratch/resolve/main/README.md
- Command line
-
hf download hf://Thorsten-Voice/Piper-Scratch/README.md
-
curl -L -o README.md https://huggingface.co/Thorsten-Voice/Piper-Scratch/resolve/main/README.md
4.04 kB
| 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](https://github.com/OHF-Voice/piper1-gpl) voice by | |
| [Thorsten-Voice](https://www.thorsten-voice.de), **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 | |
| ```sh | |
| 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): | |
| ```sh | |
| 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](https://www.thorsten-voice.de). | |
| Training framework: [Piper](https://github.com/OHF-Voice/piper1-gpl) by Michael Hansen and contributors. | |