发明内容
有鉴于此,本发明提供了一种回声消除方法及装置,解决了现有技术回声消除模块带来的浪费CPU资源,增加音频链路延时负担和通信终端功耗的问题。
为实现上述目的,本发明提供如下技术方案:
一种回声消除方法,应用于通信终端,包括:
检测获取的所述通信终端链路信号中携带的信息特征;
依据所述信息特征生成相应的控制信号;
当所述控制信号为关闭控制信号时,使上行链路信号跳过所述通信终端的回声消除模块,直接进入所述通信终端的其他模块进行处理;
当所述控制信号为启动控制信号时,由所述通信终端的回声消除模块对接收所述上行链路信号并进行回声消除。
优选的,所述信息特征为所述通信终端下行链路中语音解码器的静默标识SID标识;
依据所述信息特征生成相应的控制信号具体为:
确定所述SID标识为“1”时,输出关闭控制信号;
确定所述SID标识为“0”时,则输出启动控制信号。
优选的,所述信息特征为所述通信终端下行链路信号能量;
依据所述信息特征生成相应的控制信号具体为:
判断所述下行链路信号能量是否小于预设阈值,如果是,则输出关闭控制信号;
如果否,则输出启动控制信号。
优选的,所述信息特征为所述通信终端上行链路信号中的语音信息;
依据所述信息特征生成相应的控制信号具体为:
检测所述上行链路信号中是否包含语音信息,如果否,则输出关闭控制信号;
如果是,则输出启动控制信号。
优选的,所述信息特征包括:所述通信终端下行链路中SID标识、所述通信终端下行链路信号能量和所述通信终端上行链路信号中的语音信息,则所述方法还包括:
判断所述控制信号中是否包括关闭控制信号,如果是,则选择任意一个关闭控制信号为最终的控制信号;
如果否,则选择任意一个启动控制信号作为最终的控制信号。
一种回声消除装置,应用于通信终端,包括:
控制模块,用于获取所述通信终端中的链路信号,并检测所述链路信号所携带的信息特征,依据所述信息特征生成相应的控制信号;
发送模块,用于当所述控制信号为启动控制信号时,将上行链路信号发送至回声消除模块;或当所述控制信号为关闭控制信号时,将所述上行链路信号跳过所述通信终端的回声消除模块发送至所述终端的其它处理模块;
回声消除模块,用于对接收到的所述上行链路信号进行回声消除。
优选的,所述控制模块具体实现为SID标识检测单元;
所述SID标识检测单元,用于获取所述通信终端下行链路中语音解码器的SID标识,当所述SID标识为“1”时,输出关闭控制信号;当所述SID标识为“0”时,则输出启动控制信号。
优选的,所述控制模块具体实现为能量检测单元;
所述能量检测单元,用于获取所述通信终端下行链路信号,并判断所述下行链路信号能量是否小于预设阈值,如果是,则输出关闭控制信号;如果否,则输出启动控制信号。
优选的,所述控制模块具体实现为话音激活检测单元;
所述话音激活检测单元,用于获取所述通信终端上行链路信号,并检测所述上行链路信号中是否包含语音信号,如果否,则输出关闭控制信号;如果是,则输出启动控制信号。
优选的,所述控制模块为SID标识检测单元,能量检测单元和VAD检测单元的组合;所述控制模块中还包括判断单元;
所述判断单元,用于判断所述控制信号中是否包括关闭控制信号,如果是,则选择任意一个关闭控制信号为最终的控制信号;如果否,则选择任意一个启动控制信号作为最终的控制信号。
经由上述的技术方案可知,与现有技术相比,本发明所公开的一种回声消除方法及装置,通过控制模块采集通信终端下行链路中语音解码器的SID标识,确定该SID标识类型,并依据该SID标识类型生成相应的控制信号;或采集下行链路信号,判断该下行链路信号的能量是否小于预设阈值,生成相应控制信号;或采集上行链路信号,检测该上行链路信号中是否包含回声信息,生成相应控制信号。通过上述方法,即根据实际链路信号的情况,动态的选择是否进行回声消除,即在需要进行回声消除时,对该通信终端上行链路采集到的信号进行回声消除;在不是很需要进行回声消除时,跳过回声消除模块直接进入音频链路的其它处理模块,实现了节省通信终端CPU资源,降低整个音频链路延时,以及降低通信终端功耗的目的。
此外,由于跳过回声消除及残留回声抑制的非线性处理,使得通信终端中的噪声抑制模块能够更好的跟踪真实环境中的噪声信息,进而提升了上行链路的噪声抑制性能以及背景噪声传输性能。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的实施例公开的了一种回声消除方法及装置,应用于通信终端中,并根据实际链路信号的情况,动态的进行回声消除,即在需要进行回声消除时,对该链路信号进行回声消除;在不是很需要进行回声消除时,使上行链路信号跳过通信终端的回声消除模块,直接进入该通信终端的其他模块进行处理,实现了节省通信终端CPU资源,降低整个音频链路延时,以及降低通信终端功耗的目的。
具体的实施方式,请参阅附图1,主要包括以下步骤:
步骤S101,获取所述通信终端中的链路信号。
在通信终端进行通话的过程中,首先由该回声消除装置中控制模块获取所述通信终端中的链路信号,即语音信号。
步骤S102,检测所述链路信号中携带的信息特征。
在步骤S102中,对步骤S101中获取的链路信号进行检测,获取所述链路信号中的信息特征。其中针对获取的所述链路信号中的信息特征具有多种形式,具体包括:所述通信终端下行链路中语音解码器的SID(SilenceDescriptor,静默标识)标识、所述通信终端下行链路信号能量或所述通信终端上行链路信号中的回声信息。
需要说明的是,所述通信终端下行链路中语音解码器的SID标识用于表征该通信终端接收到的语音信号是否为静默帧;而下行链路与该通信终端的听筒链接,上行链路与该通信终端的麦克连接。
步骤S103,依据所述信息特征生成相应的控制信号。
执行步骤S103时,根据上述步骤S102中获取的具体信息特征,生成相应的控制信号,具有相对应的实现方式。
当所述信息特征为所述通信终端下行链路中语音解码器的SID标识时,依据所述信息特征生成相应的控制信号具体为:
确定所述SID标识类型,当所述SID标识为“1”时,输出关闭控制信号“0”;当所述SID标识为“0”时,则输出启动控制信号“1”。
其中如果检测到该通信终端(近端)中的语音解码器的SID标识为“1”表示远端的通话者并没有发声,此时通信终端(远端)的语音编码器会用舒适平稳噪声代替原有的数据帧,相应地,在与该通信终端(近端)的下行链路连接的听筒处无语音信号,进而在该通信终端(近端)的上行链路连接的麦克处,就不会采集到远端语音的声学回声;反之,如果检测到的SID标识为“0”则表示此时远端的通话者有发声,在该通信终端(近端)的麦克处则很有可能会采集到该声音,如果不进行回声消除,通信终端(远端)处的用户就能听到自己的声音(回声)。因此,可以根据检测到的SID标识类型生成相应的控制信号。
或者,当所述信息特征为所述通信终端下行链路信号能量时,依据所述信息特征生成相应的控制信号具体为:
判断在该通信终端的听筒处获取的所述下行链路信号能量是否小于预设阈值,此预设阈值与通信终端的麦克与听筒距离等因素有关,根据不同的通信终端造成的回声程度也有所不同,所以该阈值应根据实际的测试情况调节,即进行预设。但是,本发明的实施例并不仅限于此。
如果所述下行链路信号的能量小于预设阈值,即表明此时下行链路信号没有足够能量引起回声,则输出关闭控制信号“0”;
如果所述下行链路信号的能量大于预设阈值,即表明此时下行链路信号有足够能量引起回声,则输出启动控制信号“1”。
或者,当所述信息特征为所述通信终端上行链路信号中的语音信息时,依据所述信息特征生成相应的控制信号具体为:
检测麦克获取的所述上行链路信号中是否包含语音信息。由于回声从本质上讲是语音信号(只是幅度,能量比较弱),因此,检测回声,即为检测所述上行链路信号中是否包含有表征语音信息的特征标识。如果否,说明在麦克处获取的上行链路信号中不存在回声信息,则输出关闭控制信号“0”;
如果是,说明在麦克处获取的上行链路信号中可能存在回声信息,则输出启动控制信号“1”。
步骤S104,判断所述控制信息是否为关闭控制信号“0”,如果是,则执行步骤S105;如果否,则执行步骤S106。
步骤S105,使上行链路信号跳过所述通信终端的回声消除模块,直接进入所述通信终端的其他模块进行处理。
在步骤S105中,所述通信终端的其他模块是指除回声消除模块之外,需要对上行链路信号进行其他相关处理的模块,如使该上行链路信号进入通信终端中的噪声抑制模块进行背景噪声的抑制等等。
步骤S106,由所述通信终端的回声消除模块对所述上行链路信号进行回声消除。
在执行上述步骤S102和步骤S103中,依据获取的不同信息特征,以及其各自对应生成相应关闭控制信号“0”,或者启动控制信号“1”之后,执行步骤S104至步骤S106,依据不同的控制信号,动态控制上行链路信号是否需要进行回声消除,避免了在不需要进行消除回声时,该通信终端中的回声消除模块一直运行,从而节省了该通信终端的CPU资源,降低了整个音频链路延时和通信终端的功耗。
此外,由于跳过回声消除及残留回声抑制的非线性处理,使得通信终端中的噪声抑制模块能够更好的跟踪真实环境中的噪声信息,进而提升了上行链路的噪声抑制性能以及背景噪声传输性能。
在上述本发明的基础上,实际应用中还包括同时接收到上述信息特征进行处理的情况,请参阅附图2,具体流程包括以下步骤:
步骤S201,获取所述通信终端中的链路信号。
步骤S202,检测所述链路信号中携带的信息特征。
步骤S203,判断所述信息特征类型,当所述信息特征为所述通信终端下行链路中语音解码器的SID标识时,执行步骤S204;当所述信息特征为所述通信终端下行链路信号能量时,执行步骤S205;当所述信息特征为所述通信终端上行链路信号中的语音信息时,执行步骤S206。
步骤S204,确定所述SID标识类型,当所述SID标识为“1”时,输出关闭控制信号“0”;当所述SID标识为“0”时,则输出启动控制信号“1”。
在执行步骤S204时,SID标识的相关描述与上述公开的实施例中的描述雷同,这里不再赘述。
步骤S205,判断所述下行链路信号能量是否小于预设阈值,如果是,则输出关闭控制信号“0”;如果否,则输出启动控制信号“1”。
在步骤S205中,所述预设阈值因通信终端的不同而有所不同,即在具体判断的过程中所述预设阈值需要根据实际测试情况进行调整。此处有关下行链路信号能量的相关描述与上述公开的实施例中类同,这里也不再赘述。
步骤S206,检测所述上行链路信号中是否包含语音信息,如果否,则输出关闭控制信号“0”;如果是,则输出启动控制信号“1”。此处有关上述链路信号的相关描述与上述公开的实施例中的描述类同,这里也不再赘述。
步骤S207,判断所述三个控制信号中是否包括关闭控制信号“0”,如果是,则选择任意一个关闭控制信号“0”为最终的控制信号,执行步骤S208;如果均为启动控制信号“1”,则选择任意一个启动控制信号“1”作为最终的控制信号,执行步骤S209。
步骤S208,使上行链路信号跳过所述通信终端的回声消除模块,直接进入所述通信终端中的其它模块进行处理。
步骤S209,由所述通信终端的回声消除模块对所述上行链路信号进行回声消除。
在执行步骤S206时,由于在上述公开的实施例中,所述信息特征中包括三类具体内容,根据不同的内容进行检测或判断能够生成相应的控制信号,因此需要对生成的各个控制信号进行综合,只要相应的三个控制信号中包括一个关闭控制信号,就去执行步骤S208。通过本发明公开的实施例可以得知,在不是特别需要进行回声消除的时候,则将上行链路信号跳过该通信终端的回声消除模块,直接进入所述通信终端中的其它模块进行处理。使得在通信终端进行通话的过程中,通信终端中的回声消除模块不会一直运行,从而节省了通信终端的CPU资源,降低的整个音频链路延时和通信终端的功耗。
另外,由于跳过回声消除及噪声抑制的非线性处理,使得通信终端中的上行噪声抑制模块能够更好的跟踪真实环境中的噪声信息,进而提升了上行链路的噪声抑制性能以及背景噪声传输性能。
上述本发明公开的实施例中详细描述了一种应用于通信终端中的回声消除方法,对于本发明的方法可采用多种形式的装置实现,因此本发明还公开了一种回声消除装置,下面给出具体的实施例进行详细说明。
请参阅附图3a,一种回声消除装置具体包括:控制模块301,发送模块(图中未标识)和回声消除模块302。
控制模块301,用于获取所述通信终端中的链路信号,检测所述链路信号所携带的信息特征,并依据所述信息特征生成相应的控制信号。
发送模块,用于当所述控制信号为启动控制信号“1”时,将上行链路信号发送至回声消除模块302;或当所述控制信号为关闭控制信号“0”时,将所述上行链路信号跳过所述通信终端的回声消除模块302,直接进入所述通信终端中的其它处理模块。
回声消除模块302,用于对接收到的所述上行链路信号进行回声消除。
通过由控制模块301依据链路信号中实际的信息特征,生成相对应的控制信号并输出,并依据所接收的控制信号的具体内容决定是否对上行链路信号进行回声消除,即当控制信号为启动控制信号“1”时,说明此时需要进行回声消除,将所述链路信号发送至回声消除模块302进行回声消除;当控制信号为关闭控制信号“0”时,说明此时不需要进行回声消除,并将所述上行链路信号跳过回声消除模块302通信,然后直接进入所述通信终端的其它处理模块。因此在不需要进行回声消除的时候,能够使回声消除模块302停止运行,从而节省了该通信终端的CPU资源,降低了整个音频链路延时和通信终端的功耗。
在上述本发明公开的实施例中,由于获取的所述链路信号中携带的信息特征可以为所述通信终端下行链路中SID标识、所述通信终端下行链路信号能量或所述通信终端上行链路信号中的回声信息。因此,所述控制模块301可以具体实现为SID标识检测单元,能量检测单元或VAD(Voice ActivityDetector,话音激活)检测单元,下面一一进行描述。
本发明还公开了一个实施例,请参阅附图3b,其中当控制模块301具体实现为SID标识检测单元时,在附图3b中用控制模块301表征SID标识检测单元。
SID标识检测单元301,用于获取所述通信终端下行链路中语音解码器的SID标识,当所述SID标识为“1”时,输出关闭控制信号“0”;当所述SID标识为“0”时,则输出启动控制信号。
在SID标识检测单元301中,如果SID标识为“1”表示所述通信终端接收到的信号为静默帧,此时通信终端(远端)的语音编码器会用舒适平稳噪声代替原有的数据帧,相应地,在与该通信终端(近端)的下行链路连接的听筒处无语音信号,进而在该通信终端(近端)的上行链路连接的麦克处,就不会采集到远端语音的声学回声,因此不需要对链路信号进行回声消除,生成关闭控制信号“0”并输出;反之,如果SID标识为“0”则表示所述通信终端接收到的信号并非为静默帧,因此可能会产生回声,因此生成启动控制信号“1”并输出。
发送模块,用于当所述控制信号为启动控制信号“1”时,将上行链路信号发送至回声消除模块;当所述控制信号关闭控制信号“0”时,将所述上行链路信号跳过所述通信终端的回声消除模块,直接进入所述通信终端中的其它处理模块。
回声消除模块302,用于对接收到的所述上行链路信号进行回声消除。
在本发明公开的此实施例中,利用SID标识生成对应的控制信号,即根据SID标识辨别需要进行回声消除或不需要进行回声消除的情况,在不需要进行回声消除时,跳过回声消除模块302使上行链路信号直接进入所述通信终端中的其它处理模块,避免在该通信终端的回声消除模块302一直运行,节约了该通信终端的CPU资源,降低了整个音频链路延时和通信终端的功耗。
本发明还公开了一个实施例,请参阅附图3c,其中,当控制模块301具体实现为能量检测单元时,在附图3c中用控制模块301表征能量检测单元。
能量检测单元301,用于获取所述通信终端下行链路信号,并判断所述下行链路信号能量是否小于预设阈值,如果是,则输出关闭控制信号“0”;如果否,则输出启动控制信号“1”。
发送模块,用于当所述控制信号为启动控制信号“1”时,将所述上行链路信号发送至回声消除模块;当所述控制信号关闭控制信号“0”时,将所述上行链路信号跳过所述通信终端的回声消除模块,直接进入所述通信终端中的其它处理模块。
回声消除模块302,用于对接收到的所述链路信号进行回声消除。
在上述公开的实施例中,以获取的下行链路信号能量的大小作为选择是否进行回声消除的依据。在能量检测单元301中,主要是通过计算获取的下行链路信号,即下行语音信号的能量,其计算公式为:Power=∑ny2(n),其中y(n)是下行链路信号。
然后,将计算获得的信号能量Power和该通信终端内的预设阈值进行比较,当该Power小于预设阈值时,认为该下行链路信号不足以产生回声。一般来说,当下行链路存在大音量信号时,在上行链路中才能引入明显回声,当下行链路信号比较小时,经过空气中传播衰减后,在麦克采集点处往往形成的回声往往比较小,甚至可以忽略不计,因此当该下行链路信号的能量小于预设阈值时,认为不需要进行回声消除,使能量检测单元301生成关闭控制信号“0”输出,由发送模块发送上行或下行链路中的信号,使其跳过回声消除模块302,直接进入所述通信终端中的其它处理模块。从而实现本发明在不需要进行回声消除时,跳过回声消除模块302进行其它处理,节省通信终端的CPU资源,降低整个音频链路延时和通信终端的功耗。
本发明还公开了一个实施例,请参阅附图3d,其中当控制模块301具体实现为VAD检测单元时,在附图3d中用控制模块301表征VAD检测单元。
VAD检测单元301,用于获取所述通信终端上行链路信号,并检测所述上行链路信号中是否包含语音信号,如果是,则输出关闭控制信号;如果否,则输出启动控制信号。
该VAD检测单元301的主要原理是,基于背景噪声的能量起伏比语音的能量起伏更缓慢的事实,通过计算三类能量的起伏值,并根据现有的门限规则得到最终的VAD值。由于回声信号中具备特定的语音特性,因此可以根据门限规则获取的VAD值,即判断起伏值是否小于门限值,即当小于时输出为“0,此时链路信号中基本无回声信号,而主要由噪声构成,从而可以跳过回声消除模块302执行链路信号的传输;当输出为“1”时,此时链路信号中包含有语音信号,然后进行回声消除。
VAD检测单元301具体的实施过程为:首先计算三个能量值,具体计算公式为如下:
其中,E[m]为全局能量,ELp[m]为低通能量,EHp[m]为高通能量。
然后,通过一定时间长度的平滑(通常为4帧)得到三类能量的最大值和最小值
然后,根据当前获取的上行链路信号中的能量对上述获取的最大值和最小值进行更新,更新的公式为:
再计算更新后的能量最大值和最小值的差值,具体为:
Δ=Emax[m]-Emin[m]
ΔLp=ELp,max[m]-ELp,min[m]
ΔHp=EHp,max[m]-EHp,min[m]
最后,根据现有的规则门限获取最终的VAD值,即判断语音能量的起伏值是否小于预设的门限,如果是则输出为“0”说明此时链路信号中基本无回声信号,该VAD检测单元301则输出关闭控制信号“0”;反之,则输出“1”说明此时链路信号中包含有回声信号,该VAD检测单元301则输出启动控制信号“1”。
然后,再根据相应控制信号决定是否需要进入回声消除模块302。所述发送模块和回声消除模块302的功能,对应与上述公开的实施例中的发送模块和回声消除模块相同,这里不再赘述。
需要说明的是,在上述本发明公开的实施例中,控制模块301可以与发送模块集成在一个模块中,构成新的控制模块。附图3a至附图3d中的303为听筒,304为麦克。其中听筒303与该通信终端中的下行链路链接,麦克304与该通信终端中的上行链路链接。
上述本发明公开的装置实施例中,在具体实现的过程中也可以将上述SID标识检测单元,能量检测单元和VAD检测单元进行组合,集成至一个控制模块中,针对此种情况,在上述本发明公开的实施例中添加了一个判断单元,具体请参阅附图4,主要包括:控制模块401,判断单元402,发送模块(图中未标示),回声消除模块403,听筒404和麦克405。
该控制模块401中包括,SID标识检测单元4011,能量检测单元4012和VAD检测单元4013。
本实施例中的SID标识检测单元4011,能量检测单元4012和VAD检测单元4013与上述实施例中公开的SID标识检测单元,能量检测单元和VAD检测单元结构功能相同,这里不再赘述。
判断单元402,用于判断所述控制信号中是否包括关闭控制信号“0”,如果是,则选择任意一个关闭控制信号“0”为最终的控制信号;如果均为启动控制信号“1”,则选择任意一个启动控制信号“1”作为最终的控制信号。
由于控制模块401中集成了上述实施例公开的三个单元,因此在通信终端进行通话的过程中,三个单元可以依据不同的信息特征生成相应的三个控制信号,因此,通过判断单元402进行判断,只要这三个单元生成的控制信号中存在一个关闭控制信号“0”,则确定该关闭控制信号“0”为最终的控制信号输出给发送单元;如果不包含关闭控制信号“0”,即上述三个单元都生成了启动控制信号“1”,则选择其中任意一个启动控制信号“1”作为最终控制信号输出给发送单元。
需要说明的是,本实施例中的发送模块,回声消除模块403,听筒404和麦克405的结构功能与上述本发明公开的实施例中发送模块,回声消除模块,听筒和麦克相同,这里不再赘述。
在判断单元402处确定最终的控制信号之后,即确定是否对上行链路信号进行回声消除,仍然可以在需要进行回声消除时,在回声消除模块403中进行链路信号的回声消除,同样,在不需要进行回声消除时,跳过回声消除模块403,直接进入所述通信终端中的其它处理模块,从而使回声消除模块403不必一直运行,节约了该通信终端的CPU资源,降低了整个音频链路延时和通信终端的功耗。
另外,由于跳过回声消除及残留回声抑制的非线性处理,通信终端中的噪声抑制模块能够更好的跟踪真实环境中的噪声信息,进而提升了上行链路的噪声抑制性能以及背景噪声传输性能。
此外,在附图3a至附图4中,ECHO表示回声,SPEECH表示话音,NOISE表示噪音,DownlinkSignal表示下行链路,UplinkSignal表示上行链路;而上行链路信号即为上行语音信号,下行链路信号即为下行语音信号。
需要说明的是,在本实施例中,控制模块401可由SID标识检测单元4011,能量检测单元4012或VAD检测单元4013任意集成,本发明并不仅限于此。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。