蓝 天 彭 川 李 森 钱宇欣 陈 聪 刘 峤
基于端到端的语音增强方法不依赖于频域表示,可以有效地利用时域信号的相位信息,避免了信号在时域和时频域之间来回切换,简化处理流程.Qian 等[9]考虑到WaveNet[10]对语音波形的强大建模能力,提出将语音先验分布引入到WaveNet框架进行语音增强;Rethage 等[11]也在WaveNet的基础上开展语音增强研究,通过非因果的(Noncausal)扩张卷积来预测目标,在主观评价指标上取得了比维纳滤波更好的效果.Pascual 等[12]将生成对抗网络[13-14](Generative adversarial nets,GAN)引入语音增强领域并提出SEGAN (Speech enhancement generative adversarial network),并用其对时域波形信号直接处理,取得了一定的增强效果,但是在客观评价指标语音质量感知评价(Perceptual evaluation of speech quality,PESQ)上略低于维纳滤波.Fu 等[15-16]提出全卷积神经网络并将其作用于整句语音波形信号,提升了语音增强的性能.这些基于端到端的方法都是直接将一维时域波形映射到目标语音,然而时域波形信号本身并不能表现出明显的特征结构信息,直接对时域信号建模比较困难,而且低信噪比环境下信号更复杂,建模难度会进一步提高.有学者考虑将神经网络作为前端短时傅立叶变换(Short-time Fourier transform,STFT)替代方案[17-19],我们在其基础上修改扩展,提出了一个时频分析网络来模拟STFT变换过程的基函数,将一维时域信息映射到一个类似于时频表示的高维空间中以获取更多的信息;相比于常见的神经网络方法中使用时频域幅度谱或功率谱值的方式,时频分析网络能更充分地利用输入信号中的相位信息.
语音和噪声信号在时域相邻帧以及频域相邻频带间具有很强的相关性,这种时频域的局部相关性与图像中的相邻像素间的相关性非常相似.由于在语音增强领域使用卷积神经网络可以获得与深度神经网络和循环神经网络(Recurrent neural network,RNN)相当或更好的增强效果[8,20-22],为进一步提高语音增强的性能,本文考虑使用卷积神经网络中的一种重要网络 — RefineNet[23]来进行端到端的语音增强.它是一个通用的多路径优化网络,通过显式利用下采样过程中的所有可用信息,并使用较长范围的残差连接来实现高分辨率预测.通过这种方式,可以利用前期卷积的细粒度特性捕获更深层的高级特征;RefineNet 的各个组件使用了带有Identity mappings[24]的残差连接,这样梯度就可以通过不同跨度的残差连接直接传播,从而实现高效的端到端训练.
在语音增强领域的神经网络训练过程中,通常将均方误差(Mean square error,MSE)作为损失函数,而在客观评价中往往使用PESQ 或STOI 等评价指标,这种损失函数与评价指标之间的差异性并不能保证训练后的模型在应用中能够提供最优的性能;Fu 等[16]和Zhao 等[25]将STOI 评价指标融入到了损失函数中,一定程度上提高了语音增强性能.受此启发,我们提出将STOI和SDR 同时融入到损失函数中,并且采用多目标联合优化策略,利用神经网络根据不同目标之间的共性和差异性建模.
本文提出了基于RefineNet 的端到端语音增强模型(RefineNet-based speech enhancement,RNSE),首先利用时频分析网络模仿STFT,学习时域波形在模拟的二维时频空间表示;然后利用RefineNet 整合不同大小特征图的能力,对不同粒度的模拟时频空间特征进行综合分析;最后通过时频分析网络逆处理得到增强语音的估计.在训练阶段,我们将STOI 与SDR 评价指标融入到损失函数中进行联合优化,从而得到更好的增强效果.
RNSE 模型的网络结构由时频分析网络TFANet (Time-frequence analysis network)和RefineNet 两部分构成,其结构如图1 所示.TFANet是一个用于模拟短时傅里叶变换及其逆变换过程的时频分析神经网络,在RNSE 前端,TFANet 将一维时域语音信号映射为二维特征表示;在RNSE 后端,TFANet 将神经网络输出的增强后特征图重构成一维时域语音信号.RefineNet 是RNSE 的主体部分,用于对特征图进行精炼分析,并与TFANet结合,实现从时域的含噪语音信号到时域的纯净语音信号的直接映射.
图1 RNSE 模型结构图Fig.1 The diagram for RNSE architecture
Venkataramani 等在语音分离任务中提出了实值转换方法[19],通过卷积和平滑操作对原始时域波形进行预处理,然后输入到后续神经网络中进行增强.为了充分保留卷积结果中的原始信息,我们去除了平滑操作,提出了时频分析网络TFANet.该网络包含编码分析阶段和解码生成阶段,在编码分析阶段将时域信号处理为二维特征图表示并输入到RefineNet 中,在解码生成阶段将RefineNet 输出的增强语音的特征图重构成一维语音信号.假设含噪语音信号为s[n],那么STFT 计算可表示为:
乡土正义代表村庄社会关系网络和生存结构中各种特定利益的集合,人情法则、脸面机制、乡土权威构成了配置、平衡这些特定利益的社会控制机制。这里的特定利益并非与司法正义中所主张的法律权利相互抵牾,只是在村庄社会语境中,这些利益具有乡土特点,利益的获取、主张都不是按照现代规则来运作;相反,有时吃亏也并非现代法律意义上的遭受侵害。此外,即便涉及村庄利益冲突,由于社会交往密度较高,利益早已模糊化,只要不触犯底线,利益相关者都能够以容忍的方式来确保乡村秩序。
式(1)中,xt[f]是语音在第t帧第f频点的STFT 结果,最终组成一个T帧F个频点的矩阵,N是每帧的采样点个数,H是相邻帧间的位移,w是窗函数系数,bf[i]是对应的STFT 变换系数.令k=w·b,可以将式(1)变换成卷积形式:
TFANet 通过一个卷积层来模拟实现上式的计算过程,其中包含F个大小为N且系数为kf的卷积核,我们将卷积步长设为H,输出设为x.通过试验参数,本文将H设置为64,T、F、N均为512,这层卷积的输出为512×512 的2 维矩阵.在非端到端的方法中,通常将时域语音信号通过STFT 处理为幅度谱表示,经由模型增强后,再结合原始含噪语音的相位谱合成增强后的时域语音波形.如图1 所示,类比这种语音增强过程,我们通过对x取绝对值|x|来模拟STFT 的幅度谱,然后将|x|作为特征图输入到RefineNet 中学习含噪语音到纯净语音的复杂映射关系.这里RNSE 模型保留了x的正负号表示p是对原始信号相位的模拟,用于增强语音的重构.
由于RefineNet 的输出特征图的长和宽是其输入的1/4,在解码生成阶段,我们使用步长为4 的解卷积层将特征图恢复为原大小,同时微调特征图.接着将特征图与编码分析阶段保留的p相乘,输入到解卷积层,模拟语音重构过程的短时傅里叶逆变换,最终得到对时域纯净语音的估计.
RefineNet 是在ResNet[26]框架上的改进,为了在增加神经网络深度的同时不影响模型训练,Res-Net 采用了残差连接,将一层或多层叠加的隐含层输出F(x)与输入x相加,作为最终输出:
本文通过实验最终确定的ResNet 结构如图2所示.ResNet 的输入依次经过卷积核大小为7×7步长为2 的卷积层,步长为2 的池化层,进入4 个叠加的网络块(ResBlock).每个ResBlock 包含7个结构相似的卷积层,以ResBlock 1 为例,它是一个输出通道为256 的堆叠卷积层,每个卷积层步长均为1;在ResBlock 1 中包含2 个三层堆叠卷积层,每个三层堆叠的卷积层与ResBlock 的输出通道相同,且除了第二层卷积核大小为3×3 且步长与ResBlock 相同外,其他层卷积核大小均为1×1 且步长为1;在ResBlock 中通过残差连接的方式将输入输出连接起来,提升网络的表征能力.其余3 个ResBlock 的结构与ResBlock 1 的结构相似,不再赘述.
图2 ResNet 模型结构图(Conv 后用,分隔的分别是卷积层的输出通道数、步长,若未指明步长,默认为1)Fig.2 The diagram for ResNet architecture
4 个ResBlock 输出的特征图逐块缩小,感受野变大,特征更加抽象,从而能捕获更高层次的全局和上下文信息,并且计算量随之减少,但是精细特征也会逐渐丢失.RefineBlock 是一种神经网络块,可以把不同大小的特征图融合,从而利用高层的抽象特征和底层的精细特征,其结构如图3 所示,包含残差卷积单元RCU (Residual convolution unit)、自适应卷积(Adaptive convolution)模块、多分辨率融合(Multi-resolution fusion)模块、链式残差池化(Chained residual pooling)模块、RefineBlock输出卷积(RefineBlock output convolution)模块等.自适应卷积模块用于在融合前微调特征图,由2 个RCU 构成,每个RCU 包含2 层带ReLU 激活的卷积,每个特征图输入与第2 层卷积输出相加构成残差连接.RefineBlock 4 只有1 个特征图输入,而其他RefineBlock 有2 个输入.
图3 RefineBlock 结构图Fig.3 The diagram for RefineBlock architecture
多分辨率融合模块用于将不同分辨率的特征图合成一张图.首先,特征图通过一层卷积做融合前的微调,然后以分辨率最高的特征图为基准,对所有分辨率较低的新特征图通过双线性插值上采样,最后直接相加,得到一张高分辨率的特征图.链式残差池化模块使用更大的感受野从输入特征图中提取抽象特征.特征图首先经过ReLU 激活函数,池化压缩图大小,提取主要特征,再通过卷积层微调,得到的新特征图在进行下一次的池化和卷积的同时,通过残差连接与原特征图融合,形成链式的残差池化结构.RefineBlock 输出卷积模块由1 个RCU 组成.
RefineNet 的总体结构如图1 所示,ResBlock 4 的特征图输入到RefineBlock 4 中,经过微调输入RefineBlock 3,与ResBlock 3 的特征图融合,再依次通过RefineBlock 2、1 与ResBlock 2、1 的特征图融合,最后经过输出卷积模块做最后的微调.输出卷积模块包含2 个RCU,以及1 个卷积核大小为1×1 的卷积层.
基于深度学习的语音增强模型常用均方误差MSE 作为优化目标,在时域可表示为:
其中α、β、λ是各优化目标的权重系数,Cstoi、Csdr表示计算STOI、SDR 的函数,下面是对两优化目标的详细介绍.
1) SDR 优化目标
SDR 是增强语音信号中纯净语音分量与其他分量的能量比值.计算公式如下:
2) STOI 优化目标
STOI 用于评估语音的可理解性,输入是纯净语音y和增强语音.首先去除对语音可懂度无贡献的无声区域,然后对信号做STFT,对两个信号进行时频分解,通过将两个信号分割为50 %重叠的带汉宁窗的帧,得到与听觉系统中语音表征性质相似的特征.接着进行1/3 倍频带分析,划分共15个1/3 倍频带,其中频带中心频率范围为150 Hz至4.3 kHz.纯净语音的短时时间包络zj,m可表示如下:
其中Y∈R15×M是由划分得到的15 个1/3 倍频带,M代表该段语音的总帧数,j∈{1,2,···,15}是15个1/3 倍频带的索引,m为帧的索引,L=30,其代表分析语音段长度为384 ms.
实验中使用的语音数据来自于TIMIT 数据集,噪声数据集采用ESC-50 作为训练集,为了验证本文提出模型的泛化性能,我们也将Noisex92 噪声数据集用于测试.TIMIT 数据集总共包含6 300 条语音,由630 人每人录制10 个句子得到,男女比率为7:3.其中,每人录制的句子中有7 个是重复的,为了去除重复句子对模型训练与测试的影响,本实验只取句子均不相同的1 890 条语音.将其中约80 %的语音作为训练集,另外20 %作为测试语音,且男女比例与TIMIT 总体分布相同.ESC-50 数据集包含2 000 条带标签的环境录音集合,共分为5 个主要类别:动物、自然音景与水声、非语音人声、室内声音、城区声音.Noisex92 是常用于语音增强测试的数据集,本文使用Babble、Factory1、White、HFChannel 四种常见噪声进行不同噪声环境的测试,用所有15 种Noisex92 噪声做不可见噪声测试,用所有ESC-50 噪声做可见噪声测试.
本文选择4 个经典算法对比:a) Log-MMSE,是一种常用的基于统计模型的语音增强方法[28];b)CNN-SE[29],采用CNN 对语音进行增强,并且通过添加跳连接的方式融合神经网络低层和高层的信息;c) WaveUnet[30],基于Unet 模型结构所提出的一种应用于时域语音波形信号的神经网络模型[31];d) AET[19],通过神经网络模仿STFT 前端变换过程,直接在时域语音波形上建模,其中b)、c)、d)均为基于端到端的语音增强方法.
本文采用的评估指标为STOI、PESQ 及SDR,其中STOI 是短时客观可懂度,用于衡量语音可懂度,得分范围为0~ 1,分值越高表明可懂度越高;PESQ 用于语音质量感知评估,它是ITU-T (国际电信联盟电信标准化部)推荐的语音质量评估指标,其得分范围为-0.5~ 4.5,值越大表明质量越好.SDR 测试增强语音中纯净语音的分量与其他分量的参量比值,范围理论上为整个实数域,值越大表明增强效果越好.
本文评估了RNSE 与其他非端到端方法的性能差异.图4 展示了在几种常见噪声条件下各模型的指标对比,我们可以看出在不同噪声环境和不同信噪比条件下,RNSE 方法相比于时频域方法有显著的性能提升,在每种评估指标下几乎均取得了最佳结果.我们还注意到,即使在 -10 dB 的极限信噪比下,RNSE 方法仍然可以取得比部分基线方法在-5 dB 下相当或更好的性能,这意味着RNSE 更适合于在低信噪条件下的复杂环境中挖掘语音信号的信息.我们通过在可见和不可见噪声下做测试,进一步验证RNSE 模型的泛化性,表1和表2 分别给出了已知噪声和未知噪声下的客观评价指标;由表1和表2 可以看出,RNSE 在已知噪声环境和未知噪声环境下均取得了最佳的结果,而且远优于其他端到端对比方法;同时,我们注意到相比于其他基线方法,WaveUnet 方法在STOI 上,取得了相对更高的客观评估指标.为了更加直观的比较各种算法的增强效果,我们对各个网络增强后的语音的语谱图进行了比较分析,图5 为在0 dB 的Babble 噪声下使用不同算法得到的增强语音的语谱图,横轴表示时间T,纵轴表示语音信号频率F.从语谱图中可以看出,各种算法都在一定程度上对含噪语音进行了有效的处理,CNN-SE 与WaveUnet 方法在增强含噪语音的过程中,存在相对较多的噪声残留;AET 方法在增强过程中,对噪声的抑制能力更强,但在去除大量噪声的过程中也去除了一些语音成分信息.由于时域波形信号的复杂性,通过神经网络直接挖掘时域特征时,无法较为准确地辨识语音和噪声,导致在增强过程中,会引入一些噪声或增强过度.RNSE 方法利用TFANet 将时域信号映射到二维表达空间,保留其正负号特征并用于后期波形重构.通过这种方式引导神经网络在训练过程中对原始信息的利用,可以缓解模型在增强过程中的增强不足或增强过度的问题.
图4 不同噪声不同信噪比下实验结果图(从第一行到第三行评价指标分别为PESQ、STOI 与SDR,图(a)~ (c)、图(d)~ (f)、图(g)~ (i)、图(j)~ (l)分别为Babble,Factory1,White,HFChannel 噪声下的结果;每簇信噪比中的柱状图从左至右依次对应Log-MMSE,CNN-SE,WaveUNet,AET 以及RNSE)Fig.4 Experimental results under different noise and SNR
表1 可见噪声的测试结果Table 1 The performance of baseline systems compared to the proposed RNSE approach in seen noise condition
表2 不可见噪声的测试结果Table 2 The performance of baseline systems compared to the proposed RNSE approach in unseen noise condition
图5 0 dB 的Babble 噪声下的语音增强语谱图示例Fig.5 An example of spectrogram of enhanced speech under Babble noise at 0 dB SNR
通过在各种噪声和信噪比环境下的测试表明RNSE 模型在复杂环境下具有较强的鲁棒性.在RNSE 模型训练阶段,我们把评估指标融入到损失函数中,为了比较融入的评价指标对语音增强性能的影响,我们比较了在不同组合的损失函数下RNSE 模型的增强性能,图6 展示了不同信噪比下的增强效果对比.从图中可以看出,在使用单一目标作为损失函数时,基于SDR 的损失函数在PESQ和SDR 评价指标上均取得了相对更好的性能,基于STOI 的损失函数在STOI 指标上也取得了更好的性能;但是不同的损失函数存在与其他评估指标不兼容的情况,比如基于STOI 的损失函数在PESQ 与SDR 指标上的性能较低,这是由于STOI 的计算是基于增强语音的时间包络,其作为训练的损失函数时会引导神经网络模型过多关注增强语音与纯净语音之间的时间包络关系,导致在PESQ和SDR 方面的性能不佳.同时我们注意到两两组合的损失函数相比于单一目标损失函数可以取得相对更好的性能,基于STOI 与SDR 融合的损失函数取得了比其他组合或单一目标损失函数更好的评估结果.进一步地,沿着这个思路,我们将STOI和SDR 与RMSE 按照一定的权重组合起来联合训练优化调参.
图6 基于不同损失函数的测试结果Fig.6 Results based on different objective functions
在调参的过程中,先单独使用STOI、SDR 以及RMSE 作为损失函数进行训练,观察他们分别训练的损失函数值,当其收敛到某一个数量级时,再通过调节超参数α、β以及λ对相应的损失函数值进行收缩,将他们的范围都限制到 -1~ +1 的范围内,然后在此基础上微调,从而得到模型各超参数的最佳匹配.图中STOI+SDR+MSE 组合对应于式(5)中的超参数α=10、β=1、λ=5×103.由此,我们从实验直观地证明了损失函数与评价指标的不匹配会导致语音增强性能无法达到最佳,我们通过将评估指标与损失函数按照一定的权重比例组合并输入到神经网络中联合训练,显著提高了语音增强的性能,表明损失函数与评估指标的结合可以有效地提高语音增强的性能,而且本文提出的将评估指标融合到损失函数中联合训练的思想并不是只适用于语音增强领域,还可以普适性地应用到其他各领域.
本文提出了一个端到端的语音增强算法.首先构建一个时频分析网络对语音信号编码分析,然后利用RefineNet 网络学习含噪语音到纯净语音的特征映射,最后解码生成增强的语音信号.在此基础上,我们提出将评价指标与训练损失函数相融合的改进方法以及将STOI 与SDR 同时作为优化目标的多目标学习策略.在不同噪声环境和不同信噪比下的测试中,本文提出的方法在STOI、PESQ 以及SDR 方面的指标显著优于具有代表性的传统方法和端到端的深度学习方法,证明它能更好地提高语音的清晰度和可懂度;通过对不同损失函数的对比实验,本文验证了将评价指标与损失函数融合的策略在深度学习模型上的有效性.