1.本发明涉及一种延迟估计方法与对应的信号处理装置,尤其涉及一种应用于消除回音的延迟估计方法。
背景技术:2.当一近端用户使用麦克风与喇叭等装置与一远程用户通过网络进行通话时,由于麦克风在接收近端用户声音时,同时也会接收到喇叭播放的声音,因而产生回音(echo)干扰,此回音是指由喇叭播放出来并透过环境反射被麦克风接收的声音。对于网络语音通话(voice over ip,缩写voip)或者语音识别(voice recognition,缩写vr)等应用而言,回音与环境的噪音都被视为干扰因素,它们会降低通话质量或是降低辨识率,而回音消除(acoustic echo cancelling,缩写aec)是一种用来解决回音干扰的技术。
3.回音消除技术是将喇叭要播放的声音信号(参考信号)输入模拟反射环境的滤波器后得到回音估计值,再将麦克风接收到的声音(捕获信号)减去回音估计值,以达到回音消除的结果。
4.然而,由于系统中用以收音(capture)的麦克风与用以播音(render)的喇叭为不同的硬件装置,两者之间通常存在频率不同步的问题。当麦克风与喇叭所使用的取样频率不同时,便会直接影响回音消除的效果。此外,麦克风与喇叭的取样频率差通常为一个时变因素,使得aec难实时对频率变化做出应对,因而无法将回音完全消除。
5.有鉴于此,需要一种延迟估计方法,用以适应性地估计参考信号与捕获信号之间的时间延迟,所得的延迟用于补偿回音频号与捕获信号,使得aec可有效消除回音。
技术实现要素:6.本发明的一目的在于解决因取样频率不同导致参考信号与捕获信号之间存在会随时间变化的时间延迟的问题。
7.根据本发明的一实施例,一种信号处理装置,包括回音估计装置、捕获信号暂存装置与延迟估计装置。回音估计装置根据参考信号与一组反射路径模拟系数产生回音估计信号,并且根据第一延迟补偿回音估计信号,以产生已补偿的回音估计信号。捕获信号暂存装置用以暂存由麦克风装置捕获的捕获信号,并且根据第二延迟输出捕获信号,以产生已补偿的捕获信号。延迟估计装置耦合回音估计装置与捕获信号暂存装置,用以根据已补偿的回音估计信号与已补偿的捕获信号估计延迟调整量,并且根据延迟调整量更新第一延迟或第二延迟。第一延迟的上限值与下限值的差值小于等于1。
8.根据本发明的另一实施例,一种延迟估计方法包括:根据第一延迟补偿回音估计信号,以产生已补偿的回音估计信号;根据第二延迟输出由麦克风装置捕获的捕获信号,以产生已补偿的捕获信号;根据已补偿的回音估计信号与已补偿的捕获信号估计延迟调整量;以及根据延迟调整量更新第一延迟或第二延迟。第一延迟小于上限值并且大于下限值,并且上限值与下限值的差值小于等于1。
9.根据本发明的另一实施例,一种回音消除方法包括:根据参考信号与一组反射路径模拟系数产生回音估计信号;根据第一延迟补偿回音估计信号,以产生已补偿的回音估计信号;根据第二延迟输出由麦克风装置捕获的捕获信号,以产生已补偿的捕获信号;从已补偿的捕获信号减去已补偿的回音估计信号,以产生输出信号;根据已补偿的回音估计信号与已补偿的捕获信号估计延迟调整量;以及根据延迟调整量更新第一延迟或第二延迟。第一延迟为小于1的一数值,并且第二延迟为一整数值。
附图说明
10.图1是显示根据本发明的一实施例所述的一信号处理装置方框图。
11.图2是显示根据本发明的一实施例所述的延迟估计方框图。
12.图3是显示根据本发明的一实施例所述的能量相对于延迟的范例曲线。
13.图4是显示根据本发明的一实施例所述的延迟估计方法流程图。
14.图5是显示根据本发明的一实施例所述的回音消除方法流程图。
具体实施方式
15.图1是显示根据本发明的一实施例所述的一信号处理装置方框图。信号处理装置100可执行延迟估计、延迟补偿以及回音消除,用以估计参考信号与捕获信号之间的时间延迟,并且分别根据估计的时间延迟补偿回音频号与捕获信号,利用已补偿的信号执行回音消除,进而有效消除回音。
16.信号处理装置100可至少包括回音估计装置110、捕获信号暂存装置120以及延迟估计装置130。回音估计装置110耦合至一信号提供路径,此信号提供路径还耦合至一喇叭装置200,用以将要透过喇叭播放的声音信号提供至喇叭装置200。回音估计装置110从信号提供路径接收声音信号作为参考信号x(m),其中参考信号x(m)为一时域取样信号。在本发明的实施例中,回音消除是针对信号执行逐块处理(block-wise processing),因此,参考信号x(m)其可为包括多个取样点的一向量,并且可表示如下公式(1):
17.x(m)=[x(mn+n-l),....,x(mn),x(mn+1),...,x(mn+n-1)]
t
公式(1)
[0018]
其中n代表信号处理装置100执行每次处理的跳跃(hop)长度(取样点数),l代表快速傅立叶变换(fast fourier transform,缩写为fft)的长度,m代表第m个处理帧。
[0019]
回音估计装置110根据参考信号x(m)与一组反射路径模拟系数产生一回音估计信号,并且根据第一延迟补偿回音估计信号,以产生一已补偿的回音估计信号。
[0020]
回音估计装置110可包括一快速傅立叶变换装置111、一反射路径模拟装置112、一延迟补偿装置113与一快速傅立叶逆变换(inverse fft,缩写为ifft)装置114。
[0021]
快速傅立叶变换装置111用以将参考信号x(m)从时域信号转为频域信号。快速傅立叶变换装置111可通过执行如下公式(2)的计算执行fft:
[0022]
x(m)=f
×
x(m)
ꢀꢀ
公式(2)
[0023]
其中f代表离散傅立叶变换矩阵,x(m)为频域参考信号。
[0024]
反射路径模拟装置112用以根据频域参考信号x(m)与一组反射路径模拟系数产生回音估计信号。反射路径模拟装置112可通过执行如下公式(3)的计算产生回音估计信号:
[0025]
y(m)=x(m)
·
h(m)
ꢀꢀ
公式(3)
[0026]
其中“·”代表点乘运算(或称逐元素乘法,element-wise multiplication),h(m)代表一滤波器的频域滤波器系数,此滤波器是用以模拟声音信号从喇叭反射回麦克风装置的反射路径的信道响应,y(m)代表所得的回音估计信号,其为一频域信号。
[0027]
在本发明的实施例中,参考信号x(m)与麦克风装置300所捕获的捕获信号d(m)之间因取样频率差所产生的延迟可被拆成两个部分,包括分数延迟(以下称第一延迟)与整数延迟(以下称第二延迟),分别用以补偿回音估计信号与捕获信号。
[0028]
延迟补偿装置113用以根据第一延迟补偿回音估计信号y(m),以产生已补偿的回音估计信号y
ξ
(m)。延迟补偿装置113可通过执行如下公式(4)的计算产生已补偿的回音估计信号:
[0029]yξ
(m)=y(m)
·
ψ(ξm)公式(4)
[0030]
其中延迟补偿装置113通过对频域信号作相移操作来补偿延迟,ξm代表当前取得的第一延迟的数值,ξm在每次迭代可以是前一次迭代所更新的第一延迟的数值,并且在第一次迭代可被设定为一默认值或初始值,例如但不限于,被设定为0。ψ(ξm)为相移向量,其可表示如下公式(5),
[0031][0032]
已补偿的回音估计信号y
ξ
(m)可反复地在每次更新/估计延迟的迭代中被提供给延迟估计装置130。
[0033]
快速傅立叶逆变换装置114用以将已补偿的回音估计信号y
ξ
(m)从频域信号转为时域信号,以提供后续回音消除操作。快速傅立叶逆变换装置114可通过执行如下公式(6)的计算执行ifft:
[0034]yξ
(m)=[0 i]
×
f-1
×yξ
(m)
ꢀꢀ
公式(6)
[0035]
其中[0 i]是为了消除圆周折积(circular convolution)造成的失真,0为一全0矩阵,i为单位矩阵(identity matrix),f-1
代表离散傅立叶逆变换矩阵。
[0036]
捕获信号暂存装置120可包括一暂存器121与一信号选取装置122。暂存器121用以暂存一既定取样点数(相当于一既定长度,例如,10ms)的捕获信号d(m),信号选取装置122用以根据第二延迟输出捕获信号d(m),例如,信号选取装置122可根据第二延迟决定想要输出的捕获信号d(m)的起始取样点与结束取样点,并将此区间的取样信号输出作为已补偿的捕获信号d
δ
(m)。已补偿的捕获信号d
δ
(m)可表示如下公式(7):
[0037]dδ
(m)=[d(mn+δm),d(mn+1+δm),...,d(mn+n-1+δm)]
t
ꢀꢀ
公式(7)
[0038]
其中δm代表当前取得的第二延迟的数值,δm在每次迭代可以是前一次迭代所更新的第二延迟的数值,并且在第一次迭代可被设定为一默认值或初始值,例如但不限于,被设定为0。
[0039]
根据本发明的一实施例,延迟估计装置130在每次迭代中利用已补偿的回音估计信号y
ξ
(m)与已补偿的捕获信号d
δ
(m)来重新估计提供给下一次迭代使用的第一延迟ξ
m+1
与第二延迟δ
m+1
的数值,其中下标m代表第m个帧。
[0040]
延迟估计装置130根据已补偿的回音估计信号y
ξ
(m)与已补偿的捕获信号d
δ
(m)估计一延迟调整量,并且根据此延迟调整量决定是否更新第一延迟ξm与第二延迟δm的一个或多个。
[0041]
图2是显示根据本发明的一实施例所述的延迟估计方框图。由延迟估计装置130所执行的延迟估计操作可包括以下步骤:
[0042]
步骤s202:取得已补偿的回音估计信号y
ξ
(m)与已补偿的捕获信号d
δ
(m)。
[0043]
步骤s204:将已补偿的捕获信号d
δ
(m)从时域信号转为频域信号d
δ
(m)。延迟估计装置130可通过执行如下公式(8)的计算执行fft:
[0044]dδ
(m)=f
×d′
δ
(m)
ꢀꢀ
公式(8)
[0045]
其中其是以全0向量对信号d
δ
(m)进行零填充(zero-padded)后的结果。
[0046]
步骤s206:根据多个延迟候选产生多个相移向量使用相移向量计算多个相移信号y
η
(m),并分别计算出多个错误信号e
η
(m)。
[0047]
在本发明的实施例中,延迟估计装置130可先设定多个延迟候选延迟候选满足下公式(9):
[0048][0049]
其中-k≤η≤k,η为用来微调第一延迟ξm的延迟候选的索引值,微调值下限v
l
介于-1~0之间,且微调值上限vu介于0~1之间。将各延迟候选带入公式(5)可得对应的相移向量
[0050]
延迟估计装置130在计算出(2k+1)个相移向量后,接着使用相移向量如下公式(10)计算出(2k+1)个相移信号y
η
(m),及分别根据频域的已补偿的捕获信号d
δ
(m)与相移信号y
η
(m)如下公式(11)计算(2k+1)个错误信号e
η
(m):
[0051][0052]eη
(m)=d
δ
(m)-y
η
(m)
ꢀꢀ
公式(11)
[0053]eη
(m)代表了以不同微调值微调已补偿的回音估计信号y
ξ
(m)后,所得的结果与已补偿的捕获信号之间的落差。在本发明的实施例中,延迟估计装置130是尝试在当前的第一延迟ξm附近寻找是否存在更好的延迟。当此落差越小,表示越可能找到了回音估计信号与捕获信号之间真实的延迟。
[0054]
步骤s208:计算错误信号在一既定频带的能量,以产生多个能量信号,并且寻找能量信号的一最小值。延迟估计装置130可如下公式(12)计算错误信号的能量:
[0055]
pe(m,η)=∑k|e
η
(m,k)|2ꢀꢀ
公式(12)
[0056]
其中k代表既定频带内的频率,而本发明并不限定既定频带范围,因此能量求和的操作∑k可以是针对整个频域或是某个频带。
[0057]
需注意的是,e
η
(m)为第m个处理帧的错误信号,其为一频域信号且为一向量。如同前述的其他频域信号,e
η
(m)可包括l个元素,l代表fft的长度。因此,公式(11)中的e
η
(m)为公式(12)中的e
η
(m,k)的简化表示,即,e
η
(m)实际上可表示为e
η
(m,k)=[e
η
(m,0),e
η
(m,1),...,e
η
(m,l-1)]
t
,其中0、1、...、l-1代表频率的索引值k的数值,并且各索引值所对应的实际数值分别可表示为
[0058]
此外,在本发明的一些实施例中,延迟估计装置130可更进一步对所得的能量作递归平滑,例如以下公式(13)所示的一阶递归平滑(first-order recursive smoothing):
[0059][0060]
根据本发明的一实施例,延迟估计装置130可直接从步骤s208计算的多个能量信号中取出最小值。例如,如以下公式(14)寻找出能量信号最小值以及此最小值所对应的延迟候选的索引值
[0061][0062]
根据本发明的另一实施例,若以延迟候选的数值为x轴,以能量大小为y轴,在二维平面中标示出能量信号pe(m,η)或的落点,则这些落点可能构成一曲线,例如图3所示的不同延迟所对应的能量曲线,其中圆圈代表步骤s208计算的能量信号的落点。
[0063]
为了能更准确地估计出延迟调整量,延迟估计装置130可对这些能量落点执行曲线拟和(curve fitting),以尝试找出包含这些能量落点的曲线(例如图3所示的曲线)及其对应的公式,并通过曲线公式找出最小能量以及此最小能量所对应的延迟候选,其中此最小能量可以不等于步骤s208中计算出来的能量信号数值,并且此最小能量所对应的延迟候选可以不等于延迟估计装置130所设定的延迟候选也未必会落在v
l
~vu范围内。换言之,在步骤s210中,延迟估计装置130还可以通过曲线拟和尝试找出可使错误信号的能量最小的延迟量,此延迟量未必选自延迟估计装置130所设定的延迟候选可以是与延迟候选不同的数值。
[0064]
若此曲线为一开口向下的拋物线,则表示最小能量不存在。
[0065]
若此曲线并非不可能存在最小能量的曲线,则延迟估计装置130可透过曲线公式找出曲线中的最小能量所对应的延迟候选作为第一延迟的微调值。然而,若最小能量所对应的延迟候选与微调值上限vu及微调值下限v
l
的差距大于一特定数值,则延迟估计装置130也可以因微调值不合理而判断最小能量不存在。
[0066]
步骤s210:判断最小能量(例如,能量信号的最小值)是否存在。若不存在,则舍弃本次的延迟估计结果(即,不更新当前的估计,使ξ
m+1
=ξm,δ
m+1
=δm)。若存在,则在步骤s212中更新第一延迟ξm与第二延迟δm的至少一个。
[0067]
步骤s212:根据最小能量估计延迟调整量,并且根据此延迟调整量更新第一延迟ξ
m+1
与第二延迟δ
m+1
的至少一个。
[0068]
假设延迟估计装置130根据前述方法所找到的最小能量所对应的延迟候选设定延迟调整量为(在一些实施例中可能是从延迟候选中选出的数值),则延迟估计装置130可如以下公式(15)根据延迟调整量调整第一延迟以产生一第一数值ξ
′
m+1
:
[0069][0070]
其中μ为调整步距,为避免估计误差或者环境噪音造成的震荡,延迟估计装置130可设定μ≤1。接着,延迟估计装置130可根据第一数值的大小如以下公式(16)判断是否需要修改第一延迟ξ
m+1
与第二延迟δ
m+1
:
[0071][0072]
其中ωu为预先设定的上限值,ω
l
为预先设定的下限值。在本发明的一实施例中,可设定ωu=0.5,ω
l
=0.5,由此控制-0.5<ξ<0.5。
[0073]
更具体的说,延迟估计装置130可判断第一数值ξ
′
m+1
是否小于上限值ωu且大于下限值ω
l
,若是,则直接根据第一数值ξ
′
m+1
更新第一延迟ξ
m+1
(即,设定ξ
m+1
=ξ
′
m+1
),且此时不更新当前估计的第二延迟(即,设定δ
m+1
=δm)。
[0074]
若第一数值ξ
′
m+1
不小于上限值ωu,则如公式(16)通过减少第一数值ξ
′
m+1
得到更新过的第一延迟ξ
m+1
,并且通过增加当前的第二延迟δm得到更新过的第二延迟δ
m+1
。若第一数值ξ
′
m+1
不大于下限值ω
l
,则如公式(16)通过增加第一数值ξ
′
m+1
得到更新过的第一延迟ξ
m+1
,并且通过减少当前的第二延迟δm得到更新过的第二延迟δ
m+1
。
[0075]
需注意的是,在本发明的实施例中,第一延迟ξ的上限值ωu与下限值ω
l
的一差值小于等于1。换言之,在本发明的实施例中,在每次迭代中,无论是否被更新,第一延迟ξ都会被限定在限值ωu与下限值ω
l
所定义的数值范围内。
[0076]
此外,在本发明的实施例中,第一延迟ξ为小于1的一数值,例如,小于1的一分数,而第二延迟δ为一整数值。通过限定第一延迟ξ的数值范围,可有效控制因执行相移操作所产生的误差,藉此可准确且有效率地估计出延迟调整量。
[0077]
此外,在本发明的实施例中,在更新第一延迟或第一延迟与第二延迟后,延迟估计装置130将更新过的第一延迟ξ
m+1
提供至回音估计装置110,以及将更新过的第二延迟δ
m+1
提供至捕获信号暂存装置120。回音估计装置110与捕获信号暂存装置120可反复地根据最新取得的第一延迟与第二延迟补偿信号延迟。延迟估计装置130可反复地从回音估计装置110与捕获信号暂存装置120接收已补偿的回音估计信号与已补偿的捕获信号,根据已补偿的回音估计信号与已补偿的捕获信号估计延迟调整量,并且根据延迟调整量更新第一延迟或第二延迟。通过前述递归操作,信号处理装置100可实时根据最新的信息估计出延迟并对捕获信号与回音估计信号执行延迟补偿,以解决前述频率不同步的问题。
[0078]
需注意的是,在本发明的实施例中,一但第二延迟δ
m+1
被修改为不同于δm的数值,在下一个迭代(或递归)中,捕获信号d(m+1)的起始取样点位置与结束取样点位置就会改变,而其中第二延迟δ的数值可为正整数,也可以为负整数。若第二延迟δ的数值为正整数,表示需要取得未来的捕获信号,因此,在本发明的实施例中,信号处理装置100可事先延迟捕获信号,将其储存在捕获信号暂存装置120中,由此操作,可使最新取得的捕获信号成为未来的捕获信号。
[0079]
图4是显示根据本发明的一实施例所述的延迟估计方法流程图。延迟估计方法可包括以下步骤:
[0080]
步骤s402:根据第一延迟补偿回音估计信号,以产生已补偿的回音估计信号。
[0081]
步骤s404:根据第二延迟输出由麦克风装置捕获的捕获信号,以产生已补偿的捕获信号。
[0082]
如上所述,在本发明的实施例中,参考信号x(m)与捕获信号d(m)之间因取样频率差所产生的延迟可被拆成分数延迟与整数延迟两个部分。因此,第一延迟为一分数,并被限定在上限值ωu与下限值ω
l
之间,而第二延迟为一整数。
[0083]
步骤s406:根据已补偿的回音估计信号与已补偿的捕获信号估计一延迟调整量。
[0084]
步骤s408:根据延迟调整量更新第一延迟或第二延迟。
[0085]
在本发明的实施例中,前述步骤迭代地被信号处理装置100所对应的组件执行。此外,在本发明的实施例中,若判断前述的最小能量不存在或微调值不合理,也可以跳过步骤s406中估计延迟调整量的操作,或者将延迟调整量设定为0,并在步骤s408中直接以当前的第一延迟与第二延迟作为更新后的数值后返回步骤s402。
[0086]
参考回图1,信号处理装置100还可以包括一回音消除装置,例如图中所示的加法器(亦可为一减法器),或者,在本发明的一些实施例中,回音估计装置110与加法器可被整合为一回音消除装置。回音消除装置用以从已补偿的捕获信号d
δ
(m)减去已补偿的回音估计信号y
ξ
(m),以产生一输出信号,此输出信号为一回音消除信号。
[0087]
图5是显示根据本发明的一实施例所述的回音消除方法流程图。回音消除方法可包括以下步骤:
[0088]
步骤s502:根据参考信号与反射路径模拟系数产生回音估计信号。
[0089]
步骤s504:根据第一延迟补偿回音估计信号,以产生已补偿的回音估计信号。
[0090]
步骤s506:根据第二延迟输出由一麦克风装置捕获的一捕获信号,以产生已补偿的捕获信号。
[0091]
步骤s508:从已补偿的捕获信号减去已补偿的回音估计信号,以产生一输出信号。
[0092]
步骤s510:根据已补偿的回音估计信号与已补偿的捕获信号估计延迟调整量。
[0093]
步骤s512:根据延迟调整量更新第一延迟或第二延迟。
[0094]
在本发明的实施例中,前述步骤迭代地被信号处理装置100所对应的组件执行。此外,如上所述,在一些情况中,延迟调整量可能被设定为0。
[0095]
此外,本发明并不限于先执行回音消除后再执行延迟估计。例如,在本发明的其他实施例中,步骤s504~s508亦可在步骤s510~s512完成后执行。即,信号处理装置可先根据当前取得的回音估计信号与捕获信号执行延迟估计与延迟更新,再使用更新过的第一延迟与第二延迟补偿回音估计信号与捕获信号并执行回音消除。
[0096]
如上所述,通过前述操作,信号处理装置100可实时根据最新的信息估计出延迟并对捕获信号与回音估计信号执行延迟补偿与回音消除,以解决前述频率不同步的问题。
[0097]
以上所述仅为本发明的较佳实施例,任何按照本发明实施例所做的等同变化与修改,都应属于本发明覆盖的范围。
[0098]
附图标记说明
[0099]
100:信号处理装置
[0100]
110:回音估计装置
[0101]
111:快速傅立叶变换装置
[0102]
112:反射路径模拟装置
[0103]
113:延迟补偿装置
[0104]
114:快速傅立叶逆变换装置
[0105]
120:捕获信号暂存装置
[0106]
121:暂存器
[0107]
122:信号选取装置
[0108]
130:延迟估计装置
[0109]
200:喇叭装置
[0110]
300:麦克风装置