回声消除方法、装置、系统及存储介质与流程

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

本发明涉及通信、语音交互领域,特别是涉及一种回声消除方法、装置、系统及存储介质。



背景技术:

在实时通信和语音交互等领域中,通常需要在设备安装麦克风和喇叭。喇叭负责播放音乐、故事、合成人声或者是通信对端发送过来的声音,麦克风则用来采集声音。在实时通信和语音交互中,喇叭播放出来的声音被麦克风重新采集,这些声音称为回声。回声会严重干扰机器后续的识别以及影响通信对端的主观感受,所以过滤回声是必不可少的步骤。

传统的回声消除装置通常包括自适应滤波器、双讲检测器以及后处理模块,其中,1)自适应滤波器用于拟合真实的回声;2)双讲检测器用于检测喇叭播放的声音与本地的声音是否同时发出,在同时存在时及时将自适应滤波器系数冻结更新,避免自适应滤波器发散;3)后处理模块用于处理剩余的回声。另外,自适应滤波器的收敛与否,对回声消除干净与否的影响最大。在语音交互和不少实时通信场景中,由于目标信号往往离设备比较远,而设备的尺寸限制使得回声离麦克风非常近,信号-回声比值远低于传统的应用场景,从而使得双讲检测很难准确。此外,由于信号-回声比非常低,使得非线性的后处理模快非常容易误伤目标信号,所以,在这种场景下,基本上只能依赖自适应滤波器的回声消除能力。

自适应滤波器通常需要动态调节步长因子和规则化因子,该动态调节步长因子和规则化因子通过依赖于近端信号的方差估计。然而,目前提供的技术中对近端信号的方差的估计往往不够准确,从而无法准确的调节步长因子和规则化因子,造成回声消除效果差。



技术实现要素:

基于此,有必要针对对近端信号方差的估计不够准确,造成回声消除效果差的问题,提供一种回声消除方法、装置、系统及存储介质。

根据本发明实施例提供的第一方面,提供一种回声消除方法,包括以下步骤:

获取估计本地信号的特征参数;其中,所述特征参数包括发音装置发出的当前帧参考信号和当前帧麦克风接收的信号;

将所述特征参数分别转换为频域信号;

根据转化后的频域信号估计本地信号;

计算本地信号的方差;

根据所述本地信号的方差动态调节自适应滤波器的步长因子和规则化因子。

在其中一个实施例中,所述根据转化后的频域信号估计本地信号包括:

采用以下公式中的至少之一估计本地信号:

其中,表示频域本地信号,d(k)表示转换到频域中麦克风接收的信号,x(k)表示频域参考信号,表示转换到频域中的自适应滤波器系数。

在其中一个实施例中,所述计算本地信号的方差包括:

根据帕塞瓦尔定理计算所述本地信号的方差。

在其中一个实施例中,所述根据所述本地信号的方差动态调节自适应滤波器的步长因子和规则化因子,包括:

根据jo-nlms(jointoptimized-nlms,联合优化归一化最小均方算法)计算步长因子。

在其中一个实施例中,还包括:

在根据转化后的频域信号估计本地信号之后,对本地信号进行非线性处理。

在其中一个实施例中,所述对本地信号进行非线性处理包括:

强制去掉幅值小于预设幅值阈值的频点。

在其中一个实施例中,所述对本地信号进行非线性处理包括:

计算转换到频域中麦克风接收的信号和频域参考信号的相干性;

剔除所述相干性大于预设相干阈值的频点。

根据本发明实施例的第二方面,提供一种回声消除装置,包括:

获取模块,用于获取估计本地信号的特征参数;其中,所述特征参数包括发音装置发出的当前帧参考信号和当前帧麦克风接收的信号;

转换模块,用于将所述特征参数分别转换为频域信号;

第一计算模块,根据转化后的频域信号估计本地信号;

第二计算模块,计算本地信号的方差;

更新模块,根据所述本地信号的方差动态调节自适应滤波器的步长因子和规则化因子。

根据本发明实施例的第三方面,提供一种回声消除系统,包括:处理器和如上述实施例中任一所述的回声消除装置。

根据本发明实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可用于执行上述实施例中任一所述的方法。

相较于现有技术,本发明提供的回声消除方法通过对获取到的用于估计本地信号的特征参数作fft(fastfouriertransform,快速傅里叶变换),从时域信号转化为频域信号,利用频域信号的稀疏性和易区分性,通过频域信号估计的本地信号之后再利用帕塞瓦尔定理估计参数使得计算的本地信号的方差更加准确,有助于增强回声消除效果。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1为本发明一示例性实施例示出的一种回声消除原理图;

图2为本发明一示例性实施例示出的一种回声消除方法流程图;

图3为本发明一示例性实施例示出的一种回声消除方法流程图;

图4为本发明一示例性实施例示出的一种样本采集图;

图5为本发明一示例性实施例示出的一种pvss算法和本发明提供的方法估计处理效果对比图;

图6为本发明一示例性实施例示出的一种回声消除装置框图;

图7为本发明一示例性实施例示出的一种回声消除系统架构图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

图1为本发明一示例性实施例示出的一种回声消除原理图,如图1所示,远端信号如扬声器播放信号x(n)经过声学传播(可建模为回声路径h(n)),得到回声信号y(n),其中,n是指时间索引,该信号y(n)被添加上本地信号v(n),得到麦克风信号d(n)。回声消除则是通过一个自适应滤波器来拟合真实的h(n),假设自适应滤波器足够收敛,使用参考信号x(n)就可以得到一个对回声信号y(n)的估计用公式估计本地信号v(n),即本地信号其中:h(n)=[h0(n)h1(n)...hl-1(n)]t上标t表示转置,l表示自适应滤波器的长度,实际坏境中l通常会高达几千阶,考虑到实际系统的运算能力,自适应滤波器的阶数不会超过500。自适应滤波器系数通常采用基于nlms(normalizedleastmeansquare,归一化最小均方)的滤波器更新方法,采用的公式如下:

故本地信号一般是由近端语音信号和近端噪声信号组成。

步长因子μ可以调节收敛的速度,μ值越大,收敛速度越快,但更容易发散。μ值越小,收敛速度越慢,但越稳定。δ是一个规则化因子,主要影响自适应滤波器的稳定性,通常在nlms算法中使用经验值,例如取

在双讲时(存在本地信号),需要减小步长或者冻结更新,避免滤波器系数发散而消除掉本地信号。变步长因子、变规则化因子算法通常假设已知本地信号的方差通过方差调节步长的大小。但是现有相关技术中对方差估计往往不够准确,导致回声消除不干净,或者本地信号也被消除掉。

本发明提供了一种新的基于频域的本地信号方差估计方法。

图2为本发明一示例性实施例示出的一种回声消除方法流程图,如图2所示,该回声消除方法包括以下步骤:

在步骤201中,获取估计本地信号的特征参数。

在本实施例中,可以分别获取发音装置发出的当前帧参考信号x(n)和当前帧麦克风接收的信号d(n),其中,n为时刻,k为频点。

在步骤202中,将所述特征参数分别转换为频域信号。

在本实施例中,分别对发音装置发出的当前帧参考信号x(n)、当前帧麦克风接收的信号d(n)以及上一帧自适应滤波器系数作fft(fastfouriertransform,快速傅里叶变换),得到频率信号x(k)、d(k)和其中,d(k)表示转换到频域中麦克风接收的信号,x(k)表示频域参考信号,表示转换到频域中的自适应滤波器系数,另外,初始化为0,进行迭代更新后仍然存储在算法内部。

在步骤203中,根据转化后的频域信号估计本地信号。

在本实施例中,可以采用以下公式中的至少之一估计本地信号:

其中,表示频域本地信号,d(k)表示转换到频域中麦克风接收的信号,x(k)表示频域参考信号,表示转换到频域中的自适应滤波器系数。

在步骤204中,计算本地信号的方差。

在本实施例中,可以根据帕塞瓦尔定理的公式计算本地信号的方差

在本实施例中,可以在根据转化后的频域信号估计本地信号之后,对本地信号进行非线性处理,具体地,可以强制去掉幅值小于预设幅值阈值的频点,还可以计算d(k)和x(k)的相干性,剔除所述相干性大于预设相干阈值的频点。

在步骤205中,根据本地信号的方差动态调节自适应滤波器的步长因子和规则化因子。

在本实施例中,可以根据jo-nlms(jointoptimizednlms,联合优化归一化最小均方算法)计算步长因子。

图3为本发明一示例性实施例示出的另一种回声消除方法流程图,如图3所示,回声消除方法包括以下步骤:

在步骤301中,获取发音装置发出的当前帧参考信号和当前帧麦克风接收的信号。

在本实施例中,在获取发音装置发出的当前帧参考信号x(n)和当前帧麦克风接收的信号d(n)之前,可以对各个变量进行初始化。

如前述对回声消除原理的分析可知,因所以为了求出本地信号v(n),首先要获取发音装置发出的当前帧参考信号x(n)和当前帧麦克风接收的信号d(n)。

在步骤302中,对上述获取到的时域信号作fft(fastfouriertransform,快速傅里叶变换),转换为频域信号。

在本实施例中,上述步骤301中获取的当前帧参考信号x(n)和当前帧麦克风接收的信号d(n)以及自适应滤波器系数均为时域信号,可以通过分别对x(n)、d(n)以及作fft(fastfouriertransform,快速傅里叶变换),转换成频域信号x(k)、d(k)和具体地通过以下公式转换:

其中,n表示采样点,k表示频点,初始化为0,进行迭代更新后仍然存储在算法内部。

在步骤303中,根据频域信号估计本地信号。

在本实施例中,可以根据在步骤301中得出的公式推导出时域信号转换为频域信号后估计本地频域信号的公式:

在其他的实施方式中,还可以根据下述公式来估计本地频域信号

在步骤304中,对估计得到的本地信号进行非线性处理。

在本实施例中,经过上述步骤303,由于估计到的本地信号是频域信号,可以通过强制去掉幅值小于预设幅值阈值∈的频点来去除稳态噪声的干扰,其中,∈是根据具体实际情况预先设定的一个临界幅值,当时,则可以认为

在其他的实施方式中,由于回声信号往往和参考信号具有强相干性,还可以通过计算d(k)和x(k)的相干性,剔除d(k)和x(k)的相干性大的频点来去除回声的影响,进一步保证准确估计具体相干性的计算公式可参考相关现有技术,在此不再赘述,其中,d(k)表示转换到频域中麦克风接收的信号,x(k)表示频域参考信号。

在步骤305中,计算本地信号的方差。

在本实施例中,可以根据帕塞瓦尔定理描述的能量守恒原理,即时域能量与频域能量相等,计算本地信号的方差具体采用下述公式:

其中,表示范数。

在步骤306中,根据jo-nlms(jointoptimizednlms,联合优化归一化最小均方算法)分别计算各情况下步长因子μjonlms,l(i),并更新步长因子和规则化因子。

在本实施例中,可以根据jo-nlms算法中的以下公式,循环计算各帧内步长因子μjonlms,l(i)并更新步长因子和规则化因子:

举例而言,图4为本发明一示例性实施例示出的一种样本采集图,其中,扬声器距离麦克风大约10厘米,目标人声距离麦克风约3米,声音信号采样率为16khz,从图上可以看出,采集到的信号信噪比(图中的信号-回声比)非常低,基本淹没在回声里。图5是分别采用pvss(parametricvariablestepsize,参数变步长算法)和本发明提供的方法来估计处理效果图,其中,除去估计参数的方法不同外,其他参数均相同,例如,在进行快速傅里叶变换时,采样点n取512,自适应滤波器的长度取l=320,m(0)=1e-5从图中可知,相较于pvss(parametricvariablestepsize,参数变步长算法),本发明提供的估计方法的更加准确,进行回声消除后回声残留更少。

由上述实施例可知,本发明提供的回声消除方法具有以下优点:

1)由于参考信号和回声相干性较大,加上本地信号往往是稀疏的信号,只占少数的频点,可以利用频域的相关性和稀疏性,使得估计更加准确;

2)在时域里估计参数时,需要对每一点都进行计算,计算量巨大,而在频域里估计参数时,可以分块进行,一帧信号内参数保持不变,大大减少计算量,提高工作效率;

3)在进行循环迭代时,无需对内部循环继续迭代,只需在外部循环迭代更新,大大减小计算量。

与上述本发明实施例提供的回声消除方法相对应,本发明还提供了一种回声消除装置,如图6所示,该回声消除装置包括:获取模块601、转换模块602、第一计算模块603、第二计算模块604以及更新模块605,其中:

获取模块601,获取估计本地信号的特征参数;其中,所述特征参数包括发音装置发出的当前帧参考信号和当前帧麦克风接收的信号;

转换模块602,将所述特征参数分别转换为频域信号;

第一计算模块603,根据转化后的频域信号估计本地信号

第二计算模块604,计算本地信号的方差;

更新模块605,根据所述本地信号的方差动态调节自适应滤波器的步长因子和规则化因子。

本发明还提供一种回声消除系统,包括:计算机500和上述实施例中任一所述的回声消除装置600。

计算机500可以被用于实现实施本发明一些实施例中披露的特定方法和装置。本实施例中的特定装置利用功能框图展示了一个包含显示模块的硬件平台。

在一些实施例中,计算机500可以通过其他硬件设备、软件程序、固件以及他们的组合来实现本发明的一些实施例的具体实施。在其他实施例中,计算机500可以是一个通用目的的计算机,或一个有特定目的的计算机。

图7是本发明示例性实施例提出的一种回声消除系统框图,如图7所示,计算机500可以包括内部通信总线501,处理器502,只读存储器(rom)503,随机存取存储器(ram)504,通信端口505、输入/输出组件506、硬盘507以及用户界面508。内部通信总线501可以实现计算机500组件间的通信。处理器502可以进行判断和发出提示。

在一些实施例中,处理器502可以由一个或多个处理器组成。通信端口505可以实现计算机500与其他部件(图未示)。

在一些实施例中,计算机500可以通过通信端口505从网络发送和接受信息及数据。输入/输出组件505支持计算机500与其他部件之间的输入/输出数据流。用户界面508可以实现计算机500和用户之间的交互和信息交换。计算机500还包括不同形式的程序存储单元以及数据存储单元,例如硬盘507、只读存储器(rom)508、随机存取存储器(ram)504,能够存储计算机处理和/或通信使用的各种数据文件,以及处理器502所执行的可能的程序指令。

所述处理器502执行程序时可用于执行一种回声消除方法,所述方法包括:

获取估计本地信号的特征参数;其中,所述特征参数包括发音装置发出的当前帧参考信号和当前帧麦克风接收的信号;

将所述特征参数分别转换为频域信号;

根据转化后的频域信号估计本地信号;

计算本地信号的方差;

根据所述本地信号的方差动态调节自适应滤波器的步长因子和规则化因子。

本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有发明实施例提供的回声消除方法。所述方法包括:

获取估计本地信号的特征参数;其中,所述特征参数包括发音装置发出的当前帧参考信号和当前帧麦克风接收的信号;

将所述特征参数分别转换为频域信号;

根据转化后的频域信号估计本地信号;

计算本地信号的方差;

根据所述本地信号的方差动态调节自适应滤波器的步长因子和规则化因子。

计算机可读信号介质可能包括一个内含计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等。计算机可读信号介质可以是除计算机可读信号介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读信号介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、射频信号或类似介质、或任何上述介质的组合。

本发明的实施例中各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb、.net、python等,常规程序化编程语言如c语言、visualbasic、fortran2003、php等或其他编程语言。该程序编码可以完全运行在用户计算机上、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机上运行、或完全在远程计算机或服务器上运行。在后面的情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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