🎙️ Kani TTS — 高质量、模块化、类人语音合成开源项目
Kani TTS 是一个由 nineninesix-ai维护的开源文本到语音(TTS)系统,致力于从文本输入生成高质量、自然流畅的语音。项目支持本地独立运行与Web 流式服务,适用于开发、研究及个性化 TTS 场景。
GitHub 仓库地址:https://github.com/nineninesix-ai/kani-tts
🔑 核心特性
Kani TTS 的核心优势聚焦于三大维度:高质量输出、灵活部署 和 流畅体验。
✅ 高质量语音合成
基于 KaniTTS 370M 轻量级模型,在参数量与语音自然度之间取得优异平衡。
生成语音接近人类发音,语调自然、节奏流畅。
🌐 多部署模式支持
本地独立生成:无需联网,适用于离线环境。
FastAPI Web 服务:提供 RESTful API,便于集成到在线应用。
⚙️ 可配置生成参数
支持动态调整以下参数,灵活控制语音风格与长度:
temperature(温度):控制语音随机性(0 = 确定性,1 = 多样性)max_tokens:限制最大语音长度top_p:采样概率阈值,影响输出多样性
📡 流式音频输出
采用 滑动窗口解码(Sliding Window Decoding) 技术。
实现连续、无断点的音频流,适用于:
语音助手
实时播报
低延迟交互场景
💻 交互式 Web 前端
内置
client.html网页界面,无需编程即可测试 TTS 功能。操作流程:
在输入框中填写待合成文本。
(可选)调整“温度”、“最大长度”等参数。
点击 “生成” 按钮,实时播放流式音频 或 下载完整 WAV 文件。
🌐 API 端点说明
server.py 提供两个核心 POST 接口,便于程序化调用(如集成至 Python/Java 应用)。
1. 非流式接口:POST /tts
生成完整的 WAV 音频文件(适合一次性下载)
请求参数(JSON):
响应:二进制 WAV 文件(可直接保存或播放)
2. 流式接口:POST /stream-tts
返回流式 PCM 音频块(带元数据头),支持实时播放
请求参数:与 /tts 完全一致
响应:分块返回 PCM 音频数据,客户端可逐块解码并实时播放(需支持流式处理)
⚙️ 配置自定义(config.py)
通过修改 config.py 可全局调整 TTS 行为:
💡 提示:若流式播放出现中断,可尝试增大
CHUNK_SIZE(如设为30),以增加缓冲长度。
🧠 技术细节与性能
1. 流式架构原理
滑动窗口解码:
每轮生成
CHUNK_SIZE帧(≈2 秒)新音频。同时携带
LOOKBACK_FRAMES帧(≈1.2 秒)历史上下文。避免块间断裂,实现无缝衔接的流式输出。
2. 性能测试(NVIDIA GPU 环境)
3. 浏览器兼容性
Web 界面(client.html)需现代浏览器支持:
Web Audio API:用于音频解码与播放
Fetch API 流式处理:接收分块音频数据
✅ 推荐浏览器:Chrome、Firefox、Edge(最新版本)
🤖 模型信息
项目依赖两个核心模型,首次运行时自动从 Hugging Face 下载:
🚀 未来计划(TODO)
项目持续迭代,计划新增以下功能:
✅ Apple Silicon 支持:基于 MLX 框架优化,适配 M 系列芯片
🌍 多语言扩展:新增日语、土耳其语等语言支持
🎤 语音克隆:实现稳定的自定义说话人音色克隆功能
📜 许可证与贡献
许可证:详见项目根目录
LICENSE文件(具体类型以仓库最新版本为准)贡献方式:
提交 Issue:反馈 Bug 或建议新功能
提交 Pull Request:贡献代码或文档
项目对社区贡献完全开放,欢迎参与!
📌 总结
Kani TTS 是一个 “开箱即用、灵活扩展” 的高质量 TTS 解决方案:
✅ 开发者友好:提供清晰 API,轻松集成到各类应用
✅ 非技术用户友好:Web 界面零代码即可体验
✅ 场景适配强:支持离线生成 + 在线流式,兼顾实时性与质量
✅ 轻量高效:370M 模型 + 低显存占用,适合边缘与服务器部署
无论你是构建语音助手、开发播客工具,还是进行 TTS 研究,Kani TTS 都是开源生态中的优质选择!



随手生成几个语音 你们听听
整合包说明
1 支持50系显卡,最低6G英伟达即可使用
2 未修改任何代码,保持原汁原味