1953年谢里(E.C.Cherry)提出了“鸡尾酒会问题”,描述了在嘈杂环境下人们能清楚地获取自己感兴趣的语音,但对于计算机来说,随着说话人数或噪声源增加,其识别能力极大减弱。语音增强技术作为解决该问题的重要方法,主要包括语音分离、语音解混响、语音降噪,本文主要涉及单通道的双说话人语音分离问题的研究。处理语音分离问题主要有基于深度学习和基于信号处理的方法,在深度学习兴起之前,大都采用信号处理的方法对该问题进行解决,常见的有计算听觉场景分析(Computational Auditory Scene Analysis, CASA)和盲源分离(Blind Source Separation, BSS)等方法,但这些处理方法可能会造成输出信号丢失输入信号中包含的大量有用信息,使得分离性能不理想。尽管学者们提出来一些新的处理方法,但依旧效果有限。
近几年来,由于计算机性能的突飞猛进,神经网络的研究也由浅层网络发展到了深层网络,对信号特征的抽象程度越来越高,这就使得基于深度学习的语音分离方法得到发展。Xu等人[1]将深度神经网络(Deep Neural Nets, DNN)应用在语音分离上,通过对混合语音与目标语音的对数幅度谱相映射,再结合相位信息来恢复目标语音波形。同年Weninger等人[2-3]运用长短时记忆网络(Long Short-term Memory, LSTM)解决了语音分离中信号的长短时依赖性问题。俞栋团队[4]提出的置换不变性训练(Permutation Invariant Training, PIT)方法能自动寻找分离出的信号和标注的语源之间的最佳匹配来优化语音分离这一目标,并将其运用到LSTM网络中,分离性能进一步提升。然而以上方法都避免不了对语音信号进行傅里叶变化来提取频谱特征。
最近的研究[5- 6]表明,语音质量的优劣和相位信息的完整性是有着密切关联的,而时域信号上的时延反映了相位特性,因此时域信号上包含的相位信息是较为完整的,所以直接在时域上训练能更好地为语音分离提供更多的相位信息。GAN[7](Generative Adversarial Network, GAN)是Ian J.Goodfellow受到“二人零和博弈”的启发而提出的对抗学习框架,即生成模型捕获真实样本分布,判别模型区分生成样本与真实样本的差异。Pascual等人[8]首次将GAN运用到语音降噪当中,提出了语音增强生成对抗网络(Speech Enhanced Generative Adversarial Networks, SEGAN),为了利用时域信号上的相位信息,其直接将时域波形作为生成模型的输入,结合判别模型来进行训练,获得的降噪效果明显;范存航等人[9]更受SEGAN的启发提出了一种基于卷积编解码器(Convolutional Encoder Decoder, CED)的端到端语音分离系统,也将时域波形作为系统输入,并在损失函数中加入干扰语音信息进行训练,提高了分离性能;王怡斐[10]团队提出了一种基于Wasserstein距离的GAN用于语音增强上,无需人工提取声学特征,进一步提升了GAN在语音降噪上的效果。可以看到GAN在直接分析时域波形上的优势。
GAN在语音降噪上的效果是突出的,但其在语音分离中的研究应用还比较缺乏。因此,本文将GAN用于处理双说话人的混合语音分离问题,提出了一种基于生成对抗网络联合训练的语音分离方法。其生成模型和判别模型的网络结构由全卷积神经网络来构建,可以有效地对时域波形进行高维时域特征提取和恢复,很好地保留了时域上的相位信息,也解决了时域信号采样点过多而导致神经网络参数庞大的问题。考虑到语音分离不同于语音降噪,其中的干扰信号不是杂乱的噪声而是包含说话人信息的语音,这就提高了目标语音分离的难度。受文献[9]启发,我们认为GAN也应该同时考虑两个说话人的语音信息,提出了联合训练结构,不同于SEGAN的独立训练结构在整个训练过程中都只关注目标语音,联合训练结构的生成模型和判别模型能分别提取目标语音和干扰语音的特征信息,进而整个系统能获取更加丰富的分离信息。
本文内容安排如下:文章第2节主要介绍生成对抗网络原理;第3节重点介绍基于生成对抗网络联合训练的语音分离方法;第4节安排仿真实验与结果分析;第5节全文总结。
GAN作为深度学习模型之一,其主要由生成模型(G)和判别模型(D)构成,G的任务是努力学习真实样本x的分布Pdata(x),并将服从分布Pz(z)的噪声样本z映射到x上;D是个二分类器,其目的是区分输入数据是来自真实样本还是来自G生成的假样本。其原理框图如图1所示,x为服从Pdata(x)分布的真样本;z是服从Pz(z)分布的随机噪声;G(z)为生成模型生成的假样本;D(x)为真样本x输入D后的概率值,D(G(z))为假样本G(z)输入D后的概率值。
图1 GAN结构图
Fig.1 The architecture of GAN
GAN的学习过程为对抗学习,其对抗过程就是D对输入的样本数据进行分类,将生成样本(假样本)判为假,即D(G(z))=0;将真实样本(真样本)判为真,即D(x)=1。这就导致G需要不断更新其参数来生成近似真样本的数据去迷惑D,使其将假样本判为真,即D(G(z))=1。在数学上这种对抗学习过程被描述为G与D的极大极小博弈,其损失函数可表示为:
Ez~Pz(z)[log(1-D(G(z)))]
(1)
公式(1)的物理含义在于利用交叉熵来衡量真实样本分布与生成样本分布的相似性,描述了G和D在训练中的对抗过程,D区分输入数据来自真实样本还是生成样本,使logD(x)和log(1-D(G(z)))最大,同时G输出愈加真实的生成样本,使log(1-D(G(z)))最小,最终使得生成样本分布近似于真实样本分布。此外,在训练过程中加入一些额外信号[11]能为系统提供更多辅助信息,所以在损失函数中引入额外的输入信息xc,其服从Pdata(xc)分布,G在xc的约束下能使生成数据更快地向真实数据靠近,而D也能在xc的帮助下进行更好的判别。在语音分离中通常直接选用混合语音作为xc,而G的输入已经是混合语音,所以只需与D的输入信号拼接在一起送入D网络训练。因此,可将损失函数(1)改为:
Ez~Pz(z),xc~Pdata(xc)[log(1-D(G(z,xc),xc))]
(2)
针对双说话人的混合语音分离问题,本文提出的基于生成对抗网络的语音分离(Speech Separation of GAN, 简记为SSGAN)方法,通过构建联合训练结构使GAN能同时获取两个说话人的语音信息。常见的独立训练结构如图1所示,其G和D只对目标语音进行训练;而联合训练结构中G和D是分别对目标语音和干扰语音同时进行训练,训练结构如图2所示。我们定义x1和x2分别表示纯净的目标语音和干扰语音样本,其混合语音样本由xm表示;和分别表示分离的目标语音和干扰语音样本,根据时域信号的特点,可以由混合语音xm减去分离的目标语音得到;xc表示额外辅助信号。
在SSGAN方法中,G采用全卷积神经网络[12-14](Fully Convolutional Networks, FCN)构成编码-解码网络,如图3所示。FCN用反卷积层取代了卷积神经网络最后的全连接层,使得高维特征经过上采样后能恢复到原始输入大小;并且FCN在训练过程中更加关注语音信号在时间上的相关性,更好地保留时域信号上的相位信息,还能减少网络训练参数。
图2 基于GAN联合训练的语音分离算法
Fig.2 The algorithm of speech separation based on GAN cooperative training
在编码阶段,通过多层步幅卷积(正卷积)对语音信号提取高维时域特征,每层输出都采用带泄漏修正线性单元[15](LeakyReLU)作为激活函数,进而防止训练过程中出现梯度消失的问题;再将最后得到的特征向量c与潜在特征向量z连接,z服从正态分布N(0,1);解码阶段,采用与步幅卷积相反的转置卷积(反卷积)来对高维时域特征向量进行恢复,每层输出仍采用LeakyReLU作为激活函数,最后得到与原始输入语音大小一致的分离语音。此外,G中还引入了跳跃连接[16],即把编码层和解码层的输出特征对应拼接,使每一个编码层的信息都传递给对应的解码层,从而在重构语音信号时获得相应的细节补偿。而D的结构与G中编码部分类似,构成一个二分类全卷积神经网络。
图3 生成模型G的结构
Fig.3 The architecture of generative model
损失函数对神经网络训练起着关键作用,由公式(1)、(2)可以看到原始GAN使用sigmoid交叉熵作为损失函数,这会导致训练过程不稳定,容易出现梯度消失等问题。因此,采用最小二乘GAN[17](Least Squares GAN, LSGAN)的损失函数来替换原始损失函数。则G和D的损失函数修改如下:
(3)
G(z,xm),xc)-1)2]
(4)
同时,为了避免过拟合,加速网络收敛,可以引入L1正则项,由于联合训练结构需要同时考虑目标语音和干扰语音,所以我们在公式(4)基础上加入两个L1正则项,由参数λ1和λ2控制,其中此外,我们将混合信号xm作为公式(3)、(4)损失函数中所引入的辅助信号xc,最终G和D的损失函数为:
(5)
(6)
为了验证SSGAN方法的有效性,本文使用Aishell中文语音数据集[18]来进行仿真实验。该数据集总共时长178个小时,共400个说话人,每人大概讲350句话左右。随机选择四个人的语音作为实验数据,每个说话人各355句话,且说话内容互不相同,记为Si,i={0,1,2,3}。训练集选取S0作为目标说话人,S1作为干扰说话人,并按照信噪比(Signal-to-Noise Ratio, SNR)为5 dB、0 dB、-5 dB进行混合,从而得到三种信噪比下各300句训练语音。测试集按照S0S1、S0S2、S3S2三组形式进行语音混合,每组测试集每种信噪比下各55句测试语音;其中S0S1测试集和训练集不重叠,S0S2只将干扰说话人S1替换为S2,S3S2将目标说话人S0和干扰说话人S1全部进行了替换。
训练集和测试集语音均采用16 kHz下采样,并在训练前对所有训练语音和测试语音进行分帧处理,帧长设置为64 ms(每帧采样点数为1024),帧间重复率为50%。我们将G设置为11个卷积层,卷积核大小设置为31,步长为2,其编码阶段正卷积层对应的采样点×特征图为:1024×1、512×32、256×64、128×128、64×256、32×512;解码阶段同编码阶段对称,由于采用了跳跃连接结构,所以反卷积层的特征图加倍;D的网络设置与G的编码阶段类似,其有两个1024×1维的输入通道。训练时采用RMSprop优化算法,其训练批次设置为50,批次大小为128,学习速率为0.0001。由于文献[8]验证了L1正则项应该与G的损失函数在同一个数量级上,若λ太小则无法缩小分离语音与纯净语音之间的差距,太大则会忽略D对G的反馈作用。因此,将λ1和λ2设置为100能较好地平衡二者的影响。整个训练流程图如图4所示。
图4 SSGAN训练流程图
Fig.4 The training flowing-chart of SSGAN
在生成对抗网络联合训练的语音分离算法中,(x2,xm)为真样本对;为假样本对;N为最大迭代次数;▽θd为RMSprop梯度更新算法,L为损失函数中加入的正则项。
生成对抗网络联合训练的语音分离算法输入:混合语音xm,纯净干扰语音x2输出:目标语音x~1 for epoch=1:N do G生成目标语音:x~1←G(z,xm) G生成干扰语音:x~2←xm-x~1 训练真、假样本对,更新D参数: ▽θd1m∑mi=1[(D(x2,xm)-1)2+D(x~2,xm)2] 固定D参数,训练假样本对,更新G参数: ▽θg1m∑mi=1[(D(x~2,xm)-1)2]+Lend for
为了验证本文所提方法的有效性,采用文献[8]的SEGAN和文献[9]的CED两种方法作为对比方法。CED以混合语音作为系统输入,利用FCN构建一个编解码网络,类似于SSGAN中的G网络,但训练时根据期望语音和分离语音的绝对误差来更新参数;SEGAN主要采用独立训练结构,也是利用FCN构建G和D网络,但系统只关注目标语音。为此,我们构建基于本实验数据集的CED和SEGAN网络,其训练批次数、批次大小、学习速率、优化算法都和本文方法SSGAN的试验设置一致,保证实验具有对比意义。
为了评价语音分离的有效性,本文采用语音质量感知评估[19](Perceptual Evaluation of Speech Quality, PESQ)、短时客观可懂度[20](Short-Time Objective Intelligibility, STOI)、信噪干扰比(Source to Interference Ratio, SIR)、信噪伪影比(Source to Artifact Ratio, SAR)和信噪失真比[21](Source to Distortion Ratio, SDR)五种方法对分离性能进行评估。其中,PESQ用于评估语音的总体质量;STOI用于评估语音的可懂度;SIR用于比较非目标声源与目标声源的分离程度;SAR用于评估人工引入误差对语音分离系统的影响;SDR用于计算分离声音存在多少总失真。这些评估方法都是得分越高表明分离性能越好。
表1、表2、表3分别给出了5 dB、0 dB、-5 dB的三组测试语音在不同语音分离方法下的评估得分。由3个表可以看出,三组测试集在不同SNRs下的混合语音经SSGAN方法分离后得到的评估得分要优于CED和SEGAN两种方法,但随着SNRs减小,三种语音分离方法的评估得分都相应降低。我们分析这是因为混合语音SNRs越小,表明干扰语音越强,目标语音的特征就越不明显,从而导致分离性能降低。表1和表2中三组测试集经SEGAN方法得到的语音评分要优于CED方法,而表3中CED方法下的得分却高于SEGAN方法。这是由于高SNRs下(0 dB及以上),SEGAN的对抗机制在分离过程中能获得更多目标语音的细节特征,从而分离性能要高于CED这种依靠期望信号监督的方法;但在低SNRs下(0 dB以下),由于目标语音较弱,所以SEGAN难以获得更多的信息来提高分离性能。而SSGAN通过判别模型获取干扰语音的特征来进一步增加分离信息,弥补了SEGAN在低SNRs下的不足。此外,三组测试集的评分在整体上都表现出S0S1>S0S2>S3S2。原因在于,S0S1包含了训练集中的目标说话人与干扰说话人,测试时模型对S0S1测试集更加敏感;S0S2中只包含了训练集中的目标说话人,所以相对于S0S1得分要低;而S3S2中目标说话人和干扰说话人都不同于训练集,因此模型无法在说话人上提供更多的帮助,从而分离效果相对较低。
表1 5 dB下不同方法的语音评估值
Tab.1 Speech evaluation values of different methods under 5 dB
方法CEDS0S1S0S2S3S2SEGANS0S1S0S2S3S2SSGANS0S1S0S2S3S2PESQ2.512.482.322.642.612.422.732.672.44STOI0.840.810.800.840.810.810.850.820.82SAR13.1911.8010.0113.6112.6811.3114.0513.0111.61SDR12.8411.519.7813.3912.3811.0713.6412.7211.34SIR24.4823.9623.3524.6824.7224.1324.9625.0824.42
表2 0 dB下不同方法的语音评估值
Tab.2 Speech evaluation values of different methods under 0 dB
方法CEDS0S1S0S2S3S2SEGANS0S1S0S2S3S2SSGANS0S1S0S2S3S2PESQ2.292.242.112.302.252.092.362.282.12STOI0.780.740.750.770.740.740.790.740.74SAR11.069.438.0711.289.758.4211.519.918.43SDR10.719.137.8310.939.458.1711.149.628.18SIR22.4421.5921.3522.5521.9321.6022.6022.1621.53
表3 -5 dB下不同方法的语音评估值
Tab.3 Speech evaluation values of different methods under -5 dB
方法CEDS0S1S0S2S3S2SEGANS0S1S0S2S3S2SSGANS0S1S0S2S3S2PESQ2.172.091.982.142.061.882.222.141.96STOI0.720.670.690.750.690.690.760.700.70SAR10.037.836.629.757.566.6310.498.156.90SDR9.677.516.379.347.266.3810.297.856.66SIR21.3019.9719.9821.0419.8819.9621.8520.5320.48
为了更直观地理解,图5各子图分别展示了一句目标语音以-5 dB信噪比与干扰语音混合的三组测试样例经不同分离方法所得的语谱图。可以看到,三组测试语音经过SEGAN方法分离后,低频部分的干扰语音得到很好的抑制,但对高频部分的恢复存在信息的丢失;CED方法得到的语谱图虽然在高频部分恢复较好,但仍有部分干扰语音的高频信息未被分离,这是因为CED依据纯净语音与分离语音之间的绝对误差来更新系统参数,这样获得的有助于分离的信息是有限的;而SSGAN方法得到的语谱图不仅对高、低频信号恢复较好,且整个频谱的恢复更加接近于目标语音,原因就在于联合训练结构能同时获取两个说话人的语音信息,其对抗机制使得G网络的参数更新依赖于D网络,这样能获得更丰富的分离信息。
图5 不同方法下的3组测试语音语谱图
Fig.5 Three groups of test speech spectrograms under different methods
本文介绍了一种基于生成对抗网络联合训练的语音分离方法,为了凸显干扰语音在分离过程中的重要性,并考虑时延上的相位信息,分别通过生成模型和判别模型同时训练出目标语音和干扰语音的特征,提高了语音分离的效果。实验对比了CED和SEGAN两种方法在三组不同测试语音下的分离性能。结果表明,本文所提方法在双说话人的语音分离上效果突出,对目标语音高频频段成分的恢复要优于两种对比方法。
[1] Xu Y, Du J, Dai L R, et al. A Regression Approach to Speech Enhancement Based on Deep Neural Networks[J]. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 2015, 23(1): 7-19.
[2] Weninger F, Eyben F, Schuller B. Single-channel speech separation with memory-enhanced recurrent neural networks[C]∥ICASSP 2014-2014 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2014.
[3] Weninger F, Erdogan H, Watanabe S, et al. Speech Enhancement with LSTM Recurrent Neural Networks and its Application to Noise-Robust ASR[C]∥International Conference on Latent Variable Analysis and Signal Separation. Springer International Publishing, 2015.
[4] Yu Dong, Morten Kolbaek, Tan Zhenhua, et al. Permutation invariant training of deep models for speaker-independent multi-talker speech separation[C]∥IEEE International Conference on Acoustics. IEEE, 2017.
[5] Paliwal K, Kamil Wójcicki, Shannon B. The importance of phase in speech enhancement[J]. Speech Communication, 2011, 53(4): 465- 494.
[6] Gerkmann T, Krawczykbecker M, Le Roux J. Phase Processing for Single-Channel Speech Enhancement[J]. IEEE Signal Processing Magazine, 2015, 32(2): 55- 66.
[7] Goodfellow I J, Pouget-Abadie J, Mirza M, et al. Generative Adversarial Networks[J]. Advances in Neural Information Processing Systems, 2014, 3: 2672-2680.
[8] Pascual S, Bonafonte A, Serra J. SEGAN: Speech enhancement generative adversarial network[C]∥INTERSPEECH, 2017: 3642-3646.
[9] 范存航, 刘斌, 陶建华, 等. 一种基于卷积神经网络的端到端语音分离方法[J]. 信号处理, 2019, 35(4): 542-548.
Fan Cunhang, Liu Bin, Tao Jianhua, et al. An End-to-end Speech Separation Method based on Convolutional Neural Network[J]. Journal of Signal Processing, 2019, 35(4): 542-548.(in Chinese)
[10] 王怡斐, 韩俊刚, 樊良辉. 基于WGAN的语音增强算法研究[J]. 重庆邮电大学学报:自然科学版, 2019, 31(1): 136-142.
Wang Yifei, Han Jungang, Fan Lianghui. Algorithm research of speech enhancement based on WGAN[J]. Journal of Chongqing University of Posts and Telecommunications: Natural Science Edition, 2019, 31(1): 136-142.(in Chinese)
[11] Isola P,Zhu J Y,Zhou T,et al. Image-to-image translation with conditional adversarial networks[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern recognition. 2017: 1125-1134.
[12] 时文华, 张雄伟, 邹霞, 等. 利用深度全卷积编解码网络的单通道语音增强[J]. 信号处理, 2019, 35(4): 631- 640.
Shi Wenhua, Zhang Xiongwei, Zou Xia, et al. Single channel speech enhancement based on deep full convolutional encode-decode neural network [J]. Journal of Signal Processing, 2019, 35(4): 631- 640.(in Chinese)
[13] Shelhamer E, Long J, Darrell T. Fully convolutional networks for semantic segmentation[J]. IEEE Trans. on Pattem Analysis and Machine Intelligence, 2017, 39(4): 640- 651.
[14] Shuai B, Liu T, Wang G. Improving Fully Convolution Network for Semantic Segmentation[J]. arXiv: 1611.08986, 2016.
[15] He K,Zhang X,Ren S,et al. Delving deep into rectifiers: Surpassing human-level performance on imagenet classification[C]∥Proceedings of the IEEE International Conference on Computer Vision. 2015: 1026-1034.
[16] Orhan A E, Pitkow X. Skip Connections Eliminate Singularities[J]. arXiv: 1701.09175, 2017.
[17] Mao X,Li Q,Xie H,et al. Least squares generative adversarial networks[C]∥Proceedings of the IEEE International Conference on Computer Vision.2017: 2794-2802.
[18] Bu H,Du J,Na X,et al. Aishell-1: An open-source mandarin speech corpus and a speech recognition baseline[C]∥2017 20th Conference of the Oriental Chapter of the International Coordinating Committee on Speech Databases and Speech I/O Systems and Assessment (O-COCOSDA). IEEE,2017: 1-5.
[19] Fu S W,Liao C F,Tsao Y. Learning with learned loss function: Speech enhancement with quality-net to improve perceptual evaluation of speech quality[J]. IEEE Signal Processing Letters,2019.
[20] Taal C H, Hendriks R C, Heusdens R, et al. A short-time objective intelligibility measure for time-frequency weighted noisy speech[C]∥IEEE International Conference on Acoustics Speech & Signal Processing. IEEE, 2010.
[21] Li Xu, Tu Ming, Wang Xiaofei, et al. Single-Channel Speech Separation Based on Non-negative Matrix Factorization and Factorial Conditional Random Field[J]. Chinese Journal of Electronics, 2018, 27(5): 1063-1070.
Reference format: Wang Tao, Quan Haiyan. Speech Separation Method Based on Cooperative Training of Generative Adversarial Network[J]. Journal of Signal Processing, 2020, 36(6): 1013-1019. DOI: 10.16798/j.issn.1003- 0530.2020.06.024.
王 涛 男, 1995年生, 四川德阳人。昆明理工大学信息工程与自动化学院硕士研究生, 主要研究方向为语音信号处理、深度学习等。
E-mail: 2539130184@qq.com
全海燕 男, 1970年生, 云南石屏人。昆明理工大学信息工程与自动化学院副教授, 硕士生导师, 主要研究方向为信号处理、智能优化等。
E-mail: quanhaiyan@163.com