一种基于自主学习的啸叫抑制方法及扩声系统与流程

文档序号:18703657发布日期:2019-09-17 23:19阅读:197来源:国知局
一种基于自主学习的啸叫抑制方法及扩声系统与流程

本发明属于扩声应用领域,涉及一种基于自主学习的啸叫抑制方法及扩声系统。



背景技术:

参照图1所示,声反馈是音频信号经过扬声器系统输出,由传声器拾音后由功率放大器放大后再由扬声器系统输出,形成扬声器系统-传声器-放大器-扬声器系统之间的正反馈。在满足振幅平衡和相位平衡的条件下,声反馈会导致整个闭环系统自激振荡产生幅度不断增加的某一频率信号,引起类似“嗡嗡”或“呜呜”等啸叫声。啸叫声不仅会造成输出信号失真,恶化主观听音感受,阻碍正常的语音交流,同时有可能会因为输出功率过高而烧坏功率放大器,造成器件损坏。因此在会议、车内一三排通话等扩声系统中都需要加入啸叫抑制陷波器参数更新模块,促使系统可以正常工作。

常见的啸叫抑制方法主要有:(1)移频移相;(2)陷波法;(3)自适应滤波器。其中,移频移相对系统音质损伤较大,且提高增益有限;自适应滤波器理论上可以提高无穷大增益,且语音损伤较小,但其对系统非线性敏感度较高,且计算复杂度高,降低成本比较困难。而陷波法在语音损伤和计算复杂度之间取得了一个较好的平衡,因此被广泛应用。

参照图2所示,陷波法包括啸叫检测和抑制两部分,在抑制中主要是通过iir陷波器来对啸叫频率点进行陷波。一般陷波法中,iir陷波器由固定iir陷波器和动态iir陷波器组成,其中固定陷波器参数仍需要调音工程师根据现场声学环境进行手动调试。



技术实现要素:

本发明的目的是提供一种基于自主学习的啸叫抑制方法及扩声系统,降低了在陷波法中需要手动调试的问题难度。

为达到上述目的,本发明采用的一种技术方案为:

一种基于自主学习的啸叫抑制方法,包括啸叫频率检测步骤和啸叫抑制陷波器参数更新步骤,所述啸叫抑制陷波器参数更新步骤包括第一阶段、第二阶段和第三阶段,第一阶段具体包括如下步骤:

a、若检测到啸叫频率,则按顺序设定各二阶iir陷波器的参数,同时更新啸叫频率可信度统计直方图;其中,所述iir陷波器包括预设n1个固定二阶iir陷波器和预设n2个动态二阶iir陷波器;该步骤中,按照顺序,检测到啸叫频率时,每次设定一个二阶iir陷波器的参数同时更新啸叫频率可信度直方图,然后再次检测到啸叫频率时,再设定下一个二阶iir陷波器的参数同时更新啸叫频率可信度直方图,以此类推;

b、当最后一个二阶iir陷波器参数更新完成时,如再检测到啸叫频率时,则从头开始按顺序覆盖二阶iir陷波器参数,重复执行步骤a,直至每个二阶iir陷波器参数都被覆盖过n0次,n0≥1;

第二阶段具体包括如下步骤:

c、获取啸叫频率可信度统计直方图的峰值,按照峰值大小进行排序,若峰值总个数np小于n1,则更新预设值△n=n1-np,n1new=n1-△n,n2new=n2+△n,提取前面最大的n1new个峰值大小区间,每个区间按照可信度权重计算二阶iir陷波器中心频率,按照峰值下降范围确定品质因数,按照可信度大小确定增益,根据中心频率、品质因数和增益确定n1new个固定二阶iir陷波器的参数;

第三阶段具体包括如下步骤:

d、保持n1new个固定二阶iir陷波器的参数不变,根据啸叫情况实时调整n2new个动态二阶iir陷波器的参数;其中,若检测到啸叫频率,则继续更新啸叫频率可信度直方图,若动态二阶iir陷波器中存在相应的啸叫频率点,则增加相应陷波器的衰减增益;若动态二阶iir陷波器不存在对应的啸叫频率,则查找最小衰减增益的动态二阶iir陷波器进行替换更新,若存在多个相同的最小衰减增益的动态二阶iir陷波器,则查找啸叫频率可信度直方图,将对应可信度数值最低的动态二阶iir陷波器进行替换。

优选地,所述步骤a中,更新啸叫频率可信度直方图的具体过程为:啸叫频率可信度直方图x轴为频率fre,间隔为1hz,假定系统采样率为fs,则其大小为其中为不大于原数值的最大整数,y轴为可信度数值,初始值设为0,检测到啸叫频率为fh,如果fh为整数,则相应频率处的可信度加1,如果不为整数,则在处分别增加可信度为其中为不小于原数值的最小整数。

优选地,所述步骤a中,设定各二阶iir陷波器的参数的具体过程为:所述iir陷波器的传递函数为其中,z-1、z-2为延时单元,b0,b1,b2为分子滤波器系数,a0,a1,a2为分母滤波器系数,假定品质因数为预先设定值q,中心频率fc为啸叫频率,增益g为预先设定值,根据品质因数q、中心频率fc及增益g计算所述二阶iir陷波器的传递函数的系数。

根据本发明的一个具体实施例,所述二阶iir陷波器的传递函数计算如下:

ω0=2*π*fc/fs

alpha=sin(ω0)/(2*q)

b0=1+alpha*a

b1=-2*cos(ω0)

b2=1-alpha*a

a0=1+alpha/a

a1=-2*cos(ω0)

a2=1-alpha/a。

优选地,所述步骤c中,在每一个二阶iir陷波器参数都已经被覆盖过no次以后,获取啸叫频率可信度直方图的可信度峰值,并以相邻峰值对应频率的几何平均值作为分界线,按峰值大小进行排序,提取前nlnew个峰值大小区间,每个区间按照可信度权重计算固定二阶iir陷波器中心频率其中ri为频率fi处的可信度;按照峰值下降范围确定品质因数fu和fl对应为可信度下降为峰值一半所对应的上下限频率;按照可信度大小确定增益。

更优选地,所述步骤c中,增益其中fac为区间可信度峰值对应的频率,α为可信度转为增益的比例系数。

优选地,步骤b中,只有当每个二阶iir陷波器被覆盖过n0次,才进入第二阶段,否则结束所述啸叫抑制陷波器参数更新

优选地,所述啸叫频率检测步骤具体包括:

a、对麦克风输入信号组帧y(t)=[y(t+p-m|)…y(t+p-1)]t并进行傅里叶变换,获取其短时傅里叶谱y(ω,t),其中m为每帧数据长度,p为每帧更新的数据长度,ω为频率,t为时间;

b、与上一帧短时傅里叶谱幅值进行相比,只保留大于上一帧谱幅值的ratio倍的频率成份;

c、对步骤b中保留的频率成份,针对短时傅里叶谱幅值大小进行排序,保留最大can_num个的幅值对应的候选频率成份其中1≤i≤can_num,并按短时傅里叶谱幅值从大到小顺序保存;

d、对上一步骤中保留的频率,逐个查找之前共qm帧中是否都存在当前帧的候选频率,如果存在,则保留此频率;如果查到最后一个候选频率仍不满足条件,则不存在啸叫频率点,啸叫检测结束;

e、对上一步骤中保留的频率,判断指标是否小于指定域值,如果小于域值则保留;如果查到最后一个频率仍不满足条件,则不存在啸叫频率点,啸叫检测结束;其中,

m为整数索引(m=1,…,qm),j为整数索引(第一个和第二个j=0,…,qm-1;第三个和第四个j=0,…,m-1),y为短时傅里叶谱;

f、对上一步骤中保留的频率,判断指标是否大于指定域值,如果大于域值则保留;如果查到最后一个频率仍不满足条件,则不存在啸叫频率点,啸叫检测结束;其中,

其中m为整数索引,例如,取值范围为[-3,3]区间内除0的整数数值;

g、如果上一步骤中存在多个保留频率,则只保留对应最大短时傅里叶谱幅值的啸叫频率,针对啸叫频率附近的区间,对原始信号进行czt(chirpz-transform)变换,细化频率,提高频率分辨率,挑选czt谱值最大的频率点作为啸叫频率。

具体地,所述步骤d-f的执行顺序为d、e、f或d、f、e或e、d、f或e、f、d或f、d、e或f、e、d。

本发明还采用如下技术方案:

一种扩声系统,包括麦克风驱动电路、dsp处理器以及扬声器驱动电路,所述dsp处理电路包括:

啸叫检测模块,其用于执行如所述的啸叫抑制方法的所述啸叫频率检测步骤;

啸叫抑制陷波器参数更新模块,其用于执行如所述的啸叫抑制方法的所述啸叫抑制陷波器参数更新步骤;

陷波器模块,其用于对啸叫频率进行滤波。

本发明采用以上方案,相比现有技术具有如下优点:

通过自主学习来确定特定部分啸叫频率点,将固定二阶iir陷波器的参数固化,这是由于在声学环境中,有一部分声学啸叫频率点相对来说是比较固定的,即可以通过使用固定二阶iir陷波器来去除这部分啸叫,固定二阶iir陷波器的参数在正式运行中是固定不变的。本发明的啸叫抑制方法利用可信度统计直方图数据,避免对固定二阶iir陷波器参数更新进行手动调试,同时也可以降低误检率,进一步提升防啸叫效果。

附图说明

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

图1为声反馈示意图;

图2为基于陷波法的声反馈示意图;

图3为陷波器的示意图;

图4为本发明的啸叫抑制方法的流程示意图;

图5为峰值区间示意图;

图6为本发明的扩声系统的框图。

具体实施方式

下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域的技术人员理解。在此需要说明的是,对于这些实施方式的说明用于帮助理解本发明,但并不构成对本发明的限定。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以互相结合。

本发明提供一种基于自主学习的啸叫抑制方法,该方法主要由啸叫频率检测步骤和啸叫抑制陷波器参数更新步骤组成。

参照图4所示的步骤1至7,啸叫频率检测步骤的具体过程如下。

1、对麦克风输入信号组帧y(t)=[y(t+p-m|)…y(t+p-1)]t并进行傅里叶变换,获取其短时傅里叶谱y(ω,t),其中m为每帧数据长度,p为每帧更新的数据长度,ω为频率,t为时间。

2、与上一帧短时傅里叶谱幅值进行相比,只保留大于上一帧谱幅值的ratio倍的频率成份,即需满足条件ynew(ω,t)>ratio*yold(ω,t),其中ratio取正数值,如取0.7~2之间。

3、对上述步骤2中剩下的频率成份,针对短时傅里叶谱幅值大小进行排序,保留最大can_num个的幅值对应的候选频率成份其中1≤i≤can_num,并按短时傅里叶谱幅值从大到小顺序保存下来。

4、对上述步骤3中,按短时傅里叶谱幅值大小的候选频率顺序,逐个查找之前共qm帧中是否都存在当前帧的候选频率,如果存在,则保留此频率,如果查到最后一个候选频率仍不满足条件,则不存在啸叫频率点,啸叫检测结束。

5、对上述步骤4中检测的频率进行imsd检测,即需要小于指定域值,如果小于域值则保留;如果查到最后一个频率仍不满足条件,则不存在啸叫频率点,啸叫检测结束。其中,的定义如下。

6、对上述步骤5中保留的频率进行pnpr检测,即需要大于指定域值,如果大于域值则保留;如果查到最后一个频率仍不满足条件,则不存在啸叫频率点,如果满足,则存在啸叫频率。其中,的定义如下。

7、如果步骤6中存在多个频率,则只保留对应最大短时傅里叶谱幅值的啸叫频率,针对啸叫频率附近的区间,对原始信号进行czt(chirpz-transform)变换,细化频率,提高频率分辨率,挑选czt谱值最大的频率点作为啸叫频率。

参照图3所示,二阶iir陷波器包括预设n1个固定二阶iir陷波器和预设n2个动态二阶iir陷波器,在图4的第一阶段至第二阶段中,固定二阶iir陷波器也当做动态二阶iir陷波器使用。

参照图4所示,啸叫抑制陷波器参数更新步骤的具体过程如下。

8、如果存在啸叫频率,则按顺序设定各二阶iir陷波器参数,同时更新啸叫频率可信度直方图。其中二阶iir陷波器采用二阶parametricnotchfilter,传递函数为z-1、z-2为延时单元,b0,b1,b2为分子滤波器系数,a0,a1,a2为分母滤波器系数,假定品质因数为预先设定值q,中心频率fc为啸叫频率,增益g为预先设定值。

ω0=2*π*fc/fs

alpha=sin(ω0)/(2*q)

b0=1+alpha*a

b1=-2*cos(ω0)

b2=1-alpha*a

a0=1+alpha/a

a1=-2*cos(ω0)

a2=1-alpha/a

其中,更新啸叫频率可信度的具体实现过程为:假定系统采样率为fs,啸叫频率分布数组fre为其中为求取小于原数值的最大整数,频率分辨率为1hz,保存的数值为可信度,初始值为0,检测到啸叫频率为fh,如果fh为整数,则相应频率处可信度加1,如果不为整数,则在处分别增加可信度为其中为大于原数值的最小整数。例如,假设啸叫频率为200.35hz,则200hz和201hz处的可信度分别增加(201-200.35)和(200.35-200)。

9、若按顺序已经更新完最后一个陷波器参数时,并再次检测到啸叫频率时,则从头开始按顺序覆盖二阶iir陷波器参数,重复执行步骤a,直至每个二阶iir陷波器参数都被覆盖过n0次。此时,第一阶段完成。

10、在每一个二阶iir陷波器都已经被覆盖过no次以后,获取啸叫频率可信度直方图的峰值,并以相邻峰值对应频率的几何平均值作为分界线,按峰值大小进行排序,若峰值总个数np小于n1,则更新预设值△n=n1-np,n1new=n1-△n,n2new=n2+△n,提取前n1new个峰值大小区间,如图5所示,每个区间按照可信度权重计算二阶iir陷波器中心频率其中ri为频率fi处的可信度。按照峰值下降范围确定品质因数fu和fl对应为可信度下降为峰值一半所对应的上下限频率,按照可信度大小确定增益其中fac为区间可信度峰值对应的频率,α为可信度转为增益的比例系数。系统第二阶段完成。

例如,某一峰值区间如表1所示。

表1

则对应该峰值区间的二阶iir陷波器的参数计算如下:

中心频率为:

品质因数为:

增益g为:5.2*α,α为可信度转为增益比例系数。

11、该步骤为系统第三阶段,这时候n1new个固定二阶iir陷波器参数不允许变化,n2new个动态二阶iir陷波器可以根据啸叫情况实时调整。

若检测到啸叫频率,则继续更新啸叫频率可信度直方图,如果动态二阶iir陷波器中存在相应的啸叫频率点,则增加相应陷波器的衰减增益;

若动态二阶iir陷波器不存在啸叫频率的陷波器,则查找最小衰减增益的二阶iir陷波器进行替换更新,如果存在多个相同的最小衰减增益的动态二阶iir陷波器,则查找啸叫频率可信度直方图,将对应可信度数值最低的动态二阶iir陷波器进行替换。

参照图6所示,一种扩声系统,包括麦克风驱动电路、dsp处理器以及扬声器驱动电路,所述dsp处理电路包括:

啸叫检测模块,其用于执行上述啸叫抑制方法的所述啸叫频率检测步骤;

啸叫抑制陷波器参数更新模块,其用于上述啸叫抑制方法的所述陷波器参数更新步骤;以及

陷波器模块,其用于对啸叫频率进行滤波。

相比于现有技术中的方法,上述啸叫抑制方法最大的优势在于在一般的声学环境中,总有一部分声学啸叫频率点相对来说比较固定的,即可以通过使用固定二阶iir陷波器来去除这部分啸叫,固定二阶iir陷波器参数在正式运行中是固定不变的,在本方法中,可以通过采用可信度统计直方图自动学习的方法来确定这部分啸叫频率点,固化固定iir滤波器参数,避免手动调试。

上述实施例只为说明本发明的技术构思及特点,是一种优选的实施例,其目的在于熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限定本发明的保护范围。凡根据本发明的精神实质所作的等效变换或修饰,都应涵盖在本发明的保护范围之内。

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