安装 — CPU vs GPU
HayaKoe 支持 CPU 专用 和 GPU (CUDA) 两种安装配置。
根据自己的环境选择其中一种即可。
应该选择哪种?
- CPU — 没有 GPU,或者有 GPU 但想先试试看的时候
- GPU — 需要批量处理,或者对实时性要求较高的时候
犹豫时的默认选择
纠结的话就从 CPU 开始。
之后只需额外安装 GPU extras 即可。
CPU 安装(默认)
不需要 PyTorch,安装更快,镜像也更轻量。
pip install hayakoeuv add hayakoepoetry add hayakoe验证
from hayakoe import TTS
tts = TTS().load("jvnv-F1-jp").prepare()
audio = tts.speakers["jvnv-F1-jp"].generate("テスト、テスト。")
audio.save("test.wav")
print("OK")首次运行时,BERT · Synthesizer · 风格向量会从 HuggingFace 官方仓库 自动下载到缓存目录。
默认缓存路径为当前目录下的 hayakoe_cache/。
GPU 安装 (CUDA)
前置准备
GPU 模式使用 PyTorch CUDA 构建版本。
只需要 NVIDIA 驱动 即可。
- 不需要单独安装 CUDA Toolkit — PyTorch wheel 中已包含所需的 CUDA 运行时。
- 但需确保您的驱动支持要安装的 CUDA 版本。
检查驱动是否已安装:
nvidia-smi如果正常安装,您将看到如下输出。
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.126.09 Driver Version: 580.126.09 CUDA Version: 13.0 |
+-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 3090 Off | 00000000:06:00.0 Off | N/A |
| 53% 33C P8 38W / 390W | 1468MiB / 24576MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+第一行右侧的 CUDA Version: 13.0 是您的驱动支持的 最大 CUDA 版本(上例中为 13.0)。
选择 CUDA 版本
选择不超过 nvidia-smi 显示版本的 PyTorch CUDA 构建即可。
请在下方安装示例的 cu126 位置填入适合您的版本(例如:cu118、cu121、cu124、cu128)。
支持的组合可在 PyTorch 官方安装页面 选择。
安装
hayakoe[gpu] extras 仅添加 safetensors,不会引入 torch。
分两行安装即可,顺序不限。
pip install hayakoe[gpu]
pip install torch --index-url https://download.pytorch.org/whl/cu126uv add hayakoe --extra gpu
uv add torch --index https://download.pytorch.org/whl/cu126poetry add hayakoe -E gpu
pip install torch --index-url https://download.pytorch.org/whl/cu126验证
from hayakoe import TTS
tts = TTS(device="cuda").load("jvnv-F1-jp").prepare()
tts.speakers["jvnv-F1-jp"].generate("ウォームアップ完了。").save("gpu_test.wav")首次请求可能较慢
在 GPU 模式下,第一次 generate() 调用可能会比平时多花几秒(cuDNN 初始化等)。
从第二次调用开始就会恢复正常速度。
如果要作为服务器运行,建议通过 prepare(warmup=True) 在启动阶段提前支付这笔开销。
更进一步:BERT torch.compile(可选)
传入 prepare(compile=True) 会对共享 BERT 应用 PyTorch 的 torch.compile。
torch.compile 是 PyTorch 2.0 中新增的 JIT 编译器,它追踪模型执行图,编译一次后复用其结果。
实测数据表明,以 约 80 秒的编译预热 为代价,steady-state 合成 每句提速约 20%。
编译完成的图在进程存活期间会被缓存,因此对长期运行的服务器来说值得开启。
如果是脚本或交互式使用等频繁启停的环境,保持默认值(关闭)更合适。
# 在 FastAPI lifespan, Celery worker 初始化等场景
tts = TTS(device="cuda").load("jvnv-F1-jp").prepare(warmup=True, compile=True)CPU (ONNX) 模式下会忽略 compile 标志,也不需要此预热步骤。
到这里就完成了,接下来:生成第一条语音 →
