查看原文
其他

Seed-TTS 论文解读:不止是语音合成,更是语音编辑、跨语言交流的未来

思辨view kate人不错
2024-07-24

引言

最近,ChatTTS 日常对话生成语音模型引起了广泛关注。

https://github.com/2noise/ChatTTS

虽然大部分开发者推荐使用seed来固定音色,但实际测试多个方案生成长音频时,即便选择了固定音色的种子,生成的3分钟音频里音色还是会不断变化,并不完全一致。

下图是将 ChatTTS_colab 在 Github Codespaces 里生成的,由于速度较慢,因此更推荐在 Colab 里选择 T4 运行。

https://github.com/6drf21e/ChatTTS_colab

字节发布 Seed-TTS

字节跳动昨天发布了一款超级厉害的语音生成模型,叫做 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 语音合成模型的推理流程,它包含四个主要模块:

  1. 语音标记器(Speech Tokenizer):

    接收一段参考语音(Reference),将其转换成一系列离散的语音标记(Speech Tokens)。

    这些语音标记可以理解为将语音信号分解成更小的单元,类似于将文本拆分成单词或字符。

  2. 自回归语言模型(Autoregressive Language Model):

    基于输入的文本标记(Text Tokens)和语音标记,生成目标语音的语音标记序列。

    自回归模型的特点是,它会根据之前生成的标记来预测下一个标记,逐步生成完整的序列。

  3. 扩散变换器模型(Diffusion Transformer Model):

    接收语言模型生成的语音标记序列,将其转换成连续的语音表示。

    扩散模型是一种生成模型,它通过逐步去除噪声的方式,从随机噪声中生成目标数据。

    Seed-TTS 中的扩散模型采用了一种由粗到精的方式,逐步提升语音表示的细节和质量。

  4. 声码器(Acoustic Vocoder):

    接收扩散模型生成的语音表示,将其转换成最终的语音波形(Target)。

    声码器负责将抽象的语音表示转换成可听的声音信号。

简单来说,Seed-TTS 的工作流程如下:

  1. 将参考语音和目标文本分别转换成语音标记和文本标记。
  2. 语言模型根据文本标记和参考语音的语音标记,生成目标语音的语音标记序列。
  3. 扩散模型将语音标记序列转换成连续的语音表示。
  4. 声码器将语音表示转换成最终的语音波形。

上图展示了 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-TTS 使用语音标记器将语音信号转换成一系列离散的语音标记,这些标记包含了语音的音调、韵律等信息。
  • 音色解耦:  Seed-TTS  采用自蒸馏技术将音色信息从语音特征中分离出来,使得可以独立控制语音的音色。

上图展示了 Seed-TTSDiT 模型如何进行语音内容编辑(Content Editing)。

目标: 将原始语音中的 "cat" 替换成 "dog",同时保留其他部分不变。

关键技术:

  • 全扩散模型: Seed-TTSDiT 是一种完全基于扩散模型的语音合成模型,它可以直接预测输出语音的潜在表示,而无需依赖单独的时长预测模块,这使得它能够更灵活地进行语音编辑。
  • 局部替换: Seed-TTSDiT 只需要替换需要修改的部分,而不需要重新生成整个语音,这提高了编辑效率,也保证了编辑后的语音与原始语音的一致性。

这两张图展示了 Seed-TTSDiT 模型在语音内容编辑(Content Editing)和语速编辑(Speed Editing)任务上的表现。

图 6:内容编辑

  • 横轴: 掩码比例(Mask Ratio),表示被掩码遮盖的语音片段占整个语音的比例。
  • 纵轴(左侧):  词错误率(WER),表示语音识别模型对编辑后语音的识别错误率,越低越好。
  • 纵轴(右侧):  说话人相似度(SIM),表示编辑后语音与原始语音的说话人相似度,越高越好。

解读:

  • 随着掩码比例的增加,WER 缓慢上升,SIM 缓慢下降,但整体变化幅度不大。
  • 这表明 Seed-TTSDiT 在内容编辑任务中表现出较强的鲁棒性,即使掩码比例较高,也能生成高质量的语音,并保持较高的说话人相似度。

图 7:语速编辑

  • 横轴: 语速比例(Speed Rate),表示编辑后语音的语速与原始语音语速的比例。
  • 纵轴(左侧):  词错误率(WER)。
  • 纵轴(右侧):  说话人相似度(SIM)。

解读:

  • 当语速比例在 0.7 到 1.2 之间时,WER 和 SIM 都保持在较好的水平。
  • 当语速比例超过 1.2 时,WER 明显上升,SIM 明显下降。
  • 这表明 Seed-TTSDiT 能够合成不同语速的语音,并在一定范围内保持较高的说话人相似度,但当语速过快时,语音质量会下降。

通俗介绍 Seed-TTS 的黑科技

上面的内容不好理解,没关系,以下我将通俗介绍下 Seed-TTS 到底用了哪些黑科技,才能这么牛!

1.  像搭积木一样玩转语音:语音标记化

想象一下,我们平时说话,其实就是把一个个的字词按照一定的语法规则组合起来。Seed-TTS 也一样,它会先把语音信号,就像我们把句子拆成一个个的字词一样,变成一串串的“语音标记”。

这些标记就好像乐高积木,Seed-TTS 可以用它们来“拼”出各种各样的语音。这样做的好处是什么呢?

首先,效率高!Seed-TTS 不用吭哧吭哧地从头开始生成每一个音节,直接用现成的“积木”拼起来,速度嗖嗖的!

其次,质量好!因为每个“积木”都是从真实的语音数据中提取出来的,所以拼出来的语音自然就更真实、更自然。

2.  偷师学艺,青出于蓝而胜于蓝:自蒸馏技术

这名字听起来有点玄乎,其实原理很简单,就像我们小时候学习一样,先模仿老师,然后慢慢形成自己的风格。

Seed-TTS 会先生成一段语音,然后对这段语音进行一些“小改动”,比如稍微改变一下音色,或者调整一下语调,生成一段新的语音。

接下来,Seed-TTS 会把这两段语音,也就是“老师”和“学生”放在一起学习。它会努力学习“老师”语音中的精髓,同时也会根据“学生”语音的特点进行调整,最终生成更加自然、更具表现力的语音。

3.  没有最好,只有更好:强化学习优化

俗话说,熟能生巧。Seed-TTS 也一样,它会通过不断地练习来提升自己的语音生成能力。

具体是怎么做的呢?

Seed-TTS 会先生成一段语音,然后用一个专门的“评分系统”给这段语音打分。如果分数高,说明这段语音质量好,Seed-TTS 就会记住这次成功的经验;如果分数低,说明这段语音还有待改进,Seed-TTS 就会分析原因,并在下一次生成语音时进行调整。

通过这种不断试错、不断学习的方式,Seed-TTS 的语音生成能力就能得到持续提升,越来越接近人类说话的水平。

4.  颠覆传统,另辟蹊径:全扩散模型架构

Seed-TTS 还藏着一个大招,那就是它的“全扩散模型架构”。

传统的 TTS 模型,就像一个按部就班的翻译官,先把文本翻译成语音,然后再调整语音的音调、节奏等等。

而 Seed-TTSDiT,也就是 Seed-TTS 的全扩散模型版本,则完全抛弃了这种传统的做法,另辟蹊径,直接从一段随机的噪声开始,就像画家在空白的画布上作画一样,逐步“生成”出最终的语音。

这种做法的好处是什么呢?

自由度更高!Seed-TTSDiT 不受限于传统的语音合成规则,可以更自由地控制语音的各个方面,生成更富有表现力的语音。

效率更高!Seed-TTSDiT 不需要像传统模型那样一步一步地生成语音,而是直接“一步到位”。

5. 精准模仿,以假乱真:零样本上下文学习

Seed-TTS 最牛的地方来了!它可以根据一段短短的语音片段,就模仿出说话人的音色、语调,甚至连语气词都能模仿得惟妙惟肖!

就像你给 Seed-TTS 听了一段郭德纲的相声,它就能立刻模仿郭德纲的语气,给你来一段!

这项技术叫做“零样本上下文学习”,是 Seed-TTS 的一大亮点。这意味着,Seed-TTS 不需要专门针对某个说话人进行训练,就能模仿出他的声音,真正做到了“千人千声”。

6. 随心所欲,想怎么改就怎么改:语音编辑功能

比如:

  • 内容编辑: 可以把一段语音中的某个词替换成另一个词,而且毫无违和感。
  • 语速编辑: 可以加快或者放慢语速,而且不会像传统的变声软件那样,声音变得尖锐或者低沉。

这些功能有什么用呢?

  • 影视后期配音: 可以用 Seed-TTS 来替换演员的台词,或者为动画片配音,效率更高,效果更好。
  • 有声读物制作: 可以用 Seed-TTS 来调整朗读者的语速,或者修改个别读错的字词,省时省力。

7. 跨越语言障碍,沟通无极限:跨语言语音合成

也就是说,Seed-TTS 可以把一种语言的文本转换成另一种语言的语音,而且发音标准,语调自然。

它可以让不同国家、不同语言的人们更容易地进行交流。也可以为语言学习者提供更标准、更自然的语音素材。

8. 情感充沛,声情并茂:情感控制技术

Seed-TTS 不仅能模仿声音,还能模仿情感!通过“指令微调”,Seed-TTS 可以生成带有不同情绪的语音,比如开心、悲伤、愤怒等等。

想象一下,当你听到 Seed-TTS 用充满感情的声音朗读小说,是不是更有代入感?

9. 超低延迟,实时交互:低延迟推理和流式处理

Seed-TTS 采用了各种优化技术,大大降低了语音生成的延迟。

这意味着,Seed-TTS 可以用于实时语音交互场景,比如语音聊天、在线游戏等等,让我们体验到更流畅、更自然的交流。

10. 助力语音识别,构建语音理解

论文中展示的实验结果表明,用 Seed-TTS 生成的合成数据训练语音识别模型,可以有效提升语音识别的准确率”。

这就像是什么概念呢?就像我们学习一门外语,听得越多,说得就越标准。Seed-TTS 可以为语音识别模型提供海量的“学习资料”,让它更快地掌握人类语言的规律。

结语

随着 GPT-4o 的推出,越来越多的人期待开源语音技术的进一步升级。无论是字节跳动的 Seed-TTS,还是之前阿里巴巴的 EMO 模型技术(涵盖图像、音频和视频),都展示了显著的进步。

看起来个人高情商语音助手的普及已经指日可待。

欢迎在评论区留言,让我们一起交流进步。


精选历史文章,请看这里:

Google Gemini  1M 长下文窗口 + LlamaIndex agent 处理复杂、多样化文档,精准解答

Google 新推出 AI 辅助工具,Data Science Agent 和 Code Transformation 值得一试

不只是快,新版 ChatGPT 数据分析体验全记录,分享超实用 AI 提示词,助你轻松驾驭复杂数据分析

推荐一个自动生成复杂提示词的模版:思考链(CoT)如何通过分步推理提升AI任务准确性 | 示例详解

继续滑动看下一个
kate人不错
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存