Segan : Speech Enhancement Generative Adversarial Network

语音增强生成对抗网络

目前的语音增强技术是在频谱域上进行操作和/或利用一些更高级的特征。它们中的大多数处理有限数量的噪声条件,并依赖一阶统计。为了避免这些问题,由于能够从大型示例集中学习复杂的函数,深层网络正越来越多地被使用。在这项工作中,我们建议使用生成对抗网络的语音增强。与目前的技术相比,我们在波形级别操作,端到端地训练模型,并将28个扬声器和40个不同的噪声条件合并到同一模型中,这样模型参数就可以在它们之间共享。我们使用一个独立的、看不见的测试集(两个扬声器和20个备选噪声条件)来评估所提出的模型。改进后的样本证实了所提出模型的可行性,客观和主观评估也证实了模型的有效性。通过这一点,我们开始探索语音增强的生成架构,这可能会逐步纳入进一步的以语音为中心的设计选择,以提高它们的性能。

语音增强试图提高被加性噪声污染的语音的清晰度和质量[1]。它的主要应用是在嘈杂的环境中提供移动通信的均等性。然而,我们也发现了与助听器和耳蜗植入物相关的重要应用,在放大前增强信号可以显著减少不适并提高清晰度[2]。语音增强也已成功地应用于语音识别和说话人识别系统的预处理阶段。

经典的语音增强方法有谱减法[6]、维纳滤波法[7]、基于统计模型的方法[8]和子空间算法[9,10]。自80年代以来,神经网络也被应用于语音增强[11,12]。近年来,去噪自动编码器体系结构[13]得到了广泛的应用。然而,循环神经网络(RNN)也被使用。例如,经常使用的去噪自动编码器已经显示出利用嵌入信号中的时间上下文进行信息处理的显著性能。最近的方法将长期短期内存网络应用于去噪任务[4,14]。在[15]和[16]中,噪声特征被估计并包含在深度神经网络的输入特征中。辍学、后过滤和感知激励指标的使用被证明是有效的。

目前大多数系统都基于短时傅立叶分析/合成框架[1]。它们只修改了光谱的大小,正如人们常说的,短时间相位进一步的研究[18]表明,语音质量的显著改善是可能的,尤其是在已知干净相位谱的情况下。1988年,Tamura等人[11]提出了一个直接处理原始音频波形的深层网络,但他们使用了前馈层,在一个与说话人相关的独立单词数据库上逐帧(60个样本)处理。

在深度学习生成建模领域的一个最新突破是生成对抗网络(gans)[19]。Gans在计算机视觉领域取得了很好的成功,可以生成逼真的图像,并很好地推广到像素级、复杂(高维)的分布[20、21、22]。据我们所知,gans还没有应用于任何语音生成或增强任务,因此这是第一种使用敌对框架生成语音信号的方法。

提出的语音增强Gan(Segan)的主要优点是:

•它提供了一个快速的增强过程。不需要因果关系,因此,没有像RNN中那样的递归操作。•它与原始音频端到端工作。因此,没有提取手工制作的特性,因此,没有对原始数据进行明确的假设。

•它从不同的扬声器和噪声类型中学习,并将它们合并到网络的参数化中。这使得系统简单且可归纳为二维。

 

Generative Adversarial Networks

       gans[19]是一种生成模型,它学习将以前某个分布z中的样本z映射到另一个分布x中的样本x,这是训练示例之一(例如图像、音频等)。GAN结构中执行映射的组件称为生成器(G),其主要任务是学习一种有效的映射,该映射可以模拟真实的数据分布,以生成与训练集相关的新样本。重要的是,G不是通过记忆输入输出对来实现的,而是通过将数据分布特征映射到先验中定义的流形。

       G学习绘制地图的方法是通过一种对抗性的训练,在那里我们有另一个组件,称为鉴别器(D)。d通常是一个二进制类,其输入要么是来自g正在模仿的数据集的真实样本,要么是由g组成的假样本。相反的特征来自于d必须将来自x的样本归类为真实样本,而来自g的样本则必须归类为假样本。这导致G试图愚弄D,而这样做的方法是G调整其参数,使D将G的输出定义为真实的。在反向传播过程中,D在其输入中更好地确定真实的特征,反过来,G修正其参数以向训练数据描述的真实数据流形移动(图1)。这种对抗性学习过程被表述为G和D之间的一个极大极小博弈,其目标是:

我们还可以使用Gans的条件化版本,其中我们在G和D中有一些额外的信息来执行映射和分类(参见[20]和其中的参考)。在这种情况下,我们可以添加一些额外的输入xc,用它将目标函数更改为

GAN方法在稳定训练和提高G中生成样本的质量方面有了新的改进。例如,由于用于训练的乙状结肠交叉熵损失,经典方法遭受了消失梯度。为了解决这个问题,最小二乘Gan(lsgan)方法[21]用二进制编码(1表示实,0表示假)的最小二乘函数来代替交叉熵损失。因此,式2中的公式变为

Speech Enhancement GAN

对增强问题进行了定义,以便我们有一个输入噪声信号∙x,我们希望对其进行清洗以获得增强信号∙x。我们建议使用语音增强gan(segan)进行此操作。在我们的例子中,G网络执行增强。它的输入是噪声语音信号∙x和潜在的表示z,其输出是增强版_x=g(∙x)。我们设计G是完全卷积的,这样就根本没有稠密的层。这强制网络关注输入信号中的时间相关性和G过程中的整个层。此外,它还减少了培训参数的数量,从而缩短了培训时间。

 

       G网络的结构类似于自动编码器(图2)。在编码阶段,输入信号通过参数校正线性化(prelus)[23]允许的多个跨步卷积层进行投影和压缩,从滤波器的每一步得到卷积结果。我们选择步幅卷积作为GAN的训练方法,而不是其他的池化方法[22]。抽取直到我们得到一个浓缩的表示,称为思想向量c,它与潜在向量z相连接。编码过程在编码阶段通过分步转置卷积(有时称为反卷积)来实现,然后是Relu。

       G网络还具有跳过连接,将每个编码层连接到其相应的解码层,并绕过在模型中间执行的压缩(图2)。这是因为该模型的输入和输出具有相同的底层结构,即自然语言。因此,许多低层次的细节可能会丢失,无法正确地重建速度波,从而使信息在压缩瓶颈中流动。跳过连接直接将波形的最终颗粒信息传递到解码阶段(例如相位、对齐)。此外,他们还提供了良好的训练行为,随着梯度在整个结构中的深度不断加深[24]。

G的一个重要特征是它发送到端结构,以便它处理以16kHz采样的原始语音,消除任何中间转换以提取声学特征(与许多常见管道相比)。在这种类型的模型中,我们必须小心典型的回归损失,如平均绝对误差或均方误差,如原始语音生成模型wavenet[25]所述。这些损失是在对我们的输出分布是如何形成的强烈假设下工作的,因此会施加重要的建模限制(例如不允许多模态分布,并将预测偏向于所有可能预测的平均值)。我们克服这些局限性的解决办法是使用生成性的对抗性设置。这样,D负责将真实和虚假的信息传递给G,这样G就可以稍微修正其输出波形,使其向真实分布方向传播,从而消除那些被认为是虚假的噪声信号。从这个意义上说,D可以理解为学习某种损失,使G的输出看起来真实。

在初步的实验中,我们发现在G的损失中加入一个二次分量是方便的,这样可以使G的代际距离最小化。为了测量这种距离,我们选择了L1范数,因为它在图像处理领域已经被证明是有效的[20,26]。通过这种方式,我们让敌对的组件添加更多的细化和真实的结果。它们的L1范数的大小由一个新的超参数λ控制。因此,我们选择作为lsgan(式4)之一的g损失变成:

Experimental Setup

       为了评估Segan的有效性,我们采用了Valentini等人的数据集。〔27〕。我们之所以选择它,是因为它是开放的和可用的1,而且因为数据的数量和类型符合我们这项工作的目的:为许多不同的扬声器概括各种类型的噪声。数据集是从语音库语料库中选出30个发言者的数据集[28]:28个包含在训练组中,2个包含在测试组中。

       为了制作噪声训练集,总共考虑了40种不同的条件[27]:10种类型的噪声(2种人工噪声,8种来自需求数据库[29]),每种噪声的信噪比(snr)为4(15、10、5和0db)。每个训练演讲者在每个条件下大约有10个不同的句子。为了制作测试集,总共考虑了20种不同的条件【27】:5种类型的噪音(全部来自需求数据库),每种噪音4个信噪比(17.5、12.5、7.5和2.5db)。每个测试演讲者在每个条件下都有大约20个不同的句子。重要的是,使用不同的扬声器和条件,测试集完全不被训练集看到(并且不同于训练集)。

4.2. SEGAN Setup

       该模型训练了86个时期,学习率为0.0002,有效批量为400。我们将训练示例分为两对(图3):由噪声信号和干净信号(?x和x)组成的实数对,以及由噪声信号和增强信号(?x和?x)组成的伪数对。为了使数据集符合我们的波形生成目的,我们对48kHz到16kHz的原始语音进行采样。在训练过程中,我们每隔500毫秒(50%重叠)提取出大约一秒语音(16384个样本)的盖边窗口的大块波形。在测试期间,我们基本上滑动窗口,在整个测试语句期间没有重叠,并在流的末尾连接结果。在训练和测试中,我们对所有输入样本应用系数为0.95的高频抢先相位滤波器(在测试期间,输出相应地降低相位)。

       对于我们的L1正则化的λ权重,经过一些实验,我们将其设置为100,用于整个训练。我们最初把它设为1,但我们观察到,G的损失在敌对的情况下是两个数量级,因此L1对学习没有实际影响。当我们把它设置为100时,我们看到了在l1中的最小化行为和在敌对的l1中的平衡行为。随着L1的降低,输出样本的质量增加,我们假设这有助于G在现实生成方面更有效。

       网络D采用与G的编码器级相同的一维卷积结构,符合卷积类网络的传统拓扑结构。其区别在于:(1)它获得了16384个样本的两个输入通道;(2)它在α=0.3的leaky relu非线性化之前使用了批处理规范[31];以及(3)在最后一个激活层中有一个一维卷积层,其宽度有一个变化,即不向下采样隐藏的激活(1×1卷积)。后者(3)减少了最终分类神经元所需的参数数量,该神经元与所有隐藏的激活完全相连,具有线性行为。这意味着我们将完全连接组件中所需参数的数量从8×1024=8192减少到8,并且在卷积参数中可以学习到1024个通道的合并方式。

 

 

5. Results

       为了评价增强语音的质量,我们计算了以下客观指标(越高越好)。所有指标都将增强信号与824测试集文件的干净参考进行了比较。它们是使用包含在[1]中的实现计算的,可在发布者网站2上获得。

       PESQ:使用ITU-T P.862.2[33]中建议的宽带版本(从-0.5到4.5)对语音质量进行感知评估。

       CSIG:平均意见得分(mos)预测仅针对语音信号的信号失真[34](从1到5)。

•cbak:mos对背景噪声侵入性的预测[34](从1到5)。

•COVL:MOS对总体效果的预测[34](从1到5)。

•SSNR:分段信噪比[35,p.41](从0到∞)。

       表1显示了这些度量的结果。为了有一个比较参考,它还显示了这些指标的结果,当直接应用于噪声信号和信号过滤时,使用基于先验信噪比估计的维纳方法[36],如[1]所述。可以观察到Segan是如何变得更差的PESQ的。然而,在所有与语音/噪声失真相关的其他指标中,Segan优于Wiener方法。它产生较少的语音失真(CSIG)和更有效地消除噪声(CBAK和SSNR)。因此,它实现了两个因素(COVL)之间的更好权衡。

 

5.2. Subjective Evaluation

       此外,还进行了一项感知测试,将SEGAN与噪声信号和维纳基线进行比较。为此,从测试集中选择了20个句子。由于数据库没有显示每个文件的噪声量和类型,因此选择是通过收听一些提供的噪声文件来完成的,试图平衡不同的噪声类型。大多数文件的信噪比较低,但也包括一些信噪比较高的文件。

       共有16名听众随机接受了20个句子。对于每个句子,以下三个版本也以随机顺序呈现:噪声信号、维纳增强信号和世嘉增强信号。对于每个信号,监听器使用从1到5的比例来评定整体质量。在对这5类的描述中,要求他们同时注意信号失真和噪声干扰(例如,5=优秀:非常自然的语音,没有退化,没有明显的噪声)。听者可以根据自己的需要多次听每个信号,并被要求注意这三个信号的比较率。

       在表2中,可以观察到SEGAN是如何优于噪声信号和维纳基线的。然而,由于噪声信号的信噪比有很大的变化,因此MOS范围非常大,Wiener和Segan之间的差异并不显著。然而,当监听器同时比较所有系统时,可以通过减去正在比较的两个系统的MOS来计算比较MOS(CMOS)。图4描述了这种相对比较。我们可以看到segan生成的信号是如何被优先选择的。更具体地说,在67%的情况下,Segan优先于原始(噪声)信号,而在8%的情况下,噪声信号优先于原始(噪声)信号(25%的情况下不优先)。就维纳系统而言,53%的案例首选赛根,23%的案例首选维纳(24%的案例无偏好)。

6. Conclusions

       在生成对抗框架下,实现了一种端到端的语音增强方法。该模型作为编码器-译码器的全卷积结构,使得波形块的去噪操作更加快速。结果表明,该方法不仅可行,而且可以有效地替代现有方法。未来可能的工作包括探索更好的卷积结构和在对抗训练中包含感知权重,以便减少当前模型可能引入的高频伪影。需要做进一步的实验来比较世根与其他比较方法。

猜你喜欢

转载自blog.csdn.net/qq_31390999/article/details/92394242