ChatTTS:终极文本转语音工具,支持API!

独孤光 2024-09-06 14:31:02 阅读 63

ChatTTS:终极文本转语音工具,支持API!

在这里插入图片描述

文本转语音(TTS)系统的发展已经取得了长足的进步。从最初的机械化、平坦的声音,到如今听起来令人惊讶的人声,ChatTTS作为这一领域的新成员,旨在改变我们与计算机的互动方式,通过自然的语音交流来实现。值得一提的是,ChatTTS在署名-非商业性使用 4.0 国际许可协议下发布,允许非商业用途和分发,同时要求对创作者进行适当的署名。

你是否对此感到好奇?以下是更多细节:

演示效果

对话聚焦与技术实力

超越基本功能:控制与定制的探索

文本预处理:在文本中嵌入控制

推理参数:微调输出

解决伦理问题与潜在滥用

ChatTTS的实际应用:赋予文本生命

持续改进与社区反馈

结论

演示效果

文本输入:[‘大家好,这是一段智能语音生成的示例,文本转语音(TTS)系统的发展已经取得了长足的进步。从最初的机械化、平坦的声音,到如今听起来令人惊讶的人声,ChatTTS作为这一领域的新成员,旨在改 变我们与计算机的互动方式,通过自然的语音交流来实现。’]语音输出:链接:https://pan.baidu.com/s/1rBh_y-2vjmRFsFFM2AxFCQ?pwd=nkvm 提取码:nkvm

请添加图片描述

对话聚焦与技术实力

与一些为通用用途设计的TTS系统不同,ChatTTS专门为对话而构建,非常适合用于AI助手等场景。其闭源版本经过超过10万小时的中文和英文语音训练,而开源版本则在HuggingFace上提供,受益于4万小时的庞大数据集。

ChatTTS的独特之处在于其对人类对话的理解能力。它能够生成不同的“说话者”,使对话更加真实。此外,它还融入了微妙的细节,如笑声、停顿和插入语——这些元素使对话听起来自然,而非机械。

超越基本功能:控制与定制的探索

ChatTTS不仅仅是将文本转换为语音。它为用户提供了通过两个阶段的过程来微调输出的工具:文本预处理和推理参数调整。

文本预处理:在文本中嵌入控制

在文本层面,ChatTTS使用特殊的标记作为嵌入命令。这些标记让你可以控制停顿、笑声和其他口语特征。

句子级控制:插入标记如 <code>[laugh_(0–2)] 来引入笑声,[break_(0–7)] 用于不同长度的停顿,以及 [oral_(0–9)] 来控制其他口语特征。单词级控制:通过在特定单词旁放置 [uv_break][lbreak] 来实现更细致的停顿管理。

想象一下,你正在为儿童故事应用创建一个奇幻的AI角色……你可以用ChatTTS生成这样的文本:

“从前,在一个充满会说话的胡萝卜和唱歌的土豆的地方,[uv_break] 住着一只名叫闪烁的小萤火虫。[laugh] 闪烁喜欢在月光中[uv_break] 跳舞!”

通过精心放置这些标记,你可以让ChatTTS生成一个在戏剧性效果上停顿、温暖地笑,并将那个奇幻世界带入生活的声音。

推理参数:微调输出

在音频生成过程中(推理),你可以使用传递给 chat.infer() 函数的参数进一步细化输出:

params_infer_code:这个字典控制说话者身份(spk_emb)、语音变化(temperature)和解码策略(top_Ptop_K)等方面。params_refine_text:这个字典主要用于句子级控制,类似于文本中使用的标记。

这两级控制的结合,使合成语音在表现力和定制性上达到了前所未有的水平。

解决伦理问题与潜在滥用

ChatTTS的创作者意识到先进技术带来的责任。他们采取了一些措施来减少滥用的风险,特别是在生成误导性内容方面:

高频噪声:在训练过程中添加了一层非常细微的高频噪声。这使得不法分子更难利用音频进行有害用途(这只是他们的观点……)。压缩音频质量:开源音频故意使用MP3格式进行压缩,进一步降低其整体质量(这算是一种对策!)。

虽然这些选择可能会对某些用户的音频保真度产生轻微影响(找一个真的在意的人),但它们展示了对伦理AI开发的承诺。团队还在开发一个开源工具,以检测由ChatTTS生成的合成语音,增加了另一层保护。

ChatTTS的实际应用:赋予文本生命

以下是如何使用ChatTTS的示例,展示了基本和高级用法:

import ChatTTS

from IPython.display import Audio

# 初始化ChatTTS

chat = ChatTTS.Chat()

chat.load_models()

# 基本用法:

text = "你好,这里是ChatTTS在讲话!"

wav = chat.infer(text)

torchaudio.save("basic_output.wav", torch.from_numpy(wav[0]), 24000)

# 高级用法:

# 1. 随机选择一个说话者

rand_spk = chat.sample_random_speaker()

# 2. 定义推理参数

params_infer_code = {

'spk_emb': rand_spk, # 使用随机选择的说话者

'temperature': 0.5, # 调整语音变化

}

# 3. 带有嵌入控制标记的文本

text_with_tokens = "你最喜欢的颜色是什么?[uv_break][laugh]"

# 4. 生成并保存音频

wav = chat.infer(text_with_tokens, params_infer_code=params_infer_code)

torchaudio.save("advanced_output.wav", torch.from_numpy(wav[0]), 24000)

这个示例展示了如何使用ChatTTS进行基本的文本转语音转换,以及如何利用其高级功能自定义说话者身份、引入停顿和添加笑声。

请记住,要使用ChatTTS,您需要一台具有良好GPU的系统,建议至少4GB的显存以生成短音频片段。

持续改进与社区反馈

与任何新技术一样,ChatTTS正在不断改进。开发者积极与用户反馈互动,努力提升性能并解决改进领域。值得一提的是,未来的路线图中计划发布一个具有多情感控制和Lora训练代码的版本。

结论

ChatTTS在GitHub上发布后,迅速获得了大量关注。它是时下的热潮,还是在对话式文本转语音领域的真正变革者?试试看,表达你的看法吧😉

Github开源网址:https://github.com/2noise/ChatTTS



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。