Kitten TTS 是一款基于 ONNX 的开源轻量级语音合成库,模型仅 15M-80M 参数,最小 25MB 即可运行。无需 GPU,CPU 上就能实现高质量 24kHz 语音合成,支持 8 种内置音色和语速调节,适合边缘设备部署和实时语音应用,文末附详细使用教程
🎤 引言
语音合成(TTS)技术已经相当成熟,但大多数方案要么需要庞大的模型体积,要么依赖昂贵的 GPU 算力。对于想在边缘设备或普通 PC 上部署语音应用的人来说,选择并不多。
Kitten TTS 的出现改变了这一局面。这是一个基于 ONNX 的开源语音合成库,模型最小只有 15M 参数(int8 量化后仅 25MB),却能在 CPU 上跑出高质量的 24kHz 语音。不需要显卡,不需要云端 API,几行 Python 代码就能让机器开口说话。
⭐ 核心亮点
1. 极致轻量
Kitten TTS 提供了 4 种模型规格:
| 模型 | 参数量 | 体积 | 适用场景 |
|---|---|---|---|
| kitten-tts-nano (int8) | 15M | 25 MB | 移动端/嵌入式 |
| kitten-tts-nano | 15M | 56 MB | 轻量级部署 |
| kitten-tts-micro | 40M | 41 MB | 平衡选择 |
| kitten-tts-mini | 80M | 80 MB | 高质量需求 |
最小 25MB 的体积意味着什么?你可以把它塞进一个微信小程序,或者运行在树莓派这样的设备上,完全不用担心存储和内存压力。
2. CPU 即可跑
基于 ONNX Runtime 优化,Kitten TTS 专门针对 CPU 推理做了优化。官方明确表示"无需 GPU",这在 TTS 领域是相当少见的。对于没有显卡的用户,或者需要在服务器端批量处理语音任务的场景,这是个巨大的优势。
3. 8 种内置音色
开箱即用,提供 8 种预设音色:
- Bella(贝拉)
- Jasper(贾斯珀)
- Luna(露娜)
- Bruno(布鲁诺)
- Rosie(罗茜)
- Hugo(雨果)
- Kiki(琪琪)
- Leo(里奥)
通过简单的参数切换就能更换声音,还支持语速调节(speed 参数),从 0.5 倍慢速到 2 倍快速都能灵活控制。
4. 智能文本预处理
内置文本清洗管道,能自动处理数字、货币、单位等常见格式。比如输入"价格是 $199",模型会自动将其转换为"价格是 一百九十九美元"的读音,省去了手动处理文本的麻烦。
📥 安装与使用
安装
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
# 加载模型(首次会自动从 Hugging Face 下载)
model = KittenTTS("KittenML/kitten-tts-mini-0.8")
# 生成语音
audio = model.generate(
"这是一个基于 ONNX 的轻量级语音合成演示。",
voice="Jasper"
)
# 保存为音频文件
sf.write("output.wav", audio, 24000)进阶用法
# 调节语速(1.0 为正常速度)
audio = model.generate(
"这句话会以 1.2 倍速播放。",
voice="Luna",
speed=1.2
)
# 直接保存到文件
model.generate_to_file(
"直接保存到文件的示例。",
"output.wav",
voice="Bruno",
speed=0.9
)
# 查看所有可用音色
print(model.available_voices)
# ['Bella', 'Jasper', 'Luna', 'Bruno', 'Rosie', 'Hugo', 'Kiki', 'Leo']启用文本预处理
# clean_text=True 会自动处理数字、货币等格式
audio = model.generate(
"价格是 $199.99,重量约 2.5kg",
voice="Bella",
clean_text=True
)🎯 适用场景
1. 边缘设备部署
25MB 的模型体积让 Kitten TTS 成为物联网设备、智能音箱、车载系统的理想选择。不需要联网,本地就能完成语音合成,保护隐私的同时降低延迟。
2. 实时语音应用
对于需要低延迟响应的场景(如语音助手、实时播报),CPU 推理的优势就体现出来了。不需要等待 GPU 调度,即开即用。
3. 批量语音生成
做有声书、播客、视频配音的朋友,可以用 Kitten TTS 批量生成语音素材。8 种音色可以分配不同角色,语速调节让对话更自然。
4. 开发测试
快速原型验证阶段,不需要接入昂贵的云服务,本地跑通逻辑后再考虑优化方案。
⚠️ 注意事项
开发者预览版
目前 Kitten TTS 处于 v0.8 开发者预览阶段,API 可能会在后续版本中调整。生产环境使用时建议锁定版本:
pip install kittentts==0.8.1int8 模型问题
部分用户反馈 kitten-tts-nano-0.8-int8 模型存在兼容性问题。如果遇到异常,建议切换到 fp32 版本:
# 如果 int8 版本有问题,改用标准版本
model = KittenTTS("KittenML/kitten-tts-nano-0.8-fp32")系统要求
- Python 3.8+
- Linux / macOS / Windows
- 建议使用虚拟环境(venv/conda)避免依赖冲突
🚀 未来规划
根据官方路线图,Kitten TTS 后续还将推出:
- 优化的推理引擎(进一步提升速度)
- 移动端 SDK(iOS/Android 原生支持)
- 更高质量的 TTS 模型
- 多语言支持(目前主要是英语)
- KittenASR(语音识别,与 TTS 配套)
📝 总结
Kitten TTS 最大的价值在于轻量化 + 易用性。25MB 的模型体积、CPU 即可运行、8 种开箱即用的音色,这些特性让它成为个人开发者和小型团队的实用选择。
当然,作为早期版本,它在多语言支持和音色多样性上还有提升空间。但对于英语语音合成需求,特别是需要在资源受限设备上部署的场景,Kitten TTS 绝对值得一试。
在线体验:https://huggingface.co/spaces/KittenML/KittenTTS-Demo