Make-An-Audio——用于语音生成的提示增强扩散模型

news/2024/7/14 19:21:02/文章来源:https://blog.csdn.net/matt45m/article/details/139296384

0.引言

论文提出了一个从文本生成语音的扩散模型 Make-An-Audio。该模型将文本提示作为输入,并据此生成语音。例如,输入 “一只猫在喵喵叫,一个年轻女人的声音”,就会输出猫在喵喵叫,一个女人在说话的音频。这项研究已被机器学习领域最难的国际会议之一 ICML 2023 接收。
论文要点:
通过伪标签解决音频-文本对数据不足的问题:在音频-文本对齐任务中,即同步音频信号和相应的文本表示,数据量往往受限。利用伪标签技术,模型可以生成自己的训练数据,通过预测未标记数据的标签并用这些预测来增强训练集,从而提高模型的泛化能力和性能。

介绍频谱图自动编码器:频谱图自动编码器是一种深度学习模型,它能够学习音频信号的频谱图表示。频谱图是音频信号的可视化,显示了不同频率成分随时间的变化。自动编码器通过一个编码过程捕捉频谱图的特征,然后通过解码过程重建输入,这种结构有助于提取音频数据的有用特征,用于进一步的处理和分析。

还应用于个性化生成、音频Inpainting和数据-音频:这些技术不只局限于基本的音频-文本对齐,它们还有多种应用场景:

  • 个性化生成:可以根据用户的偏好或历史数据生成个性化的音频内容。
  • 音频Inpainting:即音频修复,可以填充或修复音频中的缺失或损坏部分,恢复音频的完整性。
  • 数据-音频:可能指的是将数据转换为音频格式,用于如数据可视化或辅助听觉接口等应用。

论文地址:https://arxiv.org/abs/2301.12661
项目地址:https://text-to-audio.github.io/

1、语音生成的挑战在于缺乏数据

深度生成模型在处理文本提示并生成相应数据方面取得了显著进展,特别是在文本到图像(Text-to-Image)和文本到视频(Text-to-Video)领域,现在能够创造出高质量和多样化的内容。然而,文本到音频(Text-to-Audio)的生成在技术上仍然面临一些挑战:

  1. 数据量不足:相比于图像和视频,文本和语音配对的数据较为稀缺,这限制了模型学习的能力。
  2. 建模复杂性:音频数据是连续的信号,建模这样的长时间序列非常复杂,特别是要与文本同步。

例如,收集带有文本标签的图像数据相对容易,但收集相应的文本标记的音频数据则要困难得多。

为了解决这些问题,本研究提出了三种创新方法:

  • 提示增强扩散模型:利用扩散模型生成音频,通过提示增强来提升生成音频的质量。
  • 伪标签生成:通过生成与语音紧密相关的文本的伪标签,来缓解文本-语音配对数据不足的问题。
  • 频谱图自编码器:使用自编码器预测音频的自监督表征,以简化对连续信号数据的建模。

这些方法使得Make-An-Audio概念虽然简单,却能产生强大的效果。此外,本研究还探索了三种语音生成模式:

  • 个性化文本到音频生成:根据用户的个性化需求生成音频。
  • 音频绘制(Audio Painting):类似于图像绘制,但应用于音频领域,可能涉及声音的设计和编辑。
  • 视觉转音频生成:将视觉信息转换为音频,这种模式可能用于描述性视频内容或辅助视觉障碍人士。

这些进展不仅推动了文本到音频生成技术的发展,还为个性化内容创作、音频编辑和跨模态信息转换提供了新的可能性。

2.模型架构

2.1 方法概述

Make-An-Audio 的音频生成过程如下图所示。

上述结构中的每个要素可分为以下五类

  • 改进伪提示,缓解数据短缺问题。
  • 文本编码与对比学习(CLAP)
  • 用于预测自我监督表征的谱图自动编码器
  • 以文本嵌入为条件的扩散模型。
  • 神经声码器,用于将熔体频谱图转换为原始波形。

下文将详细讨论这些要素。

2.2 伪标记(蒸馏-然后-再制图)

本节介绍一种名为 "蒸馏–然后–再编程 "的方法,该方法采用伪标签技术来解决文本-音频对数据不足的问题。

顾名思义,这种技术涉及蒸馏,然后重新编程。

让我们依次看看每个阶段。

2.3 ・专家蒸馏_

在这一阶段,首先接收 "无文本标签的音频数据 "作为输入。

以下两个预先训练好的模型可作为专家模型用于生成提示信息

  • 自动音频标题生成模型:生成各种文本来描述音频数据的内容。
  • 语音到文本搜索:搜索数据库中的 "类似音频数据

在这里,两个专家模型协同工作,提取有关输入音频数据的知识,并根据音频数据生成文本。

2.4 ・动态重编程*_

接下来,以专家蒸馏法刚刚生成的文本_为 X_,使用以下四个步骤来扩展数据。

  1. 在数据库中存储带有极短文本标签_的_音频数据。
  2. 从 DB 采样 0~2 个音频数据
  3. 结合这些音频数据。
  4. 根据 "模板 "组合 X 和 &。

在这里,_&_内容指的是简短的、多为单字的文本,如 "鸟 "或 “脚步声”。

模板还包括

本文公布了上述模板的详细规则如下。

具体来说,我们分别用采样数据的自然语言和数据库中采样事件的类别标签来代替 X 和 &。nbsp;
对于动词(用 v 表示),我们有 {‘听到’、‘注意到’、‘听到’、‘出现’};。
对于形容词(用 a 表示),我们有 {‘清晰’、‘嘈杂’、‘特写’怪异’、‘干净’};。
对于名词(用 n 表示),我们有 {‘音频’、‘声音’、‘声音’};。
对于数字/量词(用 q 表示),我们有 {‘a’、‘the’、‘some’};

2.5 文本编码器

在文本到数据(图像、音频、音乐等)领域,两种最常见的文本提示编码方法是

  • 跨模态学习与对比学习(MuLan、CLIP、CLAP 等)。
  • 使用预先训练的 LLM(T5、FLAN-T5 等)进行编码。

本研究也使用这些预训练的冻结模型来编码文本提示。具体来说,CLAP 被用作控制学习模型,T5-Large 被用作预训练的 LLM。

结果表明,在基准评估中,CLAP 和 T5-Large 都能取得相似的结果,但 CLAP 在没有 LLM 所需的离线嵌入计算的情况下效率更高。

频谱图自动编码器

这里,输入的音频数据代表熔融频谱图_x_。频谱图自动编码器包括

  • 编码器_E_,输入为**x,输出潜在表示z**
  • 解码器_G_从 z重构出熔融频谱图信号x’
  • 多窗口鉴别器

整个系统从头到尾进行学习,以最大限度地减少

  • 重建损失:提高学习效率和生成频谱图的保真度
  • GAN 损失:识别器和生成器的对抗学习
  • KL 惩罚损失:限制编码器学习标准**z**并避免高度分散的潜空间

通过这种方式,Make-An-Audio 预测的是一种自监督表示法,而不是波形。这大大降低了长序列数据建模的难度,并保证了高质量的语义理解。

2.6 潜在扩散

这里使用的是潜在扩散模型。这是一种通过对潜在表征应用扩散和反扩散过程来生成潜在表征的方法。然后,该过程以文本为条件。损失函数如下

3. 数据转音频

数据到音频的生成,它应用并概括了迄今为止的研究思路。这里的数据到音频是指以下三种方式。

  • 个性化文本到音频生成
  • 音频绘制
  • 视觉转音频生成

3.1 个性化文本到音频生成

最近,"个性化 "也出现在视觉和图形领域,允许进行个性化和创造性的定制,例如融入独特的物品。

这种个性化也融入了本研究中。例如,当给出语音 "雷声 "并与提示 "婴儿哭声 "一起生成时,就可以生成听起来像 "雷雨天婴儿哭声 "的语音。它还可广泛用于混合和调整语音,例如为现有语音添加背景声音或通过插入语音对象编辑语音。

3.2 音频绘制

音频绘制是通过重建数字音频信号的受损部分来恢复音频的任务。

Inpainting 是一种最初还原图像部分内容的技术。该技术可重建图像上的遮蔽区域,自然还原划痕、写在图像上的文字等。他们已将这项技术扩展到音频领域。

在这项研究中,为了扩展到语音,语音频谱图被视为一种图像,而 Inpainting 则应用于频谱图图像。

具体来说,Make-An-Audio 针对音频绘制进行了微调,并为音频频谱图提供了不规则的掩码(厚、中、薄掩码)。

这里的掩蔽是指添加音频,以填补音频中受损的部分。

3.3 视觉转音频生成

最近的深度生成模型推进了上述 "根据图像和视频内容生成音频 "的研究。因此,为了进一步推进这项研究,本研究将 Make-An-Audio 扩展为 “根据视觉信息生成音频”。具体来说,有两个

  • 图像到音频
  • 视频转音频

本研究中的 "视觉-音频 "推理过程如下。

在此,本研究采用了以下两种思路

  • 有控制的学习(CLIP)
  • CLIP 引导的文本到音频模式。

CLIP 是利用对比学习进行 “图像和文本的跨模态学习”,由一个图像编码器和一个文本编码器组成;CLIP 使图像和相关文本之间的联系成为可能。

3.4 图像到音频

利用这一技术,本研究中的 "图像到音频 "基于以下步骤。

  1. 输入图像。
  2. 图像数据通过 CLIP 图像编码器。
  3. 通过 Make-An-Audio 变压器。
  4. 通过 U 网的交叉注意层
  5. 通过 Make-An-Audio 的音频文件编码器。
  6. 通过 Make-An-Audio 的 Vocoder。
3.5 视频转音频

视频是多个图像帧的集合。因此,Video-to-Audio 会从视频中统一提取四个帧,汇集并平均这些 CLIP 图像特征,然后将其发送到 Make-An-Audio 的 Transformer 层。

4.实验与结果

本节介绍研究的定量评估方法。

4.1 估值指数

该研究使用 "语音质量 "和 "文本到语音链接的准确性 "的客观和主观测量方法对模型进行评估。

以下指标被用作客观指标

  • 基于 melception 的 FID:自动性能指标。
  • KL 分歧:音频保真度
  • CLAP 评分:文本到语音链接的准确性

对于主观评分指标,我们还通过众包的方式,对这些受试者进行了平均意见分(MOS)测试,采用的是 20-100 分的李克特量表。在此,我们进行了以下心理测试,并计算了各项指标(各指标的置信区间为 95%)。

指示符内涵实验细节
MOS-Q音质要求受试者集中精力检查音质和自然度,并让他们评估
MOS-F文本到语音的一致性向受试者展示音频和提示,然后问他们:"自然语言描述是否与音频完全吻合?并让他们用 20-100 分的李克特量表回答 “完全”、"大部分 "或 “有点”。

给受试者的说明截图如下。

4.2 文本到音频成果

在此,我们将客观和主观指标与 Diffsound(唯一公开的文本到音频基准)进行比较。结果如下

从这些结果中可以看出三点

  • 在音频质量方面,Make-An-Audio 取得了 FID 4.61 和 KL 2.79 的最高分。
  • Make-An-Audio 的文本到语音一致性 CLAP 最高
  • 受试者对 MOS-Q 和 MOS-F 的评分最高,分别为 72.5 分和 78.6 分

此时还使用以下编码器进行了对比实验

  • BERT
  • T5-大号
  • 剪辑
  • 鼓掌

生成的文本编码器权重被冻结。从上述结果表中,我们可以得出以下三个考虑因素

  • CLIP 用于文本-图像,对于文本-音频可能没有用处
  • CLAP 和 T5-Large 实现了相似的性能
  • CLAP 不需要离线计算 LLM 中的嵌入,计算效率可能更高(只需 59% 的参数)。

4.3 音频绘制

音频绘制评估有以下六种不同的屏蔽选项。

  • 厚掩膜(不规则)
  • 中度遮蔽(不规则)
  • 薄掩膜(不规则)
  • 屏蔽 30% 的数据(帧)
  • 屏蔽 50%的数据(框架)
  • 屏蔽 70% 的数据(帧)

他们还随机屏蔽宽窄区域,并使用 FID 和 KL 指标来衡量性能。

结果如下

结果表明,无论采用哪种屏蔽方法,学习过程中屏蔽的区域越大,准确率就越高。

在屏蔽区域大小相当的情况下,基于框架的系统始终优于不规则系统。

音频绘制结果示例如下。

上图自上而下显示了有缺陷的输入音频(Input)、音频绘制结果(Result)和无缺陷的真实音频(GT)。在这种情况下,给定一个有缺陷的输入音频 Input,对其进行训练,使其尽可能接近无缺陷的真实音频 GT。

从结果中可以看出,不同形状的遮蔽区域都能正确地填充和重建声音。

4.4 视觉转音频

视觉转音频的结果如下。

结果表明,它可以成功地推广到图像和视频中。

4.5 个性化文本到音频生成

如下左图所示,在个性化文本到音频中,需要在忠实性(文本到字幕的一致性)和逼真性(音质)之间进行权衡。

右图显示,随着 T 的增大,原始音频中会添加大量噪音,从而使生成的样本更加逼真,但却失去了忠实度。

为了便于比较,真实度用生成语音和初始语音之间的 1-MSE 距离来衡量,而忠实度则用生成样本之间的 CLAP 分数来衡量。

5.总结

本文介绍了用于文本到音频(Text-to-Audio)的提示增强扩散模型 Make-An-Audio;Make-An-Audio 可实现高精度的语音生成。毫无疑问,这项工作将为未来的语音合成研究奠定基础。此外,它还有助于减少制作短视频和数字艺术所需的工作量。

作者还提到了这项研究面临的挑战,即 “潜在扩散模型通常需要更多的计算资源,并可能随着训练数据的减少而退化”。因此,未来的方向之一是 “开发轻量级的快速扩散模型”,以加快数据生成速度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1054473.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SA模拟退火优化算法的TSP问题求解matlab仿真,并对比ACO蚁群优化算法

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于SA模拟退火优化算法的TSP问题求解matlab仿真,并对比ACO蚁群优化算法,对比两个算法的仿真时间,收敛曲线,以及路径规划的结果&#xff0…

GDPU Java 天码行空13

(一)实验目的 1、掌握JAVA中与网络程序开发相关的知识点; 2、理解并掌握网络编程开发思想及方法; 3、熟悉项目开发的分包方法和依据; 4、实现聊天室中客服端和服务器端的实现方法; 5、熟悉多线程程序开发方…

前端 |【JavaScript】JS 删除数组中某个元素的方法有哪些?超简洁六大方法!

一、length属性 在JavaScript中,length属性用于获取数组的长度。可用于删除数组中的最后一个元素,只需将长度减1即可。 // 创建一个数组 var a [1, 2, 3, 4, 5]; // 使用length属性获取数组长度 console.log(a.length); // 输出:5 a.lengt…

工业采集网关的功能主要有哪些?为企业带来哪些价值提升?天拓四方

一、行业背景 随着工业领域的快速发展,尤其是智能制造的兴起,工业自动化、智能化和数字化已成为工业转型升级的必然趋势。在这一进程中,工业数据采集和处理扮演着至关重要的角色。作为连接工业现场设备、传感器与上层管理系统的桥梁&#xf…

喜讯 国信华源荣获中国安全科技进步奖二等奖

喜讯!喜讯! 近日,由北京国信华源科技有限公司携手中国地质环境监测院等单位共同参与完成的《基于云端协同的突发性地质灾害三维场景模型构建与动力学模拟关键技术研究》项目荣获中国安全生产协会颁发的“第四届安全科技进步奖二等奖”荣誉证…

数据结构(一)顺序表

目录 一、概念(一)数据结构的三元素1. 逻辑结构(1)线性结构(2)非线性结构 2. 存储结构(1)顺序存储(2)链式存储(3)索引存储 3. 运算 &a…

【C++】<图形库> 三人成棋(面向对象写法)

目录 一、游戏需求 二、程序架构 三、代码实现 四、实现效果 五、已知BUG 一、游戏需求 构建一个五子棋游戏,在自定义棋盘宽度和高度的基础上,实现三人对战功能,并且能判定谁输谁赢。 二、程序架构 (1) 对象分析: 【1】 需…

mysql去除重复数据

需求描述 doc表有很多重复的title,想去除掉重复的记录 表结构 CREATE TABLE doc (id INT PRIMARY KEY,title VARCHAR(255),content TEXT );去重SQL -- 创建临时表 CREATE TEMPORARY TABLE temp_doc AS SELECT * FROM doc WHERE 10;-- 插入唯一的记录(每个title最…

MiniPCIe/SATA双用插槽无法识别minipcie模块怎么回事!

在计算机和嵌入式系统设计中,MiniPCIe/SATA双用插槽作为一种高度集成的解决方案,提供了极大的灵活性与扩展能力。它不仅能够支持MiniPCIe接口的无线网卡、固态硬盘控制器等模块,还能适应SATA接口的硬盘或固态存储设备,大大丰富了系统配置的可能性。尽管设计初衷良好,但在实…

三方语言中调用, Go Energy GUI编译的dll动态链接库CEF

如何在其它编程语言中调用energy编译的dll动态链接库,以使用CEF 或 LCL库 Energy是Go语言基于LCL CEF开发的跨平台GUI框架, 具有很容易使用CEF 和 LCL控件库 interface 便利 示例链接 正文 为方便起见使用 python 调用 go energy 编译的dll 准备 系统&#x…

ubuntu server版 虚拟机根目录磁盘扩容

之前一直使用桌面版ubuntu,因为项目原因需要拉取的代码太大了且项目比较多选择了体量更小的Ubuntu server版,在使用中发现根目录的磁盘很快就用满了 如上,明明分配的300G但是/dev/mapper/ubuntu--vg-ubuntu--lv 只有98G都用满了 server版本与桌面版不同的是在server版安装的时…

【python】numpy库计算矩阵特征值和特征向量

目录 0.环境 1.前提 2.全部代码 0.环境 windows eclipse python 1.前提 我的邻接矩阵是固定的,11*11 2.全部代码 要将邻接矩阵使用numpy赋值 #计算矩阵特征值 import numpy as np A np.array([[0,1,1,1,1,1,1,1,1,1,1], [1,0,0,0,0,0,0,0,0,0,0], [1,0,0,0…

9.1 Go语言入门(环境篇)

Go语言入门(环境篇) 目录一、什么是Go语言二、下载安装配置Go语言开发环境1. 下载2. 安装3. 配置环境变量4. 安装环境验证 三、 开发工具1. 下载2. 安装3. 激活4. 配置SDK 四、 创建go工程文件并运行1. 创建go工程2. 示例代码3. 运行代码 目录 一、什么…

AI时代的服装设计师--AIGC

AI时代的服装设计师--AIGC AIGCAIGC设计能替代真正的设计师吗森马T恤设计AIGC优势、优化 本文记录于去年参加的一次森马T恤设计活动的感受。 AIGC 可以说,近期以来,随着ChatGPT的不断发展,从ChatGPT-3到ChatGPT-4的飞速发展,AIGC…

【最优化方法】实验三 无约束最优化方法的MATLAB实现

实验的目的和要求:通过本次实验使学生进一步熟悉掌握使用MATLAB软件,并能利用该软件进行无约束最优化方法的计算。 实验内容: 1、最速下降法的MATLAB实现 2、牛顿法的MATLAB实现 3、共轭梯度法的MATLAB…

电脑如何远程访问?

【天联】的使用场景 电脑远程访问在现代科技的发展中扮演了重要的角色。对于企业和个人用户来说,远程访问的便利性提供了许多机会和可能性。作为一种高效的工具,【天联】具有广泛的应用场景,可以实现异地统一管理、协同办公以及远程数据采集…

Jmeter 安装教程:简单易懂

随着互联网的不断发展,网站和应用程序的性能测试变得越来越重要。Apache JMeter 是一款广泛使用的性能测试工具,它强大且使用广泛,适用于各种性能测试需求。不论你是刚刚接触性能测试的新手,还是一位有经验的测试工程师&#xff0…

从零开始实现自己的串口调试助手(1) - ui界面搭建

UI 界面搭建 ui界面整体演示 ui对象拆分 更多的细节就不方便展开了,下面有提示完成ui设计的提示 在创建工程前 记得把编码改为utf-8 ui设计技巧: ctrl 鼠标左键实现拖动实现复制粘贴 groupBox : 带标题的文本框 栅格布局 -- 只有一个控件的时候会铺满…

4. C++网络编程-TCP客户端的实现

TCP Client网络编程基本步骤 创建socket&#xff0c;指定使用TCP协议使用connect连接服务器使用recv/send接收/发送数据关闭socket TCP-connect连接请求 !man 2 connect #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int connect(int sock…

【Linux终端探险】:从入门到熟练,玩转基础命令的秘密(一)

文章目录 &#x1f680;Linux基础命令⭐1. 查看目录命令&#x1f4a5;2. 切换目录&#x1f44a;3. 创建目录❤️4. 删除目录/文件&#x1f6b2;5. 修改目录/文件&#x1f308;6. 拷贝目录/文件 &#x1f680;Linux基础命令 ⭐1. 查看目录命令 在Linux中&#xff0c;查看目录的…