Project Icon

ChatTTS-Forge

文本到语音转换平台

ChatTTS-Forge是一个集成API服务和Gradio WebUI的文本到语音转换平台。通过一键Colab启动、Docker部署及本地安装等多样化方式,用户可轻松应用并体验其技术。该项目不仅支持多种语音模型与定制选项,如风格化控制和长文本生成,还适用于多种应用场景,为声音合成、音色调整与语音增强提供了专业的技术支持。

cn | en | Discord Server

🍦 ChatTTS-Forge

ChatTTS-Forge 是一个围绕 TTS 生成模型开发的项目,实现了 API Server 和基于 Gradio 的 WebUI。

banner

你可以通过以下几种方式体验和部署 ChatTTS-Forge:

-描述链接
在线体验部署于 HuggingFace 中HuggingFace Spaces
一键启动点击按钮,一键启动 ColabOpen In Colab
容器部署查看 docker 部分Docker
本地部署查看环境准备部分本地部署

1. 目录

2. GPU 显存要求

2.1. 模型加载显存需求

精度ChatTTS 模型Enhancer 模型
全精度2GB3GB
半精度1GB1.5GB

注:半精度为默认设置,全精度可通过 --no_half 参数启用。

2.2. 推理过程显存需求

精度Batch Size不使用 Enhancer使用 Enhancer
全精度≤ 42GB4GB
全精度84-10GB6-14GB
半精度≤ 41GB2GB
半精度82-6GB4-8GB

注意事项:

  1. 显存需求与上下文长度相关,因此呈现为一个范围。
  2. 半精度(默认)的显存需求约为全精度的一半。
  3. 对于 Batch Size ≤ 4,4GB 显存通常足够进行推理。
  4. Batch Size 为 8 时,可能需要 6-14GB 显存,具体取决于精度和是否使用 Enhancer。

3. 安装与运行

  1. 确保 相关依赖 已经正确安装,
  2. 根据你的需求启动需要的服务。
  • webui: python webui.py
  • api: python launch.py

3.1. webui 特性

点我看详细图文介绍

  • ChatTTS 模型原生功能 Refiner/Generate
  • 原生 Batch 合成,高效合成超长文本
  • 风格控制
  • SSML
    • 编辑器: 简单的 SSML 编辑,配合其他功能使用
    • 分割器:超长文本分割预处理
    • 播客: 支持创建编辑播客脚本
  • 说话人
    • 内置音色:内置众多说话人可以使用
    • 说话人创建器: 支持试音抽卡,创建说话人
    • 嵌入: 支持上传说话人嵌入,可复用保存下来的说话人
    • 说话人合并: 支持合并说话人,微调说话人
  • 提示槽
  • 文字规范化
  • 音质增强:
    • 增强: 音质增强提高输出质量
    • 降噪: 去除噪音
  • 实验性功能
    • 微调
      • 说话人嵌入
      • [WIP] GPT lora
      • [WIP] AE
    • [WIP] ASR
    • [WIP] 修复

3.2. launch.py: API 服务

某些情况,你并不需要 webui,那么可以使用这个脚本启动单纯的 api 服务。

launch.py 脚本启动成功后,你可以在 /docs 下检查 api 是否开启。

详细 API 文档

3.2.1. 如何连接到 SillyTavern?

通过 /v1/xtts_v2 系列 api,你可以方便的将 ChatTTS-Forge 连接到你的 SillyTavern 中。

下面是一个简单的配置指南:

  1. 点开 插件拓展
  2. 点开 TTS 插件配置部分
  3. 切换 TTS ProviderXTTSv2
  4. 勾选 启用
  5. 选择/配置 声音
  6. [关键] 设置 Provider Endpointhttp://localhost:7870/v1/xtts_v2

sillytavern_tts

4. 演示

4.1. 风格化控制

输入
<speak version="0.1">
    <voice spk="Bob" seed="42" style="narration-relaxed">
        下面是一个 ChatTTS 用于合成多角色多情感的有声书示例[lbreak]
    </voice>
    <voice spk="Bob" seed="42" style="narration-relaxed">
        黛玉冷笑道:[lbreak]
    </voice>
    <voice spk="female2" seed="42" style="angry">
        我说呢 [uv_break] ,亏了绊住,不然,早就飞起来了[lbreak]
    </voice>
    <voice spk="Bob" seed="42" style="narration-relaxed">
        宝玉道:[lbreak]
    </voice>
    <voice spk="Alice" seed="42" style="unfriendly">
        “只许和你玩 [uv_break] ,替你解闷。不过偶然到他那里,就说这些闲话。”[lbreak]
    </voice>
    <voice spk="female2" seed="42" style="angry">
        “好没意思的话![uv_break] 去不去,关我什么事儿? 又没叫你替我解闷儿 [uv_break],还许你不理我
中华美食不仅仅是食物,更是一种文化的传承。每一道菜背后都有着深厚的历史背景和文化故事。比如,北京的烤鸭,代表着皇家气派;而西安的羊肉泡馍,则体现了浓郁的地方风情。中华美食的精髓在于它追求的“天人合一”,讲究食材的自然性和烹饪过程中的和谐。

总之,中华美食博大精深,其丰富的口感和多样的烹饪技艺,构成了一个充满魅力和无限可能的美食世界。无论你来自哪里,都会被这独特的美食文化所吸引和感动。

Docker

镜像

WIP 开发中

手动 build

下载模型: `python -m scripts.download_models --source modelscope`

- webui: `docker-compose -f ./docker-compose.webui.yml up -d`
- api: `docker-compose -f ./docker-compose.api.yml up -d`

环境变量配置

- webui: [.env.webui](./.env.webui)
- api: [.env.api](./.env.api)

Roadmap

Model Supports

TTS

| 模型名称   | 流式级别 | 支持复刻 | 支持训练 | 支持 prompt | 实现情况               |
| ---------- | -------- | -------- | -------- | ----------- | ---------------------- |
| ChatTTS    | token 级 | ✅       | ❓       | ❓          | ✅                     |
| FishSpeech | 句子级   | ✅       | ❓       | ❓          | ✅ (SFT 版本开发中 🚧) |
| CosyVoice  | 句子级   | ✅       | ❓       | ✅          | ✅                     |

ASR

| 模型名称   | 流式识别 | 支持训练 | 支持多语言 | 实现情况 |
| ---------- | -------- | -------- | ---------- | -------- |
| Whisper    | ✅       | ❓       | ✅         | ✅       |
| SenseVoice | ✅       | ❓       | ✅         | 🚧       |

Voice Clone

| 模型名称  | 实现情况 |
| --------- | -------- |
| OpenVoice | 🚧       |
| RVC       | 🚧       |

Enhancer

| 模型名称        | 实现情况 |
| --------------- | -------- |
| ResembleEnhance | ✅       |

FAQ

Prompt1 和 Prompt2

Prompt1 和 Prompt2 都是系统提示(system prompt),区别在于插入点不同。因为测试发现当前模型对第一个 [Stts] token 非常敏感,所以需要两个提示。

- Prompt1 插入到第一个 [Stts] 之前
- Prompt2 插入到第一个 [Stts] 之后

Prefix

Prefix 主要用于控制模型的生成能力,类似于官方示例中的 refine prompt。这个 prefix 中应该只包含特殊的非语素 token,如 `[laugh_0]`、`[oral_0]`、`[speed_0]`、`[break_0]` 等。

Style 中 `_p` 的区别

Style 中带有 `_p` 的使用了 prompt + prefix,而不带 `_p` 的则只使用 prefix。

为什么开启了 `--compile` 很慢

由于还未实现推理 padding 所以如果每次推理 shape 改变都可能触发 torch 进行 compile

> 暂时不建议开启

为什么 colab 里面非常慢只有 2 it/s

请确保使用 gpu 而非 cpu。

- 点击菜单栏 【修改】
- 点击 【笔记本设置】
- 选择 【硬件加速器】 => T4 GPU

离线整合包

感谢 @Phrixus2023 提供的整合包:
https://pan.baidu.com/s/1Q1vQV5Gs0VhU5J76dZBK4Q?pwd=d7xu

相关讨论:
https://github.com/lenML/ChatTTS-Forge/discussions/65

Documents

在这里可以找到 [更多文档](./docs/readme.md)

Contributing

To contribute, clone the repository, make your changes, commit and push to your clone, and submit a pull request.

References

- ChatTTS: https://github.com/2noise/ChatTTS
- PaddleSpeech: https://github.com/PaddlePaddle/PaddleSpeech
- resemble-enhance: https://github.com/resemble-ai/resemble-enhance
- OpenVoice: https://github.com/myshell-ai/OpenVoice
- FishSpeech: https://github.com/fishaudio/fish-speech
- SenseVoice: https://github.com/FunAudioLLM/SenseVoice
- CosyVoice: https://github.com/FunAudioLLM/CosyVoice
- Whisper: https://github.com/openai/whisper

- ChatTTS 默认说话人: https://github.com/2noise/ChatTTS/issues/238
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号