DIFFWAVE: A VERSATILE DIFFUSION MODEL FOR AUDIO SYNTHESIS (Paper reading)
DIFFWAVE: A VERSATILE DIFFUSION MODEL FOR AUDIO SYNTHESIS
Zhifeng Kong, Computer Science and Engineering, UCSD, ICLR2021, Code, Paper
1. 前言
在这项工作中,我们提出了DiffWave,这是一种用于条件和无条件波形生成的多功能扩散概率模型。该模型是非自回归的,通过具有合成过程中恒定步数的马尔可夫链将白噪声信号转换为结构化波形。通过在数据似然上优化一种变体的变分下界,该模型能够高效训练。DiffWave在不同的波形生成任务中产生高保真音频,包括基于梅尔频谱图的神经声码化、类别条件生成和无条件生成。我们证明DiffWave在语音质量方面与强大的WaveNet声码器相匹配(MOS:4.44对比4.43),同时合成速度更快数个数量级。特别是,在具有挑战性的无条件生成任务中,它在音频质量和从各种自动和人工评估中得到的样本多样性方面明显优于自回归和基于GAN的波形模型。
2. 整体思想
扩散模型的U-Net换为1维的网络,其他基本一致
3. 方法
大多数先前的波形模型侧重于具有信息性局部条件的音频合成(例如,梅尔频谱图或对齐的语言特征),只有少数例外用于无条件生成)。已经注意到,自回归模型在无条件设置下往往会生成虚构的类似词汇的声音,或者在无条件情况下生成较差的样本。这是因为需要生成非常长的序列(例如,一个秒的语音需要生成16,000个时间步),而没有任何条件信息。
扩散概率模型(简称扩散模型)是一类有前途的生成模型,它使用马尔可夫链逐渐将一个简单分布(例如,各向同性高斯分布)转化为复杂的数据分布。尽管数据似然性难以计算,但扩散模型可以通过优化变分下界来高效地进行训练。最近,在图像合成中已经展示了一种特定的参数化方式取得了成功,该方式与去噪分数匹配有关。扩散模型可以利用扩散(加噪)过程而无需可学习参数,从训练数据中获得“白化”的潜在表示。因此,与其他模型相比,训练过程中不需要额外的神经网络。这避免了由于两个网络的联合训练而产生的“后验崩溃”或“模式崩溃”问题,因此对于高保真度的音频合成非常有价值。
在这项工作中,我们提出了DiffWave,一种用于原始音频合成的多功能扩散概率模型。DiffWave相比先前的工作具有几个优势:i) 它是非自回归的,因此可以并行合成高维波形。ii) 它是灵活的,因为与需要保持潜在表示与数据之间双射关系的流模型不同,它不强加任何架构约束。这导致了仍然能够生成高保真语音的小型神经声码器。iii) 它使用基于单一ELBO的训练目标,无需任何辅助损失(例如,基于频谱图的损失)进行高保真度的合成。iv) 它是一个多功能模型,可为有条件和无条件波形生成产生高质量的音频信号。具体而言,我们做出了以下贡献:
DiffWave采用了受WaveNet启发的前馈和双向扩张卷积架构。它在语音质量方面与强大的WaveNet声码器相匹配,同时合成速度更快,因为它仅需要进行少量的顺序步骤即可生成非常长的波形。
我们的小型DiffWave具有2.64M参数,并在V100 GPU上以超过5倍于实时的速度合成22.05 kHz的高保真语音,而无需经过专门设计的内核。虽然它的速度仍然比最先进的基于流的模型慢,但它的占用空间更小。我们期望通过在未来优化其推理机制来进一步提高速度。
在具有挑战性的无条件和类条件波形生成任务中,DiffWave在音频质量和多样性方面显著优于WaveGAN和WaveNet,这是通过多个自动和人工评估进行衡量的。

网络结构如图。输入一维输出一维,算法流程如下,其实和DDPM一样的:

局部条件器:在语音合成中,神经声码器可以在对齐的语言特征、从文本到频谱图模型得到的梅尔频谱图或文本到波形架构中的隐藏状态的条件下合成波形。在这项工作中,**我们将DiffWave作为一个神经声码器,以梅尔频谱图为条件进行测试。我们首先通过转置的2D卷积将梅尔频谱图上采样到与波形相同的长度。在将其梅尔频谱图映射为2C通道的每个层特定的Conv1×1之后,条件器作为偏差项添加到每个残差层的扩张卷积中。超参数可以在第5.1节中找到。
全局条件器:在许多生成任务中,条件信息是由全局离散标签(例如,说话者ID或单词ID)给出的。在所有实验中,我们使用维度为128的共享嵌入。在每个残差层中,我们应用层特定的Conv1×1将dlabel映射到2C通道,并在每个残差层的扩张卷积后将嵌入作为偏差项添加。
相关文章:
DIFFWAVE: A VERSATILE DIFFUSION MODEL FOR AUDIO SYNTHESIS (Paper reading)
DIFFWAVE: A VERSATILE DIFFUSION MODEL FOR AUDIO SYNTHESIS Zhifeng Kong, Computer Science and Engineering, UCSD, ICLR2021, Code, Paper 1. 前言 在这项工作中,我们提出了DiffWave,这是一种用于条件和无条件波形生成的多功能扩散概率模型。该模…...
排序算法8----归并排序(非递归)(C)
1、介绍 归并排序既可以是内排序(在内存上的数据排序),也可以是外排序(磁盘上)(硬盘)(在文件中的数据排序)。 其他排序一般都是内排序。 区别于快速排序的非递归…...
Golang 里的 context
context 的作用 go 的编程中,常常会在一个 goroutine 中启动多个 goroutine,然后有可能在这些 goroutine 中又启动多个 goroutine。 如上图,在 main 函数中,启动了一个 goroutine A 和 goroutine B,然后 goroutine A …...
PHP短链接url还原成长链接
在开发过程中,碰到了需要校验用户回填的短链接是不是系统所需要的,于是就需要还原找出短链接所对应的长链接。 长链接转短链接 在百度上搜索程序员,跳转页面后的url就是一个长链接。当然你可以从任何地方复制一个长链接过来。 长链接 http…...
redis原理(三)redis命令
一、字符串命令: 1、字符串基本操作: 2、自增自减 :如果一个值可以被解释为十进制整数或者浮点数,redis允许用户对这个字符串进行INCR*、DECR*操作。 (1)INCR key:将键存储的值的值加1。 &a…...
教程:在Django中实现微信授权登录
教程:在Django中实现微信授权登录 本教程将引导您如何在Django项目中实现微信授权登录。在本教程中,我们将使用自定义的用户模型User,并通过微信提供的API来进行用户认证。 在进行以下教程之前,请确保你已经在微信开放平台添加了…...
YOLOv5改进 | 主干篇 | 12月份最新成果TransNeXt特征提取网络(全网首发)
一、本文介绍 本文给大家带来的改进机制是TransNeXt特征提取网络,其发表于2023年的12月份是一个最新最前沿的网络模型,将其应用在我们的特征提取网络来提取特征,同时本文给大家解决其自带的一个报错,通过结合聚合的像素聚焦注意力和卷积GLU&…...
【java八股文】之计算机网络系列篇
1、TCP/IP和UDP模型 TCP/IP分层(4层):应用层,传输层,网络层,数据链路层 网络的七层架构 (7层):应用层,表示层,会话层,传输层ÿ…...
SpringAMQP的使用
1. 简介: SpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配,使用起来非常方便。 SpringAmqp的官方地址:https://spring.io/projects/spring-amqp SpringAMQP提供了三个功能: 自动声…...
MATLAB - 使用运动学 DH 参数构建机械臂
系列文章目录 前言 一、 使用 Puma560 机械手机器人的 Denavit-Hartenberg (DH) 参数,逐步建立刚体树形机器人模型。在连接每个关节时,指定其相对 DH 参数。可视化机器人坐标系,并与最终模型进行交互。 DH 参数定义了每个刚体通过关节与其父…...
2024年腾讯云新用户优惠云服务器价格多少?
腾讯云服务器租用价格表:轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年,540元三年、2核4G5M带宽218元一年,2核4G5M带宽756元三年、轻量4核8G12M服务器446元一年、646元15个月,云服务器CVM S5实例2核2G配置280.8元一年…...
如何在原型中实现继承和多态
在JavaScript中,我们可以通过原型链来实现继承。以下是如何在原型中实现继承的例子: // 定义一个动物原型 var Animal function() {}; Animal.prototype.move function() { console.log(‘This animal can move.’); }; // 定义一个狗的原型…...
MySQL/Oracle 的 字符串拼接
目录 MySQL、Oracle 的 字符串拼接1、MySQL 的字符串拼接1.1 CONCAT(str1,str2,...) : 可以拼接多个字符串1.2 CONCAT_WS(separator,str1,str2,...) : 指定分隔符拼接多个字符串1.3 GROUP_CONCAT(expr) : 聚合函数,用于将多行的值连接成一个字符串。 2、Oracle 的字…...
【Java SE语法篇】10.String类
📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 文章目录 前言1. String类1.1 字符串的构造1.2 String对象的比…...
【Python】数据可视化--基于TMDB_5000_Movie数据集
一、数据准备 tmdb_5000_movie数据集下载 二、数据预处理 观察数据集合情况 import pandas as pd import ast import warnings warnings.filterwarnings(ignore) # 加载数据集 df pd.read_csv(tmdb_5000_movies.csv) # 查看数据集信息 print(df.info()) 由于原数据集包含的…...
学习Vue的插槽总结
今天学习了Vue的插槽,在这之前学习使用组件的使用还没有试过在父组件中给子组件插入html结构,今天学习的插槽正是拿来实现这一功能的,这也是一种组件中通信的方式,首先插槽分为三类:默认插槽、具名插槽、作用域插槽。接…...
第九篇 API设计原则与最佳实践
深入浅出HTTP请求前后端交互系列专题 第一章 引言-HTTP协议基础概念和前后端分离架构请求交互概述 第二章 HTTP请求方法、状态码详解与缓存机制解析 第三章 前端发起HTTP请求 第四章 前后端数据交换格式详解 第五章 跨域资源共享(CORS):现代W…...
新版AndroidStudio配置maven阿里云镜像
project下的build.gradle: // Top-level build file where you can add configuration options common to all sub-projects/modules. // 注意jdk版本需要17以上,因为8.1.3的gradle需要jdk17以上 //plugins { // id com.android.application version…...
【OSG案例详细分析与讲解】之十一:【多效果的3D动画】
目录 一、【多效果的3D动画】前言 二、【多效果的3D动画】实现效果...
一道使用LinkedList和Stack解决的算法题
一、无法吃午餐的学生数量 学校的自助午餐提供圆形和方形的三明治,分别用数字 0 和 1 表示。所有学生站在一个队列里,每个学生要么喜欢圆形的要么喜欢方形的。 餐厅里三明治的数量与学生的数量相同。所有三明治都放在一个 栈 里,每一轮&#…...
无痛人流三天能出门吗?术后出行与身体恢复科学指南
很多女性在无痛人流术后都会关心出行与恢复问题,其中 “无痛人流三天能出门吗” 是高频咨询内容。术后恢复不仅关系到短期舒适度,也影响生殖系统长期健康。结合临床护理经验与行业康复标准,本文对术后出行时机、注意事项及科学修护方式进行客…...
Problem - 2148F - Codeforces[字符串后缀排序]
Problem - 2148F - Codeforces 题意很简单 我们可以随意防止字符串 按照从上到下 如果最后一层某个位置没有字符串 那么上面的字符串就会掉下来到最后一层 求字典序最小的最下层的字符串 首先 最朴素的思想 我们会找出当前最小长度的字符串 长度k 然后截取所有字符串的…...
STM32智能垃圾桶开发实战:语音识别与自动分类
1. 项目概述这个智能垃圾桶项目是我去年为一个社区环保活动设计的硬件方案。当时社区正在推广垃圾分类,但居民反映传统分类垃圾桶使用不便,经常出现错投混投的情况。于是我就琢磨着用STM32做个能听懂人话、自动开盖的智能垃圾桶,让垃圾分类变…...
基于51单片机的电子秤(4挡)proteus、原理图、流程图 1185-基于51单片机的电子秤...
基于51单片机的电子秤(4挡)proteus、原理图、流程图 1185-基于51单片机的电子秤(4挡)proteus、原理图、流程图、物料清单、仿真图、源代码 功能介绍: 1、基本部分 (1)称重范围用开关分为三挡&am…...
当单片机玩起音乐魔法
基于单片机的音乐律动播放器音乐盒串口远程控制(LCD1286 1100056-基于单片机的音乐律动播放器音乐盒串口远程控制(LCD12864、六首音乐、PWM调频、音频编码、源代码、仿真、流程图、物料清单、Proteus) 功能描述:基于单片机的音乐律…...
PPTist:重构演示文稿创作流程的3大颠覆性突破
PPTist:重构演示文稿创作流程的3大颠覆性突破 【免费下载链接】PPTist PowerPoint-ist(/pauəpɔintist/), An online presentation application that replicates most of the commonly used features of MS PowerPoint, allowing for the ed…...
终极指南:如何用3分钟为Windows换上《蔚蓝档案》风格光标主题
终极指南:如何用3分钟为Windows换上《蔚蓝档案》风格光标主题 【免费下载链接】BlueArchive-Cursors Custom mouse cursor theme based on the school RPG Blue Archive. 项目地址: https://gitcode.com/gh_mirrors/bl/BlueArchive-Cursors 每天面对电脑工作…...
新手入门:使用快马平台零基础搭建简易b站直播页面
今天想和大家分享一个特别适合新手入门的项目——用InsCode(快马)平台快速搭建简易B站直播页面。作为一个刚接触前端开发的小白,我发现这个平台真的能大大降低学习门槛,下面就把我的实践过程记录下来。 项目整体结构设计 这个简易直播页面主要包含三个核…...
HarmonyOS 6学习:Canvas实现圆角矩形进度条
在HarmonyOS应用开发中,进度条是展示任务进度、加载状态和数据可视化的重要组件。虽然系统提供了Progress组件,但在需要高度定制化、复杂视觉效果或特殊交互的场景下,开发者常常面临以下困境:样式限制:Progress组件难以…...
Linux 驱动开发流程(带最小可运行代码 + 通俗类比)
Linux 驱动开发流程(带最小可运行代码 通俗类比) 很多人学 Linux 驱动都会卡在这里:API 都看过,但完全不知道它们是怎么串起来工作的这篇文章目标很明确: ✅ 用一条主线讲清流程 ✅ 用类比帮你记住 ✅ 给你一个最小可…...
