一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

语音降噪方法、装置、设备及存储介质与流程

2022-04-16 15:17:31 来源:中国专利 TAG:


1.本技术实施例涉及多媒体数据处理技术领域,特别涉及一种语音降噪方法、装置、设备及存储介质。


背景技术:

2.语音是人们日常生活中最为重要也最为普遍的交流媒介,随着手机等移动互联网终端的广泛应用,人与人之间可以更方便的通过终端来进行语音交流。不过,这些终端在采集语音时通常需要暴露在外界环境中,外界环境中的噪声信号也会被终端采集到,进而导致采集到的语音因受到噪声的干扰而出现不清晰的情况。因此,需要一种语音降噪方法,能够对终端采集的语音进行降噪处理,使得最终处理后的语音信号无噪声干扰。


技术实现要素:

3.本技术实施例提供了一种语音降噪方法、装置、设备及存储介质,可以解决相关技术的语音不清晰的问题。所述技术方案如下:
4.一方面,提供了一种语音降噪方法,所述方法包括:
5.获取第一语音信号,所述第一语音信号包括多个频点信号;
6.基于所述多个频点信号中每个频点信号的信号功率,确定递归平均算法中的平滑因子;
7.基于所述平滑因子,通过所述递归平均算法对所述第一语音信号进行噪声估计,得到所述第一语音信号的噪声估计值,所述噪声估计值指示所述第一语音信号中噪声信号的功率;
8.基于所述噪声估计值对所述第一语音信号进行降噪处理。
9.可选地,所述基于所述多个频点信号中每个频点信号的信号功率,确定递归平均算法中的平滑因子,包括:
10.基于每个频点信号的信号功率,确定每个频点信号的激活函数值,所述激活函数值位于目标数值区间内;
11.基于所述多个频点信号中每个频点信号的激活函数值,确定所述平滑因子。
12.可选地,所述基于所述多个频点信号中每个频点信号的激活函数值,确定所述平滑因子,包括:
13.基于所述多个频点信号中每个频点信号的激活函数值,通过第一公式确定所述平滑因子,所述第一公式为:
[0014][0015]
其中,所述为所述平滑因子,所述αd为固定数值,所述为各个频点信号的激活函数值中的最小值。
[0016]
可选地,所述基于所述平滑因子,通过所述递归平均算法对所述第一语音信号进
行噪声估计,得到所述第一语音信号的噪声估计值,包括:
[0017]
基于所述平滑因子对所述第一语音信号进行平滑处理,得到所述第一语音信号的语音存在性概率,所述语音存在性概率指示所述第一语音信号中有效语音信号存在的概率;
[0018]
基于所述语音存在性概率确定所述第一语音信号的初始噪声估计值;
[0019]
在所述语音存在性概率指示所述第一语音信号中存在有效语音信号时,根据第一补偿因子对所述初始噪声估计值进行偏差补偿,得到所述噪声估计值;
[0020]
在所述语音存在性概率指示所述第一语音信号中不存在有效语音信号时,根据第二补偿因子对所述初始噪声估计值进行偏差补偿,得到所述噪声估计值;
[0021]
其中,所述第一补偿因子小于所述第二补偿因子。
[0022]
可选地,所述基于所述平滑因子对所述第一语音信号进行平滑处理,得到所述第一语音信号的语音存在性概率,包括:
[0023]
对所述第一语音信号进行第一次平滑处理,得到所述第一语音信号的平滑功率谱;
[0024]
通过目标搜索窗个数,对所述平滑功率谱进行搜索,以确定所述平滑功率谱中的最小值,所述目标搜索窗个数小于参考数值;
[0025]
基于所述平滑功率谱中的最小值,确定所述第一语音信号的语音存在性概率。
[0026]
可选地,所述基于所述多个频点信号中每个频点信号的信号功率,确定递归平均算法中的平滑因子之前,所述方法还包括:
[0027]
获取第二语音信号,所述第二语音信号为所述第一语音信号的上一帧语音信号;
[0028]
确定所述第一语音信号和所述第二语音信号之间的平均功率变化量;
[0029]
如果所述平均功率变化量超过变化量阈值,则执行基于所述多个频点信号中每个频点信号的信号功率,确定递归平均算法中的平滑因子的操作。
[0030]
可选地,所述方法还包括:
[0031]
如果所述平均功率变化量未超过所述变化量阈值,则基于参考平滑因子,通过所述递归平均算法对所述第一语音信号进行噪声估计,确定所述第一语音信号的噪声估计值。
[0032]
另一方面,提供了一种语音降噪装置,所述装置包括:
[0033]
第一获取模块,用于获取第一语音信号,所述第一语音信号包括多个频点信号;
[0034]
第一确定模块,用于基于所述多个频点信号中每个频点信号的信号功率,确定递归平均算法中的平滑因子;
[0035]
噪声估计模块,用于基于所述平滑因子,通过所述递归平均算法对所述第一语音信号进行噪声估计,得到所述第一语音信号的噪声估计值,所述噪声估计值指示所述第一语音信号中噪声信号的功率;
[0036]
处理模块,用于基于所述噪声估计值对所述第一语音信号进行降噪处理。
[0037]
可选地,所述第一确定模块,包括:
[0038]
第一确定子模块,用于基于每个频点信号的信号功率,确定每个频点信号的激活函数值,所述激活函数值位于目标数值区间内;
[0039]
第二确定子模块,用于基于所述多个频点信号中每个频点信号的激活函数值,确
定所述平滑因子。
[0040]
可选地,所述第二确定子模块,用于:
[0041]
基于所述多个频点信号中每个频点信号的激活函数值,通过第一公式确定所述平滑因子,所述第一公式为:
[0042][0043]
其中,所述为所述平滑因子,所述αd为固定数值,所述为各个频点信号的激活函数值中的最小值。
[0044]
可选地,所述噪声估计模块,包括:
[0045]
处理子模块,用于基于所述平滑因子对所述第一语音信号进行平滑处理,得到所述第一语音信号的语音存在性概率,所述语音存在性概率指示所述第一语音信号中有效语音信号存在的概率;
[0046]
第三确定子模块,用于基于所述语音存在性概率确定所述第一语音信号的初始噪声估计值;
[0047]
偏差补偿子模块,用于在所述语音存在性概率指示所述第一语音信号中存在有效语音信号时,根据第一补偿因子对所述初始噪声估计值进行偏差补偿,得到所述噪声估计值;在所述语音存在性概率指示所述第一语音信号中不存在有效语音信号时,根据第二补偿因子对所述初始噪声估计值进行偏差补偿,得到所述噪声估计值;
[0048]
其中,所述第一补偿因子小于所述第二补偿因子。
[0049]
可选地,所述处理子模块,用于:
[0050]
对所述第一语音信号进行第一次平滑处理,得到所述第一语音信号的平滑功率谱;
[0051]
通过目标搜索窗个数,对所述平滑功率谱进行搜索,以确定所述平滑功率谱中的最小值,所述目标搜索窗个数小于参考数值;
[0052]
基于所述平滑功率谱中的最小值,确定所述第一语音信号的语音存在性概率。
[0053]
可选地,所述装置还包括:
[0054]
第二获取模块,用于获取第二语音信号,所述第二语音信号为所述第一语音信号的上一帧语音信号;
[0055]
第二确定模块,用于确定所述第一语音信号和所述第二语音信号之间的平均功率变化量;
[0056]
第三确定模块,用于如果所述平均功率变化量超过变化量阈值,则执行基于所述多个频点信号中每个频点信号的信号功率,确定递归平均算法中的平滑因子的操作。
[0057]
可选地,所述装置还包括:
[0058]
第四确定模块,用于如果所述平均功率变化量未超过所述变化量阈值,则基于参考平滑因子,通过所述递归平均算法对所述第一语音信号进行噪声估计,确定所述第一语音信号的噪声估计值。
[0059]
另一方面,提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器用于存放计算机程序,所述处理器用于执行所述存储器上所存放的计算机程序,以实现上述所述的语音降噪方法的步骤。
[0060]
另一方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述所述语音降噪方法的步骤。
[0061]
另一方面,提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使得计算机执行上述所述语音降噪方法的步骤。
[0062]
本技术实施例提供的技术方案至少可以带来以下有益效果:
[0063]
本技术实施例首先获取第一语音信号,基于该第一语音信号的多个频点信号中每个频点信号的信号功率,确定递归平均算法中的平滑因子。并通过该递归平均算法对第一语音信号进行噪声估计,得到该第一语音信号的噪声估计值,基于该噪声估计值对第一语音信号进行降噪处理。本技术实施例是基于第一语音信号的各个频点信号的信号功率确定平滑因子,由于不同语音信号中各个频点信号的信号功率分布基本不同,因此可以根据不同语音信号自身特点自适应确定平滑因子,以提高噪声估计的准确性,使得最终在基于噪声估计值对第一语音信号进行降噪处理时,能得到纯净的语音信号。
附图说明
[0064]
为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0065]
图1是本技术实施例提供的一种语音降噪方法的流程图;
[0066]
图2是本技术实施例提供的一种带噪语音信号的示意图;
[0067]
图3是本技术实施例提供的一种带噪语音信号中噪声信号的示意图;
[0068]
图4是本技术实施例提供的一种带噪语音信号中有效信号的示意图;
[0069]
图5是本技术实施例提供的一种语音降噪方法的流程图;
[0070]
图6是本技术实施例提供的一种语音降噪装置的结构示意图;
[0071]
图7是本技术实施例提供的一种终端的结构示意图;
[0072]
图8是本技术实施例提供的一种服务器的结构示意图。
具体实施方式
[0073]
为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
[0074]
在对本技术实施例提供的语音降噪方法进行详细的解释说明之前,先对本技术实施例提供的应用场景进行介绍。
[0075]
在互联网全面普及的今天,手机等终端使人们的日常生活更加方便快捷,终端可以采集用户语音以实现语音通信功能或其他语音功能。
[0076]
例如,处在不同地理位置的两个用户可以通过各自的终端来进行语音通信。用户a发出语音,用户a的终端采集该语音并将该语音发送至与用户a进行通信的用户b的终端上,用户b收听该语音,且可以以同样的方式与用户a进行语音交流。不过,在通信双方通过终端进行语音通信的过程中,外界环境中的噪声信号也会被终端采集到,导致通信双方收听的语音质量不高。
[0077]
又例如,用户使用终端来进行导航或录音等其他语音操作。通常需要用户在终端的相应软件处操作,用户发出语音,终端采集该用户语音,并基于终端上的相应软件来进行相应操作。不过,在终端采集用户语音的过程中,外界环境中的噪声也会被终端采集到,导致终端上的相应软件无法正确识别用户语音,进而无法执行用户语音中所指示的操作。示例的,当在充满噪声的环境中使用导航软件时,导航软件很有可能因为周围噪声太大而无法正确识别我们发出的语音命令。
[0078]
因此,需要一种语音降噪方法,能够对终端采集的语音进行降噪处理,使得最终处理后的语音信号无噪声干扰。
[0079]
在现有技术中,通常是通过基于深度学习的语音降噪方法来处理噪声,该方法是通过训练语音降噪模型,使得训练后的语音降噪模型可以对语音信号进行降噪处理。但该方法需要大量语音及噪声数据,且使用该方法训练出的语音降噪模型的性能由多方面的因素决定,如训练集的大小、使用的模型类型、训练过程等因素,其中任一个因素的变化都会影响最终的结果。而且,基于深度学习的语音降噪方法训练的语音降噪模型往往比较大,计算复杂度高,消耗的资源比较多,从而难以保证语音降噪的实时性。
[0080]
基于上述问题,本技术实施例提供了一种语音降噪方法,本技术实施例提供的语音降噪方法可以保证较小的计算量,进而降低系统时延,满足实时性的要求,对噪声达到较好的消除效果。
[0081]
接下来对本技术实施例提供的语音降噪方法进行详细的解释说明。
[0082]
图1是本技术实施例提供的一种语音降噪方法的流程图。请参考图1,该方法包括如下步骤。
[0083]
步骤101:获取第一语音信号,该第一语音信号包括多个频点信号。
[0084]
其中,该第一语音信号是经过傅里叶变换后的频域上的一帧语音信号,以便于后续在频域上对第一语音信号进行处理,进而得到该第一语音信号的噪声估计值。
[0085]
上述得到第一语音信号的实现过程可以为:终端采集一段语音信号,将该语音信号进行分帧处理,之后再对处理过的语音信号进行傅里叶变换,以得到频域上的语音信号。
[0086]
由于用户发出的语音信号在一小段时间内基本不变,也即是,用户发出的语音信号具有短时平稳性。为了后续便于说明,将用户发出的语音信号称之为有效信号,那终端采集的语音信号则包括有效信号和噪声信号。如图2所示,图2中的短暂平稳的语音信号即为用户发出的信号,也即是有效信号,两段有效信号中的小幅度的瞬态信号即为噪声信号。这样,可以把语音信号分为一些短段(也即是帧)来进行处理。一般采用交叠分帧的方法,具体在划分时,将相邻两帧的语音信号之间重叠一部分,这样前一帧语音信号和后一帧语音信号之间有一定的交叠,这是为了使帧与帧之间平滑过渡,保持其连续性。
[0087]
在得到分帧后的语音信号后,再对分帧后的每一帧语音信号都进行傅里叶变换以得到每一帧语音信号在频域上的语音信号。
[0088]
其中,第一语音信号是该频域上的语音信号中的任一帧信号,对该语音信号中的每一帧按照本技术实施例中的方法来进行处理,即可得到降噪后的语音信号。本技术实施例以第一语音信号为例进行说明。
[0089]
另外,本技术实施例在得到频域上的语音信号时,还可以得到该语音信号的功率谱,进而得到该语音信号中每个频点信号的平均功率。
[0090]
其中,得到该语音信号的功率谱的实现过程可以为:在对分帧处理后的第一语音信号进行傅里叶变换时,可以得到该第一语音信号的幅度频谱和相位频谱,该第一语音信号的幅度频谱的平方所排成的序列即为该第一语音信号的功率谱。
[0091]
在得到该第一语音信号的功率谱,也即是,得到该第一语音信号中每个频点信号的信号功率,由于用户发出的语音信号在频域上通常有多个同一频率的信号,因此同一频点信号可能有多个信号功率。因此可以将同一频点信号的信号功率求和后再与同一频点信号的信号功率的个数作商,得到的值即为该第一语音信号中对应的频点信号的平均功率。
[0092]
对该第一语音信号中的每个频点信号都进行该操作,即可得到该第一语音信号中每个频点信号的信号功率,该信号功率指的是相应频点信号的平均功率。
[0093]
基于上述确定第一语音信号的平均功率的方法,本技术实施例还可以获取第二语音信号,该第二语音信号为第一语音信号的上一帧语音信号,并确定第一语音信号和第二语音信号之间的平均功率变化量,如果平均功率变化量超过变化量阈值,则执行下述步骤102的操作。
[0094]
其中,第一语音信号和第二语音信号也即是当前帧信号和上一帧信号,确定第一语音信号和第二语音信号之间的平均功率变化量,也即是,计算第一语音信号的平均功率和第二语音信号的平均功率之间的差值。
[0095]
由于第一语音信号和第二语音信号中都分别包括多个频点信号,每个频点信号对应一个平均功率,因此,需要先确定第一语音信号和第二语音信号的平均功率,之后再计算第一语音信号和第二语音信号的平均功率之间的差值。
[0096]
作为一种示例,在确定第一语音信号与第二语音信号的平均功率时,可以先分别计算第一语音信号和第二语音信号中的所有频点信号的平均功率的均值,将该均值再分别作为第一语音信号和第二语音信号的平均功率。
[0097]
作为另一种示例,在确定第一语音信号与第二语音信号的平均功率时,可以分别将第一语音信号和第二语音信号中的频点信号的平均功率最大值作为第一语音信号和第二语音信号的平均功率。或者分别将第一语音信号和第二语音信号中的频点信号的平均功率最小值作为第一语音信号和第二语音信号的平均功率。
[0098]
当然,确定第一语音信号和第二语音信号的平均功率的方式也可以为其他方式,本技术实施例对此不作限定。
[0099]
在确定第一语音信号和第二语音信号之间的平均功率变化量后,若第一语音信号和第二语音信号之间的平均功率变化量超过变化量阈值,即认为该第一语音信号发生噪声突变,此时则基于下述步骤102对该第一语音信号进行处理,确定递归平均算法中的平滑因子,进而得到该第一语音信号的噪声估计值。该变化量阈值可以事先设置,本技术实施例对此不做限定。
[0100]
若第一语音信号和第二语音信号之间的平均功率变化量未超过变化量阈值,即认为该第一语音信号未发生噪声突变,此时可以基于参考平滑因子,通过步骤103得到该第一语音信号的噪声估计值,该参考平滑因子为0.85。步骤103的实现过程在后续详细阐述。
[0101]
此外,本技术实施例还可以在获取第一语音信号后,不考虑其是否发生噪声突变,直接对该第一语音信号按照步骤102的方法确定递归平均算法中的平滑因子。步骤102的实现过程后续详细阐述。
[0102]
步骤102:基于多个频点信号中每个频点信号的信号功率,确定递归平均算法中的平滑因子。
[0103]
其中,由于固定的平滑因子值过大时会对后续语音信号中的有效信号造成影响,过小时会造成后续确定噪声估计值的不准确。因此,步骤102中将平滑因子转变为可变参数,不同于固定的平滑因子的值,在后续确定第一语音信号的噪声估计值时,可以提高噪声估计的准确性。
[0104]
在一些实施例中,步骤102的实现过程可以分为以下两个步骤:
[0105]
步骤一:基于每个频点信号的信号功率,确定每个频点信号的激活函数值,该激活函数值位于目标数值区间内。
[0106]
在步骤一中,确定每个频点信号的激活函数值的实现过程可以为:基于每个频点信号的信号功率,确定每个频点信号的初始激活函数值。基于每个频点信号的初始激活函数值,确定每个频点信号的激活函数值。
[0107]
其中,确定每个频点信号的初始激活函数值所使用的激活函数可以为sigmoid函数,该函数的数学表达式为:其中,l表示频点,x(l)为相应频点信号的信号功率,ps(l)为相应频点信号的初始激活函数值。通过该sigmoid函数,可以得到每个频点信号的初始激活函数值,该初始激活函数值位于0-1范围内。
[0108]
当然,确定每个频点信号的初始激活函数值所使用的激活函数也可以为其他类型的函数,如双曲正切tanh函数等,本技术实施例对此不作限定。
[0109]
在得到每个频点信号的初始激活函数值后,可以通过下述公式来确定每个频点信号的激活函数值:
[0110][0111]
其中,为每个频点信号的激活函数值,ps(l)为每个频点信号的初始激活函数值,kp为-2,a为14,c为11,其中,激活函数值位于0-1范围内,也即是目标数值区间在0-1范围内。
[0112]
在得到每个频点信号的激活函数值后,即可进行下述步骤二的操作。
[0113]
步骤二:基于多个频点信号中每个频点信号的激活函数值,确定平滑因子。
[0114]
其中,步骤二的实现过程可以为:基于多个频点信号中每个频点信号的激活函数值,通过第一公式确定平滑因子,该第一公式为:
[0115][0116]
其中,为平滑因子,αd为固定数值,为各个频点信号的激活函数值中的最小值。
[0117]
其中,αd为0.85,在确定第一语音信号中的频点信号的激活函数值中的最小值后确定第一公式中与0.95的最小值,将最小值确定为平滑因子
[0118]
当然,上述步骤102在确定平滑因子时,还可以在得到各个频点信号的激活函数值中的最小值后,根据该公式直接来确定平滑因子
[0119]
步骤103:基于平滑因子,通过递归平均算法对第一语音信号进行噪声估计,得到第一语音信号的噪声估计值,该噪声估计值指示第一语音信号中噪声信号的功率。
[0120]
其中,在对第一语音信号进行噪声估计,得到噪声估计值时,本技术实施例是在imcra(improved minima controlled recursive averaging,改进的最小值控制递归平均算法)的基础上提高对突变噪声的时延,让其在发生噪声突变的情况下能够快速收敛算法时延,从而更好地追踪噪声。
[0121]
在一些实施例中,步骤103的实现过程可以分为以下几个步骤:
[0122]
步骤1:基于平滑因子对第一语音信号进行平滑处理,得到第一语音信号的语音存在性概率,该语音存在性概率指示第一语音信号中有效语音信号存在的概率。
[0123]
其中,步骤1的实现过程可以为:对第一语音信号进行第一次平滑处理,得到第一语音信号的平滑功率谱。通过目标搜索窗个数,对平滑功率谱进行搜索,以确定平滑功率谱中的最小值,目标搜索窗个数小于参考数值8。基于平滑功率谱中的最小值,确定第一语音信号的语音存在性概率。
[0124]
另外,还可以同时基于目标搜索窗个数和目标搜索窗窗长,来确定平滑功率谱中的最小值。其中,目标搜索窗的个数为2-3个,目标搜索窗的窗长是基于上述步骤101中确定第一语音信号是否发生噪声突变而确定的,在第一语音信号未发生噪声突变时,目标搜索窗的窗长为第一窗长,在第一语音信号发生噪声突变时,目标搜索窗的窗长为第二窗长。
[0125]
在第一语音信号发生噪声突变时,目标搜索窗的窗长会比较小,因此,本技术实施例中的第一窗长大于第二窗长。示例的,第二窗长可以设置为3-5。
[0126]
需要说明的是,步骤1中对第一语音信号进行平滑处理的实现过程与imcra算法不同的是,步骤1中在对平滑功率谱进行搜索时,目标搜索窗的个数和目标搜索窗的窗长都较imcra算法中的搜索窗的个数和窗长明显减少,这样,可以有效减小确定平滑功率谱的最小值时的时延,进而提高噪声估计的实时性。
[0127]
在得到平滑功率谱中的最小值之后,基于平滑功率谱中的最小值,确定第一语音信号的语音存在性概率可以参考imcra算法,本技术实施例对此不作限定。
[0128]
在得到语音存在性概率后,即可进行如下步骤2。
[0129]
步骤2:基于语音存在性概率确定第一语音信号的初始噪声估计值。
[0130]
其中,步骤2确定第一语音信号的初始噪声估计值的实现过程可以参考imcra算法,本技术实施例对此不作限定。
[0131]
由于噪声环境的非平稳性,在得到该初始噪声估计值后,通常需要对该初始噪声估计值进行偏差补偿。此时,可以基于之前步骤中计算得出的语音存在性概率在步骤3中对不同频点进行不同程度的偏差补偿。
[0132]
步骤3:在语音存在性概率指示第一语音信号中存在有效语音信号时,根据第一补偿因子对初始噪声估计值进行偏差补偿,得到噪声估计值。在语音存在性概率指示第一语音信号中不存在有效语音信号时,根据第二补偿因子对初始噪声估计值进行偏差补偿,得到噪声估计值。其中,第一补偿因子小于第二补偿因子。
[0133]
其中,本技术实施例中的补偿因子为动态可变参数,当语音存在时,补偿因子应较
小以避免噪声的过估计,造成语音失真。当频点语音不存在时,即当前频点为噪声帧,此时的补偿因子应较大以减少噪声的残留。
[0134]
因此,在语音存在性概率指示第一语音信号中存在有效语音信号时,此时的第一补偿因子应较小。在语音存在性概率指示第一语音信号中不存在有效语音信号时,此时的第一补偿因子应较大。
[0135]
作为一种示例,通过下述公式来确定第一补偿因子和第二补偿因子:
[0136]
η(k,l)=ω
·
[σ (1-p(k,l))]
[0137]
其中,p(k,l)为语音存在性概率,η(k,l)为补偿因子。
[0138]
当语音存在时,语音存在性概率p(k,l)=0,此时,ω为1.47,σ为0,因此,此时的第一补偿因子为1.47。
[0139]
当语音不存在时,语音存在性概率p(k,l)=1,此时,ω为1.47,σ为5,因此,此时的第二补偿因子为1.47
×
5=7.35。
[0140]
在得到补偿因子η(k,l)后,即可通过公式来动态调节噪声估计值。其中,为初始噪声估计值,为补偿后的噪声估计值。
[0141]
当然,在对初始噪声估计值进行偏差补偿时,还可以直接通过该公式来确定噪声估计值,其中,ω为1.47。
[0142]
图3是第一语音信号经过噪声估计后的噪声信号的示意图,如图3所示,可以看到该噪声信号都为瞬态信号。
[0143]
步骤104:基于噪声估计值对第一语音信号进行降噪处理。
[0144]
在得到第一语音信号的噪声估计值后,此时,可以通过log-mmse(log-minimum mean square error,对数-最小均方误差)增益函数g
mmse
(k,l)对第一语音信号进行降噪处理,也即是语音增强处理,得到降噪后的语音频谱。
[0145]
在得到降噪后的语音频谱后,再将降噪后的语音频谱中的每一帧语音信号进行傅里叶逆变换和反分帧处理得到连续的时域上的有效语音信号。
[0146]
图4是第一语音信号中去除噪声信号后的有效语音信号,可以看到与图2中的带噪语音信号相比,图4中的语音信号中的噪声信号消除的很干净。
[0147]
下面以图5为例,对上述步骤101-104进一步解释说明。
[0148]
图5是本技术实施例提供的一种语音降噪方法的流程图。如图5所示,首先对带噪语音信号进行分帧处理,将处理后的每一帧语音信号通过傅里叶变换转换到频域上,以得到频域上的每一帧语音信号的多个频点信号。对于任一帧语音信号,在得到频域上的该语音信号时,还可以得到该语音信号的功率谱,进而得到该语音信号中每个频点信号的平均功率。比较当前帧语音信号和上一帧语音信号平均功率变化量与变化量阈值之间的大小来确定当前帧的语音信号是否出现噪声突变。
[0149]
若当前帧语音信号出现噪声突变,则基于该语音信号的频点信号的信号功率确定平滑因子,进而对该语音信号进行平滑处理,以提高噪声估计的准确性。得到初始噪声估计值。若当前帧语音信号未出现噪声突变,则基于固定的平滑因子值对该语音信号进行平滑处理,以减小噪声估计时的时延。
[0150]
在基于平滑因子得到初始噪声估计值后,利用平滑处理过程中产生的语音存在性
概率对初始噪声估计值进行偏差补偿,修正该语音信号的噪声估计值。之后再基于log-mmse增益函数对该语音信号的噪声估计值进行处理,以得到降噪后的语音频谱,再对该语音频谱进行傅里叶逆变换和反分帧处理,最终得到降噪后的语音信号。
[0151]
本技术实施例使用一种瞬态噪声的检测机制检测噪声后修改噪声的估计方式,从而更好的跟踪瞬态噪声。在本技术实施例中,通过对比第一语音信号和第二语音信号的平均功率变化量与变化量阈值的大小,确定第一语音信号是否发生噪声突变。在第一语音信号发生噪声突变的情况下,确定递归平均算法中的平滑因子,并基于该平滑因子,通过递归平均算法对该第一语音信号进行噪声估计。在得到该第一语音信号的初始噪声估计值时,通过自适应的方式去调整噪声估计值,防止噪声过估计或欠估计,进而提高噪声估计的准确性。本技术实施例提供的语音降噪方法计算复杂度低,消耗资源比较少,减少了该算法的时延,保证了该算法的实时性。
[0152]
图6是本技术实施例提供的一种语音降噪装置的结构示意图,该语音降噪装置可以由软件、硬件或者两者的结合实现成为计算机设备的部分或者全部,计算机设备可以为图7所示的终端或者图8所示的服务器。请参考图6,该装置包括:第一获取模块601、第一确定模块602、噪声估计模块603和处理模块604。
[0153]
第一获取模块601,用于获取第一语音信号,第一语音信号包括多个频点信号;
[0154]
第一确定模块602,用于基于多个频点信号中每个频点信号的信号功率,确定递归平均算法中的平滑因子;
[0155]
噪声估计模块603,用于基于平滑因子,通过递归平均算法对第一语音信号进行噪声估计,得到第一语音信号的噪声估计值,噪声估计值指示第一语音信号中噪声信号的功率;
[0156]
处理模块604,用于基于噪声估计值对第一语音信号进行降噪处理。
[0157]
可选地,第一确定602模块,包括:
[0158]
第一确定子模块,用于基于每个频点信号的信号功率,确定每个频点信号的激活函数值,激活函数值位于目标数值区间内;
[0159]
第二确定子模块,用于基于多个频点信号中每个频点信号的激活函数值,确定平滑因子。
[0160]
可选地,第二确定子模块,用于:
[0161]
基于多个频点信号中每个频点信号的激活函数值,通过第一公式确定平滑因子,第一公式为:
[0162][0163]
其中,为平滑因子,αd为固定数值,为各个频点信号的激活函数值中的最小值。
[0164]
可选地,噪声估计模块603,包括:
[0165]
处理子模块,用于基于平滑因子对第一语音信号进行平滑处理,得到第一语音信号的语音存在性概率,语音存在性概率指示第一语音信号中有效语音信号存在的概率;
[0166]
第三确定子模块,用于基于语音存在性概率确定第一语音信号的初始噪声估计值;
unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器701可以在集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器701还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
[0183]
存储器702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器702还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器702中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器701所执行以实现本技术中方法实施例提供的语音降噪方法。
[0184]
在一些实施例中,终端700还可选包括有:外围设备接口703和至少一个外围设备。处理器701、存储器702和外围设备接口703之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口703相连。具体地,外围设备包括:射频电路704、触摸显示屏705、摄像头706、音频电路707、定位组件708和电源709中的至少一种。
[0185]
本领域技术人员可以理解,图7中示出的结构并不构成对终端700的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
[0186]
图8是本技术实施例提供的一种服务器的结构示意图。服务器800包括中央处理单元(cpu)801、包括随机存取存储器(ram)802和只读存储器(rom)803的系统存储器804,以及连接系统存储器804和中央处理单元801的系统总线805。服务器800还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(i/o系统)806,和用于存储操作系统813、应用程序814和其他程序模块815的大容量存储设备807。
[0187]
基本输入/输出系统806包括有用于显示信息的显示器808和用于用户输入信息的诸如鼠标、键盘之类的输入设备809。其中显示器808和输入设备809都通过连接到系统总线805的输入输出控制器810连接到中央处理单元801。基本输入/输出系统806还可以包括输入输出控制器810以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器810还提供输出到显示屏、打印机或其他类型的输出设备。
[0188]
大容量存储设备807通过连接到系统总线805的大容量存储控制器(未示出)连接到中央处理单元801。大容量存储设备807及其相关联的计算机可读介质为服务器800提供非易失性存储。也就是说,大容量存储设备807可以包括诸如硬盘或者cd-rom驱动器之类的计算机可读介质(未示出)。
[0189]
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、eprom、eeprom、闪存或其他固态存储其技术,cd-rom、dvd或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器804和大容量存储设备807可以统称为存储器。
[0190]
根据本技术的各种实施例,服务器800还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器800可以通过连接在系统总线805上的网络接口单元811连接到网络812,或者说,也可以使用网络接口单元811来连接到其他类型的网络或远程计
算机系统(未示出)。
[0191]
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由cpu执行。
[0192]
在一些实施例中,还提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中语音降噪方法的步骤。例如,所述计算机可读存储介质可以是rom、ram、cd-rom、磁带、软盘和光数据存储设备等。
[0193]
值得注意的是,本技术实施例提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
[0194]
应当理解的是,实现上述实施例的全部或部分步骤可以通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。所述计算机指令可以存储在上述计算机可读存储介质中。
[0195]
也即是,在一些实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所述的语音降噪方法的步骤。
[0196]
应当理解的是,本文提及的“至少一个”是指一个或多个,“多个”是指两个或两个以上。在本技术实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,为了便于清楚描述本技术实施例的技术方案,在本技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
[0197]
以上所述为本技术提供的实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献