降低腔体共振影响的回声消除方法及装置
技术领域
本发明涉及音频处理技术领域,尤其涉及一种降低腔体共振影响的回声消除方法及装置。
背景技术
免提设备中回声严重影响通话质量,所以回声消除在免提设备系统中至关重要。但在一些免提设备中,如蓝牙音箱,如果麦克风附近的腔体没有设计为独立腔体与扬声器的共振腔分隔,或者麦克风腔体空间太大,容易导致麦克风采集到的声音发生共振,且共振峰频率处于语音频率区域,共振强度也过强,导致一般长度的自适应滤波器无法正确跟踪收敛。从而导致回声消除失效,严重影响通话质量。可以考虑使用更复杂的迭代步长算法,更长的滤波器长度可来解决此问题,但如此,会大幅度提高设备的整体成本。
发明内容
基于此,有必要针对传统技术中回声消除方法中自适应滤波器难以正确跟踪收敛的问题,提供一种新的,能够使现有技术中一般长度的自适应滤波器快速收敛降低腔体共振影响的回声消除方法及装置。
为实现本发明目的提供的一种降低腔体共振影响的回声消除方法,包括以下步骤:
采集送往扬声器的输出信号;
采集与所述输出信号相对应的由麦克风输入的输入信号;
分别计算所述输出信号的输出频谱和输出功率谱,以及所述输入信号的输入频谱和输入功率谱;
计算已定非共振区域范围内,对应频率下所述输入功率谱和所述输出功率谱的功率比值;
根据所述功率比值,对所述输入频谱对应的共振区域进行修正,得到修正输入频谱;
对所述修正输入频谱进行时域变换得到修正输入信号;
将所述修正输入信号减去自适应滤波器根据所述输出信号得到的回声预测信号,得到回声消除的输出信号。
作为一种降低腔体共振影响的回声消除方法的可实施方式,所述输入信号包括M点历史输入信号和M点当前输入信号;其中,当前帧的所述M点当前输入信号为下一帧输入信号的M点历史输入信号;
所述输出信号包括M点历史输出信号和M点当前输出信号;其中当前帧的所述M点当前输出信号为下一帧输入信号的M点历史输出信号;
计算所述输出信号的输出频谱和输出功率谱,以及所述输入信号的输入频谱和输入功率谱的步骤包括:
对所述输入信号和所述输出信号加窗后进行快速傅氏变换后,得到输入频谱和输出频谱;
对所述修正输入频谱进行时域变换得到修正输入信号的步骤包括:
对所述修正输入频谱加窗后进行快速傅氏逆变换后,得到修正输入信号;
其中,
所述修正输入信号为当前帧输入信号的M点历史输入信号对应的M点修正输入信号,和前一帧输入信号的M点当前输入信号对应的M点修正输入信号之和;
所述自适应滤波器根据所述输出信号的M点历史输出信号得到所述回声预测信号;
其中,M为大于0的整数。
作为一种降低腔体共振影响的回声消除方法的可实施方式,在步骤计算已定非共振区域范围内,对应频率下所述输入功率谱和所述输出功率谱的功率比值之前,还包括以下步骤:
判断所述输出功率谱在语音频率区域范围内的总能量是否超过预设能量;
若是,则执行所述计算已定非共振区域范围内,对应频率下所述输入功率谱和所述输出功率谱的功率比值的步骤;
若否,则将所述输入功率谱作为所述修正输入频谱,并继续执行所述对所述修正输入频谱进行时域变换得到修正输入信号的步骤。
作为一种降低腔体共振影响的回声消除方法的可实施方式,所述根据所述功率比值,对所述输入频谱进行修正,得到修正输入频谱,包括以下步骤:
判定所述输入功率谱和所述输出功率谱中对应频率比值超过所述功率比值预设数值的区域为共振区域;
将对应共振区域的输入频谱乘以修正系数,得到修正输入频谱。
作为一种降低腔体共振影响的回声消除方法的可实施方式,所述预设数值为所述平均比值的2.5倍;
所述修正系数的值为所述平均比值除以所述输入功率谱后,再除以所述输出功率谱得到的值。
基于同一发明构思的一种降低腔体共振影响的回声消除装置,包括输出信号采集模块、输入信号采集模块、功率谱计算模块、功率比值计算模块、修正模块、时域变换模块以及回声消除的输出信号确定模块;
所述输出信号采集模块,被配以采集送往扬声器的输出信号;
所述输入信号采集模块,被配置以采集与所述输出信号相对应的由麦克风输入的输入信号;
所述功率谱计算模块,被配置以分别计算所述输出信号的输出频谱和输出功率谱,以及所述输入信号的输入频谱和输入功率谱;
所述功率比值计算模块,被配置以计算已定非共振区域范围内,对应频率下所述输入功率谱和所述输出功率谱的功率比值;
所述修正模块,被配置以根据所述功率比值,对所述输入频谱对应的共振区域进行修正,得到修正输入频谱;
所述时域变换模块,被配置以对所述修正输入频谱进行时域变换得到修正输入信号;
所述回声消除的输出信号确定模块,被配置以将所述修正输入信号减去自适应滤波器根据所述输出信号得到的回声预测信号,得到回声消除的输出信号。
作为一种降低腔体共振影响的回声消除装置的可实施方式,所述输入信号包括M点历史输入信号和M点当前输入信号;其中,当前帧的所述M点当前输入信号为下一帧输入信号的M点历史输入信号;
所述输出信号包括M点历史输出信号和M点当前输出信号;其中,当前帧的所述M点当前输出信号为下一帧输入信号的M点历史输出信号;
所述功率谱计算模块对所述输入信号和所述输出信号加窗后进行快速傅氏变换后,得到输入频谱和输出频谱;
所述时域变换模块对所述修正输入频谱加窗后进行快速傅氏逆变换后,得到修正输入信号;
所述修正输入信号为当前帧输入信号的M点历史输入信号对应的M点修正输入信号,和前一帧输入信号的M点当前输入信号对应的M点修正输入信号之和;
所述自适应滤波器根据所述输出信号的M点历史输出信号得到所述回声预测信号;
其中,M为大于0的整数。
作为一种降低腔体共振影响的回声消除装置的可实施方式,还包括总能量判断模块,被配置以判断所述功率谱计算模块计算出的所述输出功率谱在语音频率区域范围内的总能量是否超过预设能量,若是,则执行所述功率比值计算模块;若否,则将所述输入功率谱作为所述修正输入频谱,并执行所述时域变换模块。
作为一种降低腔体共振影响的回声消除装置的可实施方式,所述修正模块包括共振区域判断子模块及系数修正子模块;
所述共振区域判断子模块,被配置以判定所述输入功率谱和所述输出功率谱中对应频率比值超过所述功率比值预设数值的区域为共振区域;
所述系数修正子模块,被配置以将对应共振区域的输入频谱乘以修正系数,得到修正输入频谱。
作为一种降低腔体共振影响的回声消除装置的可实施方式,所述预设数值为所述平均比值的2.5倍;
所述修正系数的值为所述平均比值除以所述输入功率谱后,再除以所述输出功率谱得到的值。
本发明的有益效果包括:本发明提供的降低腔体共振影响的回声消除方法及装置,与传统的回声消除方法中直接将麦克风输入信号传递给自适应滤波器相比,其首先结合远端送往扬声器的输出信号对麦克风输入信号进行处理,对共振区域相对应的部分进行修正,调低,之后再将修正后的信号送往自适应滤波器,并与自适应滤波器输出的根据远端送往扬声器的输出信号得到的回声预测信号进行减法处理,从而在自适应滤波器收敛后得到真正的回声消除的输出信号。对麦克风的输入信号进行处理后,可使一般长度的自适应滤波器就能够准确的收敛,得到想要的信号输出。能够在不增加自适应滤波器长度,从而不提高成本的基础上有效保证回声的消除。
附图说明
图1为本发明一种降低腔体共振影响的回声消除方法的一具体实施例的流程图;
图2为本发明一种降低腔体共振影响的回声消除方法的一具体实施例的信号流向示意图;
图3为本发明一种降低腔体共振影响的回声消除装置的一具体实施例的结构示意图;
图4为本发明一种降低腔体共振影响的回声消除装置的另一具体实施例的结构示意图;
图5为本发明一种降低腔体共振影响的回声消除装置的一具体实施例中修正模块构成示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明的降低腔体共振影响的回声消除方法及装置的具体实施方式进行说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明一实施例的降低腔体共振影响的回声消除方法,如图1所示,包括以下步骤:
S100,采集送往扬声器的输出信号u。
S200,采集与所述输出信号u相对应的由麦克风输入的输入信号d。
此处需要说明的是,步骤S100和步骤S200并没有严格的先后顺序,可使用采样芯片对远端送往扬声器的信号进行采样,得到一帧一帧的输出信号u。较佳地的,可使用相同的采样芯片对于扬声器同侧的麦克风的输入的声音信号进行采样的,得到一帧一帧的输入信号d。而本方法进行回声滤除时,输出信号u和输入信号d的分析与计算可分别进行,也可使用不同的设备同时进行。但是,最佳的,所采集的扬声器的输出信号u,应该是对麦克风输入的输入信号d产生共振贡献的输出信号。
S300,分别计算所述输出信号的输出频谱U和输出功率谱UPow,以及所述输入信号的输入频谱D和输入功率谱DPow。
具体的,在实施过程中,可对输出信号u进行频域变换得到对应的输出频谱U。同样,可对输入信号d进行频域变换得到对应的出入频谱D。并计算相应的输出功率谱UPow和输入功率谱DPow。
UPow(i)=Re(U(i))2+Im(U(i))2 (1)
DPow(i)=Re(D(i))2+Im(D(i))2 (2)
其中,i为正整数,表示对应的各频率点序号。
而对于频域变换,作为一种可实施方式,可采用FFT(Fast FourierTransformation,即为快速傅氏变换)进行。如此,后续可通过IFFT(Inverse Fast FourierTransform,快速傅氏逆变换)将频域信号再转换为时域信号。
S400,计算已定非共振区域范围内,对应频率下所述输入功率谱和所述输出功率谱的功率比值Q。
此处需要说明的是,对于输如频谱D,根据腔体共振知识可得知,对于频率较低部分的信号,其是一定不包含共振信号的,也即可确定输入频谱D对应的信号在频率较低的区域一定为非共振区域,从而确定输入频谱D中频率较低的区域为已定非共振区域。如,在其中一个实施例中,确定输入频谱D对应的信号中,频率低于60Hz的区域为已定非共振区域。这是因为共振峰频率位置随着腔体的大小增大而降低,而一般免提设备的空腔大小选择为60~500Hz。
较佳地,可按照公式(3)和公式(4)所示的方式计算对各个频率点的比值并进行平均计算,将平均值作为功率比值。具体的计算方法如下:
E=1/NΣDPow(i)/UPow(i) (3)
其中,N为非共振区域长度。
Q(n)=k*(E-Q(n-1))+Q(n-1) (4)
K为常数,可取k=0.25;n为大于等于1的正整数。
S500,根据所述功率比值,对所述输入频谱对应的共振区域进行修正,得到修正输入频谱。
得到非共振区域的所述输入功率谱和所述输出功率谱的功率比值后,可参考平均比值对两者比值与平均比值差距较大的区域进行调整,此处可确定比值差距较大的区域为输入频谱产生共振的区域,即共振区域。可适当减小输入频谱对应的共振区域的幅值,从而能够使带有共振效果的输入信号与输出信号u经过自适应滤波后得到更准确的回声消除的输出信号结果。
S600,对所述修正输入频谱进行时域变换得到修正输入信号d*。如前所述,对应采用FFT的频域变换,此处可采用IFFT进行时域变换得到修正输入信号d*。
S700,将所述修正输入信号减去自适应滤波器根据所述输出信号得到的回声预测信号y,得到回声消除的输出信号e。
本步骤中,将修正后的麦克风的修正输入信号作为自适应滤波器的期望信号与自适应滤波器输出的回声预测信号相减得到回声消除的输出信号e。如图2所示,为本方法的信号处理过程与各信号及自适应滤波器的输入信号、输出信号之间的关系。回声消除的输出信号e也作为反馈信号返回到自适应滤波器中。而将修正后的麦克风的信号作为自适应滤波器的期望信号可以使较短的自适应滤波器能够正确的跟踪收敛。
本发明实施例的降低腔体共振影响的回声消除方法,与传统的回声消除方法中直接将麦克风输入信号传递给自适应滤波器相比,其首先结合送往扬声器的输出信号对麦克风输入信号进行处理,对共振区域相对应的部分进行修正,之后再将修正后的信号与自适应滤波器输出的根据远端送往扬声器的输出信号得到的回声预测信号进行减法处理,从而在自适应滤波器收敛后得到真正的回声消除的输出信号。对麦克风的输入信号进行处理后,可使一般长度的自适应滤波器就能够准确的收敛,得到想要的信号输出。能够在低成本的基础上有效保证回声的消除。
较佳地,作为一种可实施方式,一帧所述输入信号包括M点历史输入信号和M点当前输入信号,且当前帧的所述M点当前输入信号为下一帧输入信号的M点历史输入信号。
同样,一帧所述输出信号包括M点历史输出信号和M点当前输出信号,且当前帧的所述M点当前输出信号为下一帧输入信号的M点历史输出信号。
在采用本发明的方法进行回声消除计算过程中,对所述输入信号和所述输出信号加窗后进行FFT后,得到输入频谱和输出频谱。对所述修正输入频谱加窗后进行IFFT后,得到修正输入信号。
所述修正输入信号为当前帧输入信号的M点历史输入信号对应的M点修正输入信号,和前一帧输入信号的M点当前输入信号对应的M点修正输入信号之和。而所述自适应滤波器根据所述输出信号的M点历史输出信号得到所述回声预测信号。
下面举例如下:
设第n-1和第n组M点采样信号输入信号构成2M点序列[d(n-1)d(n)](n),作为第n帧输入信号,其对应的修正后的修正输入信号为[d*(n-1)d*(n)](n),上一帧输入信号对应的修正输入信号为[d*(n-2)d*(n-1)](n-1),将[d*(n-1)d*(n)](n)中的d*(n-1)与[d*(n-1)d*(n)](n-1)中的d*(n-1)相加得到d*,作为最终的修正输入信号。
另外,在步骤S400,计算已定非共振区域范围内,对应频率下所述输入功率谱和所述输出功率谱的功率比值之前,还包括以下步骤:
S040,判断所述输出功率谱在语音频率区域范围内的总能量是否超过预设能量;若是,则执行步骤S400及后续的步骤;若否,则将所述输入功率谱作为所述修正输入频谱,即,此时不用进行修正,并继续执行步骤S600。
本发明实施例中,将不需要进行修正的情况进行额外处理,避免对于不需要修正的情况依然执行步骤S400及步骤S500,造成处理程序上的浪费。如此,可提高回音消除的整体效率。
具体的,步骤S500,根据所述功率比值,对所述输入频谱进行修正,得到修正输入频谱,包括以下步骤:
S510,判定所述输入功率谱和所述输出功率谱中对应频率比值超过所述功率比值预设数值的区域为共振区域。其中,所述预设数值可根据实际设备情况进行选择,如在其中一个实施例中,选择所述预设数值为所述平均比值的2.5倍,即DPow(i)/UPow(i)大于Q*2.5的区域认为是共振区域Z。
S520,将对应共振区域的输入频谱D乘以修正系数Q*,得到修正输入频谱D*。之后再对修正输入频谱D*进行时域变换,得到修正输入信号d*。
其中,
Q*=Q/(DPow(i)/UPow(i)) (5)
由式(5)可知,每个频率点对应的修正系数都是不同的,因此,在对共振区域的输入频谱使用修正系数进行修正时,每个频谱点所成的修正系数可能都是不同的。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分流程可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
基于同一发明构思,本发明还提供一种降低腔体共振影响的回声消除装置,由于此装置解决问题的原理与前述一种降低腔体共振影响的回声消除方法相似,因此,该装置的实施可以按照前述方法的具体步骤实现,重复之处不再赘述。
本发明一实施例的降低腔体共振影响的回声消除装置,如图3所示,包括输出信号采集模块100、输入信号采集模块200、功率谱计算模块300、功率比值计算模块400、修正模块500、时域变换模块600以及回声消除的输出信号确定模块700。输出信号采集模块100,被配以采集送往扬声器的输出信号;输入信号采集模块200,被配置以采集与所述输出信号相对应的由麦克风输入的输入信号;功率谱计算模块300,被配置以分别计算所述输出信号的输出频谱和输出功率谱,以及所述输入信号的输入频谱和输入功率谱;功率比值计算模块400,被配置以计算已定非共振区域范围内,对应频率下所述输入功率谱和所述输出功率谱的功率比值;修正模块500,被配置以根据所述功率比值,对所述输入频谱对应的共振区域进行修正,得到修正输入频谱;时域变换模块600,被配置以对所述修正输入频谱进行时域变换得到修正输入信号;回声消除的输出信号确定模块700,被配置以将所述修正输入信号减去自适应滤波器根据所述输出信号得到的回声预测信号,得到回声消除的输出信号。
其与传统的回声消除方法中直接将麦克风输入信号传递给自适应滤波器相比,其首先结合远端送往扬声器的输出信号对麦克风输入信号进行处理,对输入信号的共振区域相对应的部分进行修正、调低,之后再将修正后的信号送往自适应滤波器,并与自适应滤波器输出的根据远端送往扬声器的输出信号得到的回声预测信号进行减法处理,从而在自适应滤波器收敛后得到真正的回声消除的输出信号。对麦克风的输入信号进行处理后,可使一般长度的自适应滤波器就能够准确的收敛,得到想要的信号输出。能够在低成本的基础上有效保证回声的消除。
作为一种可实施方式,所述输入信号包括M点历史输入信号和M点当前输入信号;其中,当前帧的所述M点当前输入信号为下一帧输入信号的M点历史输入信号。所述输出信号包括M点历史输出信号和M点当前输出信号;其中,当前帧的所述M点当前输出信号为下一帧输入信号的M点历史输出信号。
所述功率谱计算模块对所述输入信号和所述输出信号加窗后进行快速傅氏变换后,得到输入频谱和输出频谱。所述时域变换模块对所述修正输入频谱加窗后进行快速傅氏逆变换后,得到修正输入信号。而所述修正输入信号为当前帧输入信号的M点历史输入信号对应的M点修正输入信号,和前一帧输入信号的M点当前输入信号对应的M点修正输入信号之和。其中,所述自适应滤波器根据所述输出信号的M点历史输出信号得到所述回声预测信号,M为大于0的整数。
在本发明另一实施例中,如图4所示,还包括总能量判断模块040,被配置以判断所述功率谱计算模块计算出的所述输出功率谱在语音频率区域范围内的总能量是否超过预设能量,若是,则执行所述功率比值计算模块400;若否,则将所述输入功率谱作为所述修正输入频谱,并执行所述时域变换模块600。其将不用进行共振频率修正直接连接到自适应滤波器,避免对无需处理的信号进行一系列的时域、频域变换而降低处理速度。
具体的,如图5所示,修正模块500包括共振区域判断子模块510及系数修正子模块520。共振区域判断子模块510,被配置以判定所述输入功率谱和所述输出功率谱中对应频率比值超过所述功率比值预设数值的区域为共振区域;系数修正子模块520,被配置以将对应共振区域的输入频谱乘以修正系数,得到修正输入频谱。且所述预设数值可以为平均比值Q的2.5倍。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。且以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。因此,本发明专利的保护范围应以所附权利要求为准。