一种声学回声消除方法及装置与流程

文档序号:11157057阅读:410来源:国知局
一种声学回声消除方法及装置与制造工艺

本发明涉及语音通话领域,尤其涉及一种声学回声消除方法及装置。



背景技术:

与传统电话相比,在因特网上进行语音的实时传输有其致命的弱点,那就是语音质量较差。影响因特网语音质量的因素是多方面的,最关键的因素之一是回声的影响。回声是由终端中麦克风和扬声器间形成的回波环境造成的。假设A和B两个终端通话,当A用户说话时,从B的扬声器出来的A的语音会经过多条回声路径传输或反射,有可能变成具有不同时延和不同幅度的信号被B终端的麦克风采集到,进而传回给A终端,A终端的用户就会听到自己的语音。因此,要提高因特网的语音质量,就必须在因特网的语音传输过程中进行消回声的处理。由于因特网传送的语音信号要经过编码、压缩、打包等一系列处理,这不仅造成传回给A终端的回声路径的延迟较大,而且延迟抖动也较大。因此,在因特网的语音传输过程中,回声问题显得尤其突出,这会降低用户的主观听感,影响通话双方的语音质量,因此为了保证双方通话的语音质量,消除回声是非常重要的。

目前的声学回声消除(AEC,Acoustic Echo Cancellation)算法是以扬声器信号和由它产生的多路径回声的相关性为基础,建立远端信号的语音模型,利用该模型对回声进行估计,并不断地修改滤波器的系数,使得估计值更加逼近真实的回声;然后,将回声估计值从话筒的输入信号中减去,从而消除回声。AEC还将麦克风的输入与扬声器历史值相比较,从而消除延长延迟的多次反射的声学回声;根据存储的扬声器的历史输出值的多少,AEC可以消除各种延迟的回声。

上述的声学回声消除算法可以消除绝大部分的回声,但是不可避免的会存在回声残余,这些回声残余一部分是以回声的形式出现,一部分是以啸叫的形式出现,极大的影响了语音通话。



技术实现要素:

有鉴于此,本发明实施例期望提供一种声学回声消除方法及装置,可以更大程度地降低回声。

为达到上述目的,本发明的技术方案是这样实现的:

一种声学回声消除方法,所述方法包括:

接收远端语音信号,获取麦克风采集到的近端语音信号;

将所述远端语音信号和所述近端语音信号输入通用回声消除器,获得从所述通用回声消除器输出的近端语音残余信号;

根据所述近端语音残余信号、所述近端语音信号以及所述远端语音信号计算出增益;

根据所述增益对所述远端语音信号做增益调整,在扬声器播放增益调整后的远端语音信号。

上述方案中,所述根据所述近端语音残余信号、所述近端语音信号以及所述远端语音信号计算出增益,包括:

根据所述近端语音残余信号以及所述近端语音信号计算获得声学回波返回损耗AERL初值,对所述AERL初值进行平滑获得AERL值;

根据所述AERL值计算获得控制增益的阈值,其中,所述控制增益的阈值与所述AERL值成反比;

统计计算所述远端语音信号在时间T范围内的峰值;其中,所述T为预设值;

根据所述控制增益的阈值与所述峰值,计算获得增益。

上述方案中,所述根据所述增益对所述远端语音信号做增益调整,包括:

对所述远端语音信号做时间为L的延迟,根据所述增益对延迟后的远端语 音信号做增益调整,其中,所述T大于2L。

上述方案中,所述将所述远端语音信号和所述近端语音信号输入通用回声消除器,获得从所述通用回声消除器输出的近端语音残余信号,包括:

应用所述通用回声消除器,根据所述远端语音信号进行回声估计获得预估回声信号,将所述预估回声信号从所述近端语音信号中去除获得回音消除的近端语音信号,将所述回音消除的近端语音信号进行非线性处理获得近端语音残余信号。

上述方案中,所述获得回音消除的近端语音信号后,所述方法还包括:

将所述近端语音残余信号发送给对端通话终端。

一种声学回声消除装置,所述装置包括:

信号获取单元,用于接收远端语音信号,获取麦克风采集到的近端语音信号;

回声消除单元,用于将所述信号获取单元获取的所述远端语音信号和所述近端语音信号输入通用回声消除器,获得从所述通用回声消除器输出的近端语音残余信号;

增益计算单元,用于根据所述回声消除单元获取的所述近端语音残余信号,以及所述信号获取单元获取的所述近端语音信号以及所述远端语音信号计算出增益;

增益调整单元,用于根据所述增益计算单元计算出的增益对所述远端语音信号做增益调整,增益调整后的远端语音信号用于在扬声器播放。

上述方案中,所述增益计算单元,具体用于根据所述近端语音残余信号以及所述近端语音信号计算获得声学回波返回损耗AERL初值,对所述AERL初值进行平滑获得AERL值;根据所述AERL值计算获得控制增益的阈值,统计计算所述远端语音信号在时间T范围内的峰值;根据所述控制增益的阈值与所述峰值,计算获得增益;其中,所述控制增益的阈值与所述AERL值成反比,所述T为预设值。

上述方案中,所述增益调整单元,具体用于对所述信号获取单元获取的远 端语音信号做时间为L的延迟,根据所述增益计算单元计算出的增益对延迟后的远端语音信号做增益调整,其中,所述T大于2L。

上述方案中,所述回声消除单元,具体用于应用所述通用回声消除器,根据所述远端语音信号进行回声估计获得预估回声信号,将所述预估回声信号从所述近端语音信号中去除获得回音消除的近端语音信号,将所述回音消除的近端语音信号进行非线性处理获得近端语音残余信号。

上述方案中,所述装置还包括发送单元,其中,

所述发送单元,用于将所述回声消除单元获得的所述近端语音残余信号发送给对端通话终端。

本发明实施例提供了一种声学回声消除方法及装置,接收远端语音信号,获取麦克风采集到的近端语音信号;该装置一方面对麦克风采集到的近端语音信号进行回声消除:将所述远端语音信号和所述近端语音信号输入通用回声消除器,获得从所述通用回声消除器输出的近端语音残余信号;另一方面对扬声器要播放的远端语音信号进行增益控制:根据所述近端语音残余信号、所述近端语音信号以及所述远端语音信号计算出增益;根据所述增益对所述远端语音信号做增益调整;这样,对近端麦克风采集的近端语音信号和远端送到扬声器的远端语音信号同时进行处理,双管齐下,共同进行回声消除,在保证了扬声器输出音量的基础上进一步保障了回声消除的效果,提高了通话的语音质量。

附图说明

图1为本发明实施例1提供的一种声学回声消除方法的流程示意图;

图2为本发明实施例2提供的一种声学回声消除装置的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

实施例1

本发明实施例提供了一种声学回声消除方法,如图1所示,本实施例方法的处理流程包括以下步骤:

步骤101、接收远端语音信号,获取麦克风采集到的近端语音信号。

A终端和B终端通过网络进行语音实时通话时,对于B终端来说,在同一时间,一方面B终端接收A终端通过网络发送过来的远端语音信号net(i),一方面B终端的麦克风会采集近端语音信号mic(i),所述近端语音信号mic(i)中包括B终端的用户的语音信号user(i)以及B终端的扬声器播放的语音经过一系列的回声路径所产生的回声信号echo(i);即mic(i)=user(i)+echo(i)。

终端B可以接收到远端语音信号,并通过麦克风采集到的近端语音信号。

步骤102、将所述远端语音信号和所述近端语音信号输入通用回声消除器,获得从所述通用回声消除器输出的近端语音残余信号。

通用回声消除器是现有的进行回声消除的器件,主要包括一个自适应滤波器,其输入为远端语音信号和近端语音信号,输出为近端语音残余信号。

通用回声消除器的工作原理大致为:应用所述通用回声消除器,可以根据所述远端语音信号进行回声估计获得预估回声信号,将所述预估回声信号从所述近端语音信号中去除获得回音消除的近端语音信号,将所述回音消除的近端语音信号进行非线性处理获得近端语音残余信号。

当A用户说话时,从终端B的扬声器出来的A用户的语音会经过实际回声信道为w,变成具有不同时延和不同幅度的回声信号echo(i),所述通用回声消除器中包括一个自适应滤波器,所述自适应滤波器用于模拟出估计回声信道 所述估计回声信道很接近实际回声信道为w,如果估计回声信道严格匹配实际回声信道为w,则将远端语音信号通过自适应滤波后就可以获得实际的回声信号echo(i),从所述近端语音信号中减去实际的回声信号echo(i)即mic(i)-echo(i)就可以获得回音消除的近端语音信号即获得终端B的用户的语音信号mic(i),这样就可以消除实际的回声信号echo(i)。终端B将语音信号mic(i)传输给终端A,终端A就可以在自己的扬声器中播放终端B的用户的语音信号mic(i), 而不会播放终端A的回声。

但是,自适应滤波器只能模拟出估计回声信道而不能模拟出实际回声信道为w,故远端语音信号net(i)经过自适应滤波器后,自适应滤波器将远端语音信号net(i)通过估计回声信道获得的是预估回声信号;自适应滤波器可以将预估回声信号从近端语音信号中去除,从而消除部分回声,获得回音消除的近端语音信号。

经过自适应滤波器后,近端语音信号中由于种种原因造成的回音信号并不能被完全消除,比如自适应滤波器为FIR形式,由于回音路径存在非线性因素,噪音的存在等等,本实施例中提供的通用回声消除器还包括一个非线性处理模块,对信号回音消除的近端语音信号进行非线性处理,以获得近端语音残余信号。

当然,现有的通用回声消除器根据不同的应用场合和需求,还可以其他的一些模块,如在自适应滤波器之前加入自适应噪声消除模块,它能够降低自适应滤波器的输入噪声干扰,提高自适应滤波器的稳态收敛性能。

所述获得近端语音残余信号后,所述方法还包括:将所述近端语音残余信号发送给对端通话终端。

本实施例中,终端B会将回音消除的近端语音信号发送给对端通话终端即终端A。

在这里需要说明的是,本实例中的输入信号(即近端语音信号和所述远端语音信号)都是归一化后的信号,以下计算都是按照输入信号为归一化后的信号来计算的。

步骤103、根据所述近端语音残余信号、所述近端语音信号以及所述远端语音信号计算出增益。

终端B将回音消除的近端语音信号发送给对端通话终端时,终端B会计算出增益,对终端B扬声器要播放的远端语音信号进行增益调整。

其中,计算增益的流程可以包括以下步骤:

A1、根据所述近端语音残余信号以及所述近端语音信号计算获得声学回波返回损耗AERL初值,对所述AERL初值进行平滑获得AERL值。

声学回波返回损耗(AERL,Acoustic Echo Return Loss)是现有技术中定义的通用回声消除器一个重要指标,有相应的很多计算方法,以下举例说明其中的一种计算方法,示例的,AERL初值可以用以下公式计算: 其中,d(k)表示近端语音信号;e(k)表示近端语音残余信号;N为大于等于1的整数。AERL初值的其他计算方法是本领域人员都清楚了解的,在此不再赘述。这个N是离散信号的长度,计算Aerl时近端语音信号所取的离散信号d(k)的长度为N;近端语音残余信号所取的离散信号e(k)的长度也为N。

计算获得AERL初值后,还需要对所述AERL初值进行平滑获得AERL值,平滑过程举例如下:

若存在远端语音信号时,在回声残余抽头不为零的情况,按照系数a对Aerl进行平滑,即AERL值Aerl(n)=(1-a)*Aerl(n-1)+a*Aerl(n);否则按照系数b对Aerl值进行平滑,即AERL值Aerl(n)=(1-b)*Aerl(n-1)+b*Aerl(n);其中0.5>a>b;在不存在远端语音信号时,对所述AERL初值进行平滑即将所述AERL初值直接乘以系数c对其进行衰减,0.85<c<1,即AERL值=AERL初值*c。此处的Aerl(n)代表的是当前第n帧信号的Aerl值,n-1代表的是上一帧的Aerl值。

A2、根据所述AERL值计算获得控制增益的阈值。

其中,所述控制增益的阈值与所述AERL值成反比;这里所述的成反比是一个概述,可以有反比因子,也可以没有,具体针对不同的设备平台可能会不同。示例的:阈值threshold=min(d/Aerl,e);其中e通常取值为0.6,d<1。

A3、统计计算所述远端语音信号在时间T范围内的峰值。

所述T大于2L,L的取值范围没有固定的要求,对于实时通信来说,L 的取值范围是几十毫秒的数量级;但是对于没有实时要求的通信,这个值可以适当取大。该峰值即为所述远端语音信号在时间T范围内的幅度的最大值。

A4、根据所述控制增益的阈值与所述峰值,计算获得增益。

根据所述控制增益的阈值threshold与所述峰值Peak计算获得增益,可以有很多方法,在这里举例说明其中的一种:示例的,在Peak>threshold的情况下,增益Gain=threshold/Peak;否则增益Gain=1。

在实际应用中,可能还需要对增益Gain做不同程度的平滑,避免调整过大造成语音的不平滑。

104、根据所述增益对所述远端语音信号做增益调整,在扬声器播放增益调整后的远端语音信号。

在本实施例中,终端B需要对所述远端语音信号做时间为L的延迟,根据所述增益对延迟后的远端语音信号做增益调整,其中,L的取值范围没有固定的要求,对于实时通信来说,L的取值范围是几十毫秒的数量级;但是对于没有实时要求的通信,这个值可以适当取大。

根据所述增益对延迟后的远端语音信号做增益调整的最简单的方式是将延迟后的远端语音信号乘以增益Gain,当然还有其他的调整方式,在此不再一一赘述。

上述步骤中增益Gain的计算和调整,结合起来实质上为一个自动增益控制算法,本实施例中终端B应用所述通用回声消除器输出要发送给终端A的近端语音残余信号,同时应用所述通用回声消除器输出近端语音残余信号、所述近端语音信号以及所述远端语音信号计算出增益,然后对终端B本侧扬声器播放的远端语音信号进行增益控制,这样,如果接收到的远端语音音量过大,就可以在保证不影响听感的情况下,通过增益调整使终端B本侧扬声器播放的远端语音信号的音量变小。这样,本实施例中终端B对近端麦克风采集的近端语音信号和远端送到扬声器的远端语音信号同时进行处理,双管齐下,共同进行回声消除,在保证了扬声器输出音量的基础上进一步保障了回声消除的效果,提高了通话的语音质量。

实施例2

本发明实施例提供了一种声学回声消除装置,如图2所示,所述装置包括:信号获取单元201,回声消除单元202,增益计算单元203,增益调整单元204,其中,

信号获取单元201,用于接收远端语音信号,获取麦克风采集到的近端语音信号;

回声消除单元202,用于将所述信号获取单元201获取的所述远端语音信号和所述近端语音信号输入通用回声消除器,获得从所述通用回声消除器输出的近端语音残余信号;

增益计算单元203,用于根据所述回声消除单元202获取的所述近端语音残余信号,以及所述信号获取单元201获取的所述近端语音信号以及所述远端语音信号计算出增益;

增益调整单元204,用于根据所述增益计算单元203计算出的增益对所述远端语音信号做增益调整,增益调整后的远端语音信号用于在扬声器播放。

可选的,所述增益计算单元203,具体用于根据所述近端语音残余信号以及所述近端语音信号计算获得声学回波返回损耗AERL初值,对所述AERL初值进行平滑获得AERL值;根据所述AERL值计算获得控制增益的阈值,统计计算所述远端语音信号在时间T范围内的峰值;根据所述控制增益的阈值与所述峰值,计算获得增益;其中,所述控制增益的阈值与所述AERL值成反比,所述T为预设值。

可选的,所述增益调整单元204,具体用于对所述信号获取单元201获取的远端语音信号做时间为L的延迟,根据所述增益计算单元203计算出的增益对延迟后的远端语音信号做增益调整,其中,所述T大于2L。

可选的,所述回声消除单元203,具体用于应用所述通用回声消除器,根据所述远端语音信号进行回声估计获得预估回声信号,将所述预估回声信号从所述近端语音信号中去除获得回音消除的近端语音信号,将所述回音消除的近端语音信号进行非线性处理获得近端语音残余信号。

可选的,如图2所示,所述装置还包括发送单元205,其中,

所述发送单元205,用于将所述回声消除单元202获得的所述近端语音残余信号发送给对端通话终端。

在实际应用中,本实施例中所述的信号获取单元201,回声消除单元202,增益计算单元203,增益调整单元204以及发送单元205可以由终端上的中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)、调制解调器等器件实现。

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

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

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

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

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

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