1.本技术涉及语音信号处理技术领域,特别是涉及一种回声消除方法、回声消除装置及计算机可读存储介质。
背景技术:2.在视频会议系统中,由于麦克风和扬声器的声学耦合,往往会产生影响语音交互的声学回声。传统的回声消除方法包括:首先通过有限长度的线性滤波器来估计声学环境中扬声器到麦克风的声学路径,从而对线性回声进行消除,之后再对残余回声施加一个增益值而去除剩下的非线性回声。传统方法在信回比低、非线性失真强的场景下,无法准确估计残余回声的能力,从而容易得到一个错误的增益值,最终导致视频会议系统无法抑制残余回声且近端语音失真。因此利用传统方法进行回声消除的方法不佳。
技术实现要素:3.本技术提供一种回声消除方法、回声消除装置及计算机可读存储介质,能够保证回声消除的效果。
4.本技术实施例第一方面提供了一种回声消除方法,所述方法包括:获取近端采集的时域接收信号以及远端发送的时域参考信号;分别将所述时域接收信号以及所述时域参考信号从时域转换到频域,得到频域接收信号以及频域参考信号;基于所述频域接收信号的至少部分特征以及所述频域参考信号的至少部分特征,得到包括实部掩膜和虚部掩膜的频域掩膜信号;基于所述频域掩膜信号,对所述频域接收信号进行声学掩蔽,得到频域目标信号;将所述频域目标信号从频域转换到时域,得到时域目标信号。
5.本技术实施例第二方面提供了一种回声消除装置,所述回声消除装置包括处理器、存储器以及通信电路,所述处理器分别耦接所述存储器、所述通信电路,所述存储器中存储有程序数据,所述处理器通过执行所述存储器内的所述程序数据以实现:获取近端采集的时域接收信号以及远端发送的时域参考信号;分别将所述时域接收信号以及所述时域参考信号从时域转换到频域,得到频域接收信号以及频域参考信号;基于所述频域接收信号的至少部分特征以及所述频域参考信号的至少部分特征,得到包括实部掩膜和虚部掩膜的频域掩膜信号;基于所述频域掩膜信号,对所述频域接收信号进行声学掩蔽,得到频域目标信号;将所述频域目标信号从频域转换到时域,得到时域目标信号。
6.本技术实施例第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序能够被处理器执行以实现:获取近端采集的时域接收信号以及远端发送的时域参考信号;分别将所述时域接收信号以及所述时域参考信号从时域转换到频域,得到频域接收信号以及频域参考信号;基于所述频域接收信号的至少部分特征以及所述频域参考信号的至少部分特征,得到包括实部掩膜和虚部掩膜的频域掩膜信号;基于所述频域掩膜信号,对所述频域接收信号进行声学掩蔽,得到频域目标信号;将所述频域目标信号从频域转换到时域,得到时域目标信号。
7.有益效果是:本技术首先基于频域接收信号和频域参考信号得到频域掩膜信号,然后利用频域掩膜信号对频域接收信号进行声学掩蔽,而频域掩膜信号包括实部掩膜和虚部掩膜,因此在得到频域目标信号的过程中,同时考虑了频域接收信号的相位信息和幅度信息,相比现有技术中只考虑信号的幅度信息(现有技术中将频域目标信号的相位谱设置为与频域接收信号的相位谱相同),本技术在低信回比、对讲设备非线性失真强的情况下,也能够很好地进行回声消除,从而保证回声消除的效果。
附图说明
8.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
9.图1是本技术回声消除方法一实施方式的流程示意图;
10.图2是本技术预先训练的神经网络的结构示意图;
11.图3是本技术回声消除方法另一实施方式的部分流程示意图;
12.图4是对应图3方法的简易框架图;
13.图5是本技术回声消除装置一实施方式的结构示意图;
14.图6是本技术回声消除装置另一实施方式的结构示意图;
15.图7是本技术计算机可读存储介质一实施方式的结构示意图。
具体实施方式
16.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
17.参阅图1,图1是本技术回声消除方法一实施方式的流程示意图,该方法包括:
18.s110:获取近端采集的时域接收信号以及远端发送的时域参考信号。
19.具体地,近端是需要对其接收的语音信号进行回声消除的终端,而远端是与近端进行通话的终端。例如,终端a与终端b在进行通话,当需要对终端a接收到的语音信号进行回声消除时,终端a即为近端,终端b即为远端;当需要对终端b接收到的语音信号进行回声消除时,终端b即为近端,终端a即为远端。
20.其中,时域接收信号是近端采集的语音信号,时域参考信号是远端向近端发送的语音信号。
21.其中,本技术回声消除方法的目的是:在近端采集到时域接收信号后,消除时域接收信号中远端发送的时域参考信号,避免远端接收到近端发送的语音信号后,远端的用户还能听到回声,也就是说,对于近端而言,远端发送的时域参考信号为回声信号。
22.s120:分别将时域接收信号以及时域参考信号从时域转换到频域,得到频域接收信号以及频域参考信号。
23.具体地,分别将时域接收信号以及时域参考信号进行时频转换,得到频域接收信
号以及频域参考信号。
24.在一应用场景中,分别对时域接收信号以及时域参考信号做傅里叶变换,得到频域接收信号以及频域参考信号。
25.在其他应用场景中,还可以利用例如拉普拉斯变换等其他变换分别将时域接收信号以及时域参考信号从时域转换到频域。
26.其中,在将信号从时域转换到频域时,既可以对时域接收信号以及时域参考信号做同一种变换,例如,对时域接收信号、时域参考信号都进行傅里叶变换,也可以做不同种的变换,例如,对时域接收信号进行傅里叶变换,对时域参考信号进行拉普拉斯变换。
27.总而言之,本技术对如何将时域接收信号以及时域参考信号从时域转换到频域的过程不做限制。
28.s130:基于频域接收信号的至少部分特征以及频域参考信号的至少部分特征,得到包括实部掩膜和虚部掩膜的频域掩膜信号。
29.具体地,对频域接收信号以及频域参考信号进行分析,确定频域接收信号在各个频点处是否包含回声信号(即频域参考信号),从而得到频域掩膜信号。其中,频域掩膜信号m可以用如下公式表示:
30.m=m
r
+jm
i
,其中,m
r
为实部掩膜,m
i
为虚部掩膜。
31.在一应用场景中,步骤s130得到频域掩膜信号的步骤具体包括:基于频域接收信号的实部、虚部中的至少一个以及频域参考信号的实部、虚部中的至少一个,得到频域掩膜信号。
32.具体地,将频域接收信号d用如下公式表示:
33.d=d
r
+jd
i
,其中,d
r
为频域接收信号d的实部,d
i
为频域接收信号d的虚部。
34.将频域参考信号x用如下公式表示:
35.x=x
r
+jx
i
,其中,x
r
为频域参考信号x的实部,x
i
为频域参考信号x的虚部。
36.其中,基于d
r
、d
i
中的至少一个,以及x
r
、x
i
中的至少一个,得到频域掩膜信号。例如,基于d
r
、d
i
,以及x
r
、x
i
,得到频域掩膜信号,或者,基于d
r
以及x
r
、x
i
,得到频域掩膜信号。
37.s140:基于频域掩膜信号,对频域接收信号进行声学掩蔽,得到频域目标信号。
38.具体地,利用频域掩膜信号对频域接收信号进行声学掩蔽,去除频域接收信号中的频域参考信号,从而得到频域目标信号。
39.其中,基于频域掩膜信号,对频域接收信号进行声学掩蔽的过程,可以用如下公式表示:
40.s=m
×
d=(m
r
+jm
i
)
×
(d
r
+jd
i
),其中,s为频域目标信号。
41.从上述内容可以看出,频域掩膜信号可以看作是一个掩膜滤波器,滤除频域接收信号中的频域参考信号。
42.s150:将频域目标信号从频域转换到时域,得到时域目标信号。
43.具体地,将频域目标信号从频域转换到时域,即能够得到时域目标信号。其中,时域目标信号即为对时域接收信号进行回声消除后的语音信号。
44.在一应用场景中,对频域目标信号进行逆傅里叶变换,得到时域目标信号;在另一应用场景中,对频域目标信号进行拉普拉斯逆变换得到时域目标信号。
45.在现有技术中,在进行回声消除时,只考虑信号的幅度信息,而直接将频域目标信
号的相位谱设置为与频域接收信号的相位谱相同,这种方法忽略了相位信息的估计对回声消除的优势,无法完全做到抑制回声。
46.而在本实施方式中,首先基于频域接收信号和频域参考信号得到频域掩膜信号,然后利用频域掩膜信号对频域接收信号进行声学掩蔽,而频域掩膜信号包括实部掩膜和虚部掩膜,因此在得到频域目标信号的过程中,同时考虑了频域接收信号的相位信息和幅度信息,相比现有技术中只考虑信号的幅度信息,本实施方式在低信回比、对讲设备非线性失真强的情况下,也能够很好地进行回声消除,从而保证回声消除的效果。
47.同时本实施方式为了降低回声消除的收敛时间,并减小回声消除的稳态误差,利用预先训练好的神经网络得到频域掩膜信号。
48.具体地,在一应用场景中,步骤s130包括:将频域接收信号的至少部分特征以及频域参考信号的至少部分特征送入预先训练好的神经网络进行分析,得到频域掩膜信号。
49.具体地,本实施方式中的神经网络为循环神经网络,其预先训练达到收敛,在接收到频域接收信号的至少部分特征以及频域参考信号的至少部分特征后,能够分析频域接收信号在各个频点处是否包含回声信号(即频域参考信号),从而得到频域掩膜信号。
50.其中,神经网络可以选用rnn、gru、lstm等,且神经网络的层数以及输出维度可以根据不同应用场景的复杂度进行设定,在此不做限定。
51.在另一应用场景中,步骤s130包括:将频域接收信号的至少部分特征以及频域参考信号的至少部分特征送入预先训练好的神经网络进行分析,得到实部掩膜和虚部掩膜;基于实部掩膜和虚部掩膜,构建频域掩膜信号。
52.具体地,与上述应用场景不同的是,此时预先训练好的神经网络在接收到频域接收信号以及频域参考信号的特征后,输出实部掩膜和虚部掩膜,最后基于实部掩膜和虚部掩膜,再构建频域掩膜信号。
53.其中,可以将频域接收信号的实部、虚部中的至少一个以及频域参考信号的实部、虚部中的至少一个输入至预先训练好的神经网络。
54.例如,将频域接收信号的实部、虚部和频域参考信号的实部、虚部输入至预先训练好的神经网络,然后神经网络输出实部掩膜和虚部掩膜,最后基于实部掩膜和虚部掩膜,再构建频域掩膜信号。
55.结合图2,在本实施方式中,预先训练好的神经网络包括并联的第一子神经网络10和第二子神经网络20,此时步骤s130具体包括:将频域接收信号的至少部分特征以及频域参考信号的至少部分特征均送入第一子神经网络10以及第二子神经网络20进行分析,分别得到实部掩膜和虚部掩膜。
56.具体地,将频域接收信号的至少部分特征以及频域参考信号的至少部分特征输入第一子神经网络10,得到实部掩膜;将频域接收信号的至少部分特征以及频域参考信号的至少部分特征输入第二子神经网络20,得到虚部掩膜。
57.例如,结合图2,将频域接收信号d的实部d
r
、频域接收信号d的虚部d
i
、频域参考信号x的实部x
r
以及频域参考信号x的虚部x
i
组成特征序列[x
r x
i d
r d
i
]分别输入第一子神经网络10以及第二子神经网络20,得到实部掩膜m
r
、虚部掩膜m
i
。
[0058]
也就是说,第一子神经网络10和第二子神经网络20的接收相同,输出不同。
[0059]
其中,第一子神经网络10、第二子神经网络20的结构可以相同,也可以不同,在此
不做限制。例如,在一应用场景中,输出实部掩膜的第一子神经网络10相比输出虚部掩膜的第二子神经网络20而言,其包括更少的网络层数以及更低的隐藏层维度。
[0060]
参阅图3和图4,下面介绍本实施方式中神经网络的训练方法,神经网络的训练方法包括:
[0061]
s201:获取样本时域接收信号、样本时域参考信号以及样本时域真实信号。
[0062]
具体地,样本时域真实信号为不包含回声信号的语音信号。
[0063]
s202:分别将样本时域接收信号以及样本时域参考信号从时域转换到频域,得到样本频域接收信号以及样本频域参考信号。
[0064]
其中,步骤s202与步骤s120类似,详见可参见相关内容,在此不再赘述。
[0065]
s203:将样本频域接收信号的至少部分特征以及样本频域参考信号的至少部分特征送入神经网络进行分析,以预测样本实部掩膜和样本虚部掩膜,并基于样本实部掩膜和样本虚部掩膜,构建样本频域掩膜信号。
[0066]
具体地,在构建好神经网络的基本框架后,将样本频域接收信号的至少部分特征以及样本频域参考信号的至少部分特征送入神经网络,神经网络基于样本频域接收信号的至少部分特征以及样本频域参考信号的至少部分特征,预测样本频域接收信号在各个频点处是否包含回声信号(即样本频域参考信号),从而输出样本实部掩膜和样本虚部掩膜,最后根据预测的样本实部掩膜和样本虚部掩膜,构建样本频域掩膜信号。
[0067]
其中,神经网络可以选用rnn、gru、lstm等网络,且神经网络的层数以及输出维度可以根据不同应用场景的复杂度进行设定,在此不做限定。
[0068]
s204:基于样本频域掩膜信号,对样本频域接收信号进行声学掩蔽,得到样本频域目标信号。
[0069]
具体地,步骤s204与上述步骤s140相类似,详见可参见相关内容,在此不再赘述。
[0070]
s205:将样本频域目标信号从频域转换到时域,得到样本时域目标信号。
[0071]
具体地,步骤s205与步骤s150相类似,详见可参见相关内容,在此不再赘述。
[0072]
s206:基于样本时域目标信号和样本时域真实信号,得到损失函数值。
[0073]
具体地,可以选择均绝对误差(l1loss)、均方误差(l2loss)等作为损失函数,然后将样本时域目标信号和样本时域真实信号代入损失函数,得到损失函数值。
[0074]
s207:基于损失函数值,更新神经网络的参数。
[0075]
具体地,基于损失函数值,更新神经网络的参数,以使神经网络逐渐达到收敛。
[0076]
s208:判断是否满足预设的停止训练的条件。
[0077]
若判断结果为是,则结束流程,若判断结果为否,则返回执行步骤s202。
[0078]
其中,预设的停止训练的条件包括:对神经网络的训练次数达到次数阈值,或者,前后两次计算出的损失函数值相等,或者,损失函数值低于阈值。
[0079]
通过本实施方式的训练方法,可以保证训练出的神经网络预测出的实部掩膜和虚部掩膜保留了物理连续性,避免实部掩膜和虚部掩膜不匹配的问题。
[0080]
在一应用场景中,如图2所示,当神经网络包括并联的第一子神经网络10以及第二子神经网络20时,步骤s203预测样本实部掩膜和样本虚部掩膜的步骤,包括:
[0081]
将样本频域接收信号的至少部分特征以及样本频域参考信号的至少部分特征均送入第一子神经网络10以及第二子神经网络20进行分析,分别预测样本实部掩膜和样本虚
部掩膜。
[0082]
具体地,第一子神经网络10在接收样本频域接收信号的至少部分特征以及样本频域参考信号的至少部分特征后,预测出样本实部掩膜;第二子神经网络20在接收样本频域接收信号的至少部分特征以及样本频域参考信号的至少部分特征后,预测出样本虚部掩膜。
[0083]
且此时步骤s207更新神经网络的参数的步骤,包括:基于损失函数值,同时更新第一子神经网络10以及第二子神经网络20的参数。
[0084]
具体地,此时基于损失函数值,同时更新第一子神经网络10和第二子神经网络20的参数,可以保证训练出的第一子神经网络10预测出的实部掩膜和第二子神经网络20预测出的虚部掩膜保留了物理连续性,避免实部掩膜和虚部掩膜不匹配的问题。
[0085]
参阅图5,图5是本技术回声消除装置一实施方式的结构示意图。该回声消除装置200包括处理器210、存储器220以及通信电路230,处理器210分别耦接存储器220、通信电路230,存储器220中存储有程序数据,处理器210通过执行存储器220内的程序数据以实现上述任一项实施方式方法中的步骤,其中详细的步骤可参见上述实施方式,在此不再赘述。
[0086]
其中,回声消除装置200可以是电脑、手机等任一项具有语音信号处理能力的装置,在此不做限制。
[0087]
参阅图6,图6是本技术回声消除装置另一实施方式的结构示意图。该回声消除装置300包括信号获取模块310、第一转换模块320、掩膜获取模块330、声学掩蔽模块340以及第二转换模块350。
[0088]
信号获取模块310用于获取近端采集的时域接收信号以及远端发送的时域参考信号。
[0089]
第一转换模块320与信号获取模块310连接,用于分别将时域接收信号以及时域参考信号从时域转换到频域,得到频域接收信号以及频域参考信号。
[0090]
掩膜获取模块330与第一转换模块320连接,用于基于频域接收信号的至少部分特征以及频域参考信号的至少部分特征,得到包括实部掩膜和虚部掩膜的频域掩膜信号。
[0091]
声学掩蔽模块340与掩膜获取模块330连接,用于基于频域掩膜信号,对频域接收信号进行声学掩蔽,得到频域目标信号。
[0092]
第二转换模块350与声学掩蔽模块340连接,用于将频域目标信号从频域转换到时域,得到时域目标信号。
[0093]
在一实施方式中,掩膜获取模块330具体用于基于频域接收信号的实部、虚部中的至少一个以及频域参考信号的实部、虚部中的至少一个,得到频域掩膜信号。
[0094]
在一实施方式中,掩膜获取模块330具体用于将频域接收信号的至少部分特征以及频域参考信号的至少部分特征送入预先训练好的神经网络进行分析,得到频域掩膜信号。
[0095]
在一实施方式中,掩膜获取模块330具体用于将频域接收信号的至少部分特征以及频域参考信号的至少部分特征送入预先训练好的神经网络进行分析,得到实部掩膜和虚部掩膜;基于实部掩膜和虚部掩膜,构建频域掩膜信号。
[0096]
在一实施方式中,神经网络包括并联的第一子神经网络和第二子神经网络,掩膜获取模块330具体用于将频域接收信号的至少部分特征以及频域参考信号的至少部分特征
均送入第一子神经网络以及第二子神经网络进行分析,分别得到实部掩膜和虚部掩膜。
[0097]
在一实施方式中,回声消除装置300还包括网络训练模块,用于在信号获取模块310获取近端采集的时域接收信号以及远端发送的时域参考信号之前,获取样本时域接收信号、样本时域参考信号以及样本时域真实信号;分别将样本时域接收信号以及样本时域参考信号从时域转换到频域,得到样本频域接收信号以及样本频域参考信号;将样本频域接收信号的至少部分特征以及样本频域参考信号的至少部分特征送入神经网络进行分析,以预测样本实部掩膜和样本虚部掩膜,并基于样本实部掩膜和样本虚部掩膜,构建样本频域掩膜信号;基于样本频域掩膜信号,对样本频域接收信号进行声学掩蔽,得到样本频域目标信号;将样本频域目标信号从频域转换到时域,得到样本时域目标信号;基于样本时域目标信号和样本时域真实信号,得到损失函数值;基于损失函数值,更新神经网络的参数;重复执行分别将样本时域接收信号以及样本时域参考信号从时域转换到频域,得到样本频域接收信号以及样本频域参考信号的步骤至基于损失函数值,更新神经网络的参数的步骤,直至满足预设的停止训练的条件。
[0098]
在一实施方式中,神经网络包括并联的第一子神经网络以及第二子神经网络;网络训练模块具体用于将样本频域接收信号的至少部分特征以及样本频域参考信号的至少部分特征均送入第一子神经网络以及第二子神经网络进行分析,分别预测样本实部掩膜和样本虚部掩膜;以及,基于损失函数值,同时更新第一子神经网络以及第二子神经网路的参数。
[0099]
在一实施方式中,第一转换模块320具体用于分别对时域接收信号以及时域参考信号进行傅里叶变换,得到频域接收信号以及频域参考信号;和/或,第二转换模块350具体用于对频域目标信号进行逆傅里叶变换,得到时域目标信号。
[0100]
其中,回声消除装置300可以是电脑、手机等任一项具有语音信号处理能力的装置,在此不做限制。
[0101]
参阅图7,图7是本技术计算机可读存储介质一实施方式的结构示意图。该计算机可读存储介质400存储有计算机程序410,计算机程序410能够被处理器执行以实现上述任一项方法中的步骤。
[0102]
其中,计算机可读存储介质400具体可以为u盘、移动硬盘、只读存储器(rom,read
‑
only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等可以存储计算机程序410的装置,或者也可以为存储有该计算机程序410的服务器,该服务器可将存储的计算机程序410发送给其他设备运行,或者也可以自运行该存储的计算机程序410。
[0103]
以上所述仅为本技术的实施方式,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。