一种回声消除方法、服务器、终端及系统与流程

文档序号:16760567发布日期:2019-01-29 17:41阅读:166来源:国知局
一种回声消除方法、服务器、终端及系统与流程

本申请涉及音频数据处理技术领域,特别是涉及一种回声消除方法,一种回声消除服务器,一种回声消除的终端,以及,一种回声消除系统。



背景技术:

通话过程中,在近端设备播放远端设备发送的语音信号时,近端设备中的麦克风会采集该语音信号,并将该语音信号发送给远端设备,导致远端设备的用户会听到自己发出的语音信号的回声,影响通话质量,因此,需要对通话过程中的回声进行消除。

在现有回声消除技术中,一般采用fir线性滤波器进行回声消除,然而,传统的回声消除算法,在开始的算法收敛期内,会有回声出现。同时传统算法对播放到采集的延时有一定的限度,且一些精确的延时估计算法由于性能问题,不能及时准确的在终端上检测。



技术实现要素:

本申请实施例所要解决的技术问题是提供一种回声消除服务器,用以实现终端上算法的零收敛、抗任意延时。

相应的,本申请实施例还提供了一种回声消除服务器,一种回声消除的终端,以及,一种回声消除系统,用以保证上述方法的实现及应用。

为了解决上述问题,本申请实施例公开了一种回声消除方法,所述方法应用于服务器集群,所述方法包括:

向一个或多个终端提供检测信号;

接收所述一个或多个终端发送的采集信号,所述采集信号为所述一个或多个终端播放所述检测信号时,由所述一个或多个终端的麦克风采集的音频信号;

基于所述采集信号以及所述检测信号,确定所述一个或多个终端对应的回声特性参数,所述回声特性参数用于所述终端的回声消除。

优选地,所述方法还包括:

将所述回声特性参数发送至对应的终端。

优选地,所述回声特性参数包括时延信息,所述基于所述采集信号以及所述检测信号,确定所述一个或多个终端对应的回声特性参数的步骤包括:

接收终端发送的时延信息,所述时延信息为所述终端基于所述采集信号以及所述检测信号确定的信息。

优选地,所述回声特性参数还包括第一滤波器系数值,所述基于所述采集信号以及所述检测信号,确定所述一个或多个终端对应的回声特性参数的步骤包括:

将所述采集信号以及所述检测信号输入至少一个第一自适应滤波器模型,输出第一回声预测信号,所述第一自适应滤波器模型包括第一滤波器系数;

确定所述第一回声预测信号对应的第一滤波器系数的第一滤波器系数值。

优选地,所述方法还包括:

接收终端发送的第二滤波器系数值;

若所述第二滤波器系数值与参考滤波器系数值之间的差值在预设范围内,则判定终端的第二自适应滤波器模型处于稳定状态,并将所述第二滤波器系数值作为参考滤波器系数值,其中,所述参考滤波器系数值的初始值为所述第一滤波器系数值;

若所述第二滤波器系数值与参考滤波器系数值之间的差值不在预设范围内,则判定终端的第二自适应滤波器模型处于不稳定状态,并将所述参考滤波器系数值发送至所述终端。

优选地,所述将所述回声特性参数发送至对应的终端的步骤包括:

当接收到终端发送的使能信号时,将所述回声特性参数发送至所述终端。

本申请实施例还公开了一种回声消除方法,所述方法应用于终端侧,所述方法包括:

接收服务器端发送的检测信号,并播放所述检测信号;

获取麦克风采集的采集信号;

将所述采集信号发送至服务器;

接收所述服务器发送的回声特性参数,所述回声特性参数由所述服务器基于所述采集信号以及所述检测信号确定;

采用所述回声特性参数进行所述终端的回声消除。

优选地,在所述接收所述服务器发送的回声特性参数的步骤之前,还包括:

当检测到存在回声消除需求时,向服务器发送使能信号。

优选地,所述回声特性参数包括第一滤波器系数值,所述采用所述回声特性参数进行所述终端的回声消除的步骤包括:

采用所述第一滤波器系数值进行至少一个第二自适应滤波器模型的初始化;

接收远端音频信号;

播放所述远端音频信号,并获取麦克风采集的近端音频信号;

将所述远端音频信号以及所述近端音频信号输入所述第二自适应滤波器模型,输出第三回声预测信号;

计算所述近端音频信号与所述第三回声预测信号的残差信号,作为音频输出信号。

优选地,所述第二自适应滤波器模型包括第二滤波器系数,所述方法还包括:

确定所述第三回声预测信号对应的第二滤波器系数的第二滤波器系数值;

将所述第二滤波器系数值发送至所述服务器。

优选地,所述方法还包括:

接收服务器返回的参考滤波器系数值,所述参考滤波器系数值为所述服务器基于所述第二滤波器系数值判定所述终端的滤波器状态不稳定时向终端发送的值;

采用所述参考滤波器系数值更新对应的第二自适应滤波器模型。

优选地,所述回声特性参数还包括时延信息;在所述播放所述远端音频信号的步骤之前,所述方法还包括:

采用所述时延信息对所述远端音频信号进行去时延处理。

本申请实施例还公开了一种回声消除服务器,所述服务器包括:

检测信号提供模块,用于向一个或多个终端提供检测信号;

采集信号接收模块,用于接收所述一个或多个终端发送的采集信号,所述采集信号为所述一个或多个终端播放所述检测信号时,由所述一个或多个终端的麦克风采集的音频信号;

回声特性参数确定模块,用于基于所述采集信号以及所述检测信号,确定所述一个或多个终端对应的回声特性参数,所述回声特性参数用于所述终端的回声消除。

优选地,所述服务器还包括:

回声特性参数发送模块,用于将所述回声特性参数发送至对应的终端。

优选地,所述回声特性参数包括时延信息,所述回声特性参数确定模块包括:

时延信息接收模块,用于接收终端发送的时延信息,所述时延信息为所述终端基于所述采集信号以及所述检测信号确定的信息。

优选地,所述回声特性参数还包括第一滤波器系数值,所述回声特性参数确定模块包括:

回声预测子模块,用于将所述采集信号以及所述检测信号输入至少一个第一自适应滤波器模型,输出第一回声预测信号,所述第一自适应滤波器模型包括第一滤波器系数;

第一滤波器系数值确定子模块,用于确定所述第一回声预测信号对应的第一滤波器系数的第一滤波器系数值。

优选地,所述服务器还包括:

第二滤波器系数值接收模块,用于接收终端发送的第二滤波器系数值;

滤波器系数更新模块,用于若所述第二滤波器系数值与参考滤波器系数值之间的差值在预设范围内,则判定终端的第二自适应滤波器模型处于稳定状态,并将所述第二滤波器系数值作为参考滤波器系数值,其中,所述参考滤波器系数值的初始值为所述第一滤波器系数值;

参考滤波器系数值发送模块,用于若所述第二滤波器系数值与参考滤波器系数值之间的差值不在预设范围内,则判定终端的第二自适应滤波器模型处于不稳定状态,并将所述参考滤波器系数值发送至所述终端。

优选地,所述回声特性参数发送模块还用于:

当接收到终端发送的使能信号时,将所述回声特性参数发送至所述终端。

本申请实施例还公开了一种回声消除的终端,所述终端包括:

检测信号接收模块,用于接收服务器端发送的检测信号,并播放所述检测信号;

采集信号获取模块,用于获取麦克风采集的采集信号;

采集信号发送模块,用于将所述采集信号发送至服务器;

回声特性参数接收模块,用于接收所述服务器发送的回声特性参数,所述回声特性参数由所述服务器基于所述采集信号以及所述检测信号确定;

回声消除模块,用于采用所述回声特性参数进行所述终端的回声消除。

优选地,所述终端还包括:

使能信号发送模块,用于当检测到存在回声消除需求时,向服务器发送使能信号。

优选地,所述回声特性参数包括第一滤波器系数值,所述回声消除模块包括:

初始化子模块,用于采用所述第一滤波器系数值进行至少一个第二自适应滤波器模型的初始化;

远端信号接收子模块,用于接收远端音频信号;

远端信号播放子模块,用于播放所述远端音频信号,并获取麦克风采集的近端音频信号;

滤波处理子模块,用于将所述远端音频信号以及所述近端音频信号输入所述第二自适应滤波器模型,输出第三回声预测信号;

音频输出信号确定子模块,用于计算所述近端音频信号与所述第三回声预测信号的残差信号,作为音频输出信号。

优选地,所述第二自适应滤波器模型包括第二滤波器系数,所述终端还包括:

第二滤波器系数值确定模块,用于确定所述第三回声预测信号对应的第二滤波器系数的第二滤波器系数值;

第二滤波器系数值发送模块,用于将所述第二滤波器系数值发送至所述服务器。

优选地,所述终端还包括:

参考滤波器系数值接收模块,用于接收服务器返回的参考滤波器系数值,所述参考滤波器系数值为所述服务器基于所述第二滤波器系数值判定所述终端的滤波器状态不稳定时向终端发送的值;

滤波器更新模块,用于采用所述参考滤波器系数值更新对应的第二自适应滤波器模型。

优选地,所述终端还包括:

去时延模块,用于采用所述时延信息对所述远端音频信号进行去时延处理。

本申请实施例还公开了一种系统,包括:

一个或多个处理器;和

其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述系统执行上述的方法。

本申请实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行上述的方法。

与背景技术相比,本申请实施例包括以下优点:

在本申请实施例中,在通话开始前,服务器向一个或多个终端提供检测信号,并接收终端基于该检测信号返回的采集信号,对采集信号以及检测信号进行分析,得到用于终端进行回声消除的回声特性参数,为通话接通之后提供初始准确的算法参数。

在通话开始时,服务器将存储的回声特性参数作为终端上的滤波器的初始参数传到终端,终端采用该回声特性参数初始化滤波器,实现终端上算法的零收敛、抗任意延时。

在通话过程中,服务器实时检测终端上滤波器的运行状态,当检测到滤波器不稳定时,及时将稳定的回声特性参数传送到终端,可以达到不断修正恢复不稳定的滤波器状态,从而有效地消除回声。

附图说明

图1是本申请的通话过程中的音频信号传输示意图;

图2是本申请的智能检测流程图;

图3是本申请的回声消除流程示意图;

图4是本申请的一种回声消除方法方法实施例一的步骤流程图;

图5是本申请的一种回声消除方法方法实施例二的步骤流程图;

图6是本申请的一种回声消除服务器实施例的结构框图;

图7是本申请的一种回声消除的终端实施例的结构框图;

图8是本申请的一种系统实施例的结构示意图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

参考图1示出了通话过程中的音频信号传输示意图,近端设备播放远端设备发送的远端音频信号s(n)时,s(n)首先经过功放产生谐波失真以及经过喇叭产生破音,从而产生非线性回声,然后经过空气中声音的衰减以及麦克风采集,产生线性回声,基于此,麦克风最终采集的近端音频信号d(n)可以包括远端音频信号s(n)播放出来后被麦克风采集的语音成分y(n)、环境噪声的成分n(n)、麦克风采集的近端拿话筒讲话的用户的声音成分x(n),最后,麦克风将d(n)传输至远端设备中,导致远端设备的用户能够听到自己的回声。

为了克服现有技术中出现的收敛慢、延时不可控、滤波器不稳定等缺陷,本申请实施例涉及服务器与终端的通信,可以包括智能检测阶段以及回声消除阶段,其中,智能检测阶段是本申请实施例的重要一环,也是提升回声消除体验的一个重要节点。

在智能检测阶段,参考图2所示的智能检测流程图,首先服务器通过信号生成器生成检测信号,将检测信号通过音频编码传输到终端(如图2的移动设备)上,终端对该检测信号进行音频解码后通过喇叭播放。并通过麦克风采集采集信号,在终端上通过信号分析器2进行第一轮的算法分析,得到时延信息,并将时延信息传递至服务器的存储单元进行存储。同时,终端通过音频编码将采集信号传递至服务器。服务器通过音频解码对采集信号进行解码,并采用信号分析器1对采集信号以及检测信号进行算法分析,得到回声特性参数,并将其存储到服务器上的存储单元,为通话接通之后提供初始准确的算法参数。

在回声消除阶段,在通话开始时,服务器将存储单元存储的回声特性参数作为终端上的自适应滤波器的初始参数传到终端,终端采用该回声特性参数初始化自适应滤波器,实现终端上算法的零收敛、抗任意延时。

参考图3所示的回声消除流程示意图,对从远端接收的远端音频信号s(n)进行播放,同时,服务器的存储单元将延时信息传到终端,采用该延时信息消除播放的音频信号与采集的音频信号的实际延时,以方便于进行自适应滤波。

去掉延时的音频信号,经过滤波器的数学模型,得到输出数据,同时将滤波器的状态反馈到服务器,实现服务器实时检测滤波器状态。当滤波器出现不稳定、不能消除回声时,服务器将存储单元中存储的稳健的回声特性参数传到终端上,终端采用该稳健的回声特性参数能够迅速重置滤波器,达到快速恢复滤波器参数的效果,从而有效消除回声。

下面分别基于服务器侧以及终端侧,对具体的实现方式进行详细介绍。

参照图4,示出了本申请的一种回声消除方法方法实施例一的步骤流程图,本申请实施例基于服务器集群进行描述具体可以包括如下步骤:

s401,向一个或多个终端提供检测信号;

在具体实现中,该检测信号可以为不同形态的有效的音频信号,用于在通话开始前提前发送到终端上,以对终端上的自适应滤波器模型中的回声特性参数进行智能检测,为通话接通之后提供稳定的算法参数。

作为一种示例,该检测信号可以包括不同幅度的全频带信号、不同频带的单频信号等,其中,全频带信号可以包括随机白噪声;单频信号是更加细化的频带声音,例如电话按键音,高音、中音、低音就是指不同频带的声音。

在一种实施方式中,服务器可以通过数学公式生成检测信号,例如,单频信号可以通过cos、sin等函数计算获得,而产生随机白噪声即可认为是全频带信号。

服务器生成检测信号以后,对该检测信号进行压缩编码后传递至一个或多个终端中。

s402,接收所述一个或多个终端发送的采集信号;

在本申请实施例中,该采集信号为上述一个或多个终端播放检测信号时,由该一个或多个终端的麦克风采集的音频信号。

在具体实现中,终端获取检测信号以后,可以对该检测信号进行解码后通过喇叭播放,并通过麦克风采集获得采集信号。服务器向终端发送检测信号的一段时间后,可以接收到终端基于该检测信号返回的采集信号。

在实际中,采集信号可以包括检测信号播放出来后被麦克风采集的语音成分,麦克风采集环境噪声的成分等。

s403,基于所述采集信号以及所述检测信号,确定所述一个或多个终端对应回声特性参数。

在本申请实施例中,回声特性参数用于终端的回声消除。作为一种示例,回声特性参数可以包括但不限于时延信息、滤波器系数值、终端信息等。

在本申请实施例的一种优选实施例中,当回声特性参数包括时延信息时,s403可以包括如下子步骤:接收终端发送的时延信息。

具体的,该时延信息为终端基于采集信号以及检测信号确定的信息。在具体实现中,在终端播放检测信号以后,终端可以计算喇叭播放该检测信号的时间距离麦克风采集的音频信号的时间之间的时间差,作为时延信息,得到时延信息以后,终端可以将时延信息发送至服务器进行存储。

服务器接收到终端发送的时延信息以后,可以结合获取的终端的型号等终端信息,以终端信息作为文件标识,将该时延信息存储到该终端信息对应的存储单元中。

在本申请实施例的一种优选实施例中,当回声特性参数包括滤波器系数值时,s403可以包括如下子步骤:将所述采集信号以及所述检测信号输入至少一个第一自适应滤波器模型,输出第一回声预测信号,所述第一自适应滤波器模型包括第一滤波器系数;确定所述第一回声预测信号对应的第一滤波器系数的第一滤波器系数值。

具体的,服务器端接收到采集信号以后,对该采集信号进行解码,根据该采集信号以及检测信号,分析出第一滤波器系数值。

在具体实现中,服务器侧具有至少一个自适应滤波器模型,为了与终端侧的自适应滤波器模型进行区分,将服务器侧的自适应滤波器模型称为第一自适应滤波器模型,将终端侧的自适应滤波器模型称为第二自适应滤波器模型。

服务器将采集信号以及检测信号输入该至少一个第一自适应滤波器模型,由该至少一个第一自适应滤波器模型对检测信号进行自适应滤波处理,得到回声预测信号。得到最终输出的回声预测信号以后,可以获取最终收敛的第一自适应滤波器模型中的第一滤波器系数值,作为该对应的滤波器模型的回声特性参数。

作为一种示例,该第一自适应滤波器模型可以包括第一非线性滤波器模型和/或第一线性滤波器模型,则对应的第一滤波器系数值可以包括第一非线性滤波器系数值以及第一线性滤波器系数值。

在一种实施方式中,该第一自适应滤波器模型可以包括第一非线性滤波器模型,该第一非线性滤波器模型可以用于对回声信号中的非线性回声成分进行估计。

作为一种示例,该第一非线性滤波器模型可以包括但不限于:多项式模型、非线性相位iir模型、余弦cos非线性模型等。

当将检测信号输入该第一非线性滤波器模型后,该第一非线性滤波器模型可以输出第一回声预测信号,该第一回声预测信号可以为检测信号经过功放、喇叭之后播放出来的信道之后的数据的估计,可以包括已经估计的非线性回声预测信号以及未估计的线性回声成分。

以下描述第一非线性滤波器模型对检测信号的处理过程:

在具体实现中,可以将检测信号进行非线性方程运算,如非线性多项式运算,得到非线性音频信号。

例如,若检测信号为s1(n),对其进行二次多项式运算,得到的非线性音频信号可以为s12(n)。

得到非线性音频信号以后,可以采用归一化最小均方自适应滤波算法对该非线性音频信号进行处理,得到第一回声预测信号。

首先可以采用最小均方算法对非线性音频信号进行处理,基于非线性音频信号的最小均方算法可以表示为如下公式(1):

其中,y'(n)为第一回声预测信号,w'(k)为当前帧检测信号往前k帧的检测信号对应的第一非线性滤波器系数,即功放与喇叭模拟信道滤波器系数,s1(n-k)为当前帧检测信号往前k帧的检测信号。

在另一种实施方式中,该第一第一自适应滤波器模型还可以包括第一线性滤波器模型,该第一线性滤波器模型可以用于对回声信号中的线性回声成分进行估计。

作为一种示例,该第一线性滤波器模型可以包括但不限于:线性相位fir滤波器模型等。

得到第一回声预测信号以后,当将该第一回声预测信号输入该第一线性滤波器模型,该第一线性滤波器模型可以输出第二回声预测信号,该第二回声预测信号可以为检测信号经过空气衰减、麦克风拾取之后的数据的估计,可以包括已经估计的非线性回声预测信号以及已经估计的线性回声预测信号。

以下描述第一线性滤波器模型对第一回声预测信号的处理过程:

在具体实现中,可以采用最小均方自适应滤波算法对该第一回声预测信号进行处理,得到第二回声预测信号。

在一种实施方式中,首先可以采用最小均方算法对第一回声预测信号进行处理,基于第一回声预测信号的最小均方算法可以表示为如下公式(2):

其中,y”(n)为第二回声预测信号,w”(k)为当前帧第一回声预测信号往前k帧的第一回声预测信号对应的第一线性滤波器系数,y'(n-k)为当前帧第一回声预测信号往前k帧的第一回声预测信号。

得到第二回声预测信号以后,可以计算采集信号以及第二回声预测信号之间的残差信号e(n),即e(n)=d(n)-y”(n)。

在具体实现中,上述第一非线性滤波器模型以及第一线性滤波器模型所依据的自适应算法是一个迭代算法,得到残差信号以后,可以将该残差信号作为下一次算法的系数,以对第一非线性滤波器系数值以及第一线性滤波器系数值进行更新,再将更新后的系数反馈到最小均方算法中,从而更好地估计非线性回声以及线性回声。

在一种实施方式中,基于残差信号对第一非线性滤波器系数值进行更新的公式可以表示如下公式(3):

其中,u'(k)为第一自适应更新步长因子,其设定可以根据经验设定,w'(k)为更新前的第一非线性滤波器系数值,w'(k+1)为更新后的第一非线性滤波器系数值,s1(k)为当前帧检测信号,s1(n-k)为当前帧检测信号往前k帧的检测信号,e(n)为残差信号。

在一种实施方式中,基于残差信号对第一线性滤波器系数值的更新的公式可以表示如下公式(4):

其中,u”(k)为第二自适应更新步长因子,其设定可以根据经验设定,w”(k)为更新前的第一线性滤波器系数值,w”(k+1)为更新后的第一线性滤波器系数值,y'(n-k)为当前帧第一回声预测信号往前k帧的第一回声预测信号,e(n)为残差信号。

在进行第一非线性滤波器系数值以及第一线性滤波器系数值的更新时,可以通过让e(n)最小作为收敛条件,目的是最终让麦克风最终采集的d(n)中的回声成分最少,直到消除干净。

当达到收敛条件时,可以获得最终的第一非线性滤波器系数值以及第一线性滤波器系数值作为回声特性参数。得到第一非线性滤波器系数值以及第一线性滤波器系数值以后,可以将其存储到该终端信息对应的存储单元中。

在本申请实施例的一种优选实施例中,服务器确定一个或多个终端对应的回声特性参数以后,还可以包括如下步骤:

将所述回声特性参数发送至对应的终端。

在一种实施方式中,上述将所述回声特性参数发送至对应的终端的步骤进一步可以包括如下子步骤:

当接收到终端发送的使能信号时,将所述回声特性参数发送至所述终端。

具体的,当终端存在回声消除需求时,可以向服务器发送使能信号,当服务器接收到使能信号以后,可以判定为终端侧存在回声消除的需求,此时,可以将根据该终端的终端信息,在存储单元中查询是否存在对应的回声特性参数,若存在,则获取对应的回声特性参数发送至该终端,由该终端采用该回声特性参数进行终端侧的自适应滤波器模型的初始化。若在存储单元中没有查询到对应的回声特性参数,则返回查找不成功的提示信息,此时终端可以按照一般回声消除流程进行回声消除。

在实际中,终端存在回声消除需求的情形可以包括但不限于:终端检测到通话接通的情形、终端接收到远端音频信号的情形等。

需要说明的是,除了上述终端发送使能信号的方式,服务器还可以通过其他方式来判断终端是否存在回声消除的需求,例如,服务器可以自动检测终端的通话接通,在判定为终端的通话接通以后,将回声特性参数发送至对应的终端,本申请实施例对此不作限制。

在本申请实施例中,当服务器检测到终端存在回声消除需求时,可以向终端下发回声特性参数,终端可以通过该回声特性参数来初始化终端的自适应滤波器模型,从而达到回声消除零收敛,抗任意延时的目的。本申请实施例中的回声特性参数并不是固定不变的,而是会实时更新并趋于稳定的。在具体实现中,服务器侧还可以实时检测终端的自适应滤波器模型的实时状态,并根据该实时状态对回声特性参数进行更新。

在一种实施方式中,其中一种对回声特性参数进行更新的方式如下:

接收终端发送的第二滤波器系数值;若所述第二滤波器系数值与参考滤波器系数值之间的差值在预设范围内,则判定终端的第二自适应滤波器模型处于稳定状态,并将所述第二滤波器系数值作为参考滤波器系数值,其中,所述参考滤波器系数值的初始值为所述第一滤波器系数值;若所述第二滤波器系数值与参考滤波器系数值之间的差值不在预设范围内,则判定终端的第二自适应滤波器模型处于不稳定状态,并将所述参考滤波器系数值发送至所述终端。

具体的,终端在处理每一帧音频信号时,都会根据上述公式(1)至公式(4)对滤波器系数值进行更新,得到该帧音频信号对应的第二滤波器系数值,并将该帧音频信号对应的第二滤波器系数值发送至服务器,服务器接收到每一帧音频信号对应的第二滤波器系数值以后,都将该帧音频信号对应的第二滤波器系数值与参考滤波器系数值进行比较,如果该帧音频信号对应的第二滤波器系数值与参考滤波器系数值之间的差值在预设范围内,则判定终端的第二自适应滤波器模型处于稳定状态;否则,如果上述差值不在预设范围内,则判定第二自适应滤波器模型处于不稳定状态。

其中,参考滤波器系数值的初始值可以为所述第一滤波器系数值。具体的,参考滤波器系数值可以为当前帧音频信号的前n帧音频信号对应的第二滤波器系数值,其中,n大于或等于1。如果当前帧音频信号为第一帧音频信号,则该参考滤波器系数值为第一滤波器系数值。

当服务器判定终端的第二自适应滤波器模型处于不稳定状态时,则将参考滤波器系数值发送至终端,由终端采用该参考滤波器系数值进行终端侧的自适应滤波器模型的重置,达到快速恢复滤波器、及时处理异常的效果。

当服务器判定终端的第二自适应滤波器模型处于稳定状态时,则将接收到的当前帧的第二滤波器系数值作为参考滤波器系数值,即,将接收到的当前帧的第二滤波器系数值作为更新的参考滤波器系数值。

需要说明的是,上述检测终端的第二自适应滤波器模型是否处于稳定状态的方式也可以在终端侧进行,当终端检测到滤波器处于不稳定状态时,向服务器发送一个使能信号,服务器接收到使能信号后可以将服务器存储的最新的参考滤波器系数值发送至终端。本申请实施例对此不作限定。

在本申请实施例中,在通话开始前,服务器向一个或多个终端提供检测信号,并接收终端基于该检测信号返回的采集信号,对采集信号以及检测信号进行分析,得到用于终端进行回声消除的回声特性参数,为通话接通之后提供初始准确的算法参数。

在通话开始时,服务器将存储的回声特性参数作为终端上的滤波器的初始参数传到终端,终端采用该回声特性参数初始化滤波器,实现终端上算法的零收敛、抗任意延时。

在通话过程中,服务器实时检测终端上滤波器的运行状态,当检测到滤波器不稳定时,及时将稳定的回声特性参数传送到终端,可以达到不断修正恢复不稳定的滤波器状态,从而有效地消除回声。

参照图5,示出了本申请的一种回声消除方法方法实施例二的步骤流程图,本申请实施例基于终端侧进行描述,具体可以包括如下步骤:

s501,接收服务器端发送的检测信号,并播放所述检测信号;

该检测信号可以为不同形态的有效的音频信号,可以包括不同幅度的全频带信号、不同频带的单频信号等。

终端接收到服务器发送的检测信号后,可以通过终端上的喇叭播放该检测信号。

s502,获取麦克风采集的采集信号;

s503,将所述采集信号发送至服务器;

在本申请实施例中,终端在向服务器发送采集信号时,还可以计算喇叭播放该检测信号的时间距离麦克风采集的音频信号的时间之间的时间差,作为时延信息,并将该时延信息反馈至服务器。

在实际中,在处理预测信号的过程中,终端每处理一帧预测信号,则计算一次时延信息,并记录该时延信息,当时延信息稳定在某个值时,则将该时延信息发送至服务器。

当终端向服务器发送采集信号以及时延信息以后,完成终端与服务器之间的训练阶段的过程。此后,当终端检测到存在回声消除需求时,可用向服务器发送使能信号,以请求服务器反馈回声特性参数。

在实际中,终端存在回声消除需求的情形可以包括但不限于:终端检测到通话接通的情形、终端接收到远端音频信号的情形等。

s504,接收所述服务器发送的回声特性参数;

s505,采用所述回声特性参数进行所述终端的回声消除。

作为一种示例,回声特性参数可以包括但不限于时延信息、滤波器系数值、终端信息等。

在本申请实施例的一种优选实施例中,s505进一步可以包括如下子步骤:

子步骤s11,采用所述第一滤波器系数值进行至少一个第二自适应滤波器模型的初始化;

作为一种示例,该第二自适应滤波器模型可以包括第二非线性滤波器模型和/或第二线性滤波器模型,则对应的第一滤波器系数值可以包括第一非线性滤波器系数值和/或第一线性滤波器系数值。

其中,第二非线性滤波器模型以及第二线性滤波器模型,与第一非线性滤波器模型以及第一线性滤波器模型类似,具体可以参考上述公式(1)以及公式(2),此处不再赘述了。

终端接收到第一非线性滤波器系数值和/或第一线性滤波器系数值以后,可以采用该第一非线性滤波器系数值对第二非线性滤波器模型进行初始化,和/或,采用该第一线性滤波器系数值对第二线性滤波器模型进行初始化,从而加快了滤波器初始化的效率。

子步骤s12,接收远端音频信号;

远端音频信号可以为远端设备向近端设备发送的音频信号。在具体实现中,远端音频信号可以为一个长度为n的数组s(n)。

在本申请实施例中,接收到远端音频信号以后,在对该远端音频信号进行播放以前,本申请实施例还可以包括如下步骤:

采用所述时延信息对所述远端音频信号进行去时延处理。

具体的,从回声特性参数中确定时延信息以后,在播放远端音频信号之前,可以采用该时延信息对远端音频信号进行消除时延处理,以消除远端音频信号与近端音频信号之间的时延,以方便后续进行自适应滤波。

在具体实现中,其中一种去时延处理的方式可以为:将该远端音频信号前移或后移时延信息对应的时间,使得播放的远端音频信号向麦克风采集的近端音频信号对齐。

子步骤s13,播放所述远端音频信号,并获取麦克风采集的近端音频信号;

对远端音频信号进行去时延处理以后,终端可以通过喇叭播放该音频信号,并获取麦克风采集的近端音频信号。

在实际中,终端获取近端音频信号以后,可以首先检测该近端音频信号中是否存在回声信号,在存在回声信号时进行后续消除回声的处理;若检测到该近端音频信号中不存在回声信号时,则不进行后续消除回声的处理,避免浪费处理器资源。

由于远端音频信号是终端接收到的远端设备发送的语音信号,而回声信号是终端采集播放的该语音信号得到的,因此,远端音频信号近似于回声信号,若近端音频信号中存在回声信号,则近端音频信号与远端音频信号的相关性会很大,且近端音频信号与远端音频信号的匹配程度会很高,基于此,在一种实施方式中,可以采用如下方式测该近端音频信号中是否存在回声信号:

计算远端音频信号的第一能量值e1以及近端音频信号的第二能量值e2;将第一能量值e1除以第二能量值e2,得到erl;计算远端音频信号和近端音频信号的相关系数r,r用于表示远端音频信号和近端音频信号的相关性;判断r是否小于相关性门限,且erl是否大于能量比门限;若同时满足条件,则确定近端音频信号中不存在回声信号;若不满足至少一种条件,确定近端音频信号中存在回声信号。

在一种实现中,能量值可以采用如下公式计算:

其中,e代表能量值;x(k)代表长度为n的信号在n个时刻中,第k个时刻的信号幅度值。

在一种实现中,r可以采用如下公式计算:

其中,r代表信号x(k)和y(k)的相关系数;x(k)和y(k)代表长度为n的信号在n个时刻中,第k个时刻的信号幅度值;ex代表信号x(k)能量值;ey代表信号y(k)能量值。

在具体实现中,由于上述检测近端音频信号是否存在回声信号的结果可能不准确,在近端音频信号中可能存在少量的回声信号时,而检测结果为近端音频信号中不存在回声信号,此时,若将该近端音频信号直接输出,依旧会影响通话质量,因此,当近端音频信号中不存在回声信号时,可以将近端音频信号乘以衰减因子,得到音频输出信号,以去除该近端音频信号中可能存在的回声信号,提高通话质量。

作为一种示例,该衰减因子可以取值为大于0且小于1的值。

在实际中,近端音频信号中可能不会一直存在语音信号,例如:终端对应的用户没有说话,则在近端音频信号中不存在语音信号时,为了节省传输资源,终端不需要将近端音频信号输出。因此,当检测到近端音频信号不存在回声信号时,还可以判断近端音频信号中是否存在语音信号,若是,则执行子步骤s14,若否,则结束流程。

子步骤s14,将所述远端音频信号以及所述近端音频信号输入所述第二自适应滤波器模型,输出第三回声预测信号;

在本申请实施例中,消除远端音频信号的时延以后,可以对该远端音频信号进行非线性滤波处理,以得到中间回声预测信号,该中间回声预测信号可以包括已经估计的非线性回声预测信号以及未估计的线性回声成分。

在实际中,该中间回声预测信号可以为远端音频信号经过功放、喇叭之后播放出来的信道之后的数据的估计。

终端侧对远端音频信号进行非线性滤波处理,得到中间回声预测信号的过程可以参考上述公式(1),在此不再赘述了。

得到中间回声预测信号以后,还可以对该中间回声预测信号进行线性滤波处理,以得到第三回声预测信号,该第三回声预测信号可以包括已经估计的非线性回声预测信号以及已经估计的线性回声成分。

终端侧对中间回声预测信号进行线性滤波处理,得到第三回声预测信号的过程可以参考上述公式(2),在此不再赘述了。

子步骤s15,计算所述近端音频信号与所述第四回声预测信号的残差信号,作为音频输出信号。

第三回声预测信号为估算出来的回声成分,得到第三回声预测信号以后,可以计算麦克风采集的近端音频信号以及第三回声预测信号之间的残差信号,并以残差信号最小作为收敛条件,将该残差信号作为下一次算法的系数,以对第一非线性滤波器系数以及第一线性滤波器系数进行更新,得到第二非线性滤波器系数以及第二线性滤波器系数,再将更新后的系数反馈到最小均方算法中,从而更好地估计非线性回声以及线性回声。

在本申请实施例中,在进行回声消除的过程中,还可以包括如下步骤:

确定所述第三回声预测信号对应的第二滤波器系数的第二滤波器系数值;将所述第二滤波器系数值发送至所述服务器。

具体的,终端在处理每一帧音频信号时,都会根据上述公式(1)至公式(4)对滤波器系数值进行更新,得到该帧音频信号对应的第二滤波器系数值,并将该帧音频信号对应的第二滤波器系数值发送至服务器,以向服务器实时上报终端的滤波器状态。

在本申请实施例的一种优选实施例中,还可以包括如下步骤:

接收服务器返回的参考滤波器系数值,所述参考滤波器系数值为所述服务器基于所述第二滤波器系数值判定所述终端的滤波器状态不稳定时向终端发送的值;采用所述参考滤波器系数值更新对应的第二自适应滤波器模型。

具体的,服务器接收到每一帧音频信号对应的第二滤波器系数值以后,都将该帧音频信号对应的第二滤波器系数值与参考滤波器系数值进行比较,如果该帧音频信号对应的第二滤波器系数值与参考滤波器系数值之间的差值在预设范围内,则判定终端的第二自适应滤波器模型处于稳定状态;否则,如果上述差值不在预设范围内,则判定第二自适应滤波器模型处于不稳定状态。

其中,参考滤波器系数值的初始值可以为所述第一滤波器系数值。具体的,参考滤波器系数值可以为当前帧音频信号的前n帧音频信号对应的第二滤波器系数值,其中,n大于或等于1。如果当前帧音频信号为第一帧音频信号,则该参考滤波器系数值为第一滤波器系数值。

当服务器判定终端的第二自适应滤波器模型处于不稳定状态时,则将参考滤波器系数值发送至终端,终端可以采用该参考滤波器系数值进行终端侧的第二自适应滤波器模型的重置,达到快速恢复滤波器、及时处理异常的效果。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。

参照图6,示出了本申请的一种回声消除服务器实施例的结构框图,可以包括如下模块:

检测信号提供模块601,用于向一个或多个终端提供检测信号;

采集信号接收模块602,用于接收所述一个或多个终端发送的采集信号,所述采集信号为所述一个或多个终端播放所述检测信号时,由所述一个或多个终端的麦克风采集的音频信号;

回声特性参数确定模块603,用于基于所述采集信号以及所述检测信号,确定所述一个或多个终端对应的回声特性参数,所述回声特性参数用于所述终端的回声消除。

在本申请实施例的一种优选实施例中,所述服务器还包括:

回声特性参数发送模块,用于将所述回声特性参数发送至对应的终端。

在本申请实施例的一种优选实施例中,所述回声特性参数包括时延信息,所述回声特性参数确定模块包括:

时延信息接收模块,用于接收终端发送的时延信息,所述时延信息为所述终端基于所述采集信号以及所述检测信号确定的信息。

在本申请实施例的一种优选实施例中,所述回声特性参数还包括第一滤波器系数值,所述回声特性参数确定模块包括:

回声预测子模块,用于将所述采集信号以及所述检测信号输入至少一个第一自适应滤波器模型,输出第一回声预测信号,所述第一自适应滤波器模型包括第一滤波器系数;

第一滤波器系数值确定子模块,用于确定所述第一回声预测信号对应的第一滤波器系数的第一滤波器系数值。

在本申请实施例的一种优选实施例中,所述服务器还包括:

第二滤波器系数值接收模块,用于接收终端发送的第二滤波器系数值;

滤波器系数更新模块,用于若所述第二滤波器系数值与参考滤波器系数值之间的差值在预设范围内,则判定终端的第二自适应滤波器模型处于稳定状态,并将所述第二滤波器系数值作为参考滤波器系数值,其中,所述参考滤波器系数值的初始值为所述第一滤波器系数值;

参考滤波器系数值发送模块,用于若所述第二滤波器系数值与参考滤波器系数值之间的差值不在预设范围内,则判定终端的第二自适应滤波器模型处于不稳定状态,并将所述参考滤波器系数值发送至所述终端。

在本申请实施例的一种优选实施例中,所述回声特性参数发送模块还用于:

当接收到终端发送的使能信号时,将所述回声特性参数发送至所述终端。

对于服务器实施例而言,由于其与上述方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

参照图7,示出了本申请的一种回声消除的终端实施例的结构框图,可以包括如下模块:

检测信号接收模块701,用于接收服务器端发送的检测信号,并播放所述检测信号;

采集信号获取模块702,用于获取麦克风采集的采集信号;

采集信号发送模块703,用于将所述采集信号发送至服务器;

回声特性参数接收模块704,用于接收所述服务器发送的回声特性参数,所述回声特性参数由所述服务器基于所述采集信号以及所述检测信号确定;

回声消除模块705,用于采用所述回声特性参数进行所述终端的回声消除。

在本申请实施例的一种优选实施例中,所述终端还包括:

使能信号发送模块,用于当检测到存在回声消除需求时,向服务器发送使能信号。

在本申请实施例的一种优选实施例中,所述回声特性参数包括第一滤波器系数值,所述回声消除模块包括:

初始化子模块,用于采用所述第一滤波器系数值进行至少一个第二自适应滤波器模型的初始化;

远端信号接收子模块,用于接收远端音频信号;

远端信号播放子模块,用于播放所述远端音频信号,并获取麦克风采集的近端音频信号;

滤波处理子模块,用于将所述远端音频信号以及所述近端音频信号输入所述第二自适应滤波器模型,输出第三回声预测信号;

音频输出信号确定子模块,用于计算所述近端音频信号与所述第三回声预测信号的残差信号,作为音频输出信号。

在本申请实施例的一种优选实施例中,所述第二自适应滤波器模型包括第二滤波器系数,所述终端还包括:

第二滤波器系数值确定模块,用于确定所述第三回声预测信号对应的第二滤波器系数的第二滤波器系数值;

第二滤波器系数值发送模块,用于将所述第二滤波器系数值发送至所述服务器。

在本申请实施例的一种优选实施例中,所述终端还包括:

参考滤波器系数值接收模块,用于接收服务器返回的参考滤波器系数值,所述参考滤波器系数值为所述服务器基于所述第二滤波器系数值判定所述终端的滤波器状态不稳定时向终端发送的值;

滤波器更新模块,用于采用所述参考滤波器系数值更新对应的第二自适应滤波器模型。

在本申请实施例的一种优选实施例中,所述终端还包括:

去时延模块,用于采用所述时延信息对所述远端音频信号进行去时延处理。

对于终端实施例而言,由于其与上述方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本公开的实施例可被实现为使用任意适当的硬件,固件,软件,或及其任意组合进行想要的配置的系统。图8示意性地示出了可被用于实现本公开中所述的各个实施例的示例性系统(或装置)800。

对于一个实施例,图8示出了示例性系统800,该系统具有一个或多个处理器802、被耦合到(一个或多个)处理器802中的至少一个的系统控制模块(芯片组)808、被耦合到系统控制模块804的系统存储器806、被耦合到系统控制模块804的非易失性存储器(nvm)/存储设备808、被耦合到系统控制模块804的一个或多个输入/输出设备810,以及被耦合到系统控制模块804的网络接口812。

处理器802可包括一个或多个单核或多核处理器,处理器802可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。在一些实施例中,系统800能够作为本申请实施例中所述的浏览器。

在一些实施例中,系统800可包括具有指令的一个或多个计算机可读介质(例如,系统存储器806或nvm/存储设备808)以及与该一个或多个计算机可读介质相合并被配置为执行指令以实现模块从而执行本公开中所述的动作的一个或多个处理器802。

对于一个实施例,系统控制模块804可包括任意适当的接口控制器,以向(一个或多个)处理器802中的至少一个和/或与系统控制模块804通信的任意适当的设备或组件提供任意适当的接口。

系统控制模块804可包括存储器控制器模块,以向系统存储器806提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。

系统存储器806可被用于例如为系统800加载和存储数据和/或指令。对于一个实施例,系统存储器806可包括任意适当的易失性存储器,例如,适当的dram。在一些实施例中,系统存储器806可包括双倍数据速率类型四同步动态随机存取存储器(ddr8sdram)。

对于一个实施例,系统控制模块804可包括一个或多个输入/输出控制器,以向nvm/存储设备808及(一个或多个)输入/输出设备810提供接口。

例如,nvm/存储设备808可被用于存储数据和/或指令。nvm/存储设备808可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(hdd)、一个或多个光盘(cd)驱动器和/或一个或多个数字通用光盘(dvd)驱动器)。

nvm/存储设备808可包括在物理上作为系统800被安装在其上的设备的一部分的存储资源,或者其可被该设备访问而不必作为该设备的一部分。例如,nvm/存储设备808可通过网络经由(一个或多个)输入/输出设备810进行访问。

nvm/存储设备808还可以包括内存管理器件,该内存管理器件可以包括mpu或mmu等,用于对终端的内存进行管理,例如设置内存的访问权限、检测内存是否溢出、触发内存访问异常中断、进行内存异常处理等。

(一个或多个)输入/输出设备810可为系统800提供接口以与任意其他适当的设备通信,输入/输出设备810可以包括通信组件、音频组件、传感器组件等。网络接口812可为系统800提供接口以通过一个或多个网络通信,系统800可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合进行无线通信。

对于一个实施例,(一个或多个)处理器802中的至少一个可与系统控制模块804的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器802中的至少一个可与系统控制模块804的一个或多个控制器的逻辑封装在一起以形成系统级封装(sip)。对于一个实施例,(一个或多个)处理器802中的至少一个可与系统控制模块804的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器802中的至少一个可与系统控制模块804的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(soc)。

在各个实施例中,系统800可以但不限于是:浏览器、工作站、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)。在各个实施例中,系统800可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,系统800包括一个或多个摄像机、键盘、液晶显示器(lcd)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(asic)和扬声器。

其中,如果显示器包括触摸面板,显示屏可以被实现为触屏显示器,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。

本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在终端设备时,可以使得该终端设备执行本申请实施例中各方法步骤的指令(instructions)。

在一个示例中提供了一种系统,包括:一个或多个处理器;和,其上存储的有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述系统执行如本申请实施例中的方法。

在一个示例中还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得系统执行如本申请实施例中的方法。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、终端(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序操作指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序操作指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端的处理器执行的操作指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序操作指令也可存储在能引导计算机或其他可编程数据处理终端以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的操作指令产生包括操作指令装置的制造品,该操作指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序操作指令也可装载到计算机或其他可编程数据处理终端上,使得在计算机或其他可编程终端上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端上执行的操作指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端中还存在另外的相同要素。

以上对本申请所提供的一种回声消除方法、服务器、终端及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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