Piper:本地离线神经 TTS 引擎(piper-tts)安装与使用指南
Piper 是由 Rhasspy 团队发起、现由 Open Home Foundation 维护的快速本地神经文本转语音引擎,内嵌 espeak-ng 做音素化,支持命令行、HTTP 服务、Python API、C/C++ 库,提供 100+ 语言/方言预训练声音。它被 Home Assistant、NVDA 屏幕阅读器、Open Voice OS 等广泛采用,是边缘设备首选的轻量 TTS。原仓库 rhasspy/piper 已迁移到 OHF-Voice/piper1-gpl。
一、项目官方信息
| 项目 | 信息 |
|---|---|
| GitHub 仓库 | OHF-Voice/piper1-gpl(原 rhasspy/piper 已迁移) |
| 声音样本 | rhasspy.github.io/piper-samples |
| 开源协议 | MIT(旧仓库)/ GPL(新仓库 piper1-gpl) |
| 主要语言 | C++ / Python |
| Star 数 | 8k+ |
| 上游依赖 | espeak-ng |
二、官方图片
Piper 仓库社交预览图:

三、环境要求
- Python 3.9+;
- Linux / macOS / Windows;
- 支持 CPU 推理,无需 GPU;
- espeak-ng(用于音素化,piper-tts wheel 通常已捆绑);
- 下载对应语言的
.onnx模型文件与.onnx.json配置。
四、部署步骤
1. 安装
pip install piper-tts
2. 下载声音模型
从声音列表选择一个语音,下载两个文件:
<voice>.onnx(模型权重)<voice>.onnx.json(配置元数据)
例如英文 en_US-amy-medium:
mkdir -p ~/.local/share/piper-voices
cd ~/.local/share/piper-voices
wget https://github.com/rhasspy/piper-voices/raw/main/en/en_US/amy/medium/en_US-amy-medium.onnx
wget https://github.com/rhasspy/piper-voices/raw/main/en/en_US/amy/medium/en_US-amy-medium.onnx.json
3. 命令行合成
echo 'Welcome to the world of speech synthesis!' | piper \
--model ~/.local/share/piper-voices/en_US-amy-medium.onnx \
--output_file welcome.wav
4. Python API 调用
from piper import PiperVoice
voice = PiperVoice.load("en_US-amy-medium.onnx")
with open("hello.wav", "wb") as f:
voice.synthesize_wav("Hello from Piper", f)
5. HTTP 服务
python -m piper.http_server \
--model ~/.local/share/piper-voices/en_US-amy-medium.onnx \
--port 5000
6. C/C++ 库
libpiper/ 目录提供 C/C++ API,可直接嵌入其他应用;Java 绑定见 piper-jni。
五、使用方法
多语言支持
piper-voices 仓库提供 100+ 语言/方言的预训练声音,按 {lang}/{region}/{name}/{quality}/ 目录组织:
- 英语、德语、法语、西语、俄语、意大利语、荷兰语;
- 中文、日语、韩语、阿拉伯语;
- 以及大量低资源语言(非洲、印度、东南亚语言)。
声音质量档位
每个声音有三档:
low:体积最小,速度最快;medium:平衡;high:音质最好,体积最大。
典型场景
- Home Assistant:作为语音播报组件;
- NVDA:屏幕阅读器发声;
- Open Voice OS:语音助手 TTS;
- 边缘设备:树莓派本地合成,无网络依赖;
- LocalAI:作为 OpenAI TTS 后端。
训练新声音
参考 docs/TRAINING.md,使用 LJSpeech 格式数据集训练,配合 espeak-ng 音素化。
六、常见问题 FAQ
Q1:Piper 是什么? 轻量本地神经 TTS,CPU 实时合成,离线可用。
Q2:怎么安装?
pip install piper-tts,再下载 .onnx 声音模型。
Q3:支持中文吗? 支持,从 piper-voices 仓库选择中文声音即可。
Q4:需要 GPU 吗? 不需要,CPU 实时合成。
Q5:怎么起 HTTP 服务?
python -m piper.http_server --model xxx.onnx --port 5000。
Q6:新模型怎么训练?
参考 docs/TRAINING.md,使用 LJSpeech 格式数据集训练。
Q7:原仓库为什么迁移? rhasspy/piper 已归档,维护权移交给 Open Home Foundation,新仓库为 OHF-Voice/piper1-gpl。
七、跳转链接
- GitHub 仓库:OHF-Voice/piper1-gpl
- 声音列表:VOICES.md
- 声音样本:rhasspy.github.io/piper-samples
- pip 包:piper-tts
- espeak-ng:espeak-ng/espeak-ng