基于神经网络的语音增强方法、可读存储介质及终端设备与流程

文档序号:16906552发布日期:2019-02-19 18:23阅读:179来源:国知局
基于神经网络的语音增强方法、可读存储介质及终端设备与流程

本发明属于计算机技术领域,尤其涉及一种基于神经网络的语音增强方法、计算机可读存储介质及终端设备。



背景技术:

现有语音通信过程中环境噪声的干扰是不可避免的,周围的环境噪音干扰将导致通讯设备最终接收到的是受噪声污染的语音信号,影响语音信号的质量。特别在汽车、飞机、船只、机场、商场等噪音严重的公众环境下,强背景噪声严重影响语音信号质量,引发用户的听觉疲劳,沟通效率低下,严重影响用户的日常工作和生活。



技术实现要素:

有鉴于此,本发明实施例提供了一种基于神经网络的语音增强方法、计算机可读存储介质及终端设备,以解决在噪音严重的公众环境下,强背景噪声严重影响语音信号质量的问题。

本发明实施例的第一方面提供了一种基于神经网络的语音增强方法,可以包括:

使用短时傅里叶变换对加噪语音进行时频域分析,得到所述加噪语音的时频域分析结果;

分别计算所述时频域分析结果的相位及幅值;

使用预设的神经网络模型对所述时频域分析结果的幅值进行增强处理,得到增强后的幅值;

使用短时傅里叶逆变换对所述时频域分析结果的相位及增强后的幅值进行处理,得到增强后的语音。

本发明实施例的第二方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如下步骤:

使用短时傅里叶变换对加噪语音进行时频域分析,得到所述加噪语音的时频域分析结果;

分别计算所述时频域分析结果的相位及幅值;

使用预设的神经网络模型对所述时频域分析结果的幅值进行增强处理,得到增强后的幅值;

使用短时傅里叶逆变换对所述时频域分析结果的相位及增强后的幅值进行处理,得到增强后的语音。

本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如下步骤:

使用短时傅里叶变换对加噪语音进行时频域分析,得到所述加噪语音的时频域分析结果;

分别计算所述时频域分析结果的相位及幅值;

使用预设的神经网络模型对所述时频域分析结果的幅值进行增强处理,得到增强后的幅值;

使用短时傅里叶逆变换对所述时频域分析结果的相位及增强后的幅值进行处理,得到增强后的语音。

本发明实施例与现有技术相比存在的有益效果是:本发明实施例首先使用短时傅里叶变换对加噪语音进行时频域分析,得到所述加噪语音的时频域分析结果,分别计算所述时频域分析结果的相位及幅值,然后使用预设的神经网络模型对所述时频域分析结果的幅值进行增强处理,得到增强后的幅值,最后使用短时傅里叶逆变换对所述时频域分析结果的相位及增强后的幅值进行处理,得到增强后的语音。通过神经网络模型的增强处理,可以有效抑制语音信号中的噪声干扰,大大增强了语音信号的质量,提高用户日常工作和生活中的沟通效率。

附图说明

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

图1为本发明实施例中一种语音增强方法的一个实施例流程图;

图2为使用单个深度神经网络模型进行语音增强处理的示意框图;

图3为使用多个深度神经网络模型进行语音增强处理的示意框图;

图4为本发明实施例中一种语音增强装置的一个实施例结构图;

图5为本发明实施例中一种终端设备的示意框图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1,本发明实施例中一种语音增强方法的一个实施例可以包括:

步骤s101、使用短时傅里叶变换对加噪语音进行时频域分析,得到所述加噪语音的时频域分析结果。

在信号学里面,为了简化运算,尤其是在线性时不变系统(lineartimeinvariancesystem,lti)中的运算,从而引入了傅里叶变换的概念。然而傅里叶变换只能够给出信号的频域性质,也就是说频率并没有对应到时间上。这对于一个稳定信号是没有什么影响的,因为信号的频率永远都是一种分布。然而对于一个非稳定的信号,由于频率随时间在变化,那么使用傅里叶变换就无法完整的描述这种变化的性质。为了更好地表达这种变化的特点,短时傅里叶变换(short-timefouriertransform,stft)被引入并且很快得到了推广。

在进行短时傅里叶变换时,首先对加噪语音进行分帧,具体的帧长度可以根据实际情况进行设置,例如,可以将帧长度设置为10ms、20ms、40ms或者其它取值,在本实施例中,优选将加噪语音按照32ms一帧进行分帧,使用窗函数来截取信号,一般来说,每帧信号都是有重叠的。再对每帧信号做离散傅里叶变换(discretefouriertransform,dft),由于离散傅里叶变换具有对称性,每帧都只取离散傅里叶变换结果的一半点数作为每帧的短时傅里叶变换结果,也即所述加噪语音的时频域分析结果。

所述窗函数可以根据实际情况进行设置,在本实施例中,优选采用如下所示的汉明窗函数来截取信号:

其中,n为样本点数,n为窗长度,w(n)为所述汉明窗函数。

步骤s102、分别计算所述时频域分析结果的相位及幅值。

在加性模型中,加噪语音可以表示为:

xt(m)=st(m)+nt(m)

其中,xt(m)、st(m)、nt(m)分别代表加噪语音、纯净语音和噪声信号的第m个采样点。

对时域进行短时傅里叶变换可得:

x(ωk)=s(ωk)+n(ωk)

其中,k为样本点序号,1≤k≤r,r为样本点总数,取短时傅里叶变换后的时频域分析结果可使用x表示。

在本实施例中,可以根据下式分别计算所述时频域分析结果的相位及幅值:

其中,real(x)为所述时频域分析结果的实部,img(x)为所述时频域分析结果的虚部,∠x为所述时频域分析结果的相位,|x|为所述时频域分析结果的幅值。

步骤s103、使用预设的神经网络模型对所述时频域分析结果的幅值进行增强处理,得到增强后的幅值。

在本实施例中,优选使用应用了dropout的深度神经网络(deepneuralnetwork,dnn)来对所述时频域分析结果的幅值进行增强处理。

在传统的dnn模型中,如果模型的参数太多,而训练样本又太少,训练出来的模型很容易产生过拟合的现象。在训练神经网络的时候经常会遇到过拟合的问题,过拟合具体表现在:模型在训练数据上损失函数较小,预测准确率较高;但是在测试数据上损失函数比较大,预测准确率较低。过拟合是很多机器学习的通病。如果模型过拟合,那么得到的模型几乎不能用。为了解决过拟合问题,一般会采用模型集成的方法,即训练多个模型进行组合。此时,训练模型费时就成为一个很大的问题,不仅训练多个模型费时,测试多个模型也是很费时。

dropout可以比较有效的缓解过拟合的发生,在一定程度上达到正则化的效果。dropout的思想是训练整体dnn,并平均整个集合的结果,而不是训练单个dnn。dnn是以概率p舍弃部分神经元(神经元也可称为神经网络单元),其它神经元以概率q=1-p被保留,舍去的神经元的输出都被设置为零。在标准神经网络中,每个参数的导数告诉其应该如何改变,以致损失函数最后被减少。因此神经元可以通过这种方式修正其他单元的错误。但这可能导致复杂的协调,反过来导致过拟合,因为这些协调没有推广到未知数据。dropout通过使其他隐藏单元存在不可靠性来防止共拟合。简而言之,dropout在实践中能很好工作是因为其在训练阶段阻止神经元的共适应。

本实施例中使用的神经网络模型共包含3个全连接层,分别包括2048、2048、257个节点,均应用线性整流函数(rectifiedlinearunit,relu)作为激活函数,输出层也采用relu来计算stft的非负幅值。

通常意义下,线性整流函数为数学中的斜坡函数,即:

f(x)=max(0,x)

其中,max为求最大值函数。

而在神经网络中,线性整流函数作为神经元的激活函数,定义了该神经元在线性变换ωtx+b之后的的非线性输出结果,换言之,对于进入神经元的来自上一层神经网络的输入x,使用线性整流激活函数的神经元会输出max(0,ωtx+b)至下一层神经元或作为整个神经网络的输出。

在本实施例中,神经网络模型的训练过程采用反向传播算法,利用随机梯度下降(stochasticgradientdescent,sgd)、小批量梯度下降(mini-batchgradientdescent,mbgd)或者批量梯度下降(batchgradientdescent,bgd)来最小化加噪语音和纯净语音之间的误差。其中,批量梯度下降法是梯度下降法最原始的形式,它的具体思路是在更新每一参数时都使用所有的样本来进行更新。其优点是能得到全局最优解,易于并行实现,其缺点是当样本数目很多时,训练过程会很慢。随机梯度下降法的具体思路是在更新每一参数时都使用一个样本来进行更新,每一次更新参数都用一个样本,更新很多次。如果样本量很大的情况(例如几十万),那么可能只用其中几万条或者几千条的样本,就已经迭代到最优解了,而上述的批量梯度下降,迭代一次需要用到十几万训练样本,一次迭代不可能最优,如果迭代10次的话就需要遍历训练样本10次,这种更新方式计算复杂度太高。但是,随机梯度下降法伴随的一个问题是噪音较批量梯度下降法要多,使得随机梯度下降法并不是每次迭代都向着整体最优化方向。也即其优点是训练速度快,其缺点是并不是全局最优,不易于并行实现,而且从迭代的次数上来看,随机梯度下降法迭代的次数较多,在解空间的搜索过程看起来很盲目。小批量梯度下降法的具体思路是在更新每一参数时都使用一部分样本来进行更新,即同时兼顾随机梯度下降法和批量梯度下降法的特点。具体使用何种方法,可以根据实际情况进行设置,如果样本量比较小,可以采用批量梯度下降算法,如果样本量比较大,或者在线算法,可以使用随机梯度下降算法,在实际的一般情况下,采用小批量梯度下降算法。

所述神经网络模型的训练过程具体可以包括如下步骤:

首先,使用预设的语音样本对所述神经网络模型进行一轮训练,并根据下式计算本轮训练的全局误差:

其中,k为所述语音样本中的样本点序号,1≤k≤r,r为所述语音样本中的样本点总数,s(k)为所述语音样本中的第k个样本点的幅值,为使用所述神经网络模型对第k个样本点进行增强处理后得到的幅值,er为所述全局误差。

若所述全局误差大于预设的误差阈值,则对所述神经网络模型进行调整,例如,可以按照随机梯度下降、小批量梯度下降或者批量梯度下降对各层节点之间的网络连接权值和阈值进行调整,然后返回执行所述使用预设的语音样本对所述神经网络模型进行一轮训练的步骤,直至所述全局误差小于所述误差阈值为止;若所述全局误差小于所述误差阈值,则将当前的神经网络模型确定为训练好的神经网络模型。

在完成神经网络模型的训练之后,使用该神经网络模型对所述时频域分析结果的幅值进行增强处理的具体过程可以包括如下步骤:

首先,使用所述神经网络模型对所述时频域分析结果的幅值进行tn次增强处理,各次增强处理时丢弃不同的神经网络单元,tn为正整数。

然后,根据下式计算所述增强后的幅值:

其中,t为处理次数的序号,1≤t≤tn,为对所述时频域分析结果的幅值进行t次增强处理后得到的结果,为所述增强后的幅值,也即各次处理的经验均值。

步骤s104、使用短时傅里叶逆变换对所述时频域分析结果的相位及增强后的幅值进行处理,得到增强后的语音。

如图2所示,即为本实施例的一个具体应用的流程的示意框图:将输入分帧为32ms一帧,加汉明窗,短时傅里叶变换提取特征,载入应用dropout的dnn模型中,得到经验均值,短时傅里叶逆变换得到增强语音。

进一步地,为了取得更好的语音增强效果,还可以使用两个以上dnn模型,组成神经网络模型集合,然后从中选取最优的模型进行增强处理。具体地,在使用预设的神经网络模型对所述时频域分析结果的幅值进行增强处理之前,还可以包括如下步骤:

首先,从所示神经网络模型集合中分别选取各个候选神经网络模型对所述时频域分析结果的幅值进行增强处理,得到各个候选神经网络模型增强后的幅值。

然后,根据各个候选神经网络模型增强后的幅值分别计算各个候选神经网络模型的偏差度,例如,可以根据下式分别计算各个候选神经网络模型的偏差度:

其中,l为预设的先验长度,p为未被丢弃掉的神经网络单元的总数,n为输入样本的总数,λ为预设的正则化衰减权重,id为单位矩阵,t为转置符号,v(s)为所述偏差度。

最后,从所述神经网络模型集合中选取偏差度最小的候选神经网络模型作为进行增强处理的神经网络模型。

如图3所示,即为本实施例的一个具体应用的流程的示意框图:该模型结构训练了多个dnn模型,具体的语音增强模型依赖于模型选择器,来保证选择的模型在每帧上确保有显著的整体的性能的提高。一种选择模型的方法是首先检验噪声类型。如果这种语音被未知噪声污染了,模型的选择就会变得比较困难,这是因为噪声检测器假设模型是被正确的噪声训练的。由于模型的不确定性为特定的输入提供了模型的固有的不确定性,所以此处可以将它用作模型误差的估计。这种方法适用于模型的不确定性和输出误差有着较强的联系的情况下。

模型的输入是带噪声的语音帧x,每个模型都通过随机的dropout单元得到输出。每个模型在各次处理时丢弃掉不同的神经网络单元,得到结果i为dnn模型的序号,1≤i≤m,m为dnn模型的总数,m个模型得到不同的偏差度,具有最小偏差度的模型被认为是最好的。最后,计算得到经验均值,并通过短时傅里叶逆变换得到增强语音。

综上所述,本发明实施例首先使用短时傅里叶变换对加噪语音进行时频域分析,得到所述加噪语音的时频域分析结果,分别计算所述时频域分析结果的相位及幅值,然后使用预设的神经网络模型对所述时频域分析结果的幅值进行增强处理,得到增强后的幅值,最后使用短时傅里叶逆变换对所述时频域分析结果的相位及增强后的幅值进行处理,得到增强后的语音。通过神经网络模型的增强处理,可以有效抑制语音信号中的噪声干扰,大大增强了语音信号的质量,提高用户日常工作和生活中的沟通效率。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

对应于上文实施例所述的一种语音增强方法,图4示出了本发明实施例提供的一种语音增强装置的一个实施例结构图。

本实施例中,一种语音增强装置可以包括:

时频域分析模块401,用于使用短时傅里叶变换对加噪语音进行时频域分析,得到所述加噪语音的时频域分析结果;

特征计算模块402,用于分别计算所述时频域分析结果的相位及幅值;

增强处理模块403,用于使用预设的神经网络模型对所述时频域分析结果的幅值进行增强处理,得到增强后的幅值;

逆变换模块404,用于使用短时傅里叶逆变换对所述时频域分析结果的相位及增强后的幅值进行处理,得到增强后的语音。

进一步地,所述增强处理模块可以包括:

增强处理单元,用于使用所述神经网络模型对所述时频域分析结果的幅值进行tn次增强处理,各次增强处理时丢弃不同的神经网络单元,tn为正整数;

幅值计算单元,用于根据下式计算所述增强后的幅值:

其中,t为处理次数的序号,1≤t≤tn,为对所述时频域分析结果的幅值进行t次增强处理后得到的结果,为所述增强后的幅值。

进一步地,所述语音增强装置还可以包括:

候选模型遍历单元,用于从预设的神经网络模型集合中分别选取各个候选神经网络模型对所述时频域分析结果的幅值进行增强处理,得到各个候选神经网络模型增强后的幅值;

偏差度计算单元,用于根据各个候选神经网络模型增强后的幅值分别计算各个候选神经网络模型的偏差度;

模型选取单元,用于从所述神经网络模型集合中选取偏差度最小的候选神经网络模型作为进行增强处理的神经网络模型。

进一步地,所述偏差度计算单元具体用于根据下式计算各个候选神经网络模型的偏差度:

其中,l为预设的先验长度,p为未被丢弃掉的神经网络单元的总数,n为输入样本的总数,λ为预设的正则化衰减权重,id为单位矩阵,t为转置符号,v(s)为所述偏差度。

进一步地,所述语音增强装置还可以包括:

样本训练模块,用于使用预设的语音样本对所述神经网络模型进行一轮训练,并根据下式计算本轮训练的全局误差:

其中,k为所述语音样本中的样本点序号,1≤k≤r,r为所述语音样本中的样本点总数,s(k)为所述语音样本中的第k个样本点的幅值,为使用所述神经网络模型对第k个样本点进行增强处理后得到的幅值,er为所述全局误差;

模型调整模块,用于若所述全局误差大于预设的误差阈值,则对所述神经网络模型进行调整;

模型确定模块,用于若所述全局误差小于所述误差阈值,则将当前的神经网络模型确定为训练好的神经网络模型。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

图5示出了本发明实施例提供的一种终端设备的示意框图,为了便于说明,仅示出了与本发明实施例相关的部分。

在本实施例中,所述终端设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该终端设备5可包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机可读指令52,例如执行上述的语音增强方法的计算机可读指令。所述处理器50执行所述计算机可读指令52时实现上述各个语音增强方法实施例中的步骤,例如图1所示的步骤s101至s104。或者,所述处理器50执行所述计算机可读指令52时实现上述各装置实施例中各模块/单元的功能,例如图4所示模块401至404的功能。

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

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

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

在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干计算机可读指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储计算机可读指令的介质。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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