人耳听觉相关代价函数深度学习单通道语声增强算法*

2022-09-16 09:12程琳娟彭任华郑成诗李晓东
应用声学 2022年4期
关键词:单通道代价噪声

程琳娟 彭任华 郑成诗 李晓东

(1 中国科学院声学研究所 北京 100190)

(2 中国科学院大学 北京 100049)

0 引言

语声质量和可懂度在移动电话、助听器和语声识别等系统中具有重要意义。然而在实际环境中,这些系统通常会受到噪声的干扰,破坏语声质量。语声增强算法的目的就是从嘈杂的背景噪声中提取出干净语声信号,提高设备通讯质量以及语声识别等性能。相比于多通道语声增强算法,单通道语声增强算法仅需单个传声器,成本低,易部署,一直是研究的热点。

传统单通道语声增强算法主要包括谱减法、基于统计模型的算法和基于子空间的算法[1-6]。谱减法[2-3]算法结构简单,其原理是在无语声段估计和更新噪声谱,然后将估计的噪声谱从带噪语声谱中减去得到增强语声谱。谱减算法依赖噪声谱估计,容易产生较大的语声失真和音乐噪声。基于统计模型的算法[4-5]通过引入语声统计特性分析,改善了语声信号失真,同时降低了音乐噪声。基于子空间的语声增强算法[6]是利用语声信号的稀疏性,将带噪语声信号的向量空间分解为干净语声子空间和噪声子空间,通过抑制噪声子空间达到增强干净语声的目的。传统语声增强算法在平稳噪声下能够取得良好的降噪效果,但是在非平稳噪声场景下的性能较差。

近年,基于深度神经网络(Deep neural network,DNN)的语声增强算法在非平稳噪声场景下表现出显著优势,成为了研究热点[7]。得益于DNN强大的非线性建模能力,通过构造大规模带噪语声以及干净语声数据集,可以直接从带噪语声中映射干净语声。在网络参数训练过程中,代价函数决定了网络整体优化方向,直接影响网络性能。均方误差(Mean-square error,MSE)函数是网络训练中最常用的一种代价函数。但是MSE 函数误差值的大小与语声质量的好坏并非完全相关,而且容易产生过平滑等问题[8]。大量研究学者针对MSE 代价函数问题提出了改进方法。Xu 等[9]提出在代价函数中对增强后语声信号中的语声分量和残余噪声分量分别进行控制,从而获得更好的语声质量和听感更自然的残余噪声。Li 等[10]提出了一种广义损失函数,将MSE 及其他一些典型损失函数总结纳入到同一理论框架中,研究表明,通过控制损失函数使噪声听感更加自然对于增强后语声的整体听感极为重要。Xia 等[11]提出对自编码器语声增强算法的代价函数进行加权,权重的大小随着频段的增加而降低,以保留更多低频语声信息。Kumar等[12]提出利用人耳掩蔽函数对MSE 代价函数进行加权,在低信噪比场景下取得了更好的语声质量。Liu 等[13]提出了一种和心理声学相关的加权MSE代价函数,利用一种经验函数对基于对数谱的MSE代价函数进行加权,对能量较大的语声段惩罚力度较大。也有学者提出在训练网络时,直接采用语声感知质量评价(Perceptual evaluation of speech quality,PESQ)[14]和短时目标可懂度(Short-time objective intelligibility,STOI)[15]客观指标作为代价函数[16-18]。但是PESQ 和STOI 的计算非常复杂,且存在不可导的计算过程,因此一般需要对这些代价函数进行近似拟合得到适合DNN 训练的代价函数,导致训练后的模型并不能实现理想效果。而且这些代价函数往往只能在该客观指标下取得较好结果。

本文将两类与人耳听觉相关的代价函数[19]引入到DNN 训练中,可以在不增加模型计算复杂度的情况下提高深度学习算法增强后的语声质量,降低噪声残留。第一类代价函数是加权欧式距离(Wighted-Euclidean,WE)代价函数,考虑了人耳听觉掩蔽效应,利用一个幂指数控制网络对噪声的抑制程度和对语声的保留程度。第二类代价函数包括Itakura-Satio(IS)代价函数、COSH 代价函数和加权似然比(Weighted likelihood ratio,WLR)代价函数。这几种代价函数都更强调语声谱峰值的重要性,侧重于恢复谱峰值信息,保留更多语声信息,提高语声质量。本文通过在代价函数中引入人耳听觉信息对网络训练进行优化,控制网络模型对干净语声的保留和对干扰噪声的抑制,其目的是提高语声质量和可懂度,未考虑对语义和情感等语声感知相关信息的影响。本文利用长短期记忆(Long short-term memory,LSTM)[20]网络分析了两类代价函数在基于深度学习的单通道语声增强算法中的性能,并与MSE 代价函数进行对比。为了验证这些代价函数对网络结构的泛化性能,利用全连接网络(Fully connected network,FCN)和卷积循环网络(Convolutional recurrent network,CRN)[21]对这些代价函数在不同网络架构上的性能进行了进一步探究。

1 信号模型

考虑单通道加性噪声信号模型。y(n)表示传声器拾取带噪信号,x(n)表示干净语声信号,d(n)表示加性噪声信号,与x(n)不相关,n表示采样点,则:

语声增强的目的就是从带噪语声y(n)中恢复出干净语声x(n)。对式(1)两边同时进行短时傅里叶变换(Short-time Fourier transform,STFT),可得

其中,k表示频率分量,l表示帧分量。Y(k,l)、X(k,l)和D(k,l)分别表示y(n)、x(n)和d(n)的STFT变换。

定义第l帧第k个时频分量处的幅度谱估计误差为d(|X(k,l)|,|(k,l)|), 其中|(k,l)|代表估计的干净语声ˆx(n)的STFT 幅度谱。在下文中,为方便表述,使用{Yk,Dk,Xk,}代替{|Y(k,l)|,|D(k,l)|,|X(k,l)|,|(k,l)|}分别表示带噪语声y(n)、噪声d(n)、干净语声x(n)和估计干净语声ˆx(n)的STFT幅度谱。则贝叶斯风险RB,即估计误差期望E[d(Xk,)],可表示为

对于一个给定的代价函数,比如MSE 代价函数,即d(Xk,)=(Xk-)2,式(3)中的贝叶斯估计可以通过固定Y(k,l),最小化关于的内部积分得到[19]。

2 算法原理

2.1 深度学习单通道语声增强算法框架

FCN是深度学习算法中最常见的网络结构,它的输入特征相互独立,没有建立当前输入与历史信息之间的联系。语声信号有明显的时序特征,当前时刻的语声信息与过去时刻的语声信息具有密切联系。循环神经网络(Recurrent neural network,RNN)利用自身的循环网络结构能够建立当前时刻输入特征与历史输入特征之间的联系,更适用于映射语声相关特征。但是RNN 在前向传播过程中信息冗余过多,网络计算复杂,容易产生梯度消失和梯度爆炸现象[22]。LSTM 在RNN 结构基础上引入了一个记忆单元结构和一系列的门函数,能够有效控制历史信息在当前时刻的流入和流出,在一定程度上解决了梯度消失和梯度爆炸问题。单个LSTM模块包括一个记忆单元和3个门函数:输入门、遗忘门和输出门,计算过程如下所示:

其中,l代表帧分量,σ代表sigmoid 函数,tanh 代表双曲正切函数;xl、cl和hl分别表示第l帧的网络输入、记忆单元和隐状态;W和b分别表示权重和偏置;il、fl和ol分别表示输入门、遗忘门和输出门。当前帧输入特征通过隐状态hl-1和记忆单元cl-1建立与过去时刻输入特征之间的联系。

本文利用LSTM 网络对不同代价函数的性能进行分析。图1 展示了基于LSTM 的单通道语声增强算法框图。网络输入特征是带噪语声y(n)的对数谱(Log-power spectra,LPS),即logY2k。掩蔽函数映射和谱映射是基于深度学习的单通道语声增强算法最常用的两类映射方法。掩蔽函数是由计算听觉场景分析概念所延伸出的一类计算目标,如理想二值掩蔽(Ideal binary mask,IBM)、理想浮值掩蔽(Ideal ratio mask,IRM)等。谱映射网络的学习目标通常是干净语声的谱特征,如幅度谱或对数谱,无需干净语声与噪声之间相互独立的假设。但是基于谱映射的算法容易在估计的干净语声谱特征上映射出非语声成分,产生人工噪声。Weninger等[23]提出了一种信号近似(Signal approximation,SA)映射方法,将网络输出值限定在[0,1]之间,然后将网络输出与带噪语声幅度谱相乘,得到干净语声幅度谱的估计,网络的训练目标是真实的干净语声幅度谱。这种方法结合了掩蔽函数映射方法和谱特征映射方法的优势。如图1 所示,本文使用SA方法对LSTM网络进行训练。

图1 基于LSTM 的单通道语声增强算法框图Fig.1 Diagram of LSTM-based single-channel speech enhancement

网络隐藏层包括两层LSTM,每层有512 个节点,输出层为FCN,激活函数为sigmoid 函数,将网络输出值限定在[0,1]之间。网络输出与带噪语声幅度谱相乘得到对干净语声幅度谱的估计,根据估计干净语声幅度谱和真实干净语声幅度谱计算代价函数。当模型完成训练,在增强阶段,利用估计干净语声幅度谱和带噪语声相位根据重叠相加法恢复出干净语声时域信号ˆx(n)。

2.2 基于人耳听觉的代价函数

由于MSE代价函数形式简单,易于求导,MSE函数成为语声增强算法中最常用的代价函数。然而MSE 代价函数误差值的大小与语声质量好坏并非完全线性相关。考虑到人耳听觉掩蔽效应和共振峰对语声质量及可懂度的重要性等因素,在传统语声增强算法中提出了一系列基于人耳听觉的代价函数[19,24-26]。本文引入这些代价函数替代MSE 代价函数对LSTM 网络进行训练,以提高基于LSTM的单通道语声增强算法的性能,提升语声质量和可懂度。

2.2.1 WE代价函数

WE 代价函数是一种关于心理声学的代价函数,由Loizou[19]基于低速率语声编解码器中所使用的感知加权法所提出。感知加权法主要利用了人耳听觉系统的掩蔽特性,在语声能量较大的时频段(如语声共振峰)附近,大部分量化噪声被语声掩盖,很难被检测到,信噪比较高。而在语声能量较小的时频段,噪声能量占主要成分,信噪比较低。低速率语声编解码器采用感知加权法,用加权滤波器对误差频谱进行整形。滤波器的形状类似于原始信号的频谱倒数,即语声谱谷值附近的误差被放大,谱峰值附近的误差被缩小,可以进一步抑制谱谷值附近的噪声,更侧重于恢复能量较小且易被噪声干扰的干净语声段,提高整段语声的质量和可懂度。基于此,Loizou 提出用1/Xk对MSE 代价函数进行加权滤波,可表示为

由式(9)可以看出,当语声能量较小时,即Xk较小,则该加权MSE 代价函数的权重更大,对误差的惩罚力度更强;当语声能量较大时,即Xk较大,则该加权MSE代价函数的权重更小,对误差的惩罚力度更弱。考虑到更一般的形式,将Xkp作为加权滤波器,称为WE代价函数,其中p为大于2的常数,即

当p <0,干净语声能量较小的时频点权重更大,误差值更大,此时噪声占主要成分,因此能够更大程度地降低噪声残留;当p >0,则WE 代价函数在语声共振峰附近的误差较大,更侧重于恢复语声共振峰附近的干净语声,保留更多语声信息。当p= 0,式(10)称为MSE 代价函数。WE 代价函数根据人耳听觉掩蔽特性,利用参数p调节代价函数优化方向,控制对残留噪声和干净语声的优化。本文取p=[-1.9,-1.5,-1,-0.5,0,1,2]。

2.2.2 IS代价函数

IS代价函数由Itakura 等[24]提出,并已成功应用于语声识别。IS代价函数是计算干净语声在各频率分量上的估计功率谱和真实功率谱之间的误差,其计算公式为

由式(11)可以看出,IS 代价函数是不对称的,它更强调语声谱峰的重要性,侧重于恢复谱峰值附近的干净语声。根据Loizou[19]的推导,IS代价函数关于功率谱的贝叶斯估计与MSE 代价函数关于功率谱的贝叶斯估计相同,可表示为

与式(11)所示的IS代价函数相比,式(12)代价函数形式更简单,易推导,更适用于网络训练。实验结果证明,在基于LSTM的语声增强算法中,式(11)所示代价函数的性能比式(12)所示函数稍差。因此,本文使用公式(12)作为IS代价函数的形式与其他代价函数进行性能对比。

2.2.3 COSH 代价函数

如式(11)所示,IS 代价函数是非对称的。Gray等[25]通过将IS代价函数的两种不同形式结合构成了一种对称性的代价函数,称为COSH 代价函数,其计算公式为

2.2.4 WLR代价函数

为了进一步强调语声谱峰的重要性,Shikano等[26]提出了WLR代价函数,其计算公式为

WLR 代价函数与logMSE 代价函数相似,logMSE代价函数的计算公式为

WLR 和logMSE 代价函数都引入了对数谱误差项,是对对数谱误差项的加权,但是它们的权重函数不同。WLR 代价函数的权重函数是线性谱误差(Xk-),logMSE 代价函数的权重函数是对数谱误差(logXk-log)。因此,与logMSE 代价函数相比,WLR 代价函数对对数谱峰的权重大于对对数谱谷值的权重。

表1 总结了本文所研究的5 种基于人耳听觉的代价函数。其中,当p= 0 时,WE 代价函数退化成MSE代价函数。

表1 基于人耳听觉的代价函数Table 1 Cost functions based on human auditory

3 实验结果和分析

3.1 实验设置

构建训练集的干净语声取自TIMIT 数据库[27]。TIMIT 数据库包括TIMIT 训练数据集和TIMIT 测试数据集。训练集使用了115 种噪声,包括100 种录制环境噪声[28]和15 种自制噪声类型[29]。在构建训练集时,从TIMIT 训练数据集中随机选取3000 句不同说话人语声,与各种噪声按照[-5,0,5,10,15,20] dB 的信噪比(Signal-noise ratio,SNR)进行混合,构建约60 h 的训练集。从TIMIT训练数据集中另选300 句干净语声与115 种噪声按照不同SNR合成带噪语声,生成了不同SNR条件下的验证集,约为6 h。在训练模型时,利用训练集产生的误差根据反向传播方法对网络的权重进行更新,利用模型在验证集上的误差判断模型的收敛情况。

当模型训练完成之后,在测试阶段,从TIMIT测试数据集中选取30 句男性说话人语声和30 句女性说话人语声,与噪声按照不同SNR 进行混叠,构建测试集对算法性能进行评估。为了测试算法在未见噪声场景下的泛化性能,将这些干净语声与NOISEX-92数据库[30]的6 种噪声类型按照不同SNR合成带噪语声对算法进行测试。

所有语声和噪声信号的采样率均为16 kHz。STFT的帧长为512(32 ms),帧移为256(16 ms),帧重叠度为50%,因此语声信号幅度谱的频率维度为257。LSTM 网路的输入特征是当前帧带噪语声的LPS。每个隐藏层有512个节点,最后一层全连接层有257个节点,激活函数为sigmoid 函数。训练模型时,设置的批大小为128。采用Adam优化器更新权重,学习率设置为0.0003。为了提高模型的泛化性能,防止过拟合,采用随机丢弃方法,每层隐藏层随机丢弃部分节点,丢弃率为0.2。

本文虽然在网络训练中引入了基于人耳听觉特性的代价函数,但目的仍然是提高增强后的语声质量和可懂度,提升单通道语声增强算法性能。因此,在测试阶段,采用以下5种常用的客观评价标准对算法进行评估:

(1)PESQ:PESQ是用来评价语声质量的指标,与主观评价得分高度相关,取值在-0.5~4.5之间。

(2)信号失真综合评价标准(Composite measure for signal distortion,CSIG)[31]:评价信号失真度的指标,取值在1~5之间。

(3)噪声失真综合评价标准(Composite measure for noise distortion,CBAK)[31]:评价噪声失真度的指标,取值在1~5之间。

(4)整体语声质量综合评价标准(Composite measure for overall speech quality,COVL)[31]:评价整体语声质量的标准,取值在1~5之间。

(5)STOI:STOI 是用来评价语声可懂度的指标,取值在0~1 之间,STOI 得分越高代表语声可懂度越好。

这些评价标准均以干净语声为参考信号,与估计的干净语声进行对比计算得分,分数越高代表算法性能越好。

本文利用LSTM网络对表1中代价函数的性能进行了测试,并与MSE 代价函数和STOI 代价函数[18]进行了对比。

3.2 实验结果

首先,针对训练集噪声场景,对基于不同代价函数的LSTM 单通道语声增强算法的性能进行分析。从训练集所用的115 种噪声中随机选取6 种噪声,与60 句测试集干净语声按照不同SNR 进行混叠构建测试带噪语声。不同代价函数在6 种训练集噪声场景下的平均PESQ 和STOI 结果分别如表2和表3所示。

表2 基于不同代价函数的LSTM 单通道语声增强算法在训练集噪声场景下的平均PESQ 得分Table 2 Average PESQ results of singlechannel speech enhancement based on LSTM with different cost functions under seen noise types

表3 基于不同代价函数的LSTM 单通道语声增强算法在训练集噪声场景下的平均STOI 得分Table 3 Average STOI results of single-channel speech enhancement based on LSTM with different cost functions under seen noise types

从表2 中可以看出, 基于WE 代价函数的LSTM 单通道语声增强算法取p=-0.5 时在各个SNR 条件下都取得了最优性能。当p <-0.5 或者p >-0.5 时,PESQ 结果变差,特别是p=-1.9和p= 2 的场景。一方面,根据式(10),当p的绝对值较大时,WE代价函数的取值动态范围会变大,导致模型训练的收敛速度较慢,误差较大。另一方面,此时代价函数对于噪声抑制和干净语声保留较为极端化,若p >0,则干净语声保留较完整,但也会引入更多残留噪声;若p <0,则噪声残留较少,但同时会引入较大语声失真,二者均会导致整体语声质量的降低。整体来看,p=-0.5 时的WE 代价函数在不同SNR条件下的平均PESQ 得分比MSE 代价函数高0.08。在较高SNR(>5 dB)条件下,WE 代价函数在p=-1 时的PESQ得分高于MSE代价函数,与低SNR 条件下的结论相反。这是因为,在低SNR 条件下,噪声成分较多,随着p值的减小,对噪声的抑制程度变大,但同时会引入较多的语声失真。当p=-0.5 时,噪声残留较少,同时语声失真也较小。与其他代价函数相比,p=-0.5 的WE 代价函数在不同SNR 条件下都取得了最高的PESQ 得分,表现出优于MSE的性能。WLR 代价函数的计算公式与logMSE代价函数的计算公式相似,但是WLR代价函数相比于logMSE 代价函数更强调语声对数谱谱峰的重要性,引入的语声失真更小,因此WLR代价函数的结果优于logMSE代价函数。同时,在训练集噪声场景下,WLR 代价函数的性能优于MSE代价函数。在这几种基于人耳听觉的代价函数中,IS代价函数的结果性能最差。但是在传统的语声增强算法理论分析中,基于IS代价函数的信号幅度谱贝叶斯估计与基于MSE 代价函数的幅度谱贝叶斯估计是等价的[19]。产生这个差异的主要原因是,在基于DNN 的语声增强算法中,代价函数不仅影响模型对谱峰和谱谷的敏感性,同时影响模型的收敛。当代价函数的取值动态范围较大时,模型的收敛速度会变慢,收敛误差会变大,因此,基于IS代价函数的深度学习语声增强算法性能反而最差。以STOI为代价函数的LSTM单通道语声增强算法的PESQ得分较低,与MSE 代价函数的结果相差较大,难以实现较好的语声质量。

表3 中不同代价函数之间的STOI 结果差距较小,其中WLR与MSE代价函数在不同SNR条件下的STOI 得分相同,二者处理后的语声可懂度基本一致。p=-0.5 时的WE 代价函数与MSE 代价函数的STOI 得分也基本相同,结合表2 的实验结果表明,WE 代价函数能够在保证语声可懂度的同时大大提高处理后信号的语声质量。STOI 代价函数的STOI 得分与MSE 代价函数相差不大,尤其是在高信噪比场景下。但是表2 中STOI 代价函数的PESQ 得分远远低于MSE 代价函数。这是因为以STOI 为代价函数的网络优化是以提高STOI 得分为目的,但是却忽略了语声质量指标,导致其PESQ得分较低。

为了测试不同代价函数在未见噪声场景下的性能,从NOISEX-92 数据库中选取6 种噪声,与测试集的60 句干净语声按照不同SNR 进行混合。这6 种噪声的频谱图如图2 所示,包括平稳噪声和非平稳噪声。表4 和表5 分别给出了基于不同代价函数的LSTM 模型在这6 种未见噪声场景下的平均PESQ 得分和平均STOI 得分。在未见噪声场景下,p=-0.5 时的WE 代价函数取得了最高的PESQ 分数,与表2 训练集噪声场景下的结论一致。p=-0.5 时的WE 代价函数的平均PESQ 得分比MSE 代价函数高0.11,表明基于WE 代价函数的LSTM 单通道语声增强算法比MSE 代价函数的泛化性能更好。表5中WE代价函数与MSE代价函数在未见噪声场景下的平均STOI 得分也基本相同。低信噪比场景下,WLR 代价函数的PESQ 和STOI得分均比MSE 代价函数略低,表明在低信噪比场景下,WLR 代价函数对未见噪声的泛化性能较差。STOI 代价函数在未见噪声场景下同样只能实现较好的语声可懂度,而大大降低了处理后信号的语声质量。

图2 测试集6 种未见噪声频谱图Fig.2 Spectrograms of six types of noise used for test

表4 基于不同代价函数的LSTM 单通道语声增强算法在未见噪声场景下的平均PESQ 得分Table 4 Average PESQ results of singlechannel speech enhancement based on LSTM with different cost functions under unseen noise types

表5 基于不同代价函数的LSTM 单通道语声增强算法在未见噪声场景下的平均STOI 得分Table 5 Average STOI results of singlechannel speech enhancement based on LSTM with different cost functions under unseen noise types

为了探究深度学习算法与传统算法之间的语声增强性能差异,以WE 代价函数为例,对传统基于贝叶斯估计的语声增强算法[19]与基于LSTM的语声增强算法进行了分析对比。图3 展示了贝叶斯估计算法和LSTM 算法以WE 函数为代价函数时的结果。由表3 可知,基于LSTM 的语声增强算法在p= [-1.9,-1.5,2]时的性能较差,为了更加清晰地对结果进行展示,图3 中只给出了p= [-1,-0.5,0,1]条件下的结果。图3(a)、图3(b)和图3(c)分别是CBAK 得分、CSIG 得分和COVL得分结果。从图中可以看出,基于贝叶斯估计的语声增强算法在p=-0.5时的CBAK得分略高于p=0时的CBAK得分,表明p=-0.5时的残余噪声略小于p= 0 时的残余噪声。在图3(b)中,贝叶斯估计算法在p= 0 时的CSIG 得分略高于p=-0.5 时的CSIG 得分,表明在p= 0 时引入的语声失真较小。从图3(c)中可以看出,贝叶斯估计算法在p=-0.5时的COVL 得分与p= 0 时的得分相近,表明二者在整体语声质量方面的性能相似。整体来看,对于CBAK,CSIG 和COVL 这3 种评价标准,基于WE代价函数的LSTM 语声增强算法在p=-0.5 时均取得了最优性能。其中p=-0.5时,WE 与MSE 代价函数的CBAK 得分相差较大,这是因为p=-0.5的WE 代价函数降噪性能更好。而p=-0.5 时的CSIG 得分与MSE 比较接近,表明二者处理后的语声失真程度相似。此外,根据图3三个评价指标的结果,基于LSTM 的语声增强算法在语声失真和噪声残留方面的性能都明显优于传统的贝叶斯算法,尤其是在较低的SNR 条件下,优势更加明显。这是因为DNN 可以利用自身网络结构映射输入到输出之间的复杂非线性关系,更好地处理非平稳噪声。

图3 传统贝叶斯估计语声增强算法与基于LSTM 的语声增强算法在WE 代价函数条件下的性能比较Fig.3 Performance comparison between traditional Bayesian estimator and LSTM-based speech enhancement with WE cost function

下文将对基于WE 代价函数的LSTM 单通道语声增强算法的性能进行深入分析。图4 以一段带噪语声为例,展示了不同p值条件下,基于WE代价函数的LSTM 单通道语声增强算法处理后的语声时域信号。从上往下依次为带噪语声、干净语声和取不同p值时的增强后语声。从图中可以明显看出,随着p值的减小,处理后语声中的噪声残留在减少,但是引入的语声失真越来越多。这是因为p值越小,WE 代价函数对能量较小语声段的惩罚程度越大,即侧重于恢复干净语声谱谷值附近的信息。而谱谷值附近由于干净语声能量小,大部分噪声不能被语声掩蔽掉,更易被人耳听见。因此,当p值越小时,残余的噪声越少,整体语声质量越好。如图4 所示,当p=-0.5时,噪声残留较少,同时语声失真较小。

图4 基于WE 代价函数的LSTM 语声增强算法在不同p 值条件下对带噪语声处理后的时域信号,以及与原始带噪语声和干净语声的对比Fig.4 Enhanced speech signals with LSTM using WE cost function for different values of p,the clean speech,and the noisy speech

理论上,基于WE 代价函数的关于语声幅度谱的贝叶斯估计可以表示为增益GWE关于先验SNR(ξk)和后验SNR(γk)的函数[19],表示为

其中, Φ(a,b,c)是融合超几何函数(Confluent hypergeometric function),Γ(·)代表gamma 函数,ηk=ξkγk/(1+ξk),γk=Y2k/λd,ξk=λx(k)/λd(k),图5 画出了WE代价函数取不同p值时,增益函数GWE关于瞬时SNR(γk-1)在ξk=-5 dB时的曲线。为了便于比较,图中还展示了基于logMSE 代价函数的贝叶斯估计增益函数曲线。从图中可以看出,在同样的瞬时SNR 条件下,p取值越小,GWE值越小,表明对噪声的衰减越大。而p=-0.5 时的曲线与logMSE代价函数的曲线几乎重合。基于WE 代价函数与logMSE 代价函数的LSTM 单通道语声增强算法在未见噪声场景下关于CSIG、CBAK 和COVL 评价指标的对比如图6 所示。为了更加直观地进行展示,只选取了性能较好的p=-1和p=-0.5的WE代价函数与MSE 以及logMSE 代价函数进行对比。图6(a)是在低信噪比情况下的结果,图6(b)是在高信噪比情况下的结果。虽然p=-0.5的WE代价函数与logMSE 代价函数关于幅度谱的贝叶斯估计在理论上的增益函数曲线是重合的,但是在基于深度学习的语声增强算法中,p=-0.5 的WE 代价函数在CSIG、CBAK 以及COVL 评价指标下的性能都优于logMSE代价函数。

图5 在不同p 值条件下,基于WE 代价函数的增益函数与瞬时SNR 之间的关系Fig.5 Gain function of the WE cost function as a function of the instantaneous SNR for different values of p

图6 在不同p 值条件下,基于WE 代价函数的LSTM 算法在未见噪声场景下的平均CSIG、CABK 和COVL 评价指标得分Fig.6 Average CSIG,CBAK,COVL results of LSTM model with WE cost function for different values of p as well as logMSE cost function under unseen noise types

图7 给出了基于WE 代价函数和logMSE 代价函数的LSTM 单通道语声增强算法网络输出层映射的增益函数值分布。图中给出了增益函数理想值(即根据干净语声和噪声计算得到的增益函数值分布)做对比。测试带噪语声中的背景噪声是NOISEX-92 中的factory 噪声,图中给出了不同SNR 条件下的平均结果。由图7 可知,随着p的减小,增益函数估计值整体偏小,表明模型对噪声的抑制较强,与理论分析相符。与实际增益函数值分布相比,p=-0.5 时的WE 代价函数的估计值分布最接近理想值分布。这些代价函数在同样场景下的估计误差方差如表6所示,由表中可知,p=-0.5时的WE 代价函数的方差最小,进一步验证了p=-0.5时,基于WE 代价函数的LSTM 单通道语声增强算法性能最优。

图7 基于WE 和logMSE 代价函数的LSTM 算法估计的增益函数值分布图以及根据干净语声和噪声计算出的实际增益函数值分布图的对比Fig.7 Normalized distribution of the estimated gain value from LSTM model with WE cost function for different values of p and logMSE cost function.The gain values distribution of ideal gain function calculated from clean speech and noise is also plotted for comparison

表6 不同代价函数估计增益函数值误差的方差Table 6 The variance of estimation error of gain values based on different cost functions

为了评估WE 代价函数对其他网络结构的泛化性能,使用FCN 和CRN 对这些代价函数的性能进行进一步测试。

FCN 有3 层隐藏层,每个隐藏层有1024 个节点。为了利用上下文信息,将连续5 帧的带噪语声LPS 特征串联作为输入,因此输入特征的维度为257×5 = 1285。网络的学习目标是对应的中间帧的干净语声幅度谱。在网络训练中,计算误差时设置的批大小为1024。采用Adam优化方法更新网络权重,学习率为0.0003。

CRN 包括编解码模块和时序建模模块。其中编解码模块包括6 层卷积层和6 层反卷积层,时序建模模块包括两层LSTM网络。为了将输入特征信息有效传递到后面的网络,在训练过程中使用了跳转连接方法,将每个卷积层网络的输出与其对应的反卷积层输入进行连接重新作为输入。CRN 的输入特征是带噪语声当前帧的LPS 特征,维度为257。训练目标是干净语声的257维幅度谱特征。CRN的具体参数如表7 所示,其中T表示一个句子的总帧数。在训练网络时,计算误差所用的批大小设置为16。网络通过Adam 优化器更新权重,学习率设置为0.0003。

表7 CRN 的具体参数Table 7 The architecture of the CRN model

基于WE 代价函数的FCN 单通道语声增强算法在未见噪声场景下的平均PESQ 得分如表8 所示。与LSTM网络相似,p=-0.5时,基于WE代价函数的FCN模型取得了最高的PESQ得分,并且高于MSE代价函数的PESQ 得分,与上述基于LSTM的单通道语声增强算法的结论一致。

表8 基于WE 代价函数的FCN 单通道语声增强算法在未见噪声场景下的平均PESQ 得分Table 8 Average PESQ results of singlechannel speech enhancement based on FCN with WE cost function under unseen noise types

表9 比较了基于WE 代价函数的CRN 单通道语声增强算法在不同SNR 条件下的平均PESQ 得分。从表中可以看出,在不同SNR条件下,p=-0.5和p=-1 时WE 代价函数的PESQ 得分均高于MSE 代价函数的PESQ 得分。其中p=-1 时性能最好,甚至优于p=-0.5 时WE 代价函数的增强后语声质量。对比表9 和表4的PESQ得分结果,基于CRN 的单通道语声增强算法性能总体上优于基于LSTM 的单通道语声增强算法。这是因为CRN 可以同时利用卷积网络的特征提取能力和LSTM 网络的时序建模能力,更有利于从带噪语声中提取出干净语声。同时也说明,CRN 具有更强大的建模能力,能够处理取值动态范围更大的代价函数。因此,在基于CRN 的语声增强算法中,WE代价函数以更小的p值达到最优性能。基于FCN 和CRN 的语声增强算法结果表明,当p取合适的负值时,WE 代价函数对不同网络架构具有良好的泛化性能,优于常用的MSE代价函数。

表9 基于WE 代价函数的CRN 单通道语声增强算法在未见噪声场景下的平均PESQ 得分Table 9 Average PESQ results of singlechannel speech enhancement based on CRN with WE cost function under unseen noise types

4 结论

本文将两类与人耳听觉相关的代价函数引入到了基于深度学习的单通道语声增强算法中,以改善处理后的语声质量和可懂度。以LSTM 网络为例,对这些代价函数的性能进行了评估和对比。仿真实验结果表明,p=-0.5 时的WE 代价函数能够降低噪声残留,同时语声失真较小,在不同测试场景均取得了最优性能。测试不同网络架构的实验结果表明,在基于FCN 和CRN 的单通道语声增强算法中,当WE 代价函数的参数p取合适的负值,即适当地加大对能量较小语声段估计误差的惩罚力度有利于整体语声段噪声的去除和语声质量的恢复,表明WE 代价函数对不同的网络结构具有较好的泛化性能。上述实验证明,针对基于深度学习的单通道语声增强算法,在网络训练过程中根据人耳听觉特性优化代价函数可以提高增强后语声质量,降低噪声残留。

猜你喜欢
单通道代价噪声
基于联合聚类分析的单通道腹部心电信号的胎心率提取
基于声类比的仿生圆柱壳流噪声特性研究
汽车制造企业噪声综合治理实践
爱的代价
模拟电视发射机数字化改造方法的探讨
幸灾乐祸的代价
代价
模拟电视发射机数字化改造方法的探讨
要减少暴露在噪声中吗?
一种新型单通道光纤滑环动态测试系统