KittenTTS

纯 CPU 就能跑的轻量开源语音合成模型

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 音频音乐 🍴 复刻 988 🐛 待处理 140 👀 关注 133
GitHub ↗
GitHub 星标 ★ 16432
维护状态 活跃
是否开源 开源
定价模式 🏷️完全免费 开源免费,可自行部署

项目预览

KittenTTS 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类音频音乐
开发团队KittenML
定价模式🏷️完全免费
价格说明开源免费,可自行部署
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议Apache-2.0
主要语言Python
GitHub 星标★ 16432
上线时间2025-08-05 00:00:00
代码更新2026-10-22
仓库体积5.4 MB
本站数据更新2026-10-25
维护状态活跃
收录时间2026-10-25
浏览次数0

项目介绍

KittenTTS 是一个开源文本转语音(TTS)模型项目,主打在纯 CPU 环境下运行,无需 GPU 即可完成语音合成。它解决的是传统高质量 TTS 模型对显卡依赖强、部署门槛高的问题,让开发者能在普通服务器、笔记本甚至边缘设备上直接跑起语音生成。核心能力包括:轻量级模型推理、CPU 实时或近实时合成、提供 Python 接口便于集成到应用或服务中。项目以 Python 实现,适合做语音播报、有声内容生成、辅助阅读、智能硬件语音交互等场景的原型与落地。作为高星标项目,它具备较好的社区关注度,模型体积和推理效率是其设计重点,适合对成本敏感、不想为 TTS 单独配置 GPU 的团队使用。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-10-25 · 当前星标 ★ 16432

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 8 步

环境要求

  • Python 环境(项目为 Python 实现,README 未标注具体版本)
  • pip 包管理工具,可正常访问 PyPI 安装 kittenml
  • 纯 CPU 即可运行,无需 GPU;GPU 场景为可选加速
  • 若要保存 wav 文件,示例中还使用了 soundfile 库
  • macOS 用 MLX 后端需 Apple 芯片;vLLM 后端需 Linux + NVIDIA Ampere 及以上显卡

安装与启动步骤

  1. 1安装核心库

    一条命令完成安装,默认包含 Kitten-TTS 2 模型和轻量 ONNX 运行时,无需额外登录。

    pip install kittenml
  2. 2跑通基础合成

    新建脚本加载默认模型,generate 返回音频数组,用 soundfile 写入 wav 文件。

    from kittenml import KittenTTS
    import soundfile as sf
    
    m = KittenTTS("KittenML/kitten-tts-2")
    
    audio = m.generate("Hi! umm.. how are you, I guess?  .. uh.. nice to meet you??",
                       voice="WeatherPresenterCheerful")
    sf.write("output.wav", audio, m.sample_rate)
  3. 3选用小体积权重

    默认权重约 947 MiB 且无损;weights="emb4" 约 506 MiB,量化词嵌入,质量略降。

    m = KittenTTS("KittenML/kitten-tts-2", weights="emb4")
  4. 4安装 CPU 加速后端

    C++ 后端 kitten_tts_cpp 在 CPU 上更快,可设线程数与解码器,目前处于 beta。

    pip install kitten_tts_cpp
  5. 5调用 C++ 后端

    用 C++ 后端直接生成文件,decoder 选 student_w4,threads 按机器核数调整。

    from kitten_tts_cpp import KittenTTS
    
    model = KittenTTS("KittenML/kitten-tts-2", decoder="student_w4", threads=8)
    model.generate_to_file("One day, a little girl named Lily found a needle in her room.", "hello.wav", voice="Bruno")
    print(model.last_report)
  6. 6Mac 启用 MLX

    Apple 芯片 Mac 安装 mlx 可选依赖,初始化时指定 backend="mlx" 调用。

    pip install "kittenml[mlx]"
  7. 7GPU 用 vLLM

    Linux 且显卡计算能力 8.0 以上安装 vllm 可选依赖,脚本必须保留 main 保护。

    pip install "kittenml[vllm]"
  8. 8启用 vLLM 推理

    指定 backend="vllm",加 w4a16 量化约省 2 GB 显存;去掉该参数即用 bf16。

    from kittenml import KittenTTS
    
    def main():
        m = KittenTTS("KittenML/kitten-tts-2", backend="vllm",
                      vllm_options={"quantization": "w4a16"})
        m.generate_to_file("Hello there.", "output.wav", voice="Bruno")
        print("Saved output.wav")
    
    if __name__ == "__main__":
        main()

关键配置

配置项必填说明示例
weights否选择权重体积,默认无损 947 MiB,emb4 为 506 MiB 量化版emb4
backend否推理后端,可选 mlx(Mac)或 vllm(NVIDIA GPU),默认自动检测mlx
voice否内置音色名,m.available_voices 可列出全部 47 个音色Bruno
decoder否C++ 后端的解码器型号,README 示例使用 student_w4student_w4
threads否C++ 后端的 CPU 线程数,按机器核数设置8
vllm_options否vLLM 后端的推理参数,如 4 位量化省显存{"quantization": "w4a16"}

如何确认成功

运行脚本后当前目录出现 output.wav(或 hello.wav),能正常播放且时长与文本长度相符即成功。

常见问题

Q:没有显卡能跑吗?

A:可以。默认在 CPU 上运行,device 由程序自动检测,无需额外配置;有 NVIDIA 显卡时可选用 vLLM 后端提速。

Q:首次运行为什么比较慢、占磁盘?

A:首次会下载模型权重,默认约 947 MiB,选择 emb4 约 506 MiB,且只下载所请求的那一份。权重随包内仓库提供,不需要登录。

Q:提示找不到 soundfile?

A:README 示例用 soundfile 保存 wav,需另行安装该库;若只想拿到音频数组,可跳过写文件这一步。

Q:vLLM 脚本报进程相关错误?

A:vLLM 会启动工作进程,脚本必须保留 if __name__ == "__main__" 保护,否则会重复初始化。

Q:C++ 后端不稳定怎么办?

A:README 注明 Kitten-TTS 2 C++ 仍为 beta,遇到问题到项目仓库反馈,或先使用默认 Python 后端。

注意事项

  • 旧版 KittenTTS 0.8 的 Bella、Jasper、Luna、Bruno、Rosie、Hugo、Kiki、Leo 与新模型为同一批发音人,旧代码可继续使用。
  • 安装 kittenml 时会一并装上小型 ONNX 运行时,轻量 0.8 系列模型用同一套安装即可。
  • vLLM 后端仅限 Linux 与计算能力 8.0 及以上的 NVIDIA 显卡;7.5 显卡可用 float16 回退但非最优。
  • 音色与表达参数的完整说明见仓库 docs/voices-and-expression.md。

核心亮点

  • 无需 GPU,普通 CPU 环境即可推理,部署成本低
  • Python 接口清晰,便于快速集成到现有服务或脚本中
  • 模型轻量,适合边缘设备和资源受限场景

不足之处

  • CPU 推理在长文本或高并发下速度与吞吐有限
  • 音色、情感表现力和多语言覆盖可能不如大型 GPU 模型
  • 文档与预训练模型分发细节需进一步观察完善

适用场景

  • 本地或服务器端语音播报与提示音生成
  • 有声书、播客等文本转音频内容生产
  • 智能硬件与离线设备的语音交互原型

替代项目

Coqui TTS、Piper、MeloTTS

上一篇:F5-TTS

下一篇:pocket-tts

同类项目推荐

pyttsx3 开源

离线文字转语音,一行代码让 Python 开口说话

Offline Text To Speech synthesis for python

★ 2533 2026-08-09
tts 开源

一行命令,用 Amazon Polly 把你的文字变成语音。

:pencil: :sound: A simple text-to-speech tool. Converts your text to speech with any···

★ 173 2026-08-09
ChatTTS 开源

日常对话配音自然到像真人,再也不用听机器腔

A generative speech model for daily dialogue.

★ 39934 2026-08-09
AudioMAE-pytorch 开源

用掩码自编码器预训练音频模型,轻松提取通用音频特征

Unofficial PyTorch implementation of Masked Autoencoders that Listen

★ 71 2026-08-09
edge-tts 开源

免密钥调用微软 Edge 语音,几行代码生成自然 MP3

Use Microsoft Edge's online text-to-speech service from Python WITHOUT needing Micro···

★ 12370 2026-08-09
AudioMuse-AI 开源

声学分析自动挖掘曲库,生成智能歌单,找回被遗忘的好歌。

AudioMuse-AI uses sonic analysis to rediscover forgotten songs, uncover hidden conne···

★ 2797 2026-08-09
tts-demo 开源

一键集成多情感男女声,实时离线都能合成,还能变声调参。

支持各种感情的男女声音,支持实时和离线文本合成tts语音;支持单模特声音变声,语音速率调···

★ 74 2026-08-09
M3-TTS 开源

零样本合成高保真语音,多模态对齐+流匹配

Pytorch Implementation of the paper "M3-TTS: Multi-modal DiT Alignment & Mel-latent ···

★ 124 2026-08-09