From 2158433a1aa71cf3659e4e5e2dbda5136f67e386 Mon Sep 17 00:00:00 2001 From: libukai Date: Wed, 19 Jun 2024 21:46:13 +0800 Subject: [PATCH] doc: translate README to cn (#364) --- docs/cn/README.md | 221 +++++++++++++++++++++++++++++++--------------- 1 file changed, 149 insertions(+), 72 deletions(-) diff --git a/docs/cn/README.md b/docs/cn/README.md index d43f7b4..109468f 100644 --- a/docs/cn/README.md +++ b/docs/cn/README.md @@ -1,39 +1,120 @@ +
+ +2noise%2FChatTTS | Trendshift + # ChatTTS -> [!NOTE] -> 以下内容可能不是最新,一切请以英文版为准。 +一款用于日常对话的生成式语音模型。 + +[![Licence](https://img.shields.io/badge/LICENSE-CC%20BY--NC%204.0-green.svg?style=for-the-badge)](https://github.com/2noise/ChatTTS/blob/main/LICENSE) [![Huggingface](https://img.shields.io/badge/🤗%20-Models-yellow.svg?style=for-the-badge)](https://huggingface.co/2Noise/ChatTTS) +[![Open In Colab](https://img.shields.io/badge/Colab-F9AB00?style=for-the-badge&logo=googlecolab&color=525252)](https://colab.research.google.com/github/2noise/ChatTTS/blob/main/examples/ipynb/colab.ipynb) -[**English**](../../README.md) | **简体中文** | [**日本語**](../jp/README.md) | [**Русский**](../ru/README.md) +[**English**](README.md) | **简体中文** | [**日本語**](docs/jp/README.md) | [**Русский**](docs/ru/README.md) -ChatTTS是专门为对话场景设计的文本转语音模型,例如LLM助手对话任务。它支持英文和中文两种语言。最大的模型使用了10万小时以上的中英文数据进行训练。在HuggingFace中开源的版本为4万小时训练且未SFT的版本. +
-如需就模型进行正式商业咨询,请发送邮件至 **open-source@2noise.com**。对于中文用户,您可以加入我们的QQ群:~~808364215 (已满)~~ ~~230696694 (二群)~~ 933639842 (三群) 进行讨论。同时欢迎在GitHub上提出问题。如果遇到无法使用 **[HuggingFace](https://huggingface.co/2Noise/ChatTTS)** 的情况,可以在 [modelscope](https://www.modelscope.cn/models/pzc163/chatTTS) 上进行下载. +## 简介 ---- -## 亮点 -1. **对话式 TTS**: ChatTTS针对对话式任务进行了优化,实现了自然流畅的语音合成,同时支持多说话人。 -2. **细粒度控制**: 该模型能够预测和控制细粒度的韵律特征,包括笑声、停顿和插入词等。 -3. **更好的韵律**: ChatTTS在韵律方面超越了大部分开源TTS模型。同时提供预训练模型,支持进一步的研究。 +ChatTTS 是一款专门为对话场景(例如 LLM 助手)设计的文本转语音模型。 -对于模型的具体介绍, 可以参考B站的 **[宣传视频](https://www.bilibili.com/video/BV1zn4y1o7iV)** +### 支持的语种 ---- +- [x] 英语 +- [x] 中文 +- [ ] 敬请期待... -## 免责声明 -本文件中的信息仅供学术交流使用。其目的是用于教育和研究,不得用于任何商业或法律目的。作者不保证信息的准确性、完整性或可靠性。本文件中使用的信息和数据,仅用于学术研究目的。这些数据来自公开可用的来源,作者不对数据的所有权或版权提出任何主张。 +### 亮点 -ChatTTS是一个强大的文本转语音系统。然而,负责任地和符合伦理地利用这项技术是非常重要的。为了限制ChatTTS的使用,我们在4w小时模型的训练过程中添加了少量额外的高频噪音,并用mp3格式尽可能压低了音质,以防不法分子用于潜在的犯罪可能。同时我们在内部训练了检测模型,并计划在未来开放。 +> 你可以参考 **[Bilibili](https://www.bilibili.com/video/BV1zn4y1o7iV)** 上的这个视频了解详细的介绍. ---- -## 安装 +1. **对话式 TTS**: ChatTTS 针对对话式任务进行了优化,能够实现自然且富有表现力的合成语音。它支持多个说话者,便于生成互动式对话。 +2. **精细的控制**: 该模型可以预测和控制精细的韵律特征,包括笑声、停顿和插入语。 +3. **更好的韵律**: ChatTTS 在韵律方面超越了大多数开源 TTS 模型。我们提供预训练模型以支持进一步的研究和开发。 -``` +### 数据集和模型 + +- 主要模型使用 100,000+ 小时的中文和英文音频数据进行训练。 +- **[HuggingFace](https://huggingface.co/2Noise/ChatTTS)** 上的开源版本是一个在 40,000 小时数据上进行无监督微调的预训练模型。。 + +### 路线图 + +- [x] 开源 4 万小时基础模型和 spk_stats 文件 +- [ ] 开源 VQ 编码器和 Lora 训练代码 +- [ ] 无需细化文本即可进行流式音频生成 +- [ ] 开源具有多情感控制功能的 4 万小时版本 +- [ ] 也许会有 ChatTTS.cpp ?(欢迎 PR 或新建仓库) + +### 免责声明 + +> [!Important] +> 此仓库仅供学术用途。 + +本项目旨在用于教育和研究目的,不应用于任何商业或法律目的。作者不保证信息的准确性、完整性或可靠性。此仓库中使用的信息和数据仅供学术和研究目的。数据来自公开来源,作者不声称对数据拥有任何所有权或版权。 + +ChatTTS 是一款强大的文本转语音系统。但是,负责任和道德地使用这项技术非常重要。为了限制 ChatTTS 的使用,我们在 40,000 小时模型的训练过程中添加了少量高频噪声,并使用 MP3 格式尽可能压缩音频质量,以防止恶意行为者将其用于犯罪目的。同时,我们内部训练了一个检测模型,并计划在未来开源它。 + +### 联系方式 + +> 欢迎随时提交 GitHub issues/PRs。 + +#### 合作洽谈 + +如就模型和路线图进行合作洽谈,请发送邮件至 **open-source@2noise.com**。 + +#### 线上讨论 + +##### 1. 官方 QQ 群 + +- **群 1**, 808364215 (已满) +- **群 2**, 230696694 (已满) +- **群 3**, 933639842 + +## 安装教程 (丰富中) + +> 将在近期上传至 pypi,详情请查看 https://github.com/2noise/ChatTTS/issues/269 上的讨论。 + +#### 1. 使用源代码安装 + +```bash pip install git+https://github.com/2noise/ChatTTS ``` -## 用法 -

基本用法

+#### 2. 使用 conda 安装 + +```bash +git clone https://github.com/2noise/ChatTTS +cd ChatTTS +conda create -n chattts +conda activate chattts +pip install -r requirements.txt +``` + +## 使用教程 + +### 安装依赖 + +```bash +pip install --upgrade -r requirements.txt +``` + +### 快速开始 + +#### 1. 启动 WebUI + +```bash +python examples/web/webui.py +``` + +#### 2. 使用命令行 + +> 生成的音频将保存至 `./output_audio_xxx.wav` + +```bash +python examples/cmd/run.py "Please input your text." +``` + +### 基础用法 ```python import ChatTTS @@ -41,16 +122,16 @@ from IPython.display import Audio import torchaudio chat = ChatTTS.Chat() -chat.load_models(compile=False) # 设置为True以获得更快速度 +chat.load_models(compile=False) # Set to True for better performance -texts = ["在这里输入你的文本",] +texts = ["PUT YOUR TEXT HERE",] -wavs = chat.infer(texts, use_decoder=True) +wavs = chat.infer(texts, ) torchaudio.save("output1.wav", torch.from_numpy(wavs[0]), 24000) ``` -

进阶用法

+### 高级用法 ```python ################################### @@ -78,74 +159,70 @@ wavs = chat.infer(texts, params_refine_text=params_refine_text, params_infer_cod ################################### # For word level manual control. -# use_decoder=False to infer faster with a bit worse quality text = 'What is [uv_break]your favorite english food?[laugh][lbreak]' -wavs = chat.infer(text, skip_refine_text=True, params_infer_code=params_infer_code, use_decoder=False) - +wavs = chat.infer(text, skip_refine_text=True, params_refine_text=params_refine_text, params_infer_code=params_infer_code) torchaudio.save("output2.wav", torch.from_numpy(wavs[0]), 24000) ```
-

自我介绍样例

+

示例: 自我介绍

```python -inputs_cn = """ -chat T T S 是一款强大的对话式文本转语音模型。它有中英混读和多说话人的能力。 -chat T T S 不仅能够生成自然流畅的语音,还能控制[laugh]笑声啊[laugh], -停顿啊[uv_break]语气词啊等副语言现象[uv_break]。这个韵律超越了许多开源模型[uv_break]。 -请注意,chat T T S 的使用应遵守法律和伦理准则,避免滥用的安全风险。[uv_break]' -""".replace('\n', '') +inputs_en = """ +chat T T S is a text to speech model designed for dialogue applications. +[uv_break]it supports mixed language input [uv_break]and offers multi speaker +capabilities with precise control over prosodic elements [laugh]like like +[uv_break]laughter[laugh], [uv_break]pauses, [uv_break]and intonation. +[uv_break]it delivers natural and expressive speech,[uv_break]so please +[uv_break] use the project responsibly at your own risk.[uv_break] +""".replace('\n', '') # English is still experimental. params_refine_text = { 'prompt': '[oral_2][laugh_0][break_4]' } -audio_array_cn = chat.infer(inputs_cn, params_refine_text=params_refine_text) -# audio_array_en = chat.infer(inputs_en, params_refine_text=params_refine_text) - -torchaudio.save("output3.wav", torch.from_numpy(audio_array_cn[0]), 24000) +# audio_array_cn = chat.infer(inputs_cn, params_refine_text=params_refine_text) +audio_array_en = chat.infer(inputs_en, params_refine_text=params_refine_text) +torchaudio.save("output3.wav", torch.from_numpy(audio_array_en[0]), 24000) ``` -[男说话人](https://github.com/2noise/ChatTTS/assets/130631963/bbfa3b83-2b67-4bb6-9315-64c992b63788) -[女说话人](https://github.com/2noise/ChatTTS/assets/130631963/e061f230-0e05-45e6-8e4e-0189f2d260c4) +[男性音色](https://github.com/2noise/ChatTTS/assets/130631963/e0f51251-db7f-4d39-a0e9-3e095bb65de1) + +[女性音色](https://github.com/2noise/ChatTTS/assets/130631963/f5dcdd01-1091-47c5-8241-c4f6aaaa8bbd) +
- ---- -## 计划路线 -- [x] 开源4w小时基础模型和spk_stats文件 -- [ ] 开源VQ encoder和Lora 训练代码 -- [ ] 在非refine text情况下, 流式生成音频* -- [ ] 开源多情感可控的4w小时版本 -- [ ] ChatTTS.cpp maybe? (欢迎社区PR或独立的新repo) - ---- ## 常见问题 -##### 连不上HuggingFace -请使用[modelscope](https://www.modelscope.cn/models/pzc163/chatTTS)的版本. 并设置cache的位置: -```python -chat.load_models(source='local', local_path='你的下载位置') -``` +#### 1. 我需要多少 VRAM? 推理速度如何? -##### 我要多少显存? Infer的速度是怎么样的? -对于30s的音频, 至少需要4G的显存. 对于4090, 1s生成约7个字所对应的音频. RTF约0.3. +对于 30 秒的音频片段,至少需要 4GB 的 GPU 内存。 对于 4090 GPU,它可以每秒生成大约 7 个语义 token 对应的音频。实时因子 (RTF) 约为 0.3。 -##### 模型稳定性似乎不够好, 会出现其他说话人或音质很差的现象. -这是自回归模型通常都会出现的问题. 说话人可能会在中间变化, 可能会采样到音质非常差的结果, 这通常难以避免. 可以多采样几次来找到合适的结果. +#### 2. 模型稳定性不够好,存在多个说话者或音频质量差等问题。 -##### 除了笑声还能控制什么吗? 还能控制其他情感吗? -在现在放出的模型版本中, 只有[laugh]和[uv_break], [lbreak]作为字级别的控制单元. 在未来的版本中我们可能会开源其他情感控制的版本. +这是一个通常发生在自回归模型(例如 bark 和 valle)中的问题,通常很难避免。可以尝试多个样本以找到合适的结果。 -## Starchart +#### 3. 除了笑声,我们还能控制其他东西吗?我们能控制其他情绪吗? + +在当前发布的模型中,可用的 token 级控制单元是 `[laugh]`, `[uv_break]` 和 `[lbreak]`。未来的版本中,我们可能会开源具有更多情绪控制功能的模型。 + +## 致谢 + +- [bark](https://github.com/suno-ai/bark), [XTTSv2](https://github.com/coqui-ai/TTS) 和 [valle](https://arxiv.org/abs/2301.02111) 通过自回归式系统展示了非凡的 TTS 效果。 +- [fish-speech](https://github.com/fishaudio/fish-speech) 揭示了 GVQ 作为 LLM 建模的音频分词器的能力。 +- [vocos](https://github.com/gemelo-ai/vocos) vocos 被用作预训练声码器。 + +## 特别鸣谢 + +- [wlu-audio lab](https://audio.westlake.edu.cn/) 对于早期算法实验的支持。 + +## 相关资源 + +- [Awesome-ChatTTS](https://github.com/libukai/Awesome-ChatTTS) 一个 ChatTTS 的资源汇总列表。 + +## 感谢所有贡献者的付出 + +[![contributors](https://contrib.rocks/image?repo=2noise/ChatTTS)](https://github.com/2noise/ChatTTS/graphs/contributors) + +## Star 趋势 [![Star History Chart](https://api.star-history.com/svg?repos=2noise/ChatTTS&type=Date)](https://star-history.com/#2noise/ChatTTS&Date) - ---- -## 致谢 -- [bark](https://github.com/suno-ai/bark),[XTTSv2](https://github.com/coqui-ai/TTS)和[valle](https://arxiv.org/abs/2301.02111)展示了自回归任务用于TTS任务的可能性. -- [fish-speech](https://github.com/fishaudio/fish-speech)一个优秀的自回归TTS模型, 揭示了GVQ用于LLM任务的可能性. -- [vocos](https://github.com/gemelo-ai/vocos)作为模型中的vocoder. - ---- -## 特别致谢 -- [wlu-audio lab](https://audio.westlake.edu.cn/)为我们提供了早期算法试验的支持.