Kani TTS:轻量、流式、类人 — 开源AI语音合成系统一键整合包 v20251008

AI,开源 4941

🎙️ 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 功能

  • 操作流程:

    1. 在输入框中填写待合成文本。

    2. (可选)调整“温度”、“最大长度”等参数。

    3. 点击 “生成” 按钮,实时播放流式音频下载完整 WAV 文件


🌐 API 端点说明

server.py 提供两个核心 POST 接口,便于程序化调用(如集成至 Python/Java 应用)。

1. 非流式接口:POST /tts

生成完整的 WAV 音频文件(适合一次性下载)

请求参数(JSON)

json
{
"text": "Hello world!",        // 待合成文本(必填)
"temperature": 0.6,            // 语音随机性(0~1
"max_tokens": 1200,            // 最大语音长度(token 数)
"top_p": 0.95,                 // 采样阈值
"chunk_size": 25,              // 流式块大小(非流式可默认)
"lookback_frames": 15          // 上下文帧数(保证连续性)
}

响应:二进制 WAV 文件(可直接保存或播放)


2. 流式接口:POST /stream-tts

返回流式 PCM 音频块(带元数据头),支持实时播放

请求参数:与 /tts 完全一致
响应:分块返回 PCM 音频数据,客户端可逐块解码并实时播放(需支持流式处理)


⚙️ 配置自定义(config.py

通过修改 config.py 可全局调整 TTS 行为:

配置类别
参数名
默认值
说明
音频设置
CHUNK_SIZE
25(帧 ≈ 2 秒/块)
每轮流式输出长度

LOOKBACK_FRAMES
15(帧 ≈ 1.2 秒)
上下文帧数,保证音频连续
生成参数
TEMPERATURE
0.6
语音风格随机性

TOP_P
0.95
采样概率阈值

REPETITION_PENALTY
1.1
抑制重复内容

MAX_TOKENS
1200
最大语音长度
模型配置
MODEL_NAME
nineninesix/kani-tts-370m
TTS 核心模型

CODEC_MODEL_NAME
nvidia/nemo-nano-codec-22khz-0.6kbps-12.5fps
音频编解码器

💡 提示:若流式播放出现中断,可尝试增大 CHUNK_SIZE(如设为 30),以增加缓冲长度。


🧠 技术细节与性能

1. 流式架构原理

  • 滑动窗口解码

    • 每轮生成 CHUNK_SIZE 帧(≈2 秒)新音频。

    • 同时携带 LOOKBACK_FRAMES 帧(≈1.2 秒)历史上下文。

    • 避免块间断裂,实现无缝衔接的流式输出。

2. 性能测试(NVIDIA GPU 环境)

测试项
结果
硬件环境
RTX 5080(16GB VRAM)
生成 15 秒音频耗时
≈1 秒(实时率1:15
GPU 显存占用
≈2GB
依赖库版本
Python 3.12 + Transformers 4.57.0.dev0

3. 浏览器兼容性

Web 界面(client.html)需现代浏览器支持:

  • Web Audio API:用于音频解码与播放

  • Fetch API 流式处理:接收分块音频数据

推荐浏览器:Chrome、Firefox、Edge(最新版本)


🤖 模型信息

项目依赖两个核心模型,首次运行时自动从 Hugging Face 下载

模型类型
名称
说明
TTS 核心模型
nineninesix/kani-tts-370m
370M 参数轻量模型,兼顾效果与推理速度,适合端侧/服务器部署
音频编解码器
nvidia/nemo-nano-codec-22khz-0.6kbps-12.5fps
NVIDIA 开源低码率编解码器(0.6kbps),高质量压缩音频,优化存储与传输

🚀 未来计划(TODO)

项目持续迭代,计划新增以下功能:

  • Apple Silicon 支持:基于 MLX 框架优化,适配 M 系列芯片

  • 🌍 多语言扩展:新增日语、土耳其语等语言支持

  • 🎤 语音克隆:实现稳定的自定义说话人音色克隆功能


📜 许可证与贡献

  • 许可证:详见项目根目录 LICENSE 文件(具体类型以仓库最新版本为准)

  • 贡献方式

    • 提交 Issue:反馈 Bug 或建议新功能

    • 提交 Pull Request:贡献代码或文档

    • 项目对社区贡献完全开放,欢迎参与!


📌 总结

Kani TTS 是一个 “开箱即用、灵活扩展” 的高质量 TTS 解决方案:

  • 开发者友好:提供清晰 API,轻松集成到各类应用

  • 非技术用户友好:Web 界面零代码即可体验

  • 场景适配强:支持离线生成 + 在线流式,兼顾实时性与质量

  • 轻量高效:370M 模型 + 低显存占用,适合边缘与服务器部署

无论你是构建语音助手、开发播客工具,还是进行 TTS 研究,Kani TTS 都是开源生态中的优质选择

随手生成几个语音 你们听听

整合包说明

1 支持50系显卡,最低6G英伟达即可使用

2 未修改任何代码,保持原汁原味

点击查看

下载有疑问看下这里


相关推荐:

我要评论:

◎欢迎参与讨论,请自觉遵守国家法律法规。