本发明涉及一种声音降噪算法及其系统,尤其涉及一种适用于人工耳蜗或助听器的声音降噪算法及其系统。
背景技术:
人工耳蜗是目前世界公认的能使双侧重度或极重度感音神经性耳聋患者恢复听觉的唯一有效方法及装置。现有的人工耳蜗运作流程为:声音先由麦克风采集转换为电信号,经过特殊的数字化处理,再按照一定的策略编码,通过载在耳后的发射线圈传送到体内,植入体的接收线圈感应到信号后,经过解码芯片解码,使植入体的刺激电极产生电流,从而刺激听神经产生听觉。由于使用环境的限制,声音中必然掺杂着环境噪声,需要对声音信号进行一定的降噪处理,以达到最佳的听觉效果。
技术实现要素:
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种声音降噪算法及其系统,其能实时侦测环境噪声进而对声音信号进行降噪处理。
为实现上述目的,本发明提供了一种声音降噪算法,其包括如下步骤:(a)通过wola分析滤波器组将声音信号帧从初始时域信号转换成初始频域信号;(b)计算初始频域信号各频带的能量值,得到相应的初始能量谱;(c)将初始能量谱的多个频带合并至一定频带数量的新能量谱,并转为db值;同时,首先根据初始能量谱计算能量特征值,并转为db值,其次利用能量特征值选取噪声帧,最后计算最近一定数量的连续噪声帧的平均能量谱作为当下的噪声能量谱;(d)利用谱减法得到初始增益;(e)将初始增益扩展至与初始频域信号频带数对应的个数,作为最终增益;(f)对初始频域信号各频带施加对应的最终增益,获得新频域信号;(g)通过wola分析的反向操作wola合成函数将新频域信号变换到新时域信号,获得降噪后的声音信号帧。
在步骤(c)中,合并的方式为:首先根据需求制定分配表,然后利用分配表选大的方式合并。
在步骤(c)中,能量特征值为初始能量谱各频带能量值的平均值。
在步骤(c)中,噪声帧的选取方法:设置一个波谷曲线,当能量特征值高于波谷曲线时,波谷曲线开始线性增长,当能量特征值低于波谷曲线时,波谷曲线会持续更新,并跟随能量特征值下降,波谷曲线的局部谷点对应时间点的声音信号帧为噪声帧。
在步骤(d)中,首先计算出当下声音信号帧的新能量谱与当下噪声能量谱的差值,得到信噪比,然后将信噪比与设定的阈值做对比,当信噪比小于阈值时,将信噪比减去阈值再乘以增益倍数得到db增益,将db增益转成线性后,得到初始增益,当信噪比大于等于阈值时,db增益设为0,即初始增益为1。进一步,低频频带中设增益倍数为2,高频频带中设增益倍数为1。
本发明还提供了一种声音降噪系统,包括wola分析程序模块,初始能量谱计算程序模块,增益参数计算程序模块,增益计算程序模块,增益扩展程序模块,增益施加程序模块,及其wola合成程序模块,其中,该wola分析程序模块进行wola分析处理,该初始能量谱计算程序模块进行初始能量谱计算处理,该增益参数计算程序模块进行增益参数计算处理,其包括新能量谱计算程序模块及其噪声能量谱计算程序模块,该增益计算程序模块进行增益计算处理,该增益扩展程序模块进行增益扩展处理,该增益施加程序模块进行增益施加处理,该wola合成程序模块进行wola合成处理。
本发明声音降噪算法及其系统通过实时侦测环境噪声进而对声音信号进行降噪处理,提高了在噪声环境下声音信号中语音的清晰度、识别率,从而改善了使用者的使用体验,而且可适用于低功耗的处理器,应用场景广泛。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是本发明声音降噪算法的流程图。
图2是本发明噪声能量谱计算的流程图。
图3是本发明动态追踪噪声的示意图。
图4是本发明信噪比对db增益的映射关系图。
具体实施方式
如图1所示,本发明提供了一种声音降噪算法,其包括wola(weightedoverlapadd)分析,初始能量谱计算,增益参数计算,增益计算,增益扩展,增益施加及其wola合成七个步骤。
wola分析:通过wola分析滤波器组将声音信号帧从初始时域信号转换成初始频域信号,其中,wola分析滤波器组是dft(discretefouriertransform)滤波器组的高效实现方式,可将声音信号分解为从0到频率fs/2不同频率的窄带信号,获得声音信号帧频谱的数据,适合对音频信号进行快速处理。
初始能量谱计算:计算初始频域信号各频带的能量值,得到相应的能量分布,即初始能量谱。
增益参数计算包括新能量谱计算及其噪声能量谱计算。
新能量谱计算:为了减轻后续谱减法中增益计算的运算量,根据需求制定分配表,利用分配表选大的方式,将初始能量谱的多个频带合并至一定频带数量的新能量谱,并转为db值,为后续谱减法做准备。
如图2所示,噪声能量谱计算:首先能量特征值计算,其次噪声帧判断,最后噪声能量谱更新。
能量特征值计算:取初始能量谱各频带能量值的平均值作为声音信号帧的能量特征值,并转为db值,后续用能量特征值判断声音信号帧是否为无语音的噪声帧。
噪声帧判断:采用能量特征值曲线的谷底追踪算法,动态追踪噪声,类似于rc电路中信号包络/峰值侦测的概念,即,当瞬间输入电压大于需要供应电压时,电容开始充电,反之,当电压下降时,电容会进入放电循环,设置一个波谷曲线,当声音信号帧的能量特征值高于波谷曲线时,波谷曲线开始线性增长(对应电容放电原理),当声音信号帧的能量特征值低于波谷曲线时,波谷曲线会持续更新,并跟随能量特征值下降(对应电容充电原理),谷底追踪算法能准确追踪声音信号中能量特征值的变化趋势及谷底区域。
环境噪声的能量特征虽然会随时间变化,但相较于纯净语音信号,平均能量一般较低,虽然环境噪声平时和语音相容在一起,但语音是有间隙和停顿的,如果我们能够判断当下声音信号帧的能量特征值曲线是否处于整体趋势的谷底区,便可追踪语音的间隙或停顿,知道此声音信号帧是否为无语音的噪声帧。
如图3所示,实线为声音信号能量特征值根据时间的变化,整体趋势上数值突增的部分为包含语音信息的部分;虚线为波谷曲线根据时间的变化,黑点代表波谷曲线的局部谷点,即追踪到的能量特征值的谷底区域,其对应时间点的声音信号帧即是无语音的噪声帧。
噪声能量谱更新:计算最近一定数量的连续噪声帧的平均能量谱作为当下的噪声能量谱,比如,设置多个缓冲器,每个缓冲器负责储存一个噪声帧的能量谱,如果当下声音信号帧被判断为噪声帧,最早被更新的缓冲器就会换为储存当下声音信号帧的能量谱,最早被更新的缓冲器由一个缓冲器指针负责追踪。
增益计算:利用谱减法得到降噪用的施加于初始频域信号的初始增益,首先计算出当下声音信号帧的新能量谱与当下噪声能量谱的差值,得到信噪比,然后将信噪比与设定的阈值做对比,当信噪比小于阈值时,根据信噪比对db增益的映射关系式得到db增益,即信噪比减去阈值再乘以增益倍数得到db增益,将db增益转成线性后,得到初始增益,当信噪比大于等于阈值时,db增益设为0,即初始增益为1。
进一步,如图4所示,实线的斜率为1,密集点线的斜率为2,稀疏点线的斜率为4,设定阈值为10db,当信噪比超过10db时,代表声音清楚,背景噪声较低,初始增益为1,即不对当下声音信号帧做增益以抑制噪声,除此之外,可以根据需求选取增益倍数,以加强噪声抑制力度,倍数的较佳值为1至4,由于高低频频带的能量有所差异,在一般语音中,低频中的能量会远高于高频中的能量,因此在嘈杂环境下,如果对高频通道的增益倍数设定为4,则会因为压制过强,导致声音失真,因此对于高频增益倍数较佳值为1至2。
增益扩展:利用分配表反向填空的方式,将计算出的初始增益扩展至与初始频域信号频带数对应的个数,作为最终增益,供之后增益施加时直接使用。
增益施加:对初始频域信号各频带施加对应的最终增益,获得新频域信号。
wola合成:通过wola分析的反向操作wola合成函数将新频域信号变换到新时域信号,获得降噪后的声音信号帧。
以声音信号频率fs=16khz,帧长64即4ms一帧为例,进一步说明该声音降噪算法。
wola分析:
将初始时域信号转换为从0到fs/2=8000hz不同频率的窄带信号,获得128个频带的初始频域信号,每个频带频宽为8000/128=62.5hz:
其中,
初始能量谱计算:
计算初始频域信号的初始能量谱:
新能量谱计算:
根据人工耳蜗电极的个数,比如22个,制定分配表,利用分配表选大的方式,将128个频带的初始能量谱压缩合并至22个频带的新能量谱,比如,分配表中初始能量谱
能量特征值计算:
取128个频带的初始能量谱各频带能量值的平均值作为能量特征值,并转为db值:
噪声帧判断:
设置波谷曲线trough(n),以进行能量特征值
随时间推移,n增加,会出现三种情况:
1)
在碰到疑似为波谷曲线新局部谷点的区域前,波谷曲线都会线性上升(即图3中虚线斜率为正数的部分):
t=t+1,
t随声音信号帧变化而增加,在trough(n)不上升时归零,tau为时间系数,取值1440;
2)
判断波谷曲线即将到达新局部谷点,让trough(n)跟随
3)
在trough(n)下降的过程中ctrough=0,检测到
噪声能量谱更新:
设置4个1x22的噪声缓冲器buffer0-buffer3,每个缓冲器负责储存一个噪声帧的能量谱,噪声能量谱:
增益计算:
利用谱减法得到降噪用的施加于初始频域信号的初始增益,设定阈值为10db,
低频频带中设增益倍数为2:
高频频带中设增益倍数为1:
增益扩展:
利用分配表反向填空的方式,将计算出的22个初始增益扩展至128个,分配表中初始能量谱
增益施加:
对初始频域信号x(k)各频带施加对应的最终增益
wola合成:
将新频域信号y(k)变换到新时域信号,获得降噪后的声音信号帧。
一种声音降噪系统包括wola分析程序模块,初始能量谱计算程序模块,增益参数计算程序模块,增益计算程序模块,增益扩展程序模块,增益施加程序模块,及其wola合成程序模块,其中,该wola分析程序模块进行wola分析处理,该初始能量谱计算程序模块进行初始能量谱计算处理,该增益参数计算程序模块进行增益参数计算处理,具体为新能量谱计算处理及其噪声能量谱计算处理,该增益计算程序模块进行增益计算处理,该增益扩展程序模块进行增益扩展处理,该增益施加程序模块进行增益施加处理,该wola合成程序模块进行wola合成处理,wola分析处理、初始能量谱计算处理、增益施加处理及其wola合成处理均可由可配置信号处理加速器完成,新能量谱计算处理、噪声能量谱计算处理、增益计算处理及其增益扩展处理均可由数字信号处理器完成,两个处理器各司其职、相互配合,降低单个处理器的计算负载,提高了运算效率。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。