一种跟踪回声时延的方法和装置的制造方法_2

文档序号:9711754阅读:来源:国知局

[0063] 获取当前帧之前的一个或多个帧的滤波后的回声时延并确定其均值和方差;
[0064] 确定当前帧的回声时延与均值之差的绝对值;
[0065] 如果所述绝对值小于等于误差阈值,则确定所述当前帧的回声时延的误差在误差 范围以内;
[0066] 否则,确定所述当前帧的回声时延的误差超过误差范围;
[0067] 其中所述误差阈值由所述方差确定。
[0068] 由以上技术方案可以看出,本发明在获取回声参考信号的过程中,利用回声参考 信号和声音输入信号在当前帧的互相关函数的峰值来确定回声参考信号在当前帧的回声 时延,从而跟踪回声参考信号在每一帧的回声时延,以便为消除时延抖动以及提高回声消 除性能的长期稳定性提供基础。 【【附图说明】】
[0069]图1示出了现有技术中利用AEC消除回声的系统结构示意图;
[0070] 图2示出了根据本发明实施例一提供的一种跟踪回声时延的方法流程图;
[0071] 图3示出了根据本发明实施例一提供的一种对当前帧的回声时延进行跟踪滤波的 方法流程图;
[0072] 图4示出了根据本发明实施例二提供的一种跟踪回声时延的装置结构示意图;
[0073] 图5示出了现有技术中自动回声消除的效果图;
[0074] 图6示出了利用本发明跟踪的回声时延的结果;
[0075] 图7示出了根据本发明跟踪的回声时延进行时延补偿后的自动回声消除的效果 图。 【【具体实施方式】】
[0076] 为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对 本发明进行详细描述。
[0077] 实施例一、
[0078]图2为本发明实施例一提供的一种跟踪回声时延的方法流程图。如图2所示,该方 法可以包括以下步骤:
[0079] 201、获取回声参考信号和声音输入信号。
[0080]该步骤中,可以通过系统的硬件或软件获取回声参考信号;可以通过麦克风来获 取说话人的声音输入信号。
[0081 ]另外,可以将回声参考信号的每一帧作为时间单位,每一帧执行一次获取信号的 操作。其中回声参考信号的帧长可以根据需要自行设定。
[0082]例如取15mS,20ms、或30ms的回声参考信号的长度为一帧,每次按帧来执行获取信 号的操作。
[0083] 202、判断回声参考信号在当前帧是否存在回声。
[0084]该步骤中,可以依据回声参考信号的能量判断回声参考信号在当前帧是否存在回 声,并根据判断的结果做相应的处理。
[0085]确定当前帧的回声参考信号的能量的基本原理是,从包含当前帧的回声参考信号 的预定信号长度中采集多个时间点的信号能量;根据采集的多个时间点的信号能量得到信 号能量的平均值,该平均值即为当前帧的回声参考信号的信号能量。
[0086]其中所述预定信号长度的取值与预设的最大时延有关。由于最大时延与消除回声 设备的设备自身处理参数有关,虽然每个设备的最大时延可能会有不同,但是当设备固定 后,最大时延的范围也将确定,因此预设的最大时延可以根据硬件设备或软件系统的实际 情况进行选取。
[0087]设当前帧的回声参考信号为u(k),k代表回声参考信号的当前帧的时间,每次处理 的预定信号长度为N,而η代表从包含当前帧的回声参考信号的预定信号长度中采集的η个 时间点。
[0088]则当前帧的回声参考信号的能量可以表示为:
[0090]公式(1)中可以使回声参考信号的帧长相对N短一些,例如设定30ms为一帧,也就 是说每30ms进行一次当前帧的回声参考信号能量的计算,由于N与最大时延有关,假设预设 的最大时延为60ms,则N可以取大于60ms的长度,或者接近60ms的长度,例如将N取IOOms,即 在I OOms的信号长度中采集η个时间点。
[0091]在对当前帧的信号能量进行计算时,通过将采集的时间点扩展为大于等于当前帧 长的预定信号长度,可以避免由于时延超过当前帧而导致检测不到回声的情况。还是以 30ms为一帧、在IOOms的信号长度内采集多个时间点为例,假设时延为45ms时,由于是在 IOOms的信号长度内采集用于计算平均能量的时间点能量,因此即使当前帧的长度小于时 延,也能检测到当前帧的回声。
[0092]在确定了当前帧的回声参考信号能量后,可以将信号能量的平均值与最小能量阈 值进行比较,如果所述信号能量的平均值大于或等于最小能量的阈值,则判断为存在回声, 否则不存在回声。
[0093]可以通过如下能量检测法来判断当前帧是否存在回声信号,即:
[0095] 其中,Eu(k)表示当前帧的回声参考信号的能量,EuMin表示回声参考信号的最小能 量阈值。
[0096] 极端情况下,考虑到从系统获取的回声参考信号比较纯净,当设备自身不发声时, 回声参考信号的预设最小能量值可以为〇。
[0097] 然而,由于通过软件或硬件获取的回声参考信号可能存在误差与干扰,因此可以 将EuMin的阈值设定为大于0的一个值,以对噪声给出一定的宽容性。该阈值的大小可以根据 系统实际情况进行设置。
[0098]当回声参考信号的能量大于等于EuMlJt,表示当前帧存在回声,则进入步骤203, 利用回声参考信号和声音输入信号在当前帧的互相关函数来确定回声时延;否则,直接进 入步骤206,取前一帧的回声时延作为时延跟踪的结果,或者不做处理。
[0099] 203、利用回声参考信号和声音输入信号在当前帧的互相关函数以确定回声时延。
[0100]该步骤中,确定回声参考信号和声音输入信号在当前帧的互相关函数的目的是获 取当前帧回声参考信号与声音输入信号之间的时延差,或者称为回声参考信号在当前帧的 回声时延。
[0101] 由于互相关函数的互相关就是两个函数之间的相似性,当两个函数都具有相同周 期分量的时候,它的极大值同样能体现这种周期性的分量。由此,可以根据互相关函数的峰 值来确定回声参考信号在当前帧的回声时延。
[0102] 设由麦克风获取的声音输入信号为d(k),表示为:
[0103] d(k) =s(k)+u/ (k)+e(k) =s(k)+u(k-ik)+e(k) (2)
[0104] 其中k与公式(I)一样,仍然表示当前帧的时间;s(k)表示说话人信号;e(k)表示环 境噪声,为平稳高斯随机过程;Y (k)表示扬声器发出的回声信号,与回声参考信号u(k)之 间存在不稳定的时延Tk,这个时延Tk即是希望准确估计的回声时延变量。
[0105] 由于s(k)、e(k)与u(k)互不相关,则声音输入信号d(k)和回声参考信号u(k)的互 相关函数R du⑴可以表示为:
丨-
[0107]其中公式(3)的k、N、n与公式(1)所表示的含义相同。
[0108]当1 =地寸,互相关函数Rdu⑴取最大,信号d(k)与u(k)的波形相似性最大。因此通 过估计互相关函数Rdu(T)的峰值,在该峰值处互相关函数自变量τ的取值就是确定出的回声 时延Tk。
[0109]可替代地,由于互相关函数与功率谱之间存在快速傅里叶变换(FFT)的关系,因此 考虑到工程实现的计算效率,为了加快对当前帧的回声时延的计算速度,可以使用快速傅 里叶变换(FFT)和快速傅里叶反变换(IFFT)来确定互相关函数的峰值。
[0110]具体地,由于快速傅里叶变换所处理的是频域信号,因此可以将当前帧的互相关 函数中的时域变量转换为频域变量,从而利用快速傅里叶变换确定所述互相关函数的峰 值。
[0111] 对于长度N的数字信号d(k)、u(k),互相关函数可以求解如下:
[0112] Rdu(x) = IFFT[D(jw) · U*(jw)] = IFFT[FFT[d(k)] *FFT*[u(k)]] (4)
[0113] 其中,FFT□和IFFT[]分别表示信号的FFT和IFFT变换;jw是对应的频域变量;d (k)、u(k)是时域信号;*表示共辄函数。
[0114]当互相关函数的相关峰很尖锐时,比较容易得到准确的峰值位置,从而精确确定 当前帧的回声时延。因此如果在步骤203中即获得了满意的结果,则可以将步骤103所确定 的当前帧的回声时延作为跟踪回声时延的结果输出。
[0115]然而在实际应用中,受到环境噪声和语音传播信道复杂性的影响,互相关函数可 能出现多个虚假峰或者没有明显的主峰。优选地,为了增强互相关主峰,本实施例还可以在 步骤203的基础上,选择执行步骤204和/或步骤205,以使互相关函数以及回声时延能够结 合跟踪滤波来提高所确定的当前帧的回声时延的精度。
[0116] 204、对当前帧的互相关函数进行跟踪滤波。
[0117]该步骤的目的是对由步骤
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1