一种带有延时估计功能的回声消除系统的制作方法



1.本发明涉及音频处理技术领域,尤其涉及一种带有延时估计功能的回声消除系统。


背景技术:



2.声学回声消除(acoustic echo cancelling,aec)算法是一种语音信号处理及语音通讯领域的常用算法之一,广泛用于语音通讯与智能语音人机交互等应用中。在语音通讯中,主要是为解决全双工通话过程中任何一端说话人听到自己说话声(回声)的问题。使用回声消除算法可以在近端提前进行去回声处理,之后再送达远端,这样远端说话人将不再听到自己的说话声。在智能语音人机交互过程中,为了防止智能设备自己播放的音乐或者说话声对语音识别构成干扰,也需要使用回声消除算法提前将自已播放的声音去除,以防止误识别和提高识别率。
3.现有的aec方法中,通常利用自适应线性滤波器去估计回声信号,然后根据估计的回声信号抵消掉通信系统中的回声信号。为了提升aec方法中线性自适应滤波器的效果,通常增加双讲检测模块(double-talkdetection,dtd),来配合自适应线性滤波器。双讲检测模块用于检测通信双方的讲话状态,例如,通信双方同时讲话时为双讲状态。相关技术中,在通信的一端,通过检测本端语音信号(即近端语音信号)和另一端的语音信号(即远端语音信号),来确定是否为双讲状态。
4.但是现有的双讲检测方案鲁棒性差、检测准确率不高的问题,使得回声消除效果不理想。
5.因此,有必要提供一种带有延时估计功能的回声消除系统来解决上述技术问题。


技术实现要素:



6.为解决上述之一技术问题,本发明提供的一种带有延时估计功能的回声消除系统,包括输入缓冲区、声学路径分析模块、缓冲区延时线处理及幅度调整模块、幅值检测模块、回声消除模块和输出缓冲区。
7.具体的,输入缓冲区:持续接收输入数据流,并将连续的输入数据流分为等长的数据块;所述输入数据流包括麦克信号和参考信号,所述数据块包括麦克数据块d
l
(n)和参考数据块x
l
(n);其中,l=1,2,3,

表示数据块序号,n=0,1,2,

,n表示每个数据块样点序号,n表示每个数据块样点总数。
8.具体的,声学路径分析模块:接收麦克数据块d
l
(n)和参考数据块x
l
(n),并进行声学路径分析处理,得到滤波器长度信息与延时调整信息。
9.具体的,幅值检测模块:接收并检测计算麦克数据块d
l
(n)与参考数据块x
l
(n)的相对幅度(db)数值,通过相对幅度(db)数值计算得到幅度调整信息;通过检测麦克数据块d
l
(n)截顶失真标志位判断是否发生截顶失真,得到截顶失真信息。
10.具体的,缓冲区延时线处理及幅度调整模块:接收麦克数据块d
l
(n)、参考数据块x
l
(n)、延时调整信息和幅度调整信息;根据延时调整信息对麦克数据块d
l
(n)或参考数据块x
l
(n)进行延时调整,根据幅度调整信息对参考数据块x
l
(n)进行幅度调整;输出调整后麦克数据块和调整后参考数据块
11.具体的,回声消除模块:接收调整后麦克数据块调整后参考数据块滤波器长度信息和截顶失真信息;使用动态步长的自适应算法对调整后麦克数据块和调整后参考数据块进行逐点处理,通过截顶失真信息进行自适应滤波器系数更新,通过滤波器长度信息进行步长调整辅助变量更新,得到输出残差信号e(n)。
12.具体的,输出缓冲区:接收输出残差信号e(n),并进行数据重组,得到连续的音频数据流进行输出。
13.作为更进一步的解决方案,所述声学路径分析模块包括输入缓冲区、延时估计子模块、缓冲区延时线处理子模块、房间传输函数估计子模块和滤波器长度设定子模块;
14.所述输入缓冲区接收麦克信号和参考信号,并转换为麦克数据块d
l
(n)和参考数据块x
l
(n);所述延时估计子模块接收麦克数据块d
l
(n)和参考数据块x
l
(n),并输出延时调整信息;所述缓冲区延时线处理子模块接收麦克数据块d
l
(n)、参考数据块x
l
(n)和延时调整信息,并延时调整信息对麦克数据块d
l
(n)与参考数据块x
l
(n)进行延时处理,得到初步延时对齐的麦克数据块d
l
(n)与参考数据块x
l
(n);所述房间传输函数估计子模块接收初步延时对齐的麦克数据块d
l
(n)与参考数据块x
l
(n),通过lms自适应算法得到对于真实传输函数tf(n)的测量结果并将作为估计传输函数;所述滤波器长度设定子模块接收估计传输函数并进行成分分析,得到滤波器长度信息。
15.作为更进一步的解决方案,所述延时估计子模块接收麦克数据块d
l
(n)、参考数据块x
l
(n),执行如下步骤:
16.步骤a1:对麦克数据块d
l
(n)、参考数据块x
l
(n)分别进行fft变换,得到麦克变换数据块d
l
(k)、参考变换数据块x
l
(k);其中k=0,1,2

k为频点序号,k为fft点数,且满足k》2*n,n表示每个数据块样点总数;
17.步骤a2:计算互功率谱并作归一化:
[0018][0019]
其中,conj()表示取共轭;d
l
(k)表示麦克变换数据块;x
l
(k)表示参考变换数据块;
[0020]
步骤a3:对互功率谱p
dx,l
(k)进行ifft反变换,并进行峰值检测,得到最大值点τ
l

[0021]rl
(n)=iff(p
dx,l
(k))
[0022][0023]
步骤a4:通过能量判定进行参考信号激活检测,若参考信号能量信号则参考信号激活检测结果为1,否则为0;
[0024]
步骤a5:进行延时值有效性判断,将最大值点τ
l
映射成延时信息,并通过参考信号激活检测结果给出最终的延时信息出结果;其中,最大值点τ
l
只在参考信号激活检测结果
为1时映射为延时信息;否则进行舍弃,并保留输出上一次有效的延时信息。
[0025]
作为更进一步的解决方案,所述最大值点τ
l
通过如下公式映射为可正可负的延时信息δτ
l

[0026][0027]
其中,正值表明参考信号滞后于麦克信号|δτ
l
|个样点,负值表明参考信号提前于麦克信号|δτ
l
|个样点,k为fft点数,τ
l
为最大值点。
[0028]
作为更进一步的解决方案,所述缓冲区延时线处理子模块通过如下公式进行延时调整处理:
[0029][0030]
其中,表示延时调整处理后期望的参考信号提前于麦克信号延时值的样点个数;-δτ
l
表示当前参考信号提前于麦克信号的样点个数;δδτ
l
表示当前参考信号达到期望的延迟值所需要后延的样点个数。
[0031]
作为更进一步的解决方案,所述房间传输函数估计子模块通过舍弃估计传输函数中的晚期房间混响成分,得到估计传输函数的有效长度为l
tf
个样点;所述滤波器长度设定子模块获取估计传输函数的有效长度l
tf
,并将滤波器长度lh设定为:
[0032][0033]
其中,l
tt
为估计传输函数的有效长度;为延时调整处理后期望的参考信号提前于麦克信号延时值的样点个数。
[0034]
作为更进一步的解决方案,所述幅值检测模块计算出麦克信号内的回声信号与参考信号的相对幅度数值;所述相对幅度数值为db值,并通过如下步骤进行计算并进行调整:
[0035]
步骤b1:计算麦克信号与参考信号的短时平均能量e
d,l
与e
x,l

[0036][0037][0038]
其中,d
l
(n)表示麦克数据块;x
l
(n)表示参考数据块;n表示每个数据块样点总数
[0039]
步骤b2:计算麦克信号与参考信号的递归平均能量r
d,l
,r
x,l

[0040]rd,l
=α*r
d,l
+(1-α)*e
d,l
[0041]rx,l
=α*r
x,l
+(1-α)*e
x,l
[0042]
其中,α表示递归比例系数;e
d,l
表示麦克信号短时平均能量;e
x,l
表示参考信号短时平均能量;
[0043]
步骤b3:相对幅度数值计算:
[0044]
δd
l
=10*log10(r
d,l
)-10*log10(r
x,l
)
[0045]
其中,r
d,l
表示麦克信号递归平均能量;r
x,l
表示参考信号递归平均能量
[0046]
步骤b4:参考信号幅值调整:
[0047][0048]
其中,表示经过幅值调整后期望的麦克信号比参考信号低的db差值;δδd
l
表示当前参考信号需要调整的db数值;δd
l
表示相对幅度数值的db数值。
[0049]
作为更进一步的解决方案,所述幅值检测模块还检测麦克信号是否发生截项失真,所述麦克信号是否发生截顶失通过截顶失真标志位saturate_flag
l
进行表示:
[0050][0051]
其中,sat_thld为预设的幅度饱和阈值;d
l
(n)表示麦克数据块;saturate_flag
l
为1则发生截项失真,为0则未发生截项失真。
[0052]
作为更进一步的解决方案,所述缓冲区延时线处理及幅度调整模块接收麦克数据块d
l
(n)、参考数据块x
l
(n)、延时调整信息δδτ
l
和幅度调整信息δδd
l

[0053]
根据延时调整信息δδτ
l
对麦克数据块d
l
(n)或参考数据块x
l
(n)进行延时调整,若δδτ
l
为正,则表示当前参考信号需要向后延迟δδτ
l
个样点,若δδτ
l
为负,则表示当前麦克信号需要向后延迟-δδτ
l
个样点;
[0054]
根据幅度调整信息δδx
l
对参考数据块x
l
(n)进行幅度调整,δδd
l
若为正,表示参考信号需要被缩小δδd
l db,反之表示参考信号需要被缩小-δδd
l db;
[0055]
完成延时调整和幅度调整后,输出调整后麦克数据块和调整后参考数据块
[0056]
作为更进一步的解决方案,所述回声消除模块接收调整后麦克数据块调整后参考数据块设置滤波器系数并进行进行逐点处理;其中,1,

,xn-lh+1t;dln=dn,dn-1,

,dn-lh+1t;hln=h0,h1,

,hlh-1t,其中,lh为声学路径分析模块给出的滤波器长度;所述动态步长的自适应算法通过如下步骤进行:
[0057]
步骤c1:计算当前帧残差信号e
l
(n):
[0058][0059]
其中:为当前帧调整后麦克数据块对应的向量;为当前帧调整后参考数据块对应的向量的转置;表示上一帧的滤波器系数;
[0060]
步骤c2:计算参考信号能量e
x
(n)与正则化因子δ(n):
[0061][0062][0063][0064]
[0065]
其中:为当前帧调整后参考数据块对应的向量的转置;表示调整后参考数据块对应的向量;e
l
(n)表示当前帧残差信号;
[0066]
步骤c3:自适应更新滤波器系数
[0067][0068]
其中:saturate_flag表示截顶失真标志位;e
x
(n)表示当前帧参考信号能量;δ(n)表示当前帧正则化因子;表示上一帧的滤波器系数;e
l
(n)表示当前帧残差信号;表示调整后参考数据块对应的向量;
[0069]
步骤c4:更新步长调整辅助变量r
μ
(n):
[0070][0071]
其中:e
x
(n-1)表示上一帧参考信号能量;lh为声学路径分析模块给出的滤波器长度;δ(n-1)表示上一帧正则化因子;rm(n)表示。
[0072]
与相关技术相比较,本发明提供的一种带有延时估计功能的回声消除系统具有如下有益效果:
[0073]
1、本发明通过使用延时估计模块事先对设备的声学场景中的近端信号与远端参考信号之间的延时进行估计,锁定延时后设定合理的缓冲区延时参数,以减少内存占用、功耗及防止远端参考信号滞后于近端回声信号从而提升回声消除的性能;
[0074]
2、本发明使用房间传输函数估计模块对声学硬件设备的回声路径传输函数进行预估计,从而对自适应线性滤波器长度进行最优配置,提升回声消除滤除效果;
[0075]
3、本发明使用幅度检测模块检测检测麦克输入与参考输入幅值,然后合理调整麦克与参考输入相对幅值大小,使待估计的自适应滤波器系数处于最佳动态范围,防止有效字长效应造成迭代累计误差,同时可以加快滤波器收敛速度;
[0076]
4、本发明结合幅度检测模块进行截项失真检测,控制自适应滤波器系数冻结更新,提高系数鲁棒性,防止截顶失真或者破音等非线性扰动造成滤波器发散;
[0077]
5、本发明使用动态调整的步长和正则化因子,使滤波器更加鲁棒,收敛更加迅速。
附图说明
[0078]
图1为本发明实施例提供的一种带有延时估计功能的回声消除系统的较佳流程图;
[0079]
图2为本发明实施例提供的声学路径分析模块的较佳流程图;
[0080]
图3为本发明实施例提供的延时估计子模块的较佳流程图;
[0081]
图4为本发明实施例提供的房间传输函数估计子模块的较佳流程图;
[0082]
图5为本发明实施例提供的估计传输函数的有效长度示意图;
[0083]
图6为本发明实施例提供的幅值检测模块的较佳流程示意图;
[0084]
图7为本发明实施例提供的回声消除模块的较佳流程示意图。
具体实施方式
[0085]
下面结合附图和实施方式对本发明作进一步说明。
[0086]
如图1所示,本实施例提供的一种带有延时估计功能的回声消除系统,包括输入缓冲区、声学路径分析模块、缓冲区延时线处理及幅度调整模块、幅值检测模块、回声消除模块和输出缓冲区。
[0087]
具体的,输入缓冲区:持续接收输入数据流,并将连续的输入数据流分为等长的数据块;所述输入数据流包括麦克信号和参考信号,所述数据块包括麦克数据块d
l
(n)和参考数据块x
l
(n);其中,l=1,2,3,

表示数据块序号,n=0,1,2,

,n表示每个数据块样点序号,n表示每个数据块样点总数。
[0088]
具体的,声学路径分析模块:接收麦克数据块d
l
(n)和参考数据块x
l
(n),并进行声学路径分析处理,得到滤波器长度信息与延时调整信息。
[0089]
具体的,幅值检测模块:接收并检测计算麦克数据块d
l
(n)与参考数据块x
l
(n)的相对幅度(db)数值,通过相对幅度(db)数值计算得到幅度调整信息;通过检测麦克数据块d
l
(n)截顶失真标志位判断是否发生截顶失真,得到截顶失真信息。
[0090]
具体的,缓冲区延时线处理及幅度调整模块:接收麦克数据块d
l
(n)、参考数据块x
l
(n)、延时调整信息和幅度调整信息;根据延时调整信息对麦克数据块d
l
(n)或参考数据块x
l
(n)进行延时调整,根据幅度调整信息对参考数据块x
l
(n)进行幅度调整;输出调整后麦克数据块和调整后参考数据块
[0091]
具体的,回声消除模块:接收调整后麦克数据块调整后参考数据块滤波器长度信息和截顶失真信息;使用动态步长的自适应算法对调整后麦克数据块和调整后参考数据块进行逐点处理,通过截顶失真信息进行自适应滤波器系数更新,通过滤波器长度信息进行步长调整辅助变量更新,得到输出残差信号e(n)。
[0092]
具体的,输出缓冲区:接收输出残差信号e(n),并进行数据重组,得到连续的音频数据流进行输出。
[0093]
需要说明的是:本实施例的总体原理框图如下图1所示,麦克输入与参考音输入为一般回声消除问题的输入信号,此处认为是已经经过模数转换(a/d)的数字信号流。
[0094]
两路原始音频信号将经过输入缓冲区得到分块待处理的输入信号数据块。两路原始音频将会被输入主处理流程输入缓冲区(如图1所示)与声学路径分析模块输入缓冲区(如图2所示),两个缓冲区都是用于将连续的输入数据流分为等长的数据块,以备后续处理。其中声学路径分析模块中的输入缓冲区输出的数据块大小大于主处理流程输入缓冲区输出的数据块大小。
[0095]
其中,声学路径分析模块中的后续处理中,麦克与参考数据块经过延时估计子模块将得到麦克回声信号相对参考信号的延时值。缓冲区延时线处理子模块将根据上述所得延时值对参考信号或者麦克信号缓冲区进行适当的延时处理以保证回声消除模块输入的因果性。经过延时线处理的麦克风与参考信号数据块输入到房间传输函数估计子模块进行房间传输函数的估计并输出滤波器长度信息,另外声学路径分析模块也将输出延时调整信
息。
[0096]
声学路径分析模块需要在主处理流程启动之前完成对声学路径的分析处理并输出滤波器长度信息与延时调整信息待用。运行声学路径分析模块进行测量时需要播放一段测试音频直至完成测试并读出输出信息。
[0097]
在主处理流程的后续处理中,分块的麦克与参考信号经过幅值检测模块给出麦克内回声信号与参考信号的相对幅度(db)数值,并输出幅度调整信息,同时也将检测麦克信号是否发生截项失真并输出是否截顶失真信息。
[0098]
缓冲区延时线及幅度调整模块将根据延时值调整信息对麦克或参数信号块数据进行适当的延时处理,以保证回声消除模块输入的因果性。同时该模块根据幅度调整信息对参考信号数据块幅度作适当调整。
[0099]
回声消除模块首先根据对前一模块经过延时与幅度调整的两路数据进行回声消除处理实现去除回声功能,同时根据幅值检测提供的麦克信号截止失真标志自动控制滤波器迭代更新。
[0100]
去除回声后的麦克信号块将进入输出缓冲区重新得到连续的音频数据流进行输出。
[0101]
如图2所示,作为更进一步的解决方案,所述声学路径分析模块包括输入缓冲区、延时估计子模块、缓冲区延时线处理子模块、房间传输函数估计子模块和滤波器长度设定子模块;
[0102]
所述输入缓冲区接收麦克信号和参考信号,并转换为麦克数据块d
l
(n)和参考数据块x
l
(n);所述延时估计子模块接收麦克数据块d
l
(n)和参考数据块x
l
(n),并输出延时调整信息;所述缓冲区延时线处理子模块接收麦克数据块d
l
(n)、参考数据块x
l
(n)和延时调整信息,并延时调整信息对麦克数据块d
l
(n)与参考数据块x
l
(n)进行延时处理,得到初步延时对齐的麦克数据块d
l
(n)与参考数据块x
l
(n);所述房间传输函数估计子模块接收初步延时对齐的麦克数据块d
l
(n)与参考数据块x
l
(n),通过lms自适应算法得到对于真实传输函数tf(n)的测量结果并将作为估计传输函数;所述滤波器长度设定子模块接收估计传输函数并进行成分分析,得到滤波器长度信息。
[0103]
需要说明的是:声学路径分析模块给出用于对主处理流程中麦克风或参考信号数据块进行延时调整的延时调整值以及对回声消除模块中滤波器进行设置的滤波器长度信息。其原理框图如图2所示。它包括输入缓冲区、延时估计、缓冲区延时线处理、房间传输函数估计及滤波器长度设定5个子模块。
[0104]
如图3所示,作为更进一步的解决方案,所述延时估计子模块接收麦克数据块d
l
(n)、参考数据块x
l
(n),执行如下步骤:
[0105]
步骤a1:对麦克数据块d
l
(n)、参考数据块x
l
(n)分别进行fft变换,得到麦克变换数据块d
l
(k)、参考变换数据块x
l
(k);其中k=0,1,2

k为频点序号,k为fft点数,且满足k》2*n,n表示每个数据块样点总数;
[0106]
步骤a2:计算互功率谱并作归一化:
[0107]
[0108]
其中,conj()表示取共轭;d
l
(k)表示麦克变换数据块;x
l
(k)表示参考变换数据块;
[0109]
步骤a3:对互功率谱p
dx,l
(k)进行ifft反变换,并进行峰值检测,得到最大值点τ
l

[0110]rl
(n)=iff(p
dx,l
(k))
[0111][0112]
步骤a4:通过能量判定进行参考信号激活检测,若参考信号能量信号则参考信号激活检测结果为1,否则为0;
[0113]
步骤a5:进行延时值有效性判断,将最大值点τ
l
映射成延时信息,并通过参考信号激活检测结果给出最终的延时信息出结果;其中,最大值点τ
l
只在参考信号激活检测结果为1时映射为延时信息;否则进行舍弃,并保留输出上一次有效的延时信息。
[0114]
作为更进一步的解决方案,所述最大值点τ
l
通过如下公式映射为可正可负的延时信息δτ
l

[0115][0116]
其中,正值表明参考信号滞后于麦克信号|δτ
l
|个样点,负值表明参考信号提前于麦克信号|δτ
l
|个样点,k为fft点数,τ
l
为最大值点。
[0117]
作为更进一步的解决方案,所述缓冲区延时线处理子模块通过如下公式进行延时调整处理:
[0118][0119]
其中,表示延时调整处理后期望的参考信号提前于麦克信号延时值的样点个数;-δτ
l
表示当前参考信号提前于麦克信号的样点个数;δδτ
l
表示当前参考信号达到期望的延迟值所需要后延的样点个数。
[0120]
需要说明的是:缓冲区延时线处理子模块将根据延时值对麦克与参数信号块数据进行适当的延时处理,以保证回声消除模块输入的因果性。
[0121]
如图4与图5所示,作为更进一步的解决方案,所述房间传输函数估计子模块通过舍弃估计传输函数中的晚期房间混响成分,得到估计传输函数的有效长度为l
tf
个样点;所述滤波器长度设定子模块获取估计传输函数的有效长度l
tf
,并将滤波器长度lh设定为:
[0122][0123]
其中,l
tf
为估计传输函数的有效长度;为延时调整处理后期望的参考信号提前于麦克信号延时值的样点个数。
[0124]
如图6所示,作为更进一步的解决方案,所述幅值检测模块计算出麦克信号内的回声信号与参考信号的相对幅度数值;所述相对幅度数值为db值,并通过如下步骤进行计算并进行调整:
[0125]
步骤b1:计算麦克信号与参考信号的短时平均能量e
d,l
与e
x,l

[0126][0127][0128]
其中,d
l
(n)表示麦克数据块;x
l
(n)表示参考数据块;n表示每个数据块样点总数
[0129]
步骤b2:计算麦克信号与参考信号的递归平均能量r
d,l
,r
x,l

[0130]rd,l
=α*r
d,l
+(1-α)*e
d,l
[0131]rx,l
=α*r
x,l
+(1-α)*e
x,l
[0132]
其中,α表示递归比例系数;e
d,l
表示麦克信号短时平均能量;e
x,l
表示参考信号短时平均能量;
[0133]
步骤b3:相对幅度数值计算:
[0134]
δd
l
=10*log10(r
d,l
)-10*log10(r
x,l
)
[0135]
其中,r
d,l
表示麦克信号递归平均能量;r
x,l
表示参考信号递归平均能量
[0136]
步骤b4:参考信号幅值调整:
[0137][0138]
其中,表示经过幅值调整后期望的麦克信号比参考信号低的db差值;δδd
l
表示当前参考信号需要调整的db数值;δd
l
表示相对幅度数值的db数值。
[0139]
作为更进一步的解决方案,所述幅值检测模块还检测麦克信号是否发生截项失真,所述麦克信号是否发生截顶失通过截顶失真标志位saturate_flag
l
进行表示:
[0140][0141]
其中,sat_thld为预设的幅度饱和阈值;d
l
(n)表示麦克数据块;saturate_flag
l
为1则发生截项失真,为0则未发生截项失真。
[0142]
作为更进一步的解决方案,所述缓冲区延时线处理及幅度调整模块接收麦克数据块d
l
(n)、参考数据块x
l
(n)、延时调整信息δδτ
l
和幅度调整信息δδd
l

[0143]
根据延时调整信息δδτ
l
对麦克数据块d
l
(n)或参考数据块x
l
(n)进行延时调整,若δδτ
l
为正,则表示当前参考信号需要向后延迟δδτ
l
个样点,若δδτ
l
为负,则表示当前麦克信号需要向后延迟-δδτ
l
个样点;
[0144]
根据幅度调整信息δδd
l
对参考数据块x
l
(n)进行幅度调整,δδd
l
若为正,表示参考信号需要被缩小δδd
l db,反之表示参考信号需要被缩小-δδd
l db;
[0145]
完成延时调整和幅度调整后,输出调整后麦克数据块和调整后参考数据块
[0146]
需要说明的是:缓冲区延时线将根据延时调整信息对麦克或参数信号块数据进行适当的延时调整,同时根据幅度调整信息对参考信号数据块幅度作适当调整。
[0147]
若延时调整信息δδτ
l
为正,则表示需要对参考信号向后延迟δδτ
l
个样点,若δδτ
l
为负,则表示需要对麦克风信号应向后延迟-δδτ
l
个样点。按此方法调整延时值后的
两路信号已被初步延时对齐,可使得在滤波器长度设定方面做到最优,减少了功耗和运算量,同时保证了待估计传输函数的因果性,防止回声消除滤波功能失效。
[0148]
幅度调整则是根据幅度调整信息δδd
l
,调整参考信号数据块幅度大小。以加快滤波器收敛速度及减少算法定点实现时由于动态范围有限带来的问题。若需要调整的db数值δδd
l
若为正,表示参考信号需要被缩小δδd
l
db,反之表示参考信号需要被缩小-δδd
l
db。
[0149]
如图7所示,作为更进一步的解决方案,所述回声消除模块接收调整后麦克数据块调整后参考数据块设置滤波器系数并进行进行逐点处理;其中,并进行进行逐点处理;其中,并进行进行逐点处理;其中,其中,lh为声学路径分析模块给出的滤波器长度;所述动态步长的自适应算法通过如下步骤进行:
[0150]
步骤c1:计算当前帧残差信号e
l
(n):
[0151][0152]
其中:为当前帧调整后麦克数据块对应的向量;为当前帧调整后参考数据块对应的向量的转置;表示上一帧的滤波器系数;
[0153]
步骤c2:计算参考信号能量e
x
(n)与正则化因子δ(n):
[0154][0155][0156][0157][0158]
其中:为当前帧调整后参考数据块对应的向量的转置;表示调整后参考数据块对应的向量;e
l
(n)表示当前帧残差信号;
[0159]
步骤c3:自适应更新滤波器系数
[0160][0161]
其中:saturate_flag表示截顶失真标志位;e
x
(n)表示当前帧参考信号能量;δ(n)表示当前帧正则化因子;表示上一帧的滤波器系数;e
l
(n)表示当前帧残差信号;表示调整后参考数据块对应的向量;
[0162]
步骤c4:更新步长调整辅助变量r
μ
(n):
[0163][0164]
其中:e
x
(n-1)表示上一帧参考信号能量;lh为声学路径分析模块给出的滤波器长度;δ(n-1)表示上一帧正则化因子;rm(n)表示。
[0165]
需要说明的是:可设定为一个较小的常数。当前帧残差信号e(n)即为回声消除模块的最终输出,为更好去除非线性回声,也可在回声消除模块内部增加一个非线性回声抑制器,以达到更好的效果。考虑到滤波器长度可能更长,运算量可能很大,也可以使用频域分块方法简化运算。
[0166]
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

技术特征:


1.一种带有延时估计功能的回声消除系统,其特征在于,包括输入缓冲区、声学路径分析模块、缓冲区延时线处理及幅度调整模块、幅值检测模块、回声消除模块和输出缓冲区;输入缓冲区:持续接收输入数据流,并将连续的输入数据流分为等长的数据块;所述输入数据流包括麦克信号和参考信号,所述数据块包括麦克数据块d
l
(n)和参考数据块x
l
(n);其中,l=1,2,3,

表示数据块序号,n=0,1,2,

,n表示每个数据块样点序号,n表示每个数据块样点总数;声学路径分析模块:接收麦克数据块d
l
(n)和参考数据块x
l
(n),并进行声学路径分析处理,得到滤波器长度信息与延时调整信息;幅值检测模块:接收并检测计算麦克数据块d
l
(n)与参考数据块x
l
(n)的相对幅度(db)数值,通过相对幅度(db)数值计算得到幅度调整信息;通过检测麦克数据块d
l
(n)截顶失真标志位判断是否发生截顶失真,得到截顶失真信息;缓冲区延时线处理及幅度调整模块:接收麦克数据块d
l
(n)、参考数据块x
l
(n)、延时调整信息和幅度调整信息;根据延时调整信息对麦克数据块d
l
(n)或参考数据块x
l
(n)进行延时调整,根据幅度调整信息对参考数据块x
l
(n)进行幅度调整;输出调整后麦克数据块和调整后参考数据块回声消除模块:接收调整后麦克数据块调整后参考数据块滤波器长度信息和截顶失真信息;使用动态步长的自适应算法对调整后麦克数据块和调整后参考数据块进行逐点处理,通过截顶失真信息进行自适应滤波器系数更新,通过滤波器长度信息进行步长调整辅助变量更新,得到输出残差信号e(n);输出缓冲区:接收输出残差信号e(n),并进行数据重组,得到连续的音频数据流进行输出。2.根据权利要求1所述的一种带有延时估计功能的回声消除系统,其特征在于,所述声学路径分析模块包括输入缓冲区、延时估计子模块、缓冲区延时线处理子模块、房间传输函数估计子模块和滤波器长度设定子模块;所述输入缓冲区接收麦克信号和参考信号,并转换为麦克数据块d
l
(n和参考数据块x
l
(n);所述延时估计子模块接收麦克数据块d
l
(n)和参考数据块x
l
(n),并输出延时调整信息;所述缓冲区延时线处理子模块接收麦克数据块d
l
(n)、参考数据块x
l
(n)和延时调整信息,并延时调整信息对麦克数据块d
l
(n)与参考数据块x
l
(n)进行延时处理,得到初步延时对齐的麦克数据块d
l
(n)与参考数据块x
l
(n);所述房间传输函数估计子模块接收初步延时对齐的麦克数据块d
l
(n)与参考数据块x
l
(n),通过lms自适应算法得到对于真实传输函数tf(n)的测量结果并将作为估计传输函数;所述滤波器长度设定子模块接收估计传输函数并进行成分分析,得到滤波器长度信息。3.根据权利要求2所述的一种带有延时估计功能的回声消除系统,其特征在于,所述延时估计子模块接收麦克数据块d
l
(n)、参考数据块x
l
(n),执行如下步骤:步骤a1:对麦克数据块d
l
(n)、参考数据块x
l
(n)分别进行fft变换,得到麦克变换数据块d
l
(k)、参考变换数据块x
l
(k);其中k=0,1,2

k为频点序号,k为fft点数,且满足k>2*n,n表
示每个数据块样点总数;步骤a2:计算互功率谱并作归一化:其中,conj()表示取共轭;d
l
(k)表示麦克变换数据块;x
l
(k)表示参考变换数据块;步骤a3:对互功率谱p
dx,l
(k)进行ifft反变换,并进行峰值检测,得到最大值点τ
l
:r
l
(n)=iff(p
dx,l
(k))步骤a4:通过能量判定进行参考信号激活检测,若参考信号能量信号则参考信号激活检测结果为1,否则为0;步骤a5:进行延时值有效性判断,将最大值点τ
l
映射成延时信息,并通过参考信号激活检测结果给出最终的延时信息出结果;其中,最大值点τ
l
只在参考信号激活检测结果为1时映射为延时信息;否则进行舍弃,并保留输出上一次有效的延时信息。4.根据权利要求3所述的一种带有延时估计功能的回声消除系统,其特征在于,所述最大值点τ
l
通过如下公式映射为可正可负的延时信息δτ
l
:其中,正值表明参考信号滞后于麦克信号|δτ
l
|个样点,负值表明参考信号提前于麦克信号|δτ
l
|个样点,k为fft点数,τ
l
为最大值点。5.根据权利要求4所述的一种带有延时估计功能的回声消除系统,其特征在于,所述缓冲区延时线处理子模块通过如下公式进行延时调整处理:其中,表示延时调整处理后期望的参考信号提前于麦克信号延时值的样点个数;-δτ
l
表示当前参考信号提前于麦克信号的样点个数;δδτ
l
表示当前参考信号达到期望的延迟值所需要后延的样点个数。6.根据权利要求5所述的一种带有延时估计功能的回声消除系统,其特征在于,所述房间传输函数估计子模块通过舍弃估计传输函数中的晚期房间混响成分,得到估计传输函数的有效长度为l
tf
个样点;所述滤波器长度设定子模块获取估计传输函数的有效长度l
tf
,并将滤波器长度l
h
设定为:其中,l
tf
为估计传输函数的有效长度;为延时调整处理后期望的参考信号提前于麦克信号延时值的样点个数。7.根据权利要求5所述的一种带有延时估计功能的回声消除系统,其特征在于,所述幅值检测模块计算出麦克信号内的回声信号与参考信号的相对幅度数值;所述相对幅度数值为db值,并通过如下步骤进行计算并进行调整:步骤b1:计算麦克信号与参考信号的短时平均能量e
d,l
与e
x,l

其中,d
l
(n)表示麦克数据块;x
l
(n)表示参考数据块;n表示每个数据块样点总数步骤b2:计算麦克信号与参考信号的递归平均能量r
d,l
,r
x,i
:r
d,l
=α*r
d,l
+(1-)*e
d,l
r
x,l
=α*r
x,l
+(1-α)*e
x,l
其中,α表示递归比例系数;e
d,l
表示麦克信号短时平均能量;e
x,l
表示参考信号短时平均能量;步骤b3:相对幅度数值计算:δd
l
=10*log10(r
d,l
)-10*log10(r
x,l
)其中,r
d,l
表示麦克信号递归平均能量;r
x,l
表示参考信号递归平均能量步骤b4:参考信号幅值调整:其中,表示经过幅值调整后期望的麦克信号比参考信号低的db差值;δδd
l
表示当前参考信号需要调整的db数值;δd
l
表示相对幅度数值的db数值。8.根据权利要求7所述的一种带有延时估计功能的回声消除系统,其特征在于,所述幅值检测模块还检测麦克信号是否发生截项失真,所述麦克信号是否发生截顶失通过截顶失真标志位saturate_flag
l
进行表示:其中,sat_thld为预设的幅度饱和阈值;d
l
(n)表示麦克数据块;saturate_flag
l
为1则发生截项失真,为0则未发生截项失真。9.根据权利要求8所述的一种带有延时估计功能的回声消除系统,其特征在于,所述缓冲区延时线处理及幅度调整模块接收麦克数据块d
l
(n)、参考数据块x
l
(n)、延时调整信息δδτ
l
和幅度调整信息δδd
l
;根据延时调整信息δδτ
l
对麦克数据块d
l
(n)或参考数据块x
l
(n)进行延时调整,若δδτ
l
为正,则表示当前参考信号需要向后延迟δδτ
l
个样点,若δδτ
l
为负,则表示当前麦克信号需要向后延迟-δδτ
l
个样点;根据幅度调整信息δδd
l
对参考数据块x
l
(n)进行幅度调整,δδd
l
若为正,表示参考信号需要被缩小δδd
l
db,反之表示参考信号需要被缩小-δδd
l
db;完成延时调整和幅度调整后,输出调整后麦克数据块和调整后参考数据块10.根据权利要求9所述的一种带有延时估计功能的回声消除系统,其特征在于,所述回声消除模块接收调整后麦克数据块调整后参考数据块设置滤波器系数并进行进行逐点处理;其中,
其中,l
h
为声学路径分析模块给出的滤波器长度;所述动态步长的自适应算法通过如下步骤进行:步骤c1:计算当前帧残差信号e
l
(n):其中:为当前帧调整后麦克数据块对应的向量;为当前帧调整后参考数据块对应的向量的转置;表示上一帧的滤波器系数;步骤c2:计算参考信号能量e
x
(n)与正则化因子δ(n):(n)与正则化因子δ(n):(n)与正则化因子δ(n):(n)与正则化因子δ(n):其中:为当前帧调整后参考数据块对应的向量的转置;表示调整后参考数据块对应的向量;e
l
(n)表示当前帧残差信号;步骤c3:自适应更新滤波器系数步骤c3:自适应更新滤波器系数其中:sarurate_flag表示截顶失真标志位;e
x
(n)表示当前帧参考信号能量;δ(n)表示当前帧正则化因子;表示上一帧的滤波器系数;e
l
(n)表示当前帧残差信号;表示调整后参考数据块对应的向量;步骤c4:更新步长调整辅助变量r
μ
(n):其中:e
x
(n-1)表示上一帧参考信号能量;l
h
为声学路径分析模块给出的滤波器长度;δ(n-1)表示上一帧正则化因子;r
m
(n)表示。

技术总结


本发明提供一种带有延时估计功能的回声消除系统,涉及音频处理技术领域。本发明通过使用延时估计模块对设备的声学场景中的近端信号与远端参考信号之间的延时进行估计,锁定延时后设定合理的缓冲区延时参数,防止远端参考信号滞后于近端回声信号从而提升回声消除的性能;使用幅度检测模块检测检测麦克输入与参考输入幅值,合理调整麦克与参考输入相对幅值大小,使待估计的自适应滤波器系数处于最佳动态范围,防止有效字长效应造成迭代累计误差,同时可以加快滤波器收敛速度;结合幅度检测模块进行截项失真检测,控制自适应滤波器系数冻结更新,防止截顶失真或者破音等非线性扰动造成滤波器发散;使用动态调整的步长和正则化因子,收敛更加迅速。收敛更加迅速。收敛更加迅速。


技术研发人员:

胡奎 姜黎 郭东风 高华能

受保护的技术使用者:

杭州芯声智能科技有限公司

技术研发日:

2022.07.27

技术公布日:

2022/12/8

本文发布于:2024-09-21 18:49:56,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/38490.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:麦克   信号   数据   模块
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议