一种基于深层循环神经网络的语音增强方法及装置与流程

文档序号:18515529发布日期:2019-08-24 09:25阅读:471来源:国知局
一种基于深层循环神经网络的语音增强方法及装置与流程

本发明涉及语音信号处理领域,尤其涉及一种基于深层循环神经网络的语音增强方法及装置。



背景技术:

语音信号作为一种最直接、最方便的交互方式,是人们获取信息和传播信息的重要载体。随着大数据和人工智能时代的到来,在人与人、人与机器及机器与机器之间实现语音交流和语音控制,已经成为时代发展的必然趋势。在现实生活中,由于外界环境的复杂多变,语音信号往往会被各种噪声所干扰。语音分离技术旨在从被干扰的信号中分离出人们感兴趣的目标信号,从而提升语音的质量和可懂度。

早期人们从信号处理的角度提出了一些初步的分离算法,例如谱减法、维纳滤波法和基于最小均方差的语谱估计等方法。相比于基于信号处理的方法,基于模型的方法可以显著提高低信噪比条件下的语音分离性能。其中,非负矩阵分解(non-negativematrixfactorization,nmf)是一种常用的模型,它可以捕捉到事物中包含的局部特性,通过矩阵分解的方法将信号分解为几个非负分量,从而挖掘出语音和噪音的局部基表示。然而,传统的基于nmf的语音增强算法无法有效利用已有数据对模型进行训练,而深度学习的方法近年来已经证明能够从大量数据中有效学习到数据的特征,不过使用端到端的神经网络模型实现语音增强需要大量的数据作为基础,这带来了实现成本上升的问题。

此外,使用短时傅里叶变换时估计的实值掩模不能兼顾处理相位信息,需要使用更有效的变换来提取语音特征。



技术实现要素:

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是无法有效利用已有数据对模型进行训练、估计的实值掩模不能兼顾处理相位信息,从而开发了一种基于深层循环神经网络的语音增强方法,使用更有效的方法提取语音特征,同时结合传统的nmf算法和深度学习的方法,实现了利用少量已有数据训练模型,并取得了有竞争力的语音增强效果。

为实现上述目的,本发明提供了一种基于深层循环神经网络的语音增强方法,包括:

获取语音数据集,对语音数据集进行预处理;

对预处理后的语音数据集,进行字典训练,得到字典矩阵;

根据字典矩阵,建立基于深层循环神经网络的模型;

根据基于深层循环神经网络的模型,对基于深层循环神经网络的模型进行训练;

根据训练好的基于深层循环神经网络的模型,对含噪语音的语音数据进行训练,得到增强后的语音数据。

进一步地,获取语音数据集,对语音数据集进行预处理,具体包括:

将语音数据集分割为训练集、验证集和测试集;

根据窗函数和改进离散余弦变换的变换公式,设计卷积核,然后使用该卷积核构建卷积层,建立变换模块;

根据变换模块,对训练集、验证集和测试集的语音信号进行改进离散余弦变换,得到对应的频域数据,频域数据是时域数据经过改进离散余弦变换(mdct)得到的。;

根据变换后的训练集、验证集和测试集,得到取绝对值的语音特征数据和不取绝对值的语音特征数据。

进一步地,根据字典矩阵,建立基于深层循环神经网络的模型,具体包括:

添加masking层作为基于深层循环神经网络的模型的第一层,以屏蔽经过补长的频域数据(即这一层网络的输入数据)中的补长部分的数据;

添加sista-rnn网络作为基于深层循环神经网络的模型的第二层,sista-rnn网络的输出包含估计的干净语音和噪声对应的系数矩阵h;

添加一个lambda层,将系数矩阵h分割为估计的干净语音对应的系数矩阵hc,及噪声对应的系数矩阵hn;

添加两个timedistributed层,对系数矩阵hc和系数矩阵hn都进行非负约束,并分别字典矩阵做矩阵乘法,得到对应的干净语音频谱yc和噪声频谱yn;

根据公式计算掩模矩阵m。

进一步地,根据基于深层循环神经网络的模型,对基于深层循环神经网络的模型进行训练,具体包括:

将掩模矩阵m与对应的时域数据相乘,得到估计的干净语音的频谱数据;

根据窗函数和逆改进离散余弦变换的变换公式,设计卷积核,并使用该卷积核构建卷积层;

将估计的干净语音的频谱数据输入构建的变换层,得到对应的频域数据,其中,逆改进离散余弦变换(imdct)的计算公式具体如下:

式中k表示离散频率点,wk为长为n的窗函数;

将频域数据与对应的标签数据求loss,通过反向传播训练模型。

本发明公开又提供了一种基于深层循环神经网络的语音增强装置,包括:

预处理模块,用于获取语音数据集,对语音数据集进行预处理;

字典训练模块,用于对预处理后的语音数据集,进行字典训练,得到字典矩阵;

建立模型模块,用于根据字典矩阵,建立基于深层循环神经网络的模型;

模型训练模块,用于根据基于深层循环神经网络的模型,对基于深层循环神经网络的模型进行训练;

增强模块,用于根据训练好的基于深层循环神经网络的模型,对含噪语音的语音数据进行训练,得到增强后的语音数据。

进一步地,获取语音数据集,对语音数据集进行预处理,具体包括:

分割模块,用于将语音数据集分割为训练集、验证集和测试集;

第一构建模块,用于根据窗函数和改进离散余弦变换的变换公式,设计卷积核,然后使用该卷积核构建卷积层,建立变换模块;

第一变换模块,用于根据变换模块,对训练集、验证集和测试集的语音信号进行改进离散余弦变换,得到对应的频域数据;

取值模块,用于根据变换后的训练集、验证集和测试集,得到取绝对值的语音特征数据和不取绝对值的语音特征数据。

进一步地,根据字典矩阵,建立基于深层循环神经网络的模型,具体包括:

第一添加模块,用于添加masking层作为基于深层循环神经网络的模型的第一层,以屏蔽数据中的补长部分的数据;

第二添加模块,用于添加sista-rnn网络作为基于深层循环神经网络的模型的第二层,sista-rnn网络的输出包含估计的干净语音和噪声对应的系数矩阵h;

第三添加模块,用于添加一个lambda层,将系数矩阵h分割为估计的干净语音对应的系数矩阵hc,及噪声对应的系数矩阵hn;

第四添加模块,用于添加两个timedistributed层,对系数矩阵hc和系数矩阵hn都进行非负约束,并分别字典矩阵做矩阵乘法,得到对应的干净语音频谱yc和噪声频谱yn;

计算模块,用于根据公式计算掩模矩阵m。

进一步地,根据基于深层循环神经网络的模型,对基于深层循环神经网络的模型进行训练,具体包括:

第一计算模块,用于将掩模矩阵m与对应的时域数据相乘,得到估计的干净语音的频谱数据;

第二构建模块,用于根据窗函数和逆改进离散余弦变换的变换公式,设计卷积核,并使用该卷积核构建卷积层;

第二变换模块,用于将估计的干净语音的频谱数据输入构建的变换层,得到对应的频域数据,其中,逆改进离散余弦变换(imdct)的计算公式具体如下:

式中k表示离散频率点,wk为长为n的窗函数;

训练模块,用于将频域数据与对应的标签数据求loss,通过反向传播训练模型。

本发明公开又提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现如上述中任一项的方法。

本发明公开又提供了一种存储有计算机程序的计算机可读存储介质,计算机程序使计算机执行时实现如上述中任一项的一种基于深层循环神经网络的语音增强方法。

技术效果

本发明公开的一种基于深层循环神经网络的语音增强方法,是将sista-rnn网络应用到语音增强算法,使用sista-rnn网络来求解nmf算法中的最优解,以实现利用已有数据训练模型,同时降低对语音数据量的要求。而在语音特征提取方面,则使用改进离散余弦变换提取语音特征。结果表明,本方法在使用较少训练数据的情况下,实现了有竞争力的语音增强效果。

以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明的一个较佳实施例的一种基于深层循环神经网络的语音增强方法的流程示意图。

图2是本发明的一个较佳实施例的一种基于深层循环神经网络的语音增强方法的sista-rnn的隐层处理过程的示意图。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

以下描述中,为了说明而不是为了限定,提出了诸如特定内部程序、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

实施例一

如图所示,本实施例公开了一种基于深层循环神经网络的语音增强方法,包括以下步骤:

步骤100,获取语音数据集,对语音数据集进行预处理;

步骤200,对预处理后的语音数据集,进行字典训练,得到字典矩阵;

步骤300,根据字典矩阵,建立基于深层循环神经网络的模型;

步骤400,根据基于深层循环神经网络的模型,对基于深层循环神经网络的模型进行训练;

步骤500,根据训练好的基于深层循环神经网络的模型,对含噪语音的语音数据进行训练,得到增强后的语音数据。

进一步地,步骤100,获取语音数据集,对语音数据集进行预处理,具体包括:

步骤101,将语音数据集分割为训练集、验证集和测试集;具体,将语音数据集分割为训练集、验证集和测试集,并且对训练集、验证集和测试集的语音信号进行分针处理。

步骤102,根据窗函数和改进离散余弦变换的变换公式,设计卷积核,然后使用该卷积核构建卷积层,建立变换模块;其中,改进离散余弦变换(mdct)的计算公式具体如下:

式中k表示离散频率点,2n为截取的语音信号数据的点数,wn为长为2n的窗函数。

步骤103,根据变换模块,对训练集、验证集和测试集的语音信号进行改进离散余弦变换,得到对应的频域数据;

步骤104,根据变换后的训练集、验证集和测试集,得到取绝对值的语音特征数据和不取绝对值的语音特征数据。

步骤200,对预处理后的语音数据集,进行字典训练,得到字典矩阵;具体包括:

步骤201,使用步骤102公式计算得到的训练集数据中的干净语音数据,利用稀疏nmf算法迭代更新,得到干净对应的字典wc;

步骤202,构建总体的字典w=[wc,wn],然后使用步骤102公式计算得到的含噪语音数据的频谱,通过稀疏nmf算法迭代得到最终的w,迭代时只更新w中的wn部分。

步骤300,根据字典矩阵,建立基于深层循环神经网络的模型,具体包括:

步骤301,添加masking层作为基于深层循环神经网络的模型的第一层,以屏蔽经过补长的频域数据(即该层的输入数据)中的补长部分的数据;

步骤302,添加sista-rnn网络(可以解释为:基于序列迭代软阈值算法的可解释的循环神经网络)作为基于深层循环神经网络的模型的第二层,sista-rnn网络(可以解释为:基于序列迭代软阈值算法的可解释的循环神经网络)的输出包含估计的干净语音和噪声对应的系数矩阵h;

步骤303,添加一个lambda层,将系数矩阵h分割为估计的干净语音对应的系数矩阵hc,及噪声对应的系数矩阵hn;

步骤304,添加两个timedistributed层(具体的,timedistributed层是一种封装器。添加两个timedistributed层,其中封装一个全连接层(dense),在全连接层中,使用字典矩阵初始化权重,并对所述系数矩阵hc和所述系数矩阵hn都进行非负约束,并分别所述字典矩阵做矩阵乘法,得到对应的干净语音频谱yc和噪声频谱yn),对系数矩阵hc和系数矩阵hn都进行非负约束,并分别字典矩阵做矩阵乘法,得到对应的干净语音频谱yc和噪声频谱yn;

步骤305,根据公式计算掩模矩阵m。

步骤400,根据基于深层循环神经网络的模型,对基于深层循环神经网络的模型进行训练,具体包括:

步骤401,将掩模矩阵m与对应的时域数据相乘,得到估计的干净语音的频谱数据;

步骤402,根据窗函数和逆改进离散余弦变换的变换公式,设计卷积核,并使用该卷积核构建卷积层;

步骤403,将估计的干净语音的频谱数据输入构建的变换层,得到对应的频域数据,其中,逆改进离散余弦变换(imdct)的计算公式具体如下:

式中k表示离散频率点,wk为长为n的窗函数;

步骤404,将频域数据与对应的标签数据求loss,通过反向传播训练模型。

以下将详细说明本实施方法的具体步骤:

步骤s101)将语音数据集分割为训练集、验证集和测试集,并分别对训练集、验证集和测试集的语音信号分帧。然后进行改进离散余弦变换:

首先根据窗函数和改进离散余弦变换(mdct)的变换公式,设计卷积核,具体如下所示:

该矩阵的维度为(n,1,2n),即包含n个一维卷积核。

然后使用该卷积核构建卷积层,建立变换模块;

其次将训练集、验证集和测试集的分帧后的数据输入变换模块,得到对应的频域数据。改进离散余弦变换(mdct)的计算公式具体如下:

式中xk为变换后得到的频域数据,k表示离散频率点,2n为截取的语音信号数据的点数,wn为长为2n的窗函数。在本实例中n=512,窗函数为cosine窗,窗口移动步长为n=512,即有50%的重叠。

步骤s102)对步骤s101)中变换后的训练集、验证集和测试集的数据取绝对值,并将所有数据补为等长数据,以满足模型的输入要求。

步骤s103)使用步骤s102)得到的训练集数据中的干净语音数据,利用稀疏nmf算法迭代更新,得到干净对应的字典wc。稀疏nmf算法中,w和h的迭代公式如下:

其中为w逐列标准化的结果,即v为待分解的语音特征矩阵,在此处为步骤s102)得到的训练集数据;λ为当前迭代结果恢复得到的估计矩阵,即λ=wh;μ为大于0的参数,在本实施例中取μ=1;1表示元素全为1的列向量。

步骤s104)构建总体的字典w=[wc,wn],然后使用步骤s102))得到的含噪语音数据,通过稀疏nmf算法迭代得到最终的w,迭代时只更新w中的wn部分。迭代公式与步骤s103)中的相同,但更新h时使用的w即为w=[wc,wn],h也为与之对应的总体h;而更新w时的w为wn,且h为对应的hn。

步骤s105)添加masking层作为模型的第一层,以屏蔽数据中的补长部分的数据;

步骤s106)添加sista-rnn网络作为模型的第二层,此层输出估计的包含干净语音和噪声对应的系数矩阵h。sista-rnn的结构展开示意图如图2所示,该网络中的计算过程可表示为:

其中:

其中α为预设参数,在本实例中α=400,w为训练得到的字典,k表示第几层,t表示时间步,x为输入的数据;

图2中的非线性激活函数为:

relub=max{0,z-b}

步骤s107)添加一个lambda层,将步骤s106)获得的h分割为估计的干净语音对应的系数矩阵hc,及噪声对应的系数矩阵hn;

步骤s108)添加两个个timedistributed层,对步骤s107)中输出的hc和hn都进行非负约束,并分别与步骤s103)和步骤s104)得到的wc和wn做矩阵乘法,得到对应的干净语音频谱yc和噪声频谱yn;

步骤s109)根据公式计算掩模矩阵;

步骤s110)将步骤s109)得到的掩模矩阵m与步骤s101)得到的语音数据相乘,得到估计的干净语音的频谱;

步骤s112)将步骤s110)得到的数据进行逆改进离散余弦变换,得到时域上的语音数据,作为模型输出。具体包括:首先根据窗函数和逆改进离散余弦变换(imdct)的变换公式,设计卷积核,本实例中卷积核可用如下公式表示:

该矩阵的维度为(2n,1,n),即包含2n个一维卷积核。

然后使用该卷积核构建卷积层;之后将步骤s110)得到的数据输入构建的变换层,得到对应的频域数据。逆改进离散余弦变换(imdct)的计算公式具体如下:

式中为逆变换得到的数据,k表示离散频率点,wk为长为n的窗函数;在本实例中n=512,窗函数为cosine窗。

然后根据重叠相加的方法恢复出语音数据,具体计算公式如下:

式中y为最终得到的估计的时域语音数据,分别为相邻两帧经过逆改进离散余弦变换(imdct)得到的两部分数据。

步骤s113)将步骤s112)得到的数据与对应的标签数据求loss,通过反向传播调整模型参数;

步骤s114)将步骤s101)和步骤s102)得到的训练集数据作为步骤s105)到s113)构建的模型的训练数据,训练该模型,训练时使用mse作为loss函数,优化器使用adam优化器;

步骤s115)将步骤s101)和步骤s102)得到的需要增强的语音的特征数据(在本实例中为测试集数据)作为模型的输入数据,使用经过训练得到的模型估计相应的增强后语音数据。

本实施例利用第二届国际多通道语音分离和识别大赛的数据集对模型进行训练及测试,该数据集包含-6、-3db、0db、3db、6db、9db这六种不同信噪比的语音数据,噪声的类型有音乐,广播,电视,儿童和电器。数据集中的训练集中包含7138条语音数据,验证集中包含2460条语音数据,测试集中包含1980条语音数据。本实施例为了凸显模型在少量数据下的优异性能,只使用了713条训练集数据、246条验证集数据、198条测试集数据,并且包含六种不同信噪比的数据。本实验使用信号失真比(sdr)对实验结果进行评分,评分的数值越高则算法性能越好。

本实施例以“基于长短时记忆网络的语音分离算法”作为基线系统,该系统使用长短时记忆网络估计掩模矩阵,包含5个隐藏层,使用的是语音信号在短时傅里叶变换域上的幅度谱数据。相对应的,本实施例的sista-rnn的隐藏层也设置为5层。

测试集实验结果如表1所示。

表1基于深层循环神经网络的语音增强方法实验结果

从表1可以看出,本实施例的信号失真比评分,在六种不同信噪比的数据中都要比基线系统的要高,这表明本方法的性能在要优于基线系统的性能。说明本申请的“基于深层循环神经网络的语音增强方法”能够在使用较少数据训练,取得有竞争力的语音增强效果。

本实施例公开的一种基于深层循环神经网络的语音增强方法,是将sista-rnn网络应用到语音增强算法,使用sista-rnn网络来求解nmf算法中的最优解,以实现利用已有数据训练模型,同时降低对语音数据量的要求。而在语音特征提取方面,则使用改进离散余弦变换提取语音特征。结果表明,本方法在使用较少训练数据的情况下,实现了有竞争力的语音增强效果。

实施例二

本发明公开又提供了一种基于深层循环神经网络的语音增强装置,包括:

预处理模块,用于获取语音数据集,对语音数据集进行预处理;

字典训练模块,用于对预处理后的语音数据集,进行字典训练,得到字典矩阵;

建立模型模块,用于根据字典矩阵,建立基于深层循环神经网络的模型;

模型训练模块,用于根据基于深层循环神经网络的模型,对基于深层循环神经网络的模型进行训练;

增强模块,用于根据训练好的基于深层循环神经网络的模型,对含噪语音的语音数据进行训练,得到增强后的语音数据。

进一步地,获取语音数据集,对语音数据集进行预处理,具体包括:

分割模块,用于将语音数据集分割为训练集、验证集和测试集;

第一构建模块,用于根据窗函数和改进离散余弦变换的变换公式,设计卷积核,然后使用该卷积核构建卷积层,建立变换模块;

第一变换模块,用于根据变换模块,对训练集、验证集和测试集的语音信号进行改进离散余弦变换,得到对应的频域数据;

取值模块,用于根据变换后的训练集、验证集和测试集,得到取绝对值的语音特征数据和不取绝对值的语音特征数据。

进一步地,根据字典矩阵,建立基于深层循环神经网络的模型,具体包括:

第一添加模块,用于添加masking层作为基于深层循环神经网络的模型的第一层,以屏蔽数据中的补长部分的数据;

第二添加模块,用于添加sista-rnn网络作为基于深层循环神经网络的模型的第二层,sista-rnn网络的输出包含估计的干净语音和噪声对应的系数矩阵h;

第三添加模块,用于添加一个lambda层,将系数矩阵h分割为估计的干净语音对应的系数矩阵hc,及噪声对应的系数矩阵hn;

第四添加模块,用于添加两个timedistributed层,对系数矩阵hc和系数矩阵hn都进行非负约束,并分别字典矩阵做矩阵乘法,得到对应的干净语音频谱yc和噪声频谱yn;

计算模块,用于根据公式计算掩模矩阵m。

进一步地,根据基于深层循环神经网络的模型,对基于深层循环神经网络的模型进行训练,具体包括:

第一计算模块,用于将掩模矩阵m与对应的时域数据相乘,得到估计的干净语音的频谱数据;

第二构建模块,用于根据窗函数和逆改进离散余弦变换的变换公式,设计卷积核,并使用该卷积核构建卷积层;

第二变换模块,用于将估计的干净语音的频谱数据输入构建的变换层,得到对应的频域数据,其中,逆改进离散余弦变换(imdct)的计算公式具体如下:

式中k表示离散频率点,wk为长为n的窗函数;

训练模块,用于将频域数据与对应的标签数据求loss,通过反向传播训练模型。

本实施例的装置用于实现上述实施例中的一种基于深层循环神经网络的语音增强方法,其实现方式和过程同实施例一,此处将不再赘述。

实施例三

本发明实施例三提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现上述任一项的方法。

该实施例的计算机设备包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如资源发放程序。所述处理器执行所述计算机程序时实现上述实施例中的步骤。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。

示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述计算机设备中的执行过程。

所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可包括,但不仅限于,处理器、存储器。

所述处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器可以是所述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。所述存储器也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器还可以既包括所述计算机设备的内部存储单元也包括外部存储设备。所述存储器用于存储所述计算机程序以及所述计算机设备所需的其他程序和数据。所述存储器还可以用于暂时地存储已经输出或者将要输出的数据。

本发明实施例还提供了一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序使计算机执行时实现上述任一项所述的一种基于深层循环神经网络的语音增强方法。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

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