KittenTTS 0.8.1 教程:先跑 mini,再决定要不要缩模型
KittenTTS 是一套轻量英文语音合成模型和 Python 接口。官方给出 15M 到 80M 参数、25MB 到 80MB 的四个档位,基础路径走 ONNX Runtime,CPU 就能运行。
1. 四个模型不要只看文件大小
| 模型 | 参数/体积 | 使用建议 |
|---|---|---|
| mini | 80M / 80MB | 先用它建立音质基线 |
| micro | 40M / 41MB | 再比较速度和音质 |
| nano | 15M / 56MB | 资源紧张时测试 |
| nano int8 | 15M / 25MB | README 有用户问题提示,需单独验收 |
八个预设声音是 Bella、Jasper、Luna、Bruno、Rosie、Hugo、Kiki 和 Leo。speed 可以调语速,但不同文本的专有名词、数字、缩写和标点仍要逐条听。
2. 固定 0.8.1 安装并生成 WAV
python -m venv .venv source .venv/bin/activate pip install https://github.com/KittenML/KittenTTS/releases/download/0.8.1/kittentts-0.8.1-py3-none-any.whl
from kittentts import KittenTTS
import soundfile as sf
model = KittenTTS("KittenML/kitten-tts-mini-0.8")
audio = model.generate(
"This high-quality TTS model runs without a GPU.",
voice="Jasper"
)
sf.write("output.wav", audio, 24000)
第一次按 Hugging Face 模型名加载会下载权重。需要复现时,不只固定 Python wheel,还应保存模型仓库 revision。权重缓存完成后,本地 ONNX 推理可以断网进行。
3. 本地推理、GPU 与托管 API 是三条路径
pyproject.toml 要求 Python 3.8+,基础依赖包括 espeakng_loader、phonemizer、onnxruntime、soundfile、numpy 和 huggingface_hub。官方另有 requirements_gpu.txt,GPU 路径要单独建立环境,不能把 CPU 安装结果当成 GPU 验证。
README 还放了免费 Kitten TTS API,以及商业集成、自定义声音和企业许可的联系入口。托管 API 会把文本送到外部服务;本地开源包则在模型下载后留在设备上。两者的隐私、可用性和许可都应分别评估。
官方材料没有公开充值、订阅额度或转售流程,因此未达到严重商业隔离阈值。
4. 与 Piper 对比
Open Home Foundation 的 Piper同样做本地神经 TTS,但提供 CLI、Web server、Python 与 C/C++ API,还有多语言 voice 目录和训练资料。KittenTTS 当前入口更小,主打英文预设声音和轻量 Python 调用。
需要多语言或系统级集成时先评估 Piper;快速试用小体积英文模型时 KittenTTS 更直接。分发产品前还要比较 KittenTTS 仓库的 Apache-2.0 与 Piper 的 GPL-3.0。
这里仅补原教程没有展开的事实和边界。安装命令与操作步骤仍以前文为准。
先判断这个项目是否适合你
适合谁用
适合英文离线播报、边缘设备原型和需要小模型的本地语音界面。它仍是 developer preview,不宜在未做发音、延迟和许可证验收时直接进入生产,也不应把开源仓库与托管 API 的数据边界混在一起。
原教程未展开的系统信息
架构与数据流
KittenTTS 接收文本和 voice/speed 参数,经文本预处理与 phonemizer 转成模型输入,再由 ONNX Runtime 执行本地推理,返回音频数组;示例用 soundfile 写成 24000Hz WAV。模型通过 Hugging Face Hub 标识加载,首次运行需要下载权重。
官方与对比资料
以下链接用于核对版本、安装方式、功能边界和同类差异。
- https://github.com/OHF-Voice/piper1-gpl
- https://github.com/KittenML/KittenTTS
- https://github.com/KittenML/KittenTTS#available-models
- https://github.com/KittenML/KittenTTS/blob/main/pyproject.toml
- https://github.com/KittenML/KittenTTS/releases
- https://github.com/KittenML/KittenTTS#installation
- https://github.com/KittenML/KittenTTS/releases/tag/0.8.1
常见问题
KittenTTS 不联网也能合成语音吗?
模型权重缓存完成后,本地 ONNX 推理可以离线进行;第一次用 Hugging Face 模型标识加载时需要联网。若改用官方托管 API,输入文本会发送到外部服务。
KittenTTS 0.8.1 应该选哪个模型?
先用 README 示例中的 mini 0.8 建立音质基线,再按设备限制测试 micro 或 nano。官方特别提示 nano int8 有用户报告的问题,不应只按 25MB 体积直接选它。
KittenTTS 的输出采样率是多少?
官方示例把 generate 返回的数组以 24000Hz 写入 WAV。接入播放或转码链路时,应保持 24kHz 或明确重采样,避免把失真误判为模型质量问题。
KittenTTS 可以训练自己的声音吗?
当前仓库 README 展示的是 8 个预设声音和推理接口,没有给出本地自定义声音训练流程。官方另列商业支持和 custom voices 联系入口,不能据此假定开源包已包含训练能力。
KittenTTS 和 Piper 怎样选?
KittenTTS 更适合快速试用体积很小的英文 Python 模型;Piper 提供 CLI、Web server、C/C++ 与 Python 接口,并有更广的 voice 生态。还要同时比较 Apache-2.0 与 GPL-3.0 对你的分发方式是否合适。