Windows 11 上本地部署 Piper TTS

Python wes 20 days ago (2026-08-27) 11 views
📑 本文导航

在 Windows 11 上本地部署 Piper TTS,主要有三种方案:使用独立可执行文件(最简单)通过 pip 安装 Python 包(最灵活),以及 使用社区封装工具(如 PyPiperTTS)。其中,方案一(独立可执行文件) 无需配置 Python 环境,解压即用,是快速上手的最佳选择。


前置条件

Piper TTS 非常轻量,对硬件要求不高,核心依赖如下:

 
 
依赖项 要求 说明
操作系统 Windows 10 / 11 (64位) 官方提供 piper_windows_amd64.zip 独立包
Python 3.8 – 3.11(方案二、三需要) 独立包方案无需 Python
espeak-ng 必需 Piper 依赖它进行音素转换,部分模型包已内置
FFmpeg 可选 用于音频播放(ffplay)或格式转换
磁盘空间 约 200 MB – 1 GB 取决于下载的语音模型数量

硬件说明:Piper 基于 VITS 架构的 ONNX 模型,CPU 推理速度已经很快(单句通常 < 1秒),GPU 加速反而可能因数据传输开销导致速度变慢。

方案一:使用独立可执行文件(最简单,无需 Python)

这是最推荐新手使用的方式,完全脱离 Python 环境。

步骤:

  1. 下载 Piper 引擎:访问 Piper Releases 页面,下载最新版的 piper_windows_amd64.zip

  2. 解压:将压缩包解压到任意文件夹,例如 C:\piper\。解压后应看到 piper.exeespeak-ng.dll 等文件。

  3. 下载语音模型:Piper 使用 ONNX 格式的语音模型,每个音色需要两个文件.onnx(模型)和 .onnx.json(配置)

    中文模型推荐(华研普通话女声):

    text
    model.onnx
    model.onnx.json

    可从 Hugging Face 的 Trelis/piper-zh-cn-huayan-medium 仓库下载。

    英文模型示例(Amy 女声):

    powershell
    # 下载模型文件
    curl -L -o en_US-amy-medium.onnx "https://huggingface.co/rhasspy/piper-voices/resolve/v1.0.0/en/en_US/amy/medium/en_US-amy-medium.onnx?download=true"
    # 下载配置文件
    curl -L -o en_US-amy-medium.onnx.json "https://huggingface.co/rhasspy/piper-voices/resolve/v1.0.0/en/en_US/amy/medium/en_US-amy-medium.onnx.json?download=true"

    将两个文件放在同一目录下(例如 C:\piper\voices\

  4. 运行合成

    powershell
    # 基本用法:从文本生成 WAV 文件
    echo "你好,这是 Piper TTS 的语音合成测试。" | .\piper.exe -m .\voices\model.onnx -f output.wav
    
    # 英文示例
    echo "Hello, this is a test." | .\piper.exe -m .\voices\en_US-amy-medium.onnx -f test.wav
    
    # 如果有 ffplay,可以直接播放(省略 -f 参数)
    echo "This will play on your speakers." | .\piper.exe -m .\voices\en_US-amy-medium.onnx

    命令行参数参考:

     
     
    参数 说明
    -m, --model 指定 .onnx 模型文件路径
    -f, --output_file 输出 WAV 文件路径
    --output-raw 输出原始音频流(用于管道传输)
    --cuda 启用 GPU 加速(需 onnxruntime-gpu
    --input-file 从文件读取文本输入
    --sentence-silence 句子间静音秒数
    --volume 音量倍数(默认 1.0)

方案二:通过 pip 安装(灵活,适合开发集成)

如果你需要将 Piper 集成到 Python 项目中,或希望使用更便捷的语音下载功能,推荐此方案。

步骤:

  1. 创建虚拟环境(推荐,避免依赖冲突)

    powershell
    python -m venv .venv
    .\.venv\Scripts\Activate.ps1
  2. 安装 Piper

    powershell
    pip install piper-tts

    这会自动安装 Piper 及其依赖(包括 ONNX Runtime)

  3. 下载语音模型:Piper 提供了便捷的语音下载命令:

    powershell
    # 列出所有可用语音
    python -m piper.download_voices
    
    # 下载指定语音(例如英文 Amy)
    python -m piper.download_voices en_US-amy-medium
    
    # 下载到指定目录
    python -m piper.download_voices en_US-amy-medium --data-dir ./voices

    对于中文模型,仍建议手动从 Hugging Face 下载后放入 voices 目录。

  4. 使用 CLI 合成

    powershell
    # 基本合成
    python -m piper -m en_US-amy-medium -f test.wav -- "This is a test."
    # 如果语音在自定义目录
    python -m piper -m en_US-amy-medium --data-dir ./voices -f test.wav -- "Hello."

    注意:每次运行 CLI 都会重新加载模型,对于频繁使用场景,建议使用 Web 服务器模式或 Python API。

  5. Python API 集成

    python
    from piper import PiperVoice
    
    voice = PiperVoice.load("voices/model.onnx")
    for chunk in voice.synthesize("你好,世界!"):
        # chunk.audio_float_array 包含 float32 音频数据
        pass

    参考自。

方案三:使用 PyPiperTTS 封装库(Windows 优化)

PyPiperTTS 是一个专为 Windows 优化的 Python 封装库,提供了更简洁的 API。

步骤:

  1. 下载 Piper 引擎:从 Piper Releases 下载并解压到项目目录下的 Piper 文件夹中。

  2. 安装 PyPiperTTS

    powershell
    pip install -r requirements.txt
  3. 使用示例

    python
    from pypipertts import PyPiper
    
    piper = PyPiper()
    # 生成语音
    output_file = piper.tts("Hello, world!")
    print(output_file)
    # 流式生成
    streamed_audio = piper.stream_tts("Hello, world!")

    参考自。

GPU 加速(可选,通常不推荐)

Piper 支持 GPU 加速,但对于单句推理,GPU 反而可能比 CPU 更慢,因为模型加载到 GPU 的开销超过了推理本身的耗时。

如果仍想尝试:

powershell
# 安装 GPU 版 ONNX Runtime
pip install onnxruntime-gpu

# 运行 Piper 时添加 --cuda 标志
python -m piper -m en_US-amy-medium --cuda -f output.wav -- "Test with GPU."

关键提醒:如果未安装 onnxruntime-gpu,Piper 会静默忽略 --cuda 标志,仅在 CPU 上运行

常见问题排查

 
 
问题 可能原因 解决方案
Model not found 模型路径错误或文件缺失 使用绝对路径,确认 .onnx 和 .onnx.json 文件均存在
Model config doesn't exist 缺少 .json 配置文件 确保配置文件与模型文件同名且在同一目录
No audio output 输出路径无权限或未指定 检查输出目录写入权限,确认使用了 -f 参数
中文语音无声音 缺少 espeak-ng 数据 确认 espeak-ng.dll 在 Piper 目录下,或从 eSpeak NG Releases 安装
--cuda 无效 未安装 onnxruntime-gpu 安装 GPU 版 ONNX Runtime,或接受 CPU 模式

总结

 
 
方案 难度 适用场景
独立可执行文件 快速体验,无需 Python 环境,一次性合成
pip 安装 ⭐⭐ 集成到 Python 项目,需要 CLI 或 API 调用
PyPiperTTS ⭐⭐ Windows 下更简洁的 Python 封装

Piper TTS 的最大优势在于极轻量(模型仅 60–100 MB)、CPU 推理速度快完全离线,非常适合在手机 App 后端或本地工具中作为语音合成服务使用。