A fast, local neural text to speech system that sounds great and is optimized for the Raspberry Pi 4. Piper is used in a variety of projects.
echo 'Welcome to the world of speech synthesis!' | \
./piper --model en-us-blizzard_lessac-medium.onnx --output_file welcome.wav
Listen to voice samples and check out a video tutorial by Thorsten Müller
Voices are trained with VITS and exported to the onnxruntime.
Our goal is to support Home Assistant and the Year of Voice.
Download voices for the supported languages:
- Catalan (ca)
- Danish (da)
- German (de)
- British English (en-gb)
- U.S. English (en-us)
- Spanish (es)
- Finnish (fi)
- French (fr)
- Greek (el-gr)
- Icelandic (is)
- Italian (it)
- Kazakh (kk)
- Nepali (ne)
- Dutch (nl)
- Norwegian (no)
- Polish (pl)
- Brazilian Portuguese (pt-br)
- Russian (ru)
- Swedish (sv-se)
- Ukrainian (uk)
- Vietnamese (vi)
- Chinese (zh-cn)
Download a release:
If you want to build from source, see the Makefile and C++ source.
You must download and extract piper-phonemize to lib/Linux-$(uname -m)/piper_phonemize
before building.
For example, lib/Linux-x86_64/piper_phonemize/lib/libpiper_phonemize.so
should exist for AMD/Intel machines (as well as everything else from libpiper_phonemize-amd64.tar.gz
).
- Download a voice and extract the
.onnx
and.onnx.json
files - Run the
piper
binary with text on standard input,--model /path/to/your-voice.onnx
, and--output_file output.wav
For example:
echo 'Welcome to the world of speech synthesis!' | \
./piper --model en-us-lessac-medium.onnx --output_file welcome.wav
For multi-speaker models, use --speaker <number>
to change speakers (default: 0).
See piper --help
for more options.
Piper has been used in the following projects/papers:
- Home Assistant
- Rhasspy 3
- NVDA - NonVisual Desktop Access
- Image Captioning for the Visually Impaired and Blind: A Recipe for Low-Resource Languages
- Open Voice Operating System
- JetsonGPT
See the training guide and the source code.
Pretrained checkpoints are available on Hugging Face
See src/python_run
Run scripts/setup.sh
to create a virtual environment and install the requirements. Then run:
echo 'Welcome to the world of speech synthesis!' | scripts/piper \
--model /path/to/voice.onnx \
--output_file welcome.wav
If you'd like to use a GPU, install the onnxruntime-gpu
package:
.venv/bin/pip3 install onnxruntime-gpu
and then run scripts/piper
with the --cuda
argument. You will need to have a functioning CUDA environment, such as what's available in NVIDIA's PyTorch containers.