微信扫码
与创始人交个朋友
我要投稿
最近,ChatTTS 日常对话生成语音模型引起了广泛关注。
https://github.com/2noise/ChatTTS
虽然大部分开发者推荐使用seed来固定音色,但实际测试多个方案生成长音频时,即便选择了固定音色的种子,生成的3分钟音频里音色还是会不断变化,并不完全一致。
下图是将 ChatTTS_colab 在 Github Codespaces 里生成的,由于速度较慢,因此更推荐在 Colab 里选择 T4 运行。
https://github.com/6drf21e/ChatTTS_colab
字节跳动昨天发布了一款超级厉害的语音生成模型,叫做 Seed-TTS。演示里它生成的语音,自然度和表现力直接拉满,甚至可以以假乱真,跟真人说话没区别!
至于多好,口说无凭,强烈推荐你试听。
https://bytedancespeech.github.io/seedtts_tech_report/
这个项目对应还有篇论文:Seed-TTS: A Family of High-Quality Versatile Speech Generation Models。今天就来解读下。
https://arxiv.org/pdf/2406.02430
上图展示了 Seed-TTS 语音合成模型的推理流程,它包含四个主要模块:
语音标记器(Speech Tokenizer):
接收一段参考语音(Reference),将其转换成一系列离散的语音标记(Speech Tokens)。
这些语音标记可以理解为将语音信号分解成更小的单元,类似于将文本拆分成单词或字符。
自回归语言模型(Autoregressive Language Model):
基于输入的文本标记(Text Tokens)和语音标记,生成目标语音的语音标记序列。
自回归模型的特点是,它会根据之前生成的标记来预测下一个标记,逐步生成完整的序列。
扩散变换器模型(Diffusion Transformer Model):
接收语言模型生成的语音标记序列,将其转换成连续的语音表示。
扩散模型是一种生成模型,它通过逐步去除噪声的方式,从随机噪声中生成目标数据。
Seed-TTS 中的扩散模型采用了一种由粗到精的方式,逐步提升语音表示的细节和质量。
声码器(Acoustic Vocoder):
接收扩散模型生成的语音表示,将其转换成最终的语音波形(Target)。
声码器负责将抽象的语音表示转换成可听的声音信号。
简单来说,Seed-TTS 的工作流程如下:
上图展示了 Seed-TTS 在零样本语音合成任务中,能够很好地保留说话人音色信息。即使没有针对特定说话人进行训练,Seed-TTS 也能生成与该说话人真实语音高度相似的语音,这体现了 Seed-TTS 强大的泛化能力和语音模仿能力。
t-SNE 技术:
t-SNE(t-distributed Stochastic Neighbor Embedding)是一种降维可视化技术,它可以将高维数据映射到二维或三维空间,同时保留数据点之间的相似性关系。在这张图中,t-SNE 将高维的语音嵌入向量降维到二维平面,使得我们可以直观地观察不同说话人语音之间的相似性。
上图展示了 Seed-TTS 系统中零样本语音转换(Zero-shot Voice Conversion)的流程。
目标: 将说话人 A 的语音转换为说话人 B 的语音,同时保留说话内容和韵律。
关键技术:
上图展示了 Seed-TTSDiT 模型如何进行语音内容编辑(Content Editing)。
目标: 将原始语音中的 "cat" 替换成 "dog",同时保留其他部分不变。
关键技术:
这两张图展示了 Seed-TTSDiT 模型在语音内容编辑(Content Editing)和语速编辑(Speed Editing)任务上的表现。
图 6:内容编辑
解读:
图 7:语速编辑
解读:
上面的内容不好理解,没关系,以下我将通俗介绍下 Seed-TTS 到底用了哪些黑科技,才能这么牛!
想象一下,我们平时说话,其实就是把一个个的字词按照一定的语法规则组合起来。Seed-TTS 也一样,它会先把语音信号,就像我们把句子拆成一个个的字词一样,变成一串串的“语音标记”。
这些标记就好像乐高积木,Seed-TTS 可以用它们来“拼”出各种各样的语音。这样做的好处是什么呢?
首先,效率高!Seed-TTS 不用吭哧吭哧地从头开始生成每一个音节,直接用现成的“积木”拼起来,速度嗖嗖的!
其次,质量好!因为每个“积木”都是从真实的语音数据中提取出来的,所以拼出来的语音自然就更真实、更自然。
这名字听起来有点玄乎,其实原理很简单,就像我们小时候学习一样,先模仿老师,然后慢慢形成自己的风格。
Seed-TTS 会先生成一段语音,然后对这段语音进行一些“小改动”,比如稍微改变一下音色,或者调整一下语调,生成一段新的语音。
接下来,Seed-TTS 会把这两段语音,也就是“老师”和“学生”放在一起学习。它会努力学习“老师”语音中的精髓,同时也会根据“学生”语音的特点进行调整,最终生成更加自然、更具表现力的语音。
俗话说,熟能生巧。Seed-TTS 也一样,它会通过不断地练习来提升自己的语音生成能力。
具体是怎么做的呢?
Seed-TTS 会先生成一段语音,然后用一个专门的“评分系统”给这段语音打分。如果分数高,说明这段语音质量好,Seed-TTS 就会记住这次成功的经验;如果分数低,说明这段语音还有待改进,Seed-TTS 就会分析原因,并在下一次生成语音时进行调整。
通过这种不断试错、不断学习的方式,Seed-TTS 的语音生成能力就能得到持续提升,越来越接近人类说话的水平。
Seed-TTS 还藏着一个大招,那就是它的“全扩散模型架构”。
传统的 TTS 模型,就像一个按部就班的翻译官,先把文本翻译成语音,然后再调整语音的音调、节奏等等。
而 Seed-TTSDiT,也就是 Seed-TTS 的全扩散模型版本,则完全抛弃了这种传统的做法,另辟蹊径,直接从一段随机的噪声开始,就像画家在空白的画布上作画一样,逐步“生成”出最终的语音。
这种做法的好处是什么呢?
自由度更高!Seed-TTSDiT 不受限于传统的语音合成规则,可以更自由地控制语音的各个方面,生成更富有表现力的语音。
效率更高!Seed-TTSDiT 不需要像传统模型那样一步一步地生成语音,而是直接“一步到位”。
Seed-TTS 最牛的地方来了!它可以根据一段短短的语音片段,就模仿出说话人的音色、语调,甚至连语气词都能模仿得惟妙惟肖!
就像你给 Seed-TTS 听了一段郭德纲的相声,它就能立刻模仿郭德纲的语气,给你来一段!
这项技术叫做“零样本上下文学习”,是 Seed-TTS 的一大亮点。这意味着,Seed-TTS 不需要专门针对某个说话人进行训练,就能模仿出他的声音,真正做到了“千人千声”。
比如:
这些功能有什么用呢?
也就是说,Seed-TTS 可以把一种语言的文本转换成另一种语言的语音,而且发音标准,语调自然。
它可以让不同国家、不同语言的人们更容易地进行交流。也可以为语言学习者提供更标准、更自然的语音素材。
Seed-TTS 不仅能模仿声音,还能模仿情感!通过“指令微调”,Seed-TTS 可以生成带有不同情绪的语音,比如开心、悲伤、愤怒等等。
想象一下,当你听到 Seed-TTS 用充满感情的声音朗读小说,是不是更有代入感?
Seed-TTS 采用了各种优化技术,大大降低了语音生成的延迟。
这意味着,Seed-TTS 可以用于实时语音交互场景,比如语音聊天、在线游戏等等,让我们体验到更流畅、更自然的交流。
论文中展示的实验结果表明,用 Seed-TTS 生成的合成数据训练语音识别模型,可以有效提升语音识别的准确率”。
这就像是什么概念呢?就像我们学习一门外语,听得越多,说得就越标准。Seed-TTS 可以为语音识别模型提供海量的“学习资料”,让它更快地掌握人类语言的规律。
随着 GPT-4o 的推出,越来越多的人期待开源语音技术的进一步升级。无论是字节跳动的 Seed-TTS,还是之前阿里巴巴的 EMO 模型技术(涵盖图像、音频和视频),都展示了显著的进步。
看起来个人高情商语音助手的普及已经指日可待。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-05-28
2024-04-26
2024-08-21
2024-04-11
2024-07-09
2024-08-13
2024-07-18
2024-10-25
2024-07-01
2024-06-17