APP下载

基于WGAN的语音增强算法研究

2019-02-25王怡斐韩俊刚樊良辉

关键词:信噪比噪音卷积

王怡斐,韩俊刚,樊良辉

(西安邮电大学,西安 710121)

0 引 言

语音增强是信号处理领域一个重要的研究问题。在实际声学场景中,语音信号都会受到不同程度的噪音污染,在严重情况下,语音会完全淹没到噪声中,导致无法辨别原始语义。语音增强是指从带噪语音中尽可能提取纯净的语音信号,以提高语音质量和语音可懂度[1]。目前,语音增强在移动通信、语音识别、安全监听、人机对话、人工电子耳蜗等领域有着广泛的应用[1-4]。

近年来,语音增强方法得到快速发展。谱减法[5]通过减去估计的短时噪声谱,得到估计的干净语音。在文献[5]中,提出了用基于全极点模型的迭代维纳滤波方法进行增强,然而通过这些传统方法[5-6]增强后的语音有“音乐噪声”残留问题[7]。噪声与干净语音呈非线性关系,使用神经网络建模的方法被提出,使用降噪自编码进行语音增强被广泛采纳[8]。文献[7-9]提出用浅层神经网络作为非线性滤波器,但训练出的模型在数据量较小、网络规模小的情况下性能较差。此外,浅层神经网络的随机初始化经常出现陷入局部极小值或停滞问题[10],特别是包含多隐藏层的架构。Hinton在文献[11]中开始深层网络的训练,提出了一种基于贪婪的分层无监督学习算法,每一层都经过无监督的预训练来学习输入的抽象特征,该算法被成功应用于自动语音识别(automatic speech recognition, ASR)和语音增强任务[11]中。文献[12]提出了一种基于回归深层神经网络(deep neural networks, DNN) 模型的语音增强框架,利用多条件训练数据对关键特征进行分析,可以去除音乐噪声残留。但基于DNN的语音增强系统存在需要预训练、需要手工提取语音信号特征值,且存在无法处理看不见的噪声等缺陷。文献[13]提出使用最小二乘生成对抗网络到语音增强任务中,成功为语音去噪。却依然存在原始生成对抗网络模式崩溃、训练缓慢等问题。

生成对抗网络[14](generative adversarial nets, GAN)理论上具有“无限”的生成能力,被广泛应用到图像、视频以及语音领域[15-16]。本研究使用了生成对抗网络来做加性噪声的语音增强任务,应用WGAN[17]来学习带噪语音与干净语音信号之间的复杂映射,基本解决了 GAN训练不稳定、生成模型和判别模型难以平衡、GAN模式崩溃等问题[17],确保了生成语音信号的质量。进一步探索了生成对抗网络在语音和语言处理方面的应用。

1 网络介绍

在语音增强过程中,要预估出带噪语音中噪声的分布特性,再结合加性噪声的特点进行去噪还原。为模拟出噪声信号和语音信号之间复杂的非线性关系,构建基于WGAN的语音增强生成对抗网络模型,实现带噪语音到干净语音信号的映射。

1.1 语音增强生成对抗网络

WGAN算法是一种改进的生成模型架构,通过深层神经网络映射得到噪声分布特性。WGAN用对抗的过程来估计生成模型,它由生成模型G(generative model)和判别模型D(discriminative model)2部分组成。生成模型用来捕获噪声数据的真实分布,学习带噪语音到干净语音的映射。判别模型用来区分干净语音和生成模型生成的增强语音。与原始的生成对抗网络相比,WGAN理论上给出了GAN训练不稳定的原因,即交叉熵[17](Jensen-Shannon divergence,JS散度)不合适用来衡量生成数据分布和真实数据分布的距离,故使用Wasserstein[16]距离替代JS散度。在语音增强任务中,能否准确衡量真实语音数据分布和生成语音数据分布之间的的距离,决定了增强效果的好坏。Wasserstein距离能够更好地衡量语音信号之间的差异,指导网络的训练过程,故本文使用WGAN代替原始的GAN。同时,相比GAN,WGAN可以生成更多样的语音,避免了模式崩溃造成的增强语音信号失真的问题。文献[1]使用最小二乘生成对抗网络(least squares GAN, LSGAN)进行语音增强,同样存在原始生成对抗网络的缺点,本文方法应用WGAN,在网络结构上进行优化。结合语音增强这个具体任务设计网络,配置网络参数,并使用Wasserstein距离作为优化方式训练GAN,下节详细介绍网络配置。语音增强模型中,生成模型和判别模型满足以下关系

(1)

(1)式中:G=gθD=fw;z为带噪语音与语音信号之间的关系,服从分布p(z);x为干净语音特性,服从分布Pr。生成模型的目标是最大化D(G(z)),令判别模型无法正确判别生成语音。而判别模型的目的是最大化式L,以此开展网络对抗训练,达到增强语音的目的。

1.2 生成模型

生成模型的网络结构如图1所示,分为编码和解码2个过程。它的功能是输入带噪语音,生成增强语音。实际声学场景中,噪音大多数来自随机的噪音源,与干净语音呈现非线性关系,故采用卷积网络提取它们的关系特征,并利用激活函数线性整流函数(rectified linear unit, ReLU)对关系特征进行融合,得到抽象的噪音分布特征。该激活函数也解决了因网络层数增加,训练过程中出现梯度弥散,导致训练无法继续的问题。根据提取出的特征就可以进行对语音去噪还原。为了提高增强效果,将生成模型设计成全卷积U-Net结构[18],无全连接层。当编码/解码部分没有被使用时,网络将通过跳过连接方式,即直接连接编码层和对应的解码层跳过该部分。此外,跳过连接减少了训练的参数数量和训练时间。同时在生成模型中加入批标准化层(batch normalization, BN)加快收敛速度并提高模型去噪泛化能力、加入池化层对提取出的特征进行选择和稀疏处理,以保证模型性能。编码层的滤波器个数分别为1,16,32,32,64,64,128,128,256,256,512。卷积核大小为30,步长为1。在编码过程,数据分别流经卷积层、批标准化层、池化层,共十一次迭代。解码过程是编码阶段的镜像过程,即与编码过程参数配置保持一致的反卷积过程。

图1 生成模型网络结构Fig.1 Network structure of generative model

图2 判别模型网络结构Fig.2 Network structure of discriminative model

1.3 判别模型

判别模型网络结构如图2所示。它的功能是判别输入语音,得到判别概率。不同噪音的分布特征不同,由带噪语音获得的增强语音和干净语音分布存在偏差,无法准确模拟干净语音。通过卷积神经网络提取该特征上的差异作为判别依据,区分干净语音和生成语音。判别模型与生成模型的卷积设计类似,滤波器个数分别为16,32,32,64,64,128,128,256,256,512。卷积核大小为30,步长为1。在网络中加入批标准化层,降低初始化参数对训练结果的影响、加快训练速度,使用Leaky ReLU作为激活函数,其数学表达式为(2)式,最后加入全连接层输出判别结果。在判别模型中,数据首先经过合并层,然后依次流经卷积层、批标准化层,共10次迭代。最后经过全连接层输出结果。

(2)

(2)式中,α是一个很小的常数,可以修正数据分布。

1.4 训练过程

首先输入带噪语音来训练生成模型,带噪语音经过生成模型编码和解码,产生增强语音,然后将它和带噪语音一起输入到判别模型,并和干净语音进行比较,应用WGAN定义的损失函数更新网络参数。生成模型与判别模型竞争对抗,不断迭代,使生成语音逐步接近干净语音,从而实现语音增强。

实验中,生成模型G直接处理采样率为16 kHz的带噪语音信号,输出是增强语音信号。数据首先经过卷积操作,输入到批标准化层中进行归一化操作,之后经过ReLU激活函数进入下一层网络。在解码时,输入反卷积层和批标准化层,同样使用ReLU作为激活函数。生成模型的优化过程如图3所示。根据判别模型的输出以及生成语音和干净语音的差距,调整权重参数。

判别模型D的输入来源于2部分:①带噪语音信号;②生成模型的输出或干净语音信号,对数据合并后,进行一系列卷积操作和归一化操作,使用Leaky ReLU非线性激活函数,最后经过全连接层输出判别结果。

图3 生成模型的优化过程Fig.3 Tuning process of generative model

判决模型的优化过程如图4所示。生成模型生成增强信号,判别模型对带噪语音/干净语音和带噪语音/生成语音进行对比并做出分类,在迭代过程中不断调整权重参数。

实验中网络使用RMSprop (root mean square prop)算法[19]更新参数,迭代次数为200次。学习率为0.001,batch大小为100。在训练时,采用生成模型和判别网络模型交替训练的策略。在语音增强生成对抗网络的训练中,每训练完一次生成模型之后,就去训练判别模型非常耗时,而且容易造成过拟合的问题。因此,在实际训练中,每更新一次生成网络,更新5次判别网络。

图4 判决模型的优化过程Fig.4 Tuning process of discriminative model

实验中语音信号处理为二进制格式。为了增加数据量,使网络能学习到更多语音信号的细节,对信号加重叠矩形窗。同时因为语音信号的短时平稳性,加窗处理之后数据会呈现一定的周期性,有利于网络的学习。一条语音长度为58 720,大约3 s。窗宽为8 192,大约为0.5 s,重叠200 ms。测试数据采用相同的处理,网络输出之后对波形进行重构。

本文使用的语音增强生成对抗网络具有以下优点:当前大多数生成模型都要使用马尔科夫链,该网络只用到了反向传播,不需要马尔科夫链。而且从实际结果看,GAN能产生更好的语音信号。同时在训练过程中无需手工提取语音信号特征值,可以直接使用原始音频进行端对端的语音增强。也无需对噪声信号和干净语音之间的独立性做不精确假设,不必对噪声频谱进行估计。该网络学习了多说话人、多种噪音类型、多类型信噪比的语音信号,能够模拟出噪声和语音复杂的非线性关系。训练好的网络具有泛化能力,可以对常见的多种噪声进行增强。

2 实验结果分析

2.1 实验环境

本次实验的配置如表1所示。

表1 实验环境

2.2 数据集介绍

本实验干净语音采用的是TIMIT数据集[20],该数据集的语音采样频率是16 kHz,来自美国630个说话人,每人说出10个给定的句子,一共包含6 300个句子。将每个句子分段处理,段长为3 s。噪声集采用NOISEX-92数据集[20]的15种噪音和俄亥俄州立大学认知神经动力学实验室提供的100种噪音数据[22]。为了包含实际声学场景中常见的信噪比种类,用-5,0,5,10,15,20 dB 6种信噪比来构建加性噪声集。本实验中使用的噪声随机在115种噪声中选取100种作为匹配噪声集,剩余作为不匹配噪声。将分段后的句子随机与600种不同信噪比的噪音进行叠加,构成300 h数据集。将数据集按照9∶1随机分为训练集和测试集,测试集则与训练集不重叠。

2.3 实验结果

语音增强的衡量指标:感知语音质量评价PESQ(-0.5 到4.5),PESQ是国际电信联盟推荐的P.862标准,它是被认为和人主观测听的打分(mean opinion score, MOS)一致度较高的客观指标。首先经过电压时间的规整,再进行听觉转换,然后转换到频谱上,接着认知建模和最终的距离度量,对语音质量进行衡量。它也是语音增强的一个最重要的目标之一。

当网络收敛后,G网络模型就可以实现增强任务。实验中网络结构由tensorflow框架实现,使用4块GTX1080并行计算,训练时间为36 h 23 min。平均一次迭代用时10.9 min。本文使用的网络包含97 473 130个可训练变量。网络中可训练的变量、参数配置以及输入到网络中的数据量都与网络的时间复杂性相关,与深度学习大规模网络相比,如深度残差网络,本文网络的时间复杂性较低。实验结果表明,带噪语音使用该网络模型,PESQ平均提升23.97%。匹配噪声集是训练集包含的噪声类型,否则为不匹配噪声集。图5展示了在匹配噪声集上的增强频谱图,不同强度的餐厅内嘈杂噪声和车内噪声被用来构建加性噪声,相加信噪比为-5,0,5,10,15,20 dB。图5中分别给出了干净语音、增加了2种噪音后的语音以及对应增强后语音的频谱图。在餐厅噪声中,低信噪比下基本淹没了干净语音信号,本文方法增强后的语音频谱并没有失真,并且增强效果明显。2种匹配噪声,在5种不同信噪比情况下,2种噪音增强后的语音频谱与干净语音频谱均有很高的相似度。图6展示了在不匹配噪声集上的增强效果。和匹配噪声集增强相似,用不同强度的高斯白噪声构建加性噪声。在不匹配噪声下,各种不同信噪比的语音增强后的频谱和干净语音频谱也具有很高的相似度。在匹配噪声和不匹配噪声中,本文方法均可以达到增强的目的。

图5 含有不同强度的餐厅噪声和车内噪声的带噪语音增强结果Fig.5 Speech enhancement result with different intensity of babble and volvo noise

图6 含有不同强度高斯白噪声的带噪语音增强结果Fig.6 Speech enhancement result with differentintensity of Gaussian white noise

为了验证本文方法的有效性,从测试语音中随机抽取一条语音与人群嘈杂声、餐厅噪声、街道噪声以及展厅噪声4种噪音类型进行叠加测试,表2将本文所使用算法与徐勇等提出的深层神经网络DNN[12]在不同信噪比下的增强效果进行了对比,DNN3指3层神经网络。表2中数据为平均结果。在信噪比分别为20,15,5 dB时,本文算法对语音质量的提升百分比高于文献[12],表明语音增强生成对抗网络在信噪比较高的情况下,语音增强任务中性能较好。此外,在多种信噪比下PESQ平均提升23.97%,高于文献[12]的21.97%。本文测试语音与DNN中测试使用的语音和噪音不同,所以,表2中DNN和GAN使用Noisy的PESQ不同,但是可以根据提升的百分比验证本文方法的有效性。

表2 GAN与DNN在加性噪声上性能对比

表3将本文方法与降噪自编码进行对比,使用测试数据与表2相同,表3中数据为平均结果。在信噪比较高时,降噪自编码与生成对抗网络具有基本一致的增强效果,但是当信噪比低时,生成对抗网络具有更好的增强效果。平均PESQ也高于降噪自编码。

3 结 论

本研究使用GAN来完成端到端的语音增强任务,对生成模型和判别模型进行对抗训练,学习噪音与干净语音间复杂的作用关系。该网络对生成的噪声不断调整,以学习到真实的数据分布。在TIMIT和NOISEX-92、俄亥俄州立大学认知神经动力学实验室提供的100种噪音数据构建的数据上的实验表明,该方法在高信噪比下相对于DNN具有更好的增强效果。与降噪自编码相比,低信噪比表现更好。我们将进一步研究多噪音条件下如何利用对抗网络进行语音增强。

猜你喜欢

信噪比噪音卷积
两种64排GE CT冠脉成像信噪比与剂量对比分析研究
基于3D-Winograd的快速卷积算法设计及FPGA实现
噪音,总是有噪音!
卷积神经网络的分析与设计
无法逃避的噪音
基于深度学习的无人机数据链信噪比估计算法
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
低信噪比下基于Hough变换的前视阵列SAR稀疏三维成像
噪音的小把戏