可能是目前最好的开源 text to speech 模型, 不同于以往机械生硬的 text to speech 模型, ChatTTS 专注于生成对话场景的语音, 生成的语音也会自然的出现停顿等模拟 conversation 的效果.
项目地址: https://github.com/2noise/ChatTTS
演示视频(强烈推荐): https://www.bilibili.com/video/BV1zn4y1o7iV
原理
ChatTTS 与最近很多新出现的 TTS 模型一样, 也是一个自回归模型了, 与 LLM 类似. 每个语音被以某种编码器转换成了 token, 整个模型可以端到端, 直接用语音数据和字幕数据训练, 保留了 speech 空间的更多可能性, 使得生成的语音非常的生动多变自然.
模型在处理时, 分为两个步骤:
RefineText : 为 text 加入 类似: oral_(0-9), laugh_(0-2), break_(0-7) 的模拟口头表达的控制词
InferCode: 生成 audio token
模型权重分为两个版本:
开源版本: 在 40000 小时语音上训练得来的预训练版本, 未经微调的
闭源版本: 计划是需要使用 API 访问
安全
这里之所以会出现闭源版本, 主要是出于安全(防滥用)考虑:
为了限制ChatTTS的使用,我们在训练这个40,000小时模型时,加入了一小部分高频噪音,并尽可能使用MP3格式压缩音频质量,以防止恶意行为者可能将其用于犯罪目的。同时,我们已经在内部训练了一个检测模型,并计划在未来开源。
目前 ChatTTS 的开源版本, 并不能选择音色, 而是以“抽卡”的形式进行的, 在 demo 代码里, 我们可以看到:
rand_spk = chat.sample_random_speaker()
这段代码的作用就是随机出一个 speaker embedding, 也就是一个人设声音的特征值. 记住这个特征值, 就可以在下一次的生成中, 使用该声音
限制
目前的模型稳定性一般, 就像 LLM 会有幻觉, ChatTTS 有时会自行理解 text 认为是有两个人在对话, 从而生成两个不同的人在对话的 Speech Audio, 想要理想效果, 也需要抽卡.
模型目前只支持 [laugh], [uv_break], and [lbreak] 三个 control token,
总结
目前 ChatTTS 无需 GPU, 可以使用 CPU 即可推理. 按照 Github 说明可以快速安装试用, 还不赶快试试抽一些可爱的音色出来陪你聊天吗?
-----------------------------------------------
[在线] ChatTTS - 对话场景的文本转语音
对话场景的文本转语音在线工具「ChatTTS」据介绍经过优化,适用于自然、对话式文本转语音,特别适用于大型语言模型助手的对话任务,以及诸如对话式音频和视频介绍等。
支持中文和英文,通过使用大约100,000小时的中文和英文数据进行训练,ChatTTS在语音合成中表现出高质量和自然度。
功能介绍
多语言支持
ChatTTS 的一个关键特性是支持多种语言,包括英语和中文。这使其能够为广泛用户群提供服务,并克服语言障碍
大规模数据训练
ChatTTS 使用了大量数据进行训练,大约有1000万小时的中文和英文数据。这样的大规模训练使其声音合成质量高,听起来自然
对话任务兼容性
ChatTTS 很适合处理通常分配给大型语言模型LLMs的对话任务。它可以为对话生成响应,并在集成到各种应用和服务时提供更自然流畅的互动体验
开源计划
项目团队计划开源一个经过训练的基础模型。这将使学术研究人员和社区开发人员能够进一步研究和发展这项技术
控制和安全性
团队致力于提高模型的可控性,添加水印,并将其与LLMs集成。这些努力确保了模型的安全性和可靠性
易用性
ChatTTS 为用户提供了易于使用的体验。它只需要文本信息作为输入,就可以生成相应的语音文件。这样的简单性使其方便有语音合成需求的用户
在线地址:
https://chattts.com/zh
-----------------------------------------------
最好在linux os或mac os下,使用该程序。因为在windows下,操作python终究是麻烦事。
No comments:
Post a Comment