1.本公开的实施方式涉及音频处理技术领域,更具体地,本公开的实施方式涉及一种回声消除方法、回声消除装置、存储介质和电子设备。
背景技术:2.本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.在实时通信rtc(real time communication)场景中,远端(说话端)音频信号在近端(受话端)常常存在反馈路径,即回声经过网络传输后会传回远端通信设备,使得远端说话者听到自身说话声,严重影响实时通信场景的音频体验。
4.相关技术中,采用回声消除技术(acoustic echo cancellation,aec)来消除麦克风采集到的近端信号中本地扬声器播放产生的回声信号。但回声消除过程易受到外界信号干扰产生发散现象,导致回声消除效果不稳定。
技术实现要素:5.本公开的实施方式提供一种回声消除方法、回声消除装置、存储介质和电子设备。
6.在本公开实施方式的第一方面中,提供了一种回声消除方法,包括:
7.获取通话场景中的近端语音信号和远端语音信号;所述近端语音信号包含回声信号;
8.确定所述近端语音信号与所述远端语音信号的相关性信息;
9.基于所述相关性信息调整自适应滤波器的更新步长信息;
10.基于调整后的更新步长信息更新所述自适应滤波器,通过更新后的所述自适应滤波器消除所述回声信号。
11.在本公开的一些实施例中,基于前述方案,所述确定所述近端语音信号与所述远端语音信号的相关性信息,包括:
12.基于所述回声信号在所述近端语音信号中的占比,确定所述近端语音信号与所述远端语音信号的相关性信息。
13.在本公开的一些实施例中,基于前述方案,所述基于所述回声信号在所述近端语音信号中的占比,确定所述近端语音信号与所述远端语音信号的相关性信息,包括:
14.基于所述远端语音信号,确定所述回声信号;
15.确定所述回声信号在所述近端语音信号中的占比;
16.响应于所述占比与第一预设阈值的比较结果,确定所述近端语音信号与所述远端语音信号的相关性信息。
17.在本公开的一些实施例中,基于前述方案,所述基于所述远端语音信号,确定所述回声信号,包括:
18.对所述远端语音信号进行分段;
19.对分段后的每段远端语音信号进行快速傅里叶变换,获得每段远端语音信号对应的频域向量;
20.获取所述自适应滤波器的频域系数矩阵;所述自适应滤波器的阶数与所述快速傅里叶变换的阶数相同;
21.基于所述频域向量和所述频域系数矩阵,确定所述回声信号。
22.在本公开的一些实施例中,基于前述方案,所述相关性信息包含相关系数,所述基于所述相关性信息调整自适应滤波器的更新步长信息,包括:
23.响应于所述相关系数与第二预设阈值的比较结果,确定所述自适应滤波器的更新步长信息;
24.当所述相关系数不小于第二预设阈值时,基于预设更新步长确定所述自适应滤波器的更新步长信息;
25.当所述相关系数小于第二预设阈值时,基于所述占比调整所述自适应滤波器的预设更新步长。
26.在本公开的一些实施例中,基于前述方案,所述基于调整后的更新步长信息更新所述自适应滤波器,通过更新后的所述自适应滤波器消除所述回声信号,包括:
27.以最小化所述回声信号与所述近端语音信号之间均方误差为目标函数,基于调整后的更新步长信息迭代更新所述自适应滤波器的频域系数矩阵,以消除所述回声信号。
28.在本公开的一些实施例中,基于前述方案,所述方法还包括:
29.确定所述远端语音信号的信号状态;所述信号状态包括激活状态和非激活状态;
30.当所述远端语音信号处于非激活状态时,基于预设更新步长更新所述自适应滤波器;
31.当所述远端语音信号处于激活状态时,基于调整后的更新步长信息更新所述自适应滤波器。
32.在本公开的一些实施例中,基于前述方案,所述确定所述远端语音信号的信号状态,包括:
33.确定当前所述远端语音信号的累计帧数;
34.响应于所述累计帧数与第三预设阈值的比较结果,确定所述远端语音信号的信号状态。
35.在本发明实施方式的第二方面中,提供了一种回声消除装置,包括:
36.获取模块,用于获取通话场景中的近端语音信号和远端语音信号;所述近端语音信号包含回声信号;
37.相关性确定模块,用于确定所述近端语音信号与所述远端语音信号的相关性信息;
38.步长调整模块,用于基于所述相关性信息调整自适应滤波器的更新步长信息;
39.更新模块,用于基于调整后的更新步长信息更新所述自适应滤波器,通过更新后的所述自适应滤波器消除所述回声信号。
40.在本公开的一些实施例中,基于前述方案,所述相关性确定模块还用于:
41.基于所述回声信号在所述近端语音信号中的占比,确定所述近端语音信号与所述远端语音信号的相关性信息。
42.在本公开的一些实施例中,基于前述方案,所述相关性确定模块包括:
43.回声确定子模块,用于基于所述远端语音信号,确定所述回声信号;
44.占比确定子模块,用于确定所述回声信号在所述近端语音信号中的占比;
45.相关性确定子模块,用于响应于所述占比与第一预设阈值的比较结果,确定所述近端语音信号与所述远端语音信号的相关性信息。
46.在本公开的一些实施例中,基于前述方案,所述回声确定子模块用于:
47.对所述远端语音信号进行分段;
48.对分段后的每段远端语音信号进行快速傅里叶变换,获得每段远端语音信号对应的频域向量;
49.获取所述自适应滤波器的频域系数矩阵;所述自适应滤波器的阶数与所述快速傅里叶变换的阶数相同;
50.基于所述频域向量和所述频域系数矩阵,确定所述回声信号。
51.在本公开的一些实施例中,基于前述方案,所述相关性信息包含相关系数,所述步长调整模块还用于:
52.响应于所述相关系数与第二预设阈值的比较结果,确定所述自适应滤波器的更新步长信息;
53.当所述相关系数不小于第二预设阈值时,基于预设更新步长确定所述自适应滤波器的更新步长信息;
54.当所述相关系数小于第二预设阈值时,基于所述占比调整所述自适应滤波器的预设更新步长。
55.在本公开的一些实施例中,基于前述方案,所述更新模块还用于:
56.以最小化所述回声信号与所述近端语音信号之间均方误差为目标函数,基于调整后的更新步长信息迭代更新所述自适应滤波器的频域系数矩阵,以消除所述回声信号。
57.在本公开的一些实施例中,基于前述方案,所述装置还包括:
58.信号状态确定模块,用于确定所述远端语音信号的信号状态;所述信号状态包括激活状态和非激活状态;
59.当所述信号状态确定模块确定所述远端语音信号处于非激活状态时,所述更新模块基于预设更新步长更新所述自适应滤波器;
60.当所述信号状态确定模块确定所述远端语音信号处于激活状态时,所述更新模块基于调整后的更新步长信息更新所述自适应滤波器。
61.在本公开的一些实施例中,基于前述方案,所述信号状态确定模块还用于:
62.确定当前所述远端语音信号的累计帧数;
63.响应于所述累计帧数与第三预设阈值的比较结果,确定所述远端语音信号的信号状态。
64.在本发明实施方式的第三方面中,提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现如上述实施例中所述的回声消除方法。
65.在本发明实施方式的第四方面中,提供了一种电子设备,包括:处理器和存储器,所述存储器存储有可执行指令,所述处理器用于调用所述存储器存储的可执行指令执行如上述实施例中所述的回声消除方法。
66.根据本公开实施方式提供的回声消除方法,一方面可以通过确定所述近端语音信号与所述远端语音信号的相关性信息来调整自适应滤波器的更新步长信息,能够使得自适应滤波器的更新速度与该信号相关性信息相联系,基于近端语音信号与远端语音信号的相关性调整自适应滤波器的更新速度,避免自适应滤波器朝错误方向更新。另一方面可以通过调整自适应滤波器的更新步长,使得自适应滤波器对外界干扰信号的敏感度降低,从而提高自适应滤波器的鲁棒性,提高回声消除效果的稳定性。
附图说明
67.通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
68.图1示意性示出了根据本公开的一个实施例的实时通话场景架构图;
69.图2示意性示出了根据本公开的一个实施例的回声消除方法流程示意图;
70.图3示意性示出了根据本公开的一个实施例的近端语音信号与远端语音信号的相关性信息确定过程流程示意图;
71.图4示意性示出了根据本公开的一个实施例的回声信号确定过程流程示意图;
72.图5示意性示出了根据本公开的一个实施例的回声消除方法的实现流程图;
73.图6示意性示出了根据本公开的一个实施例的回声消除装置结构框图;
74.图7示意性示出了适于用来实现本发明实施例的存储介质的结构示意图;
75.图8示意性示出了适于用来实现本发明实施例的电子设备的结构示意图。
76.在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
77.下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
78.本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
79.根据本公开的实施方式,提出了一种回声消除方法、回声消除装置、存储介质及电子设备。
80.发明概述
81.对于实时通信rtc(real time communication)场景,例如,两个通信设备同时参加会议的场景,每个通信设备的扬声器播放的声音中都具有本端说话者的回声信号。如图1所示:
82.当远端说话者说话时,通信设备a的麦克风采集远端语音信号,并将采集的远端语音信号通过网络传输至通信设备b,再通过通信设备b的扬声器播放,播放的语音信号一条路径为被通信设备b的麦克风采集,还有一条路径通过周围环境反射等产生回声后被通信
设备b的麦克风采集,另一条路径为传至近端说话者,近端说话者反馈的近端语音信号同样被通信设备b的麦克风采集,通信设备b将采集的近端语音信号和回声信号再传至通信设备a;然后通过通信设备a的扬声器播放给远端说话者,这样远端说话者就听到了自身说话声即回声。同样地,对于近端说话者来讲,也存在相同的回声路径,影响实时通话质量。
83.实际通信链路中的回声包括声学回声和电学回声:声学回声为近端麦克风采集到的近端扬声器播放的远端音频;电学回声为电路中的阻抗不匹配引起的电路回声。不管是声学回声和电学回声,其都会经过网络传输后会传回远端使得远端说话者听到自身说话声。每个通信设备具有自身的aec模块,aec模块用于对扬声器信号与由它产生的多路径回声的相关性为基础,建立远端信号的语音模型,利用它对回声进行估计,并不断地修改滤波器的系数,使得估计值更加逼近真实的回声。然后,将回声估计值从话筒的输入信号中减去,从而达到消除回声的目的。aec还将话筒的输入与扬声器过去的值相比较,从而消除延长延迟的多次反射的声学回声。根椐存储器存放的过去的扬声器的输出值的多少,aec可以消除各种延迟的回声。
84.在相关技术中,通过自适应滤波器消除回声的线性部分。具体地,将远端音频信号作为参考信号,使用自适应滤波器和参考信号预测近端信号中的线性回声部分,进而消除回声;但是在自适应滤波器系数更新过程中,受到本端说话人语音信号的干扰影响易出现不稳定收敛的情况,甚至导致发散的现象,从而影响回声消除效果。
85.为此本公开提供了一种回声消除方法及装置,可以应用在如图1所示的通信设备a或通信设备b中,也就是说,实时通信场景中的每个通信设备均可以使用本公开实施例提出的回声消除方法及装置。对于通话场景中任一通信设备来讲,本端通信设备接收的信号中均有可能带有回声信号,本公开以一个通信设备为例进行说明。
86.示例性方法
87.以下结合说明书附图对本公开的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
88.下面参考图2来描述根据本公开示例性实施方式的回声消除方法,包括步骤s210-s240。
89.步骤s210,获取通话场景中的近端语音信号和远端语音信号;所述近端语音信号包含回声信号。
90.在本示例实施方式中,通话场景可以是实时通话场景;通话场景中的通信设备可以是两个或者多个。可以通过近端通信设备或远端通信设备的麦克风或者话筒来获取近端语音信号和远端语音信号。获取的近端语音信号中可以包含有回声信号,如图1所示。
91.步骤s220,确定所述近端语音信号与所述远端语音信号的相关性信息。
92.在本示例实施方式中,相关性信息可以通过对近端语音信号与远端语音信号进行相关性分析获得。相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。由于近端语音信号中携带有远端语音信号所产生的回声信号,因此,两者存在相关性。
93.在本示例实施方式中,相关性信息可以是相关系数、相关表、相关图中的一种或多种。相关表和相关图用于反映两个变量之间的相互关系及其相关方向。相关系数用以反映
变量之间相关关系密切程度的统计指标,相关系数可以包括线性相关系数(反映两变量间线性相关关系)、非线性相关系数(反映两变量间曲线相关关系)和复相关系数(反映多元线性相关关系)。近端语音信号与远端语音信号之间的相关性可以是正相关(两变量变化趋势相同)、负相关(两变量变化趋势相反)或不相关(一个变量变化对另一个变量没影响),两者之间的相关性会随着外界环境和设备处理能力的变化而发生变化。例如,在某时段近端语音信号与远端语音信号之间为正相关,在其他时段两者有可能为负相关或不相关的关系。
94.步骤s230,基于所述相关性信息调整自适应滤波器的更新步长信息。
95.在本示例实施方式中,调整前的自适应滤波器的更新步长可以是预设的固定步长,也可以根据最小均方类算法中的更新步长,例如,fblms(frequency-domain block least mean square)频域最小均方算法。
96.在本示例实施方式中,可以基于相关性信息中的相关性类型调整自适应滤波器的更新步长信息,也可以基于相关性信息中的相关系数调整自适应滤波器的更新步长信息,还可以基于相关性信息中的相关性类型和相关系数调整自适应滤波器的更新步长信息。
97.示例性地,可以在近端语音信号与远端语音信号相关性较低或不相关时,减小自适应滤波器的更新步长信息,以抑制自适应滤波器的更新速度,避免其向错误的方向更新。在近端语音信号与远端语音信号相关性较高时,增大自适应滤波器的更新步长信息或者不改变自适应滤波器的更新步长信息,以加快自适应滤波器的更新速度。
98.步骤s240,基于调整后的更新步长信息更新所述自适应滤波器,通过更新后的所述自适应滤波器消除所述回声信号。
99.在本示例实施方式中,可以采用调整后的更新步长信息更新自适应滤波器的系数矩阵。例如,采用调整后的更新步长计算自适应滤波器的系数更新量,再采用该系数更新量计算自适应滤波器的更新后系数(如用上一次的滤波器系数加上当前系数更新量得到更新后系数),以完成自适应滤波器的更新。通过更新后的自适应滤波器可以消除近端语音信号中的回声信号。
100.本公开实施例提供的回声消除方法,一方面可以通过确定所述近端语音信号与所述远端语音信号的相关性信息来调整自适应滤波器的更新步长信息,能够使得自适应滤波器的更新速度与该信号相关性信息相联系,基于近端语音信号与远端语音信号的相关性调整自适应滤波器的更新速度,避免自适应滤波器朝错误方向更新。另一方面可以通过调整自适应滤波器的更新步长,使得自适应滤波器对外界干扰信号的敏感度降低,从而提高自适应滤波器的鲁棒性,提高回声消除效果的稳定性。
101.在一些示例实施例中,基于所述回声信号在所述近端语音信号中的占比,确定所述近端语音信号与所述远端语音信号的相关性信息。更具体地,参考图3,本公开实施例中所述基于所述回声信号在所述近端语音信号中的占比,确定所述近端语音信号与所述远端语音信号的相关性信息,包括:
102.步骤s310,基于所述远端语音信号,确定所述回声信号。
103.在本示例实施方式中,远端语音信号可以是通过网络传输至近端或本地的远端信号,也可以远端麦克风或话筒采集的远端说话者的语音信号。回声信号可以是远端语音信号在近端产生的回声信号。可以通过最小均方类算法,例如fblms,来估计回声信号。
104.步骤s320,确定所述回声信号在所述近端语音信号中的占比。
105.在本示例实施方式中,近端语音信号中可以携带有回声信号,近端语音信号可以通过近端麦克风采集获取。可以根据步骤s310中估计的回声信号和麦克风采集的近端语音信号,确定回声信号在近端语音信号中的占比;例如,可以根据回声信号的能量与近端语音信号的能量比值来确定该占比。也可以根据回声信号与近端语音信号的强度比值来确定该占比。还可以根据回声信号与近端语音信号的幅度比值来确定该占比。此外,也可以将各信号的能量、强度、幅度等信息进行一定运算变换后再求比值,例如可以对回声信号的强度与近端语音信号的强度分别进行平方运算后再求比值,确定相应占比信息。本示例对此不做特殊限定。
106.如图1所示,在一些实施例中,麦克风采集的近端语音信号可以表示为:
107.d(k)=x(k)*w(k)+s(k)
ꢀꢀꢀꢀꢀꢀꢀ
(1)
108.式中,k为采样时刻,d(k)为麦克风采集信号,x(k)为通过网络传输至本地的远端信号,*为卷积符号,w(k)为回声路径,x(k)*w(k)表示经过扬声器播放后再次被麦克风采集产生的回声信号,s(k)为近端说话人语音信号。
109.将回声信号在近端语音信号中的占比记为ratio(k),则
110.ratio(k)=y2(k)/d2(k);
ꢀꢀꢀꢀ
(2)
[0111][0112]
其中,y(k)表示回声信号,yi(k)和di(k)分别为y(k)和d(k)中的第i项;l为总项数。
[0113]
步骤s330,响应于所述占比与第一预设阈值的比较结果,确定所述近端语音信号与所述远端语音信号的相关性信息。
[0114]
在本示例实施方式中,第一预设阈值可以为预先设定的值。将步骤s320中计算的占比与该第一预设阈值进行比较,根据比较结果,确定近端语音信号与远端语音信号的相关性信息。
[0115]
示例性地,当ratio(k)大于等于第一预设阈值时,确定近端语音信号与远端语音信号的相关性较高,可以将近端语音信号与远端语音信号的相关系数乘以一个较大值作为对应相关性信息,也可以给定一个固定的相关系数值a1。当ratio(k)小于第一预设阈值时,确定近端语音信号与远端语音信号的相关性较低,可以将近端语音信号与远端语音信号的相关系数乘以一个较小值作为对应相关性信息,也可以给定一个固定的相关系数值a2,a1大于a2。在本示例中第一预设阈值的取值可以设置为小于1的正数。
[0116]
在一些示例实施例中,参考图4,本公开实施例中所述基于所述远端语音信号,确定所述回声信号,包括:
[0117]
步骤s410,对所述远端语音信号进行分段。
[0118]
在本示例实施方式中,由于语音信号为连续无限长的,在进行信号处理的时候,可以将语音信号进行分段处理,以使每段信号都为有限长的信号,便于进行信号处理。
[0119]
示例性地,将远端时域信号分为b段,相应地,线性滤波器也将分为b段,每段长度为l,则第b段远端信号可表示为:
[0120]
xb(k)=[x(kr-bl-m+1),...,x(kr-bl)]
t
;
ꢀꢀꢀꢀ
(4)
[0121]
式(4)中,b=1,2,...,b;上标t表示矩阵的转置操作,r表示每一帧处理的长度,r=bl;m表示快速傅里叶变换的阶数,m=2l。
[0122]
步骤s420,对分段后的每段远端语音信号进行快速傅里叶变换,获得每段远端语
音信号对应的频域向量。
[0123]
在本示例实施方式中,时域中的任何电信号都可以由一个或多个具有适当频率、幅度和相位的正弦波叠加而成。换句话说,任何时域信号都可以变换成相应的频域信号,通过频域测量可以得到信号在某个特定频率上的能量值及测量微小幅度信号。
[0124]
示例性地,对第b段远端信号作m点快速傅里叶变换转换至频域,得到该段远端语音信号对应的频域向量为fmxb(k);将其对角化得到:
[0125]
xb(k)=diag{fmxb(k)};
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0126]
式(5)中,fm为m点傅里叶变换,diag{*}为对角化操作符号。
[0127]
步骤s430,获取所述自适应滤波器的频域系数矩阵;所述自适应滤波器的阶数与所述快速傅里叶变换的阶数相同。
[0128]
在本示例实施方式中,自适应滤波器的系数矩阵在初始时刻可以设置为0矩阵。在后续的迭代过程中逐渐更新。示例性地,自适应滤波器的频域系数矩阵可以表示为:
[0129][0130]
式(6)中,wb(k)为自适应滤波器的时域系数矩阵,0表示零矩阵。
[0131]
步骤s440,基于所述频域向量和所述频域系数矩阵,确定所述回声信号。
[0132]
在本示例实施方式中,可以将每段信号的频域向量与频域系数矩阵进行相关运算(如矩阵乘法)后求和,再对求和结果进行傅里叶逆变换,即可得到回声信号。也可以在运算中加入维度变换或矩阵变换,例如,首先将频域向量对角化之后再进行后续计算。
[0133]
示例性地,可以通过下式确定回声信号:
[0134][0135]
式(7)中,y(k)表示回声信号,为傅里叶逆变换。
[0136]
在一些示例实施例中,上述实施例中的基于所述相关性信息调整自适应滤波器的更新步长信息,包括:
[0137]
响应于所述相关系数与第二预设阈值的比较结果,确定所述自适应滤波器的更新步长信息。
[0138]
在本示例实施方式中,相关性信息可以是相关系数,可以采用近端语音信号与远端语音信号的相关系数与第二阈值进行比较,根据比较结果,确定是否调整自适应滤波器的更新步长。
[0139]
在本示例实施方式中,当所述相关系数不小于第二预设阈值时,基于预设更新步长确定所述自适应滤波器的更新步长信息。预设更新步长可以是预先设定的固定值,也可以是根据某种预设规则确定的更新步长,例如,根据fblms算法确定的更新步长。
[0140]
在本示例实施方式中,当所述相关系数小于第二预设阈值时,基于所述占比调整所述自适应滤波器的预设更新步长。可以采用该占比与预设更新步长进行相关运算,将运算结果作为更新步长。例如,将占比乘以预设更新步长,将乘积结果作为调整后的更新步长,也可以采用其他运算方式,本示例对此不做特殊限定。
[0141]
在一些示例实施例中,上述实施例中的基于调整后的更新步长信息更新所述自适
应滤波器,通过更新后的自适应滤波器消除回声信号,包括:
[0142]
以最小化回声信号与近端语音信号之间均方误差为目标函数,基于调整后的更新步长信息迭代更新自适应滤波器的频域系数矩阵,以消除回声信号。
[0143]
示例性地,可以通过下式计算本公开估计的回声信号与实际回声信号间的残差信号:
[0144][0145]
式(8)中,为傅里叶逆变换。
[0146]
则第b段滤波器的频域系数矩阵更新量为:
[0147][0148]
式(9)中,μ(k)为预设更新步长,上标h为矩阵取共轭转置操作;b0为第二预设阈值,a为相关系数。
[0149]
则k+1帧的自适应滤波器的频域系数矩阵为:wb(k+1)=wb(k)+δwb(k)。
[0150]
然后,重复执行以上过程更新滤波器,并逐渐收敛至最优解,使得残差信号均方误差最小。
[0151]
本公开可以在回声信号在近端信号占比较小时,以较小的更新步长更新滤波器系数矩阵,以应对该情况下自适应滤波器出现的不稳定收敛现象,提高自适应滤波器的鲁棒性。
[0152]
在一些实施例中,考虑到缩小滤波器的更新步长会影响通话开始阶段,即自适应滤波器从0开始阶段的收敛速度,因此,可以选择在通话开始后的预设q帧之后再来时执行上述调整自适应滤波器更新步长的更新方式。故上述实施例的回声消除方法还可以包括:
[0153]
确定所述远端语音信号的信号状态;所述信号状态包括激活状态和非激活状态。在本示例实施方式中,可以将远端语音信号处于非底噪的预设q帧内作为该信号的非激活状态。相应地,可以将远端语音信号处于非底噪的预设q帧外作为该信号的激活状态。
[0154]
示例性地,可以首先确定当前远端语音信号的累计帧数。然后,响应于累计帧数与第三预设阈值的比较结果,确定远端语音信号的信号状态。例如,当累计帧数大于第三预设阈值时,确定远端语音信号处于激活状态;当累计帧数小于等于第三预设阈值时,确定远端语音信号处于非激活状态。
[0155]
在本示例实施方式中,当所述远端语音信号处于非激活状态时,基于预设更新步长更新所述自适应滤波器。当所述远端语音信号处于激活状态时,基于调整后的更新步长信息更新所述自适应滤波器。
[0156]
下面结合图5对本技术实施例的一种回声消除方法的具体流程进行介绍。
[0157]
参照图5,回声消除方法的具体流程包括如下步骤:
[0158]
步骤s501,获取远端语音信号和近端语音信号。在本示例中,可以通过通信设备的麦克风或话筒获取远端语音信号和近端语音信号。
[0159]
步骤s502,确定当前远端语音信号的累计帧数。在本示例中,可以从0开始对远端语音信号的语音帧数量进累加,以获得当前时刻的累计总帧数。
[0160]
步骤s503,判断该累计帧数是否大于第三预设阈值;若是,则转入步骤s504,否则,转至步骤s507。
[0161]
本示例中,可以根据经验设定第三预设阈值,例如将其设置为q=5s。也可以根据通信设备的信号处理能力设定第三预设阈值,本示例对此不做特殊限定。
[0162]
步骤s504,确定回声信号在近端语音信号中的占比。本示例中,可以将回声信号的能量与近端语音信号的能量的比值作为回声信号在近端语音信号中的占比。
[0163]
步骤s505,判断该占比是否小于预设阈值,若是,则转至步骤s506,否则,转至步骤s507。
[0164]
本示例中,可以直接采用占比与一个预设阈值进行比较,根据比较结果确定后续执行步骤。也可以将占比与一个预设阈值比较,根据比较结果确定远端语音信号与近端语音信号的相关性信息(如相关系数),然后再通过该相关性信息与另一个预设阈值比较,根据比较结果确定后续执行步骤。
[0165]
步骤s506,采用该占比乘以预设更新步长更新自适应滤波器。本示例中,可以将步骤s505看作是在自适应滤波器中增加了计算量很小的双讲判断,仅在估计出的回声时域能量小于阈值时对滤波器更新步长作修正。
[0166]
步骤s507,采用预设更新步长更新自适应滤波器。在本示例中,预设更新步长可以是预先设定的固定值,也可以是根据预设规则确定的更新步长。
[0167]
步骤s508,通过更新后的自适应滤波器消除回声信号。在本示例中,可以以最小化回声信号与近端语音信号之间均方误差为目标函数,基于更新步长信息迭代更新自适应滤波器的频域系数矩阵,以消除回声信号。
[0168]
根据本实施方式的回声消除方法,首先在通话开始后,自适应滤波器未获得足够时间收敛(即远端信号处于非底噪状态的q帧内)时,使用原更新步长作滤波器更新,使其能够快速收敛。在充分收敛后(远端信号处于非底噪状态的q帧后),通过确定回声信号在近端语音信号中的占比,来确定更新步长信息,在回声信号在近端语音信号中的占比较小时,减小更新步长,以抑制滤波器更新速度,以此策略作自适应滤波器的更新,使得在近端说话人语音信号与远端语音信号同时存在,且回声信号在近端语音信号中占比较小的场景下,通过抑制自适应滤波器的更新步长,以抵抗外界干扰信号对自适应滤波器带来的不稳定性,对提高自适应滤波器的鲁棒性。
[0169]
示例性装置
[0170]
需要说明的是,本公开实施例提供的回声消除方法,执行主体可以为回声消除装置,或者该回声消除装置中的用于执行加载回声消除方法的控制模块。本公开实施例中以回声消除装置执行加载回声消除方法为例,说明本公开实施例提供的回声消除方法。接下来,参考图6对本公开示例性实施方式的回声消除装置进行描述。
[0171]
图6示意性示出了根据本发明的一个实施例的回声消除装置的框图。
[0172]
参照图6所示,根据本发明的一个实施例的回声消除装置600,包括:
[0173]
获取模块610,可以用于获取通话场景中的近端语音信号和远端语音信号;所述近端语音信号包含回声信号。
[0174]
相关性确定模块620,可以用于确定所述近端语音信号与所述远端语音信号的相关性信息。
[0175]
步长调整模块630,可以用于基于所述相关性信息调整自适应滤波器的更新步长信息。
[0176]
更新模块640,可以用于基于调整后的更新步长信息更新所述自适应滤波器,通过更新后的所述自适应滤波器消除所述回声信号。
[0177]
在本公开的一些实施例中,基于前述方案,所述相关性确定模块620还用于:
[0178]
基于所述回声信号在所述近端语音信号中的占比,确定所述近端语音信号与所述远端语音信号的相关性信息。
[0179]
在本公开的一些实施例中,基于前述方案,所述相关性确定模块620包括:
[0180]
回声确定子模块,用于基于所述远端语音信号,确定所述回声信号。
[0181]
占比确定子模块,用于确定所述回声信号在所述近端语音信号中的占比。
[0182]
相关性确定子模块,用于响应于所述占比与第一预设阈值的比较结果,确定所述近端语音信号与所述远端语音信号的相关性信息。
[0183]
在本公开的一些实施例中,基于前述方案,所述回声确定子模块用于:
[0184]
对所述远端语音信号进行分段。
[0185]
对分段后的每段远端语音信号进行快速傅里叶变换,获得每段远端语音信号对应的频域向量。
[0186]
获取所述自适应滤波器的频域系数矩阵;所述自适应滤波器的阶数与所述快速傅里叶变换的阶数相同。
[0187]
基于所述频域向量和所述频域系数矩阵,确定所述回声信号。
[0188]
在本公开的一些实施例中,基于前述方案,所述相关性信息包含相关系数,所述步长调整模块630还用于:
[0189]
响应于所述相关系数与第二预设阈值的比较结果,确定所述自适应滤波器的更新步长信息。
[0190]
当所述相关系数不小于第二预设阈值时,基于预设更新步长确定所述自适应滤波器的更新步长信息。
[0191]
当所述相关系数小于第二预设阈值时,基于所述占比调整所述自适应滤波器的预设更新步长。
[0192]
在本公开的一些实施例中,基于前述方案,所述更新模块640还用于:
[0193]
以最小化所述回声信号与所述近端语音信号之间均方误差为目标函数,基于调整后的更新步长信息迭代更新所述自适应滤波器的频域系数矩阵,以消除所述回声信号。
[0194]
在本公开的一些实施例中,基于前述方案,所述装置600还包括:
[0195]
信号状态确定模块,用于确定所述远端语音信号的信号状态;所述信号状态包括激活状态和非激活状态。
[0196]
当所述信号状态确定模块确定所述远端语音信号处于非激活状态时,所述更新模块基于预设更新步长更新所述自适应滤波器。
[0197]
当所述信号状态确定模块确定所述远端语音信号处于激活状态时,所述更新模块基于调整后的更新步长信息更新所述自适应滤波器。
[0198]
在本公开的一些实施例中,基于前述方案,所述信号状态确定模块还用于:
[0199]
确定当前所述远端语音信号的累计帧数。
[0200]
响应于所述累计帧数与第三预设阈值的比较结果,确定所述远端语音信号的信号状态。
[0201]
示例性介质
[0202]
在介绍了本发明示例性实施方式的方法之后,接下来,对本发明示例性实施方式的介质进行说明。
[0203]
在一些可能的实施方式中,参考图7,本发明的各个方面还可以实现为一种存储介质700,其上存储有程序代码,当所述程序代码被设备的处理器执行时用于实现本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的回声消除方法中的步骤。
[0204]
具体地,所述设备的处理器执行所述程序代码时用于实现如下步骤:
[0205]
获取通话场景中的近端语音信号和远端语音信号;所述近端语音信号包含回声信号。
[0206]
确定所述近端语音信号与所述远端语音信号的相关性信息。
[0207]
基于所述相关性信息调整自适应滤波器的更新步长信息。
[0208]
基于调整后的更新步长信息更新所述自适应滤波器,通过更新后的所述自适应滤波器消除所述回声信号。
[0209]
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的回声消除方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述回声消除方法的技术方案的描述。
[0210]
需要说明的是:上述的存储介质可以是可读存储介质。可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0211]
可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、rf等,或者上述的任意合适的组合。
[0212]
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户电子设备上执行、部分在用户电子设备上部分在远程电子设备上执行、或者完全在远程电子设备或服务器上执行。在涉及远程电子设备的情形中,远程电子设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户电子设备,或者,可以连接到外部电子设备(例如利用因特网服务提供商来通过因特网连接)。
[0213]
示例性电子设备
[0214]
在介绍了本公开示例性实施方式的方法、介质和装置之后,接下来,介绍根据本公开的另一示例性实施方式的电子设备。
[0215]
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统
称为“电路”、“模块”或“系统”。
[0216]
下面参照图8来描述根据本发明的这种实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0217]
如图8所示,电子设备800以通用电子设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830。
[0218]
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
[0219]
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(rom)8203。
[0220]
存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0221]
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
[0222]
电子设备800也可以与一个或多个外部设备(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它电子设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过显示单元840和与显示单元840连接的输入/输出(i/o)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0223]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台电子设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
[0224]
上述为本实施例的一种电子设备800的示意性方案。需要说明的是,该电子设备800的技术方案与上述的回声消除方法的技术方案属于同一构思,电子设备的技术方案未详细描述的细节内容,均可以参见上述回声消除方法的技术方案的描述。
[0225]
应当注意,尽管在上文详细描述中提及了回声消除装置的若干模块或子模块,但是这种划分仅仅是示例性的,并非是强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或单元的特征和功能可以在一个模块或单元中具体化。反之,上文描述的一个模块或单元的特征和功能可以进一步划分为由多个模块或单元来具体化。
[0226]
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0227]
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所发明的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。