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)15M25 MB移动端/嵌入式
kitten-tts-nano15M56 MB轻量级部署
kitten-tts-micro40M41 MB平衡选择
kitten-tts-mini80M80 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.1

int8 模型问题

部分用户反馈 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

项目地址https://github.com/KittenML/KittenTTS

官网https://kittenml.com