基于生成对抗网络的复数域语音增强方法、系统及介质与流程

文档序号:19812122发布日期:2020-01-31 18:32阅读:369来源:国知局

本发明涉及基于生成对抗网络的语音降噪增强技术,具体涉及一种基于生成对抗网络的复数域语音增强方法、系统及介质,可利用语音信号傅里叶变换后的实数谱和虚数谱对语音信号进行增强,从而促进语音识别等相关下游任务的研究。



背景技术:

语音增强(speechenhancement,se)指从带噪声的语音y中去除噪声z,从而分离出纯净语音x,即x=y-z。从混合的语音信号中去除噪声是语音信号处理中最具挑战的任务之一,传统的语音增强算法包括谱减法、子空间法和维纳滤波法。近年来,基于深度学习的语音增强技术极大地提高了去噪后语音的质量。

在一般的语音信号处理方法中,语音首先通过短时傅里叶变换得到语音的时频(time-frequency,tf)表示,从而获取幅度谱和相位谱。在之前的语音增强方法中认为相位不包含重要的信息,因此只对幅度增强,在后面利用逆傅里叶变换对增强后的语音进行重构时往往利用的是带噪声语音的相位,因此会出现相位不匹配的问题。近年来,研究者发现相位对增强后的语音的听觉效果有很大的作用,特别是在信噪比比较小的情况下,因此许多研究者致力于相位估计算法的研究。由于相位的值域为[-π,π],所以整个相位谱看起来非常随机,并没有清晰的结构,基于深度学习的方法估计相位谱是非常困难的。

近年来,生成对抗网络(generativeadversarialnetworks,gan)在生成任务上取得极大成功,一些研究者也开始着手用生成对抗网络来进行语音增强。生成对抗网络包含两部分:生成器(generator,g)和判别器(discriminator,d),生成器将带噪声的样本映射到感兴趣分布的样本,d作为一个二元分类器判定真实的样本为真而将生成器生成的样本为假。生成器和判别器对抗地训练,生成器生成的样本尽量服从真实分布来迷惑判别器以使判别器判断其为真,而判别器尽量将真实的样本和生成的样本分开,在这不断的博弈过程中直至达到纳什均衡,此时生成器生成的样本已经非常接近真实的样本,判别器无法判断生成的样本是真实的还是生成的。



技术实现要素:

本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于生成对抗网络的复数域语音增强方法、系统及介质,本发明能够从语音信号中更好地剔除噪声、生成干净的语音,有效解决相位难以预测的问题,能够有效提高增强后语音的听觉效果,促进语音识别,声纹识别等任务的研究。

为了解决上述技术问题,本发明采用的技术方案为:

一种基于生成对抗网络的复数域语音增强方法,实施步骤包括:

1)获取带噪声的语音;

2)将语音采用傅里叶变换后再采用笛卡尔坐标表示得到带噪声的实数谱r和虚数谱i;

3)将带噪声的实数谱r和虚数谱i输入预先完成训练的生成对抗网络的生成器,通过生成器的编码器encoder将实数谱r和虚数谱i组成的输入ir编码为高语义特征encoderir;高语义特征encoderir经过生成器的自注意力机制层self-attention输出具有全局信息的特征sir;通过生成器的解码器decoder将特征sir解码得到增强后纯净语音的实数谱和虚数谱ir′;

4)将增强后纯净语音的实数谱和虚数谱ir′基于逆傅里叶变换生成干净的语音。

可选地,所述生成对抗网络的生成器为由编码器encoder、用于提取时序特征的长短时记忆网络lstm、用于获取全局信息的自注意力机制层self-attention和解码器decoder构成的u型网络,所述编码器encoder包括依次相连的用于提取局部和空间上的特征的特征提取主干网络,所述长短时记忆网络lstm将特征提取主干网络输出的特征图提取时序特征并输出至自注意力机制层self-attention,所述自注意力机制层self-attention输出具有全局信息的特征至解码器decoder,所述解码器decoder由多层反卷积网络层构成。

可选地,所述特征提取主干网络为采用稠密连接网络densenet,所述稠密连接网络densenet由多个稠密块及其对应的下采样模块组成,多个稠密块依次串行连接且每一个稠密块对应的下采样模块位于稠密块的输出端,每一个稠密块包含多个卷积操作且激活函数采用修正线性单元relu,每个卷积操作把之前所有得到的特征图拼接起来作为其输入,且当前稠密块的第l层的输出为xl,第l-1,l-2层,第0层的输出xl-1,xl-2,…,x0满足:xl=hl([xl-1,xl-2,...,x0]),其中hl表示第l层的卷积操作,[·]表示拼接操作。

可选地,所述长短时记忆网络lstm输入的特征图为m∈rt×(f×c),该特征图m∈rt×(f×c)为特征提取主干网络输出的特征图m∈rt×f×c经过频率维度和通道维度合并得到,所述长短时记忆网络lstm的单元为f×c以保证输出的维度不变,所述长短时记忆网络lstm的输出为l∈rt×(f×c),其中t表示时间维度,f表示频率维度,c表示特征图的通道数。

可选地,所述自注意力机制层self-attention包括三个1×1卷积模块,三个1×1卷积模块针对长短时记忆网络lstm的输出l∈rt×(f×c)分别进行三次1×1卷积得到q∈rt×(f×c),k∈rt×(f×c)和v∈rt×(f×c),且所述自注意力机制层self-attention的输出为s=q×kt×v,其中kt表示k的转置,t表示时间维度,f表示频率维度,c表示特征图的通道数。

可选地,所述解码器的多层反卷积网络层的输入为所述自注意力机制层self-attention的输出s=q×kt×v重构得到的s∈rt×f×c,所述解码器的多层反卷积网络层将输入的s∈rt×f×c经过多次反卷积且在每次反卷积前输入都需要和编码器对应的下采样的输出进行特征融合以防止信息的丢失以及避免梯度消失的问题,最终输出纯净语音的实数谱和虚数谱。

可选地,步骤3)之前还包括训练生成对抗网络的步骤,详细步骤包括:

s1)获取带噪声的语音样本,并将语音采用傅里叶变换后再采用笛卡尔坐标表示得到带噪声的实数谱r和虚数谱i构成训练集;

s2)从训练集中选取一个语音样本的实数谱r和虚数谱i,通过生成器的编码器encoder将实数谱r和虚数谱i组成的输入ir编码为高语义特征encoderir;

s3)高语义特征encoderir经过自注意力机制层self-attention输出具有全局信息的特征sir;

s4)通过解码器decoder将特征sir解码得到增强后语音的实数谱和虚数谱ir′;

s5)将纯净语音的实数谱虚数谱irc和ir′分别划分由大到小的指定的三个粒度的实数谱和虚数谱:和ir′0,和ir′1,和ir′2;

s6)通过多粒度的判别器d0,d1,d2将每个粒度的判定为真,ir′i为假,其中i=0,1,2;

s7)计算总的损失函数的值,依据反向传播跟新模型所有需要训练的参数;

s8)判断是否满足预设的结束训练条件,如果满足预设的结束训练条件则判定训练结束并退出;否则,跳转执行步骤s2)继续进行训练。

可选地,步骤s5)中指定的三个粒度分别为随机取1/20时间段的语音、1/22时间段的语音、1/24时间段的语音这三种不同粒度。

此外,本发明还提供一种基于生成对抗网络的复数域语音增强系统,包括计算机设备,该计算机设备被编程或配置以执行所述基于生成对抗网络的复数域语音增强方法的步骤,或者该计算机设备的存储介质上存储有被编程或配置以执行所述基于生成对抗网络的复数域语音增强方法的计算机程序。

此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行所述基于生成对抗网络的复数域语音增强方法的计算机程序。

和现有技术相比,本发明具有下述优点:本发明语音采用傅里叶变换后再采用笛卡尔坐标表示得到带噪声的实数谱r和虚数谱i;将带噪声的实数谱r和虚数谱i输入预先完成训练的生成对抗网络的生成器,通过生成器的编码器encoder将实数谱r和虚数谱i组成的输入ir编码为高语义特征encoderir;高语义特征encoderir经过生成器的自注意力机制层self-attention输出具有全局信息的特征sir;通过生成器的解码器decoder将特征sir解码得到增强后纯净语音的实数谱和虚数谱ir′;将增强后纯净语音的实数谱和虚数谱ir′基于逆傅里叶变换生成干净的语音。由于基于复数域的实数谱和虚数谱,利用生成对抗网络对带噪声的语音增强,有效地解决之前方法存在的相位不匹配的问题,从而提高增强后语音的听觉效果,可有效提高语音识别系统在噪声环境下的语音识别准确率。

附图说明

图1为本发明实施例方法的基本流程示意图。

图2为本发明实施例生成对抗网络的生成器示意图。

图3为本发明实施例生成对抗网络的训练流程示意图。

图4为本发明实施例判别器的结构示意图。

图5为本发明实施例判别器的稠密块结构示意图。

具体实施方式

如图1所示,本实施例基于生成对抗网络的复数域语音增强方法的实施步骤包括:

1)获取带噪声的语音;

2)将语音采用傅里叶变换后再采用笛卡尔坐标表示得到带噪声的实数谱r和虚数谱i;

3)将带噪声的实数谱r和虚数谱i输入预先完成训练的生成对抗网络的生成器,通过生成器的编码器encoder将实数谱r和虚数谱i组成的输入ir编码为高语义特征encoderir;高语义特征encoderir经过生成器的自注意力机制层self-attention输出具有全局信息的特征sir;通过生成器的解码器decoder将特征sir解码得到增强后纯净语音的实数谱和虚数谱ir′;

4)将增强后纯净语音的实数谱和虚数谱ir′基于逆傅里叶变换生成干净的语音。

一般在进行语音增强时语音采用的是傅里叶变换的极坐标表示:

上式中,|st,f|表示在时刻t和频率f下语音st,f的幅度,表示在时刻t和频率f下语音st,f的相位。

由于相位的随机性我们无法基于深度神经网络去预测它,事实上对于傅里叶变换的结果本实施例采用笛卡尔坐标表示:

上式中,r(st,f)表示在时刻t和频率f下语音st,f的实数谱,简称r;i(st,f)表示下在时刻t和频率f下语音st,f的虚数谱,简称i;因此可以得到实数谱和虚数谱,实数谱和虚数谱与幅度谱类似都具有比较明显的结构与轮廓,因此适合基于深度神经网络的方法进行估计。另外,采用笛卡尔坐标表示后,语音的幅度跟相位还可以依据实部跟虚部计算得出:

因此,估计出纯净语音的实数谱和虚数谱意味着我们已经间接地预测出它的幅度和相位。基于此,本实施例中采用带噪声的语音实数谱和虚数谱作为生成器的输入,从而生成纯净语音的实数谱和虚数谱,最后基于逆傅里叶变换生成干净的语音。

如图2所示,本实施例中生成对抗网络的生成器为由编码器encoder、用于提取时序特征的长短时记忆网络lstm、用于获取全局信息的自注意力机制层self-attention和解码器decoder构成的u型网络,编码器encoder包括依次相连的用于提取局部和空间上的特征的特征提取主干网络,长短时记忆网络lstm将特征提取主干网络输出的特征图提取时序特征并输出至自注意力机制层self-attention,自注意力机制层self-attention输出具有全局信息的特征至解码器decoder,解码器decoder由多层反卷积网络层构成。

本实施例中,特征提取主干网络为采用稠密连接网络densenet。相比于resnet和一般的卷积神经网络cnn而言,稠密连接网络densenet利用旁路加强了特征的重用,从而缓解了梯度消失的问题,网络也更容易训练。

本实施例中,稠密连接网络densenet由多个稠密块(denseblock)及其对应的下采样模块组成,多个稠密块依次串行连接且每一个稠密块对应的下采样模块位于稠密块的输出端,每一个稠密块包含多个卷积操作且激活函数采用修正线性单元relu,每个卷积操作把之前所有得到的特征图拼接起来作为其输入,且当前稠密块的第l层的输出为xl,第l-1,l-2层,第0层的输出(即当前block的输入)xl-1,xl-2,...,x0满足:xl=hl([xl-1,xl-2,...,x0]),其中hl表示第l层的卷积操作,[·]表示拼接操作。

如图2所示,本实施例中稠密连接网络densenet由5个稠密块(denseblock1~denseblock5)及其对应的下采样模块(conv_1/s=2~conv_5/s=2)组成,稠密块并不改变特征图的维度大小,因此本实施例中采用一个步长为2的卷积做一次下采样(s=2表示卷积的步长为2),下采样后的特征图分辨率降低一倍,但语义程度提高。整个编码器我们采用5个稠密块以及5次下采样,每个稠密块包含5次卷积,激活函数采用修正线性单元(rectifiedlinearunit,relu)。

如图2所示,卷积过程往往提取的是一些局部和空间上的特征,时序和全局的信息我们还并没有利用上,因此在卷积之后我们加入长短时记忆网络lstm来提取时序的特征,利用自注意力机制(自注意力机制层self-attention)来获取全局的信息。本实施例中,长短时记忆网络lstm输入的特征图为m∈rt×(f×c),该特征图m∈rt×(f×c)为特征提取主干网络输出的特征图m∈rt×f×c经过频率维度和通道维度合并得到,所述长短时记忆网络lstm的单元units为f×c以保证输出的维度不变,长短时记忆网络lstm的输出为l∈rt×(f×c),其中t表示时间维度,f表示频率维度,c表示特征图的通道数。自注意力机制层self-attention能有效地捕捉一些全局的信息,在自然语言处理和语义分割等任务上取得了不错的效果。本实施例中,自注意力机制层self-attention包括三个1×1卷积模块,三个1×1卷积模块针对长短时记忆网络lstm的输出l∈rt×(f×c)分别进行三次1×1卷积得到q∈rt×(f×c),k∈rt×(f×c)和v∈rt×(f×c),且所述自注意力机制层self-attention的输出为s=q×kt×v,其中kt表示k的转置,t表示时间维度,f表示频率维度,c表示特征图的通道数。

本实施例中,解码器的多层反卷积网络层的输入为所述自注意力机制层self-attention的输出s=q×kt×v重构得到的s∈rt×f×c,所述解码器的多层反卷积网络层将输入的s∈rt×f×c经过多次反卷积且在每次反卷积前输入都需要和编码器对应的下采样的输出进行特征融合以防止信息的丢失以及避免梯度消失的问题,最终输出纯净语音的实数谱和虚数谱。本实施例中,解码器首先将自注意力机制层self-attention的输出s∈rt×(f×c)重构为s∈rt×f×c,然后经过五次反卷积(transposeconvolution),在每次反卷积前输入都需要和编码器对应的下采样的输出进行特征融合,一是防止信息的丢失,而是一定程度上避免梯度消失的问题。经过五次反卷积之后就输出对应的纯净语音的实数谱和虚数谱。

如图3所示,步骤3)之前还包括训练生成对抗网络的步骤,详细步骤包括:

s1)获取带噪声的语音样本,并将语音采用傅里叶变换后再采用笛卡尔坐标表示得到带噪声的实数谱r和虚数谱i构成训练集;

s2)从训练集中选取一个语音样本的实数谱r和虚数谱i,通过生成器的编码器encoder将实数谱r和虚数谱i组成的输入ir编码为高语义特征encoderir;

s3)高语义特征encoderir经过自注意力机制层self-attention输出具有全局信息的特征sir;

s4)通过解码器decoder将特征sir解码得到增强后语音的实数谱和虚数谱ir′;

s5)将纯净语音的实数谱虚数谱irc和ir′分别划分由大到小的指定的三个粒度的实数谱和虚数谱:和ir′0,和ir′1,和ir′2;

s6)通过多粒度的判别器d0,d1,d2将每个粒度的判定为真,ir′i为假,其中i=0,1,2;

s7)计算总的损失函数的值,依据反向传播跟新模型所有需要训练的参数;

s8)判断是否满足预设的结束训练条件,如果满足预设的结束训练条件则判定训练结束并退出;否则,跳转执行步骤s2)继续进行训练。

本实施例中,步骤s5)中指定的三个粒度分别为随机取1/20时间段的语音、1/22时间段的语音、1/24时间段的语音这三种不同粒度。在这个过程中,我们希望生成器尽量生成干净的语音,因此采用判别器来对抗地引导生成器的参数更新方向。此外,考虑到语音信号的不平稳性,我们采用多粒度判别器对生成的语音的不同细节进行针对性去除噪声。多粒度判别器会引导生成器生成更加干净的语音。一般情况下我们只用一个判别器来判定语音是生成的语音还是本身就是干净的语音,但是噪声是一种不平稳的信号,意味着一段语音中某些地方有噪音,某些地方没噪声,有的噪声持续时间长,有的噪声持续短。基于这些特性,我们提出基于多粒度判别器的解决方案。对于生成器生成出来的语音和干净的语音,我们分别对应从其中随机取时间段的语音、时间段的语音、时间段的语音这三种不同粒度的语音。为此,我们设计三个不同的判别器,每个判别器分别判断不同粒度的语音是生成的还是本身就是干净的语音。如图4和图5所示,最大粒度的判别采用和生成器的编码器基本相同的结构,即五个denseblock以及五次下采样后在接一个全连接层concat,最后接一个sigmoid层输出为判定为干净语音的概率,其他粒度的判别器任然采用五个稠密块(denseblock),但分别少一次下采样,两次下采样,少的下采样用步长为1的卷积(s=1)代替。

上面的整个训练过程可用符号及公式表示如下:

encoderir=encoder(ir)

sir=sa(encoderir)

ir′=decoder(sir)

ir′i=slicei(ir′)

y′i=di(ir′i)

yi=di(iri)

上述各式中,ir、ir′和irc分别表示带噪声语音的实数谱和虚数谱、增强后语音的实数谱和虚数谱以及纯净语音的实数谱和虚数谱。encoder、sa、decoder、slicei和di生成器的编码器,自注意力层、解码器,对语音进行不同粒度的切片操作以及不同粒度对应的判别器判别器。encoderir、sir、ir′、ir′i、y′i、yi分别表示编码器输出的特征,自注意力层输出的特征,解码器输出的降噪后的语音、纯净语音的第i个粒度的语音,降噪语音的第i个粒度的语音、第i个粒度判别器判定纯净语音的第i个粒度的语音为真的概率和第i个粒度判别器判定降噪后语音的第i个粒度的语音为真的概率。

损失函数(loss)的设计在训练过程中控制着模型参数的更新方向及大小,直接关系到语音降噪的效果。作为一种可选的实施方式,本实施例中损失函数的设计如下:

①鉴别器损失:

上式中,y′i、yi分别表示降噪语音的第i个粒度的语音、第i个粒度判别器判定纯净语音的第i个粒度的语音为真的概率和第i个粒度判别器判定降噪后语音的第i个粒度的语音为真的概率。总的判别器损失函数由三个不同粒度的判别器损失组成,对于每个粒度的干净语音和降噪后的语音,相应粒度的判别器分别输出一个在区间[0,1]的值,表示判别器将语音判别为纯净语音的概率。对于每个判别器我们希望将纯净语音判定为真,即输出的值尽量的靠近1,对于增强的语音判别器将其判定为假,即输出的值尽量靠近0。

②生成器损失:

lossg=lossadv_d+lossl

上述各式中,ir′、ir′i、y′i、yi分别表示解码器输出的降噪后的语音、纯净语音的第i个粒度的语音,降噪语音的第i个粒度的语音、第i个粒度判别器判定纯净语音的第i个粒度的语音为真的概率。生成器由两部分损失组成,一是来自判别器的对抗损失lossadv_d,另一个是增强的语音与纯净语音的余弦距离损失lossl。对于对抗损失lossadv_d,它也是由多个粒度的对抗损失组成,对于生成器生成的每个粒度的语音,我们希望它尽可能的去除噪声,也就是希望判别器将其判别为真,即希望判别器输出的值尽可能的靠近为1。对于余弦距离损失lossl,它是干净和增强的每个粒度的语音的余弦距离组成。值得注意的是,余弦距离并不是唯一的距离损失的选择,我们也可以考虑l1/l2等欧式距离或者其他类似的距离。

综上所述,本实施例基于生成对抗网络的复数域语音增强方法有以下创新:(1)首次基于复数域的实数谱和虚数谱,利用生成对抗网络对带噪声的语音增强,有效地解决之前方法存在的相位不匹配的问题,从而提高增强后语音的听觉效果,进一步提高语音识别系统在噪声环境下的语音识别准确率。(2)在对语音和噪声的特性分析之后,本实施例进一步提出多粒度判别器来对语音的不同细节来进行针对性的增强,从而更有效地提升语音降噪的效果。

此外,本实施例还提供一种基于生成对抗网络的复数域语音增强系统,包括计算机设备,该计算机设备被编程或配置以执行本实施例前述基于生成对抗网络的复数域语音增强方法的步骤,或者该计算机设备的存储介质上存储有被编程或配置以执行本实施例前述基于生成对抗网络的复数域语音增强方法的计算机程序。

此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行本实施例前述基于生成对抗网络的复数域语音增强方法的计算机程序。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!
1