最近,
ChatTTS
这一语音生成项目在 GitHub 上迅速获得关注。截至
6月4日
,6天时间已经斩获
18.9千个星标
🌟。各大网友直呼太牛!按照这样的趋势,很快会突破
2万stars
。
网址:
https://github.com/2noise/ChatTTS
ChatTTS 是一个专门为对话场景设计的
文本生成语音
模型(
TTS 即 Text-To-Speech)
,它支持多种语言,包括英语和中文,最大的模型
采用了10万小时的中英文数据进行训练
,在 Huggingface 中开源的版本为4万小时训练且未sft的版本。以确保声音合成的高质量和自然度
。
据官方介绍,
ChatTTS 有
3大亮点
:
在 Github 里听完官方语音版的自我介绍,人物声音十分
逼真、自然、流程,同时有停顿、笑声
。
那我们用官方提示词试试看效果如何:
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', '')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)
除了上面的官方自我介绍,大家最熟悉的肯定是这几天最常见到的那段——
四川美食朗读
,不得不说生成的效果真的很自然、很流畅啊!
本文主要分为三部分,对某个板块感兴趣的小伙伴可直接跳转阅读📖。
-
ChatTTS 深度测评(PK七情六欲,节选音频放在文章,是在辣耳朵的咱先不放了。)
-
-
ChatTTS
PK
人之“七情六欲”
每个人都有七情六欲,都说 ChatTTS 生成的声音十分逼真自然,那挑战一下我们的
“七情六欲”
,看它有多大能耐!
我们
利用 ChatTTS 的
文本控制标记
来丰富语音的情感表现,具体如下,大家请欣赏:
每次投资看到数字翻倍,那种兴奋的感觉就像是找到了新大陆[break_1],让人欲罢不能。
🐰 整句话自然流畅,“兴奋”二字的情绪相对比较突出。
当我看到那份丰盛的晚餐被摆上桌子,我的口水忍不住就流了下来[break_1][oral_3],每一道菜都让我垂涎欲滴。
🐰 文字输出部分有部分词语重叠,结尾部分在语音中听起来含糊不清,但整体的情绪很饱满,相对来说也比较流畅。
睡欲(Desire for Sleep):
经过一整天的忙碌,我只想一头栽进软软的床上[lbreak],沉浸在甜美的梦乡中[oral_4]。
每次想到能中大奖的那一刻,我的心就充满了激动[laugh_2]和无限的幻想[break_2]。
站在闪光灯下的那一刻,我感觉自己就像是世界的中心[laugh_1],所有的目光都集中在我身上。
🐰 整句话特别流畅,听完就有种站在“闪光灯下”的感觉,最有意思的是结尾部分还有“偷笑”,而且还很有偷感。
在那迷人的灯光下,我被对方那深邃的眼神深深吸引[break_3],无法自拔。
还有七情
为了更好地表达“七情六欲”这一复杂的情感体系,我们同样可以通过在文本中嵌入控制标记来精细控制语音的情感表达,具体如下:
-原文:终于得到了期待已久的晋升[laugh_1],感觉像是站在世界之巅[break_2],一切努力都得到了回报。
-文字输出:开始
乱码重复
,很多时候需要多次生成才行。
-音频输出:音频里基本没有生成完整的词语、句子能说出来,基本都是乱叫。
🐰 我们会发现,这两次的效果都在
文字输出
这部分就已经出问题了。
-原文:看到那不公正的报道,我简直气炸了[lbreak],怎么可以这样歪曲事实[oral_5]?
-音频输出:前半句非常平静,中间有停顿,但后半句完全听不出“怒”感,甚至略带“笑意”,不太合理。
🐰 这部分句子能完整读出来,甚至开始有了停顿,但在情绪变化傻姑娘略显青涩,基本快听不出情绪的变化。(🐰 盲猜:只有笑和停顿是最明显的。
-原文:告别仪式上,我试图抑制我的悲伤[break_4][oral_2],但泪水还是夺眶而出。
-文字输出:试了两次,都
缺少“但泪水还是夺眶而出”的文字
。
-音频输出:情感非常平静,但是
有“嗯”的语气词
。
🐰 第三句话在 output
文字输出部分就已经开始遗漏原始信息
了,到语音部分后续半句“
但泪水还是夺眶而出
”直接丢失,无法生成语音。情绪上则非常地平静,不过能听出来有点儿方言的感觉。
-原文:在朋友的婚礼上,我们一起欢笑[laugh_2],那一刻的幸福感[break_1]无与伦比。
-文字输出:文字输出一半以后
开始乱码,
后面基本呈结巴的状态。
-音频输出:乐倒是挺乐的,全程基本都是结巴的状态,“我我我......”等等。
🐰 这一次跟第一次效果很像,基本没有完整的词语出现,虽然没有完整的剧字输出,但情感这点很饱满,尴尬之间藏着大笑😂。至于有多乐,还是耳听为实。
-原文:看着夕阳逐渐西下[break_3],我陷入了深深的思索[oral_1],思考人生的真谛。
-
文字输出:文字输出前半句多了“西下”,内容上有重复。
-音频输出:音频中同样也带有双“西下”,听起来怪怪的,情感上倒是特别有思考的感觉。
🐰 在文字输出部分除了时不时丢失句子以外,还会
存在词语“重叠”
的现象,这直接影响最后生成的语音结果,
有点像抽卡,需要多次才能满意
。
-原文:当我无意间发现那份遗失的信件[lbreak],惊讶之情溢于言表[break_2]。
-
音频输出:音频完整输出,
停顿的恰到好处
,读到“无意间”这几个字是有情感在的,但后半句惊讶的情绪没有体现出来。
🐰 这一次完整输出了文字和音频,情绪上有所涉及到,但波动不明显,听不出惊讶的情绪,像是平静地朗读。
-原文:夜晚的奇怪声响让我心惊肉跳[break_3][oral_8],每一个声音都让我不寒而栗。
-文字输出:文字输出效果
多了一个单词 way
,其他都很完整。
-音频输出:朗读的特别自然,整个情绪也相对饱满,尤其是读到“不寒而栗”的时候,还喘口气。
🐰 这次是很完整地把 ChatTTS 的特点展现出来了,不仅
流畅自然、而且情绪很到位
,甚至结尾还出现了第二个人声的“嗯”,可见还有很多宝藏功能有待挖掘。
我们会发现 ChatTTS 的
输出不太稳定,时而完整、时而缺胳膊少腿儿
,还是那句话(重要的事情说三遍‼️):
总的来说,通过停顿、笑声和口腔特征的控制标记,ChatTTS 能够更准确地传达复杂的情感状态,提升语音内容的表现力和互动性。但相对而言,还是有一段距离要走的。
其实,测评到这,
ChatTTS 在 GitHub 上相当火是有
原因
的,比如:
- 多语言支持:
不管你是讲中文还是英文,这玩意儿都能应付。
- 声音有感情:
它能在说话时加入笑声或改变语调,让聊天更加自然。
- 易用性:
它的设置过程简单明了,能顺利集成到各种程序里。
- 声音质量参差不齐,
偶尔得试好几次才能得到个好听的声音。
- 机器人和虚拟助手:
真实的声音输出特别适合提升用户的互动体验。
- 制作多媒体内容:
比如有声书或者故事讲述,都能用得上。
如何使用 ChatTTS
对于文本预处理:在文本中嵌入控制
在文本层面上,ChatTTS 使用特殊的标记作为
嵌入式命令
。这些标记让您可以
控制停顿、笑声
和其他
口头
方面。
-
句子级控制:
插入像
[laugh_(0-2)]
这样的标记,引入笑声,
[break_(0-7)]
表示不同长度的停顿,以及
[oral_(0-9)]
来控制其他口腔特征。
-
单词级控制:
通过在特定单词旁边放置
[uv_break]
和
[lbreak]
,实现
对句子内部停顿的精细控制
。
举个例子,你正在为一个儿童故事应用程序创建一个奇思妙想的 AI 角色,你可以使用 ChatTTS 创建类似这样的文本(英文绘本):
"Once upon a time, [uv_break] in a land filled with talking carrots and
singing potatoes, [break_2] lived a little firefly named Flicker. [laugh]
Flicker loved to [uv_break] dance among the moonbeams!"
实际生成效果:英文简直就是一气呵成,而且非常好听。
"很久很久以前,[uv_break] 在一个到处是会说话的胡萝卜和会唱歌的土豆的地方,[break_2]
住着一只叫弗莱克的小萤火虫 [laugh]
萤火虫喜欢在[uv_break]月光下跳舞!"