1.本发明涉及语音增强技术领域,特别涉及基于加权语音损失的语音增强神经网络训练方法及装置。
背景技术:2.语音增强算法的主要目的是改善带噪语音的语音质量和语音可懂度,这类算法在语音识别、通话等方面有着广泛的应用。对于一个单通道的带噪语音信号,经过傅里叶变换后,在频域可表示为
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)其中,、、分别表示t时刻的带噪语音、干净语音分量和噪声分量在第i个频带的频域表示,而语音增强的目的则是尽可能找到一个时变的增益函数使得
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)进而使得逼近。
3.目前,随着深度学习技术的发展,深度学习技术已经广泛应用到了语音增强领域,通过深度学习由神经网络估算一个语音增强增益或掩蔽实现对带噪语音的增强已成为现实,现有基于深度学习的语音增强方法中,通常是通过优化某一数学指标,如干净语音与带噪语音经过增强后的语音之间的均方误差,作为损失函数来完成神经网络反向优化,然而,这类损失函数难以很好地平衡去除噪声和语音主观听感质量,从而导致噪声去除不够好或者对语音的扭曲较大。
技术实现要素:4.针对上述问题,本发明实施例提供了基于加权语音损失的语音增强神经网络训练方法及装置。
5.第一方面,提供了基于加权语音损失的语音增强神经网络训练方法,包括:提取训练样本中带噪语音的对数功率谱特征,所述训练样本中包括所述带噪语音以及用于构成所述带噪语音的干净语音和噪声;将所提取的对数功率谱特征输入初始语音增强神经网络得到所述带噪语音的预估增益;基于所述预估增益和噪声,计算表征所述带噪语音噪声抑制效果的第一损失值;基于所述预估增益和目标语音帧,计算表征所述带噪语音失真情况的第二损失值,所述目标语音帧为所述干净语音和噪声中存在语音活动的帧;获取所述第一损失值和第二损失值的权值,并基于所获取的权值进行加权计算得到最终损失值;
在所述最终损失值不收敛的情况下,基于所述最终损失值调整所述初始语音增强神经网络,并返回将所提取的对数功率谱特征输入初始语音增强神经网络得到所述带噪语音的预估增益的步骤;在所述最终损失值收敛的情况下,将所述初始语音增强神经网络作为用于语音增强的神经网络。
6.可选的,计算表征所述带噪语音噪声抑制效果的第一损失值的步骤,包括:基于所述预估增益和噪声,通过以下表达式计算表征所述带噪语音噪声抑制效果的第一损失值:其中,表示所述第一损失值,表示所述预估增益,表示所述噪声,表示均方误差运算函数。
7.可选的,基于所述预估增益和目标语音帧,计算表征所述带噪语音失真情况的第二损失值的步骤,包括:基于所述预估增益和目标语音帧,通过以下表达式计算表征所述带噪语音失真情况的第二损失值:其中,表示所述第二损失值,表示所述预估增益,表示所述噪声,表示所述干净语音,下标表示存在语音活动的帧,表示均方误差运算函数。
8.可选的,确定所述目标语音帧的步骤,包括:基于当前帧在目标频段的频域表示,计算所述当前帧的能量和;在计算得到的能量和大于预定阈值的情况下记为0,小于预定阈值的情况下记为1,平滑所述当前帧以及所述当前帧之前预定数量帧的能量和与预定阈值的比较结果,并根据比较结果确定当前帧是否为语音帧。
9.可选的,获取所述第一损失值和第二损失值的权值的步骤,包括:基于信噪比通过以下表达式计算所述第二损失值的权值:其中,表示信噪比,为一个设定的常数;基于所述第一损失值的权值与所述第二损失值的权值之和为1的运算规则,确定所述第一损失值的权值。
10.第二方面,提供了基于加权语音损失的语音增强神经网络训练装置,包括:特征提取模块,用于提取训练样本中带噪语音的对数功率谱特征,所述训练样本中包括所述带噪语音以及用于构成所述带噪语音的干净语音和噪声;语音增强神经网络模块,用于将所提取的对数功率谱特征输入初始语音增强神经网络得到所述带噪语音的预估增益;
损失值计算模块,用于基于所述预估增益和噪声,计算表征所述带噪语音噪声抑制效果的第一损失值;基于所述预估增益和目标语音帧,计算表征所述带噪语音失真情况的第二损失值,所述目标语音帧为所述干净语音和噪声中存在语音活动的帧;获取所述第一损失值和第二损失值的权值,并基于所获取的权值进行加权计算得到最终损失值;神经网络调整模块,用于在所述最终损失值不收敛的情况下,基于所述最终损失值调整所述初始语音增强神经网络,并返回将所提取的对数功率谱特征输入初始语音增强神经网络得到所述带噪语音的预估增益的步骤;在所述最终损失值收敛的情况下,将所述初始语音增强神经网络作为用于语音增强的神经网络。
11.可选的,损失值计算模块,具体用于基于所述预估增益和噪声,通过以下表达式计算表征所述带噪语音噪声抑制效果的第一损失值:其中,表示所述第一损失值,表示所述预估增益,表示所述噪声,表示均方误差运算函数。
12.可选的,损失值计算模块,具体用于基于所述预估增益和目标语音帧,通过以下表达式计算表征所述带噪语音失真情况的第二损失值:其中,表示所述第二损失值,表示所述预估增益,表示所述噪声,表示所述干净语音,下标表示存在语音活动的帧,表示均方误差运算函数。
13.可选的,损失值计算模块,具体用于基于当前帧在目标频段的频域表示,计算所述当前帧的能量和;在计算得到的能量和大于预定阈值的情况下记为0,小于预定阈值的情况下记为1,平滑所述当前帧以及所述当前帧之前预定数量帧的能量和与预定阈值的比较结果,并根据比较结果确定当前帧是否为语音帧。
14.可选的,损失值计算模块,具体用于基于信噪比通过以下表达式计算所述第二损失值的权值:其中,表示信噪比,为一个设定的常数;基于所述第一损失值的权值与所述第二损失值的权值之和为1的运算规则,确定所述第一损失值的权值。
15.第三方面,提供了电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述第一方面所述的基于加权语音损失的语音增强神经网络训练方法。
16.本发明实施例通过计算表征所述带噪语音噪声抑制效果的第一损失值和计算表征所述带噪语音失真情况的第二损失值,并通过加权计算的方式来确定最终损失,可以更好的平衡去除噪声和语音主观听感质量之间的关系,在实现去除噪声的同时减小语音失真。
附图说明
17.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1是本发明实施例提供的基于加权语音损失的语音增强神经网络训练方法的流程示意图;图2是本发明实施例提供的不同取值时,随信噪比的变化曲线;图3是本发明实施例提供的基于加权语音损失的语音增强神经网络训练装置的结构示意图;图4是本发明实施例提供的电子设备的结构示意图。
具体实施方式
19.为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
20.参见图1,为本发明实施例提供的基于加权语音损失的语音增强神经网络训练方法,包括:s100,提取训练样本中带噪语音的对数功率谱特征,其中,训练样本中包括带噪语音以及用于构成带噪语音的干净语音和噪声。
21.训练样本中带噪语音可以在aishell-2中的干净语音和采集的干净语音,以及电视噪声、音乐噪声、敲击噪声等点源噪声和风噪、公交地铁环境等相对平稳的散射噪声中,随机选取干净语音和噪声构造而成。
22.特征是成功训练神经网络的关键,对于单麦信号可以选择对数功率谱(lps,logarithm power spectrum)作为特征用于神经网络的输入特征,其中,对数功率谱特征的求取公式如式(3)所示:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)s110,将所提取的对数功率谱特征输入初始语音增强神经网络得到带噪语音的预估增益。
23.初始语音增强神经网络可以基于gru网络设计,整个网络包括3层gru层,一层全连接层,采用sigmoid作为激活函数来预测增益。
24.s120,基于预估增益和噪声,计算表征带噪语音噪声抑制效果的第一损失值。
25.s130,基于预估增益和目标语音帧,计算表征带噪语音失真情况的第二损失值,目标语音帧为干净语音和噪声中存在语音活动的帧。
26.进行语音增强的目的是为了提升语音的可理解度及主观听感,因此,需要在去除噪声的同时尽量减小对语音本身的损伤,基于此,本技术将损失分为针对噪声抑制效果的损失和针对语音损失程度的损失,并通过结合这两种损失设计了加权语音失真损失函数。
27.具体的,可以基于预估增益和噪声,通过表达式(4)计算表征带噪语音噪声抑制效果的第一损失值:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)其中,表示所述第一损失值,表示所述预估增益,表示所述噪声,表示均方误差运算函数。
28.再基于预估增益和目标语音帧,通过表达式(5)计算表征带噪语音失真情况的第二损失值:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)其中,表示所述第二损失值,表示所述预估增益,表示所述噪声,表示所述干净语音,下标表示存在语音活动的帧,表示均方误差运算函数。
29.在此,可以通过基于能量的语音活动检测算法来确定哪些帧是语音帧,哪些帧是非语音帧;具体的,可以通过现有计算表达式(6)来计算当前帧的能量和,当前帧即为干净语音或噪声中当前需要判断是否为语音帧的帧:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)其中,为当前帧在目标频段的频域表示,目标频段i可以在300hz-5000hz频段之间;之后设定阈值在计算得到的能量和大于预定阈值的情况下记为0,小于预定阈值的情况下记为1,平滑当前帧以及当前帧之前预定数量帧的能量和与预定阈值的比较结果,并根据比较结果确定当前帧是否为语音帧;预定数量可以根据需要设定,比如可以为10;平滑10帧的目的主要是确定语音信号是稳定的,只有在语音信号稳定的前提下,确定当前帧是否为语音帧的结果才更准确,比如,10帧的比较结果是相同均为0,那么确定当前帧为语音帧才更准确,而如果前9帧的比较结果相同均为0,而当前帧的比较结果为1,则可以先将当前帧记为语音帧,即与之前9帧的确定结果相同,然后在依次确定当前帧之后的3帧的比较结果,如果之后3帧的比较结果也为1,则将当前帧的确定结果修改为非语音帧。
30.s140,获取第一损失值和第二损失值的权值,并基于所获取的权值进行加权计算得到最终损失值。
31.在实施中,当估计的语音增强增益接近全通时,语音失真最小,噪声误差则最大,反之亦然。基于此采用对两种损失进行加权的方式来平衡这两个指标,得到的加权损失函数如表达式(7)所示:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)其中,是一个值在0到1范围内的数。
32.在语音增强算法中,语音增强增益一般与求得的信噪比有关,增强规则一般是在信噪比较低时,积极地抑制噪声,而在信噪比较高时减少抑制以更好保留语音,基于这一规则,可以使用信噪比来确定的值,具体的如表达式(8)所示:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)其中,表示信噪比,计算公式为:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)而为一个设定的常数,由式(8)可知,当 = 时,取得最大值,参见图2,示出了不同的取值时,纵坐标随横坐标信噪比的变化曲线。
33.s150,在最终损失值不收敛的情况下,基于最终损失值调整初始语音增强神经网络,并返回将所提取的对数功率谱特征输入初始语音增强神经网络得到带噪语音的预估增益的步骤;初始语音增强神经网络的调整可以采用梯度下降函数完成。
34.s160,在最终损失值收敛的情况下,将初始语音增强神经网络作为用于语音增强的神经网络。
35.得到用于语音增强的神经网络之后,即可将神经网络输出的增益与带噪语音经过fft后得到的复数做乘法即可,即如表达式(2)所示,以此完成带噪语音增强。
36.为了验证带噪语音的增强效果,我们构造了充足的带噪单通道音频数据。其中,所使用的干净语音包括aishell-2中的干净语音和采集的干净语音,共计超过18万条,使用的噪声包括电视噪声、音乐噪声、敲击噪声等点源噪声和风噪、公交地铁环境等相对平稳的散射噪声。构造过程随机选取干净语音和噪声,每条构造好的带噪语音至少含有一类点源噪声和一类散射噪声,构造过程共计构造102万条带噪语音,其中100万条用于神经网络训练,10000条用于训练验证和优化网络,10000条用于网络训练完成后的效果测试。所有构造的音频采样率为16khz。
37.在最终的网络测试过程中,使用尺度不变信号失真比si-sdr,短时可懂度stoi和语音质量客观评价指标pesq作为最终的评价标准。最终比较结果如表(1)所示,可以看出,在各个指标上,加权语音失真损失应用于神经网络时,均相较于只有均方误差mse损失的原网络有较大提升。方式(损失函数)网络si-sdrpesqstoi远场带噪语音 1.632.120.75mse128-128-128gru+257fc11.912.770.84128-128-128gru+257fc12.372.990.89
38.表(1).不同损失函数下语音增强效果比较
参照图3,为本发明实施例提供的基于加权语音损失的语音增强神经网络训练装置,包括:特征提取模块200,用于提取训练样本中带噪语音的对数功率谱特征,所述训练样本中包括所述带噪语音以及用于构成所述带噪语音的干净语音和噪声;语音增强神经网络模块210,用于将所提取的对数功率谱特征输入初始语音增强神经网络得到所述带噪语音的预估增益;损失值计算模块220,用于基于所述预估增益和噪声,计算表征所述带噪语音噪声抑制效果的第一损失值;基于所述预估增益和目标语音帧,计算表征所述带噪语音失真情况的第二损失值,所述目标语音帧为所述干净语音和噪声中存在语音活动的帧;获取所述第一损失值和第二损失值的权值,并基于所获取的权值进行加权计算得到最终损失值;神经网络调整模块230,用于在所述最终损失值不收敛的情况下,基于所述最终损失值调整所述初始语音增强神经网络,并返回将所提取的对数功率谱特征输入初始语音增强神经网络得到所述带噪语音的预估增益的步骤;在所述最终损失值收敛的情况下,将所述初始语音增强神经网络作为用于语音增强的神经网络。
39.在实施中,损失值计算模块220,具体用于基于所述预估增益和噪声,通过以下表达式计算表征所述带噪语音噪声抑制效果的第一损失值:其中,表示所述第一损失值,表示所述预估增益,表示所述噪声,表示均方误差运算函数。
40.在实施中,损失值计算模块220,具体用于基于所述预估增益和目标语音帧,通过以下表达式计算表征所述带噪语音失真情况的第二损失值:其中,表示所述第二损失值,表示所述预估增益,表示所述噪声,表示所述干净语音,下标表示存在语音活动的帧,表示均方误差运算函数。
41.在实施中,损失值计算模块220,具体用于基于当前帧在目标频段的频域表示,计算所述当前帧的能量和;在计算得到的能量和大于预定阈值的情况下记为0,小于预定阈值的情况下记为1,平滑所述当前帧以及所述当前帧之前预定数量帧的能量和与预定阈值的比较结果,并根据比较结果确定当前帧是否为语音帧。
42.在实施中,损失值计算模块220,具体用于基于信噪比通过以下表达式计算所述第二损失值的权值:其中,表示信噪比,为一个设定的常数;基于所述第一损失值的权值与所述第二损失值的权值之和为1的运算规则,确定
所述第一损失值的权值。
43.本发明实施例还提供了电子设备,如图4所示,包括处理器001、通信接口002、存储器003和通信总线004,其中,处理器001,通信接口002,存储器003通过通信总线004完成相互间的通信,存储器003,用于存放计算机程序;处理器001,用于执行存储器003上所存放的程序时,实现上述基于加权语音损失的语音增强神经网络训练方法,该方法包括:提取训练样本中带噪语音的对数功率谱特征,所述训练样本中包括所述带噪语音以及用于构成所述带噪语音的干净语音和噪声;将所提取的对数功率谱特征输入初始语音增强神经网络得到所述带噪语音的预估增益;基于所述预估增益和噪声,计算表征所述带噪语音噪声抑制效果的第一损失值;基于所述预估增益和目标语音帧,计算表征所述带噪语音失真情况的第二损失值,所述目标语音帧为所述干净语音和噪声中存在语音活动的帧;获取所述第一损失值和第二损失值的权值,并基于所获取的权值进行加权计算得到最终损失值;在所述最终损失值不收敛的情况下,基于所述最终损失值调整所述初始语音增强神经网络,并返回将所提取的对数功率谱特征输入初始语音增强神经网络得到所述带噪语音的预估增益的步骤;在所述最终损失值收敛的情况下,将所述初始语音增强神经网络作为用于语音增强的神经网络。
44.本发明实施例通过计算表征所述带噪语音噪声抑制效果的第一损失值和计算表征所述带噪语音失真情况的第二损失值,并通过加权计算的方式来确定最终损失,可以更好的平衡去除噪声和语音主观听感质量之间的关系,在实现去除噪声的同时减小语音失真。
45.上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或类型的总线。
46.通信接口用于上述电子设备与其他设备之间的通信。
47.存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
48.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
49.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实
现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk (ssd))等。
50.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
51.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
52.以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。