回声消除方法、装置及存储介质与流程
本申请涉及声学回声消除技术,尤其涉及一种回声消除方法、装置及存储介质。
背景技术:
声学回声是由远端信号经过近端的扬声器播放后被近端的传声器采集而得的信号。近端的传声器采集到信号中包含了声学回声和近端语音,如果不进行回声消除,那么远端房间中的说话人将会听到自己的回声,严重影响语音交互。因此声学回声消除是语音交互场景中不可或缺的模块。
传统的声学回声消除通常会采用双讲检测模块或者在双讲阶段采用特殊的处理,比如双滤波器等。这类算法通过估计回声,然后将估计得到的回声从近端混合信号中去除。
然而这种方法无法有效去除扬声器产生的非线性失真,因此需要采用后处理方法来消除残余的非线性回声。常用的方法是通过估计信号回声比(signaltoechoratio,ser)来去除残余回声。然而,传统的残余回声消除系统很难准确估计残余回声,处理时对近端语音损失很大。
技术实现要素:
为解决现有技术中存在的问题,本申请提供一种回声消除方法、装置及存储介质。
第一方面,本申请实施例提供一种回声消除方法,包括:
获取待处理数据,所述待处理数据包括待处理远端信号和待处理混合信号,所述待处理混合信号是近端信号与回声信号混合得到的;
根据所述待处理远端信号、所述待处理混合信号和预设神经网络模型,获得估计掩蔽值,其中,所述预设神经网络模型通过参考远端信号、参考混合信号和目标掩蔽值训练得到;
根据所述估计掩蔽值和所述待处理混合信号,获得估计近端信号。
在一种可能的实现方式中,所述根据所述待处理远端信号、所述待处理混合信号和预设神经网络模型,获得估计掩蔽值,包括:
对所述待处理混合信号进行线性回声消除处理,获得处理后的混合信号;
将所述待处理远端信号和所述处理后的混合信号,输入所述预设神经网络模型;
获取所述预设神经网络模型输出的所述估计掩蔽值。
在一种可能的实现方式中,在所述将所述待处理远端信号和所述处理后的混合信号,输入所述预设神经网络模型之前,还包括:
对所述待处理远端信号进行延时抖动消除处理,获得对齐的远端信号;
所述将所述待处理远端信号和所述处理后的混合信号,输入所述预设神经网络模型,包括:
将所述对齐的远端信号和所述处理后的混合信号,输入所述预设神经网络模型。
在一种可能的实现方式中,在所述将所述对齐的远端信号和所述处理后的混合信号,输入所述预设神经网络模型之前,还包括:
通过短时傅里叶变换,计算所述对齐的远端信号的频谱和所述处理后的混合信号的频谱;
所述将所述对齐的远端信号和所述处理后的混合信号,输入所述预设神经网络模型,包括:
将所述对齐的远端信号的频谱和所述处理后的混合信号的频谱,输入所述预设神经网络模型,所述预设神经网络模型通过参考远端信号的频谱、参考混合信号的频谱和所述目标掩蔽值训练得到,所述目标掩蔽值根据参考混合信号的频谱和参考近端信号的频谱确定。
在一种可能的实现方式中,在所述根据所述估计掩蔽值和所述待处理混合信号,获得估计近端信号之前,还包括:
根据所述待处理数据对应的双讲状态,对所述估计掩蔽值进行修正,其中,所述双讲状态包括近端单讲、远端单讲,以及近端与远端双讲;
所述根据所述估计掩蔽值和所述待处理混合信号,获得估计近端信号,包括:
根据修正后的估计掩蔽值和所述待处理混合信号,获得所述估计近端信号。
在一种可能的实现方式中,所述根据所述待处理数据对应的双讲状态,对所述估计掩蔽值进行修正,包括:
若所述双讲状态为所述近端单讲,则确定所述估计掩蔽值为第一预设值;
若所述双讲状态为所述远端单讲,则确定所述估计掩蔽值为第二预设值,其中,所述第二预设值与所述第一预设值不同。
在一种可能的实现方式中,所述对所述待处理混合信号进行线性回声消除处理,包括:
通过自适应线性滤波器,对所述待处理混合信号进行线性回声消除处理,所述自适应线性滤波器为最小均方自适应滤波器、分块延时频域自适应滤波器或递归最小均方滤波器。
在一种可能的实现方式中,所述预设神经网络模型的结构采用轻量网络的结构,所述轻量网络为mobilenet、mobilenetv2、mobilenetv3、shufflenet或ghostnet。
在一种可能的实现方式中,所述目标掩蔽值为相位敏感掩蔽值、理想幅度掩蔽值、理想比值掩蔽值、维纳滤波掩蔽值或理想二元掩蔽值。
在一种可能的实现方式中,所述预设神经网络模型通过连续的至少一个参考远端信号、参考混合信号,以及所述目标掩蔽值训练得到。
在一种可能的实现方式中,所述预设神经网络模型训练采用的所述参考远端信号和所述参考混合信号,通过以下方式获得:
获取至少一个设备实录的远端信号,回声信号和近端信号,以及多种预设环境下所述至少一个设备仿真的远端信号,回声信号和近端信号,其中,所述至少一个设备为不同类型的设备;
将获取的回声信号和近端信号进行混合得到混合信号;
根据获取的远端信号和得到的混合信号,获得所述预设神经网络模型训练采用的所述参考远端信号和所述参考混合信号。
第二方面,本申请实施例提供一种回声消除装置,包括:
数据获取模块,用于获取待处理数据,所述待处理数据包括待处理远端信号和待处理混合信号,所述待处理混合信号是近端信号与回声信号混合得到的;
信号处理模块,用于根据所述待处理远端信号、所述待处理混合信号和预设神经网络模型,获得估计掩蔽值,其中,所述预设神经网络模型通过参考远端信号、参考混合信号和目标掩蔽值训练得到;
信号获得模块,用于根据所述估计掩蔽值和所述待处理混合信号,获得估计近端信号。
在一种可能的实现方式中,所述信号处理模块,具体用于:
对所述待处理混合信号进行线性回声消除处理,获得处理后的混合信号;
将所述待处理远端信号和所述处理后的混合信号,输入所述预设神经网络模型;
获取所述预设神经网络模型输出的所述估计掩蔽值。
在一种可能的实现方式中,所述信号处理模块,还用于:
对所述待处理远端信号进行延时抖动消除处理,获得对齐的远端信号;
所述信号处理模块,具体用于:
将所述对齐的远端信号和所述处理后的混合信号,输入所述预设神经网络模型。
在一种可能的实现方式中,所述信号处理模块,还用于:
通过短时傅里叶变换,计算所述对齐的远端信号的频谱和所述处理后的混合信号的频谱;
所述信号处理模块,具体用于:
将所述对齐的远端信号的频谱和所述处理后的混合信号的频谱,输入所述预设神经网络模型,所述预设神经网络模型通过参考远端信号的频谱、参考混合信号的频谱和所述目标掩蔽值训练得到,所述目标掩蔽值根据参考混合信号的频谱和参考近端信号的频谱确定。
在一种可能的实现方式中,所述信号获得模块,还用于:
根据所述待处理数据对应的双讲状态,对所述估计掩蔽值进行修正,其中,所述双讲状态包括近端单讲、远端单讲,以及近端与远端双讲;
所述信号获得模块,具体用于:
根据修正后的估计掩蔽值和所述待处理混合信号,获得所述估计近端信号。
在一种可能的实现方式中,所述信号获得模块,具体用于:
若所述双讲状态为所述近端单讲,则确定所述估计掩蔽值为第一预设值;
若所述双讲状态为所述远端单讲,则确定所述估计掩蔽值为第二预设值,其中,所述第二预设值与所述第一预设值不同。
在一种可能的实现方式中,所述信号处理模块,具体用于:
通过自适应线性滤波器,对所述待处理混合信号进行线性回声消除处理,所述自适应线性滤波器为最小均方自适应滤波器、分块延时频域自适应滤波器或递归最小均方滤波器。
在一种可能的实现方式中,所述预设神经网络模型的结构采用轻量网络的结构,所述轻量网络为mobilenet、mobilenetv2、mobilenetv3、shufflenet或ghostnet。
在一种可能的实现方式中,所述目标掩蔽值为相位敏感掩蔽值、理想幅度掩蔽值、理想比值掩蔽值、维纳滤波掩蔽值或理想二元掩蔽值。
在一种可能的实现方式中,所述预设神经网络模型通过连续的至少一个参考远端信号、参考混合信号,以及所述目标掩蔽值训练得到。
在一种可能的实现方式中,所述预设神经网络模型训练采用的所述参考远端信号和所述参考混合信号,通过以下方式获得:
获取至少一个设备实录的远端信号,回声信号和近端信号,以及多种预设环境下所述至少一个设备仿真的远端信号,回声信号和近端信号,其中,所述至少一个设备为不同类型的设备;
将获取的回声信号和近端信号进行混合得到混合信号;
根据获取的远端信号和得到的混合信号,获得所述预设神经网络模型训练采用的所述参考远端信号和所述参考混合信号。
第三方面,本申请实施例提供一种回声消除设备,包括:
处理器;
存储器;以及
计算机程序;
其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如第一方面所述的方法的指令。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得服务器执行第一方面所述的方法。
本申请实施例提供的回声消除方法、装置及存储介质,该方法通过待处理数据中待处理远端信号和待处理混合信号,以及预设神经网络模型,获得估计掩蔽值,其中,该预设神经网络模型通过参考远端信号、参考混合信号和目标掩蔽值训练得到,进而,根据上述估计掩蔽值和上述待处理混合信号,获得估计近端信号,即本申请实施例通过卷积神经网络进行回声消除,不仅能够完全抑制声学回声,而且能够尽可能减小近端语音的失真,提高语音通话和交互的质量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的回声消除系统架构示意图;
图2为本申请实施例提供的一种回声消除方法的流程示意图;
图3为本申请实施例提供的另一种回声消除方法的流程示意图;
图4为本申请实施例提供的一种滤波器示意图;
图5为本申请实施例提供的再一种回声消除方法的流程示意图;
图6为本申请实施例提供的又一种回声消除方法的流程示意图;
图7为本申请实施例提供的一种神经网络模型示意图;
图8为本申请实施例提供的又一种回声消除方法的流程示意图;
图9为本申请实施例提供的一种对信号进行回声消除的前后对比图;
图10为本申请实施例提供的一种回声消除装置的结构示意图;
图11为本申请提供的一种回声消除设备的基本硬件架构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”及“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例所涉及的回声消除是指通过轻量卷积神经网络进行回声消除,从而,一方面能够完全抑制声学回声,一方面能够尽可能减小近端语音的失真,提高语音通话和交互的质量。
本申请实施例提供的回声消除方法及装置可应用在语音交互场景中,其中,该语音交互场景可以为用户接听电话、语音通话等,本申请实施例对此不做特别限制。
可选地,本申请实施例提供的回声消除方法及装置可以应用于如图1所示的应用场景中。图1只是以示例的方式描述了本申请实施例提供的回声消除方法的一种可能的应用场景,本申请实施例提供的回声消除方法的应用场景不限于图1所示的应用场景。
图1为回声消除系统架构示意图。在图1中,以用户接听电话为例,例如,用户1通过第一终端设备拨打电话,用户2通过第二终端设备接听电话。上述架构可以包括消除装置11、第一终端设备12和第二终端设备13。
可以理解的是,本申请实施例示意的结构并不构成对回声消除架构的具体限定。在本申请另一些可行的实施方式中,上述架构可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置,具体可根据实际应用场景确定,在此不做限制。图1所示的部件可以以硬件,软件,或软件与硬件的组合实现。
在具体实现过程中,本申请实施例中用户1与用户2通话,即用户1通过第一终端设备12向用户2拨打电话,用户2通过第二终端设备13接听用户1的电话。用户2的第二终端设备接收的信号包含声学回声和近端语音,需要进行回声消除,如果不进行回声消除,用户1将会听到自己的回声,严重影响语音交互。在上述应用场景中,消除装置11可以通过卷积神经网络进行回声消除,即通过卷积神经网络消除用户2的第二终端设备接收的声学回声,不仅能够完全抑制声学回声,避免用户1听到自己的回声,而且能够尽可能减小用户2说话声音的失真,提高语音通话和交互的质量。
在本实施例中,上述第一终端设备和第二终端设备可以为手持设备、车载设备、可穿戴设备、计算设备,以及各种形式的用户设备(userequipment,ue)等具有通话功能的设备。
另外,本申请实施例描述的系统架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
下面结合附图详细介绍本申请实施例提供的回声消除方法。该方法的执行主体可以为图1中的消除装置11。消除装置11的工作流程主要包括获取阶段和处理阶段。在获取阶段,消除装置11获取待处理数据,该待处理数据包括待处理远端信号和待处理混合信号。在处理阶段,消除装置11根据上述待处理远端信号、待处理混合信号和预设神经网络模型,获得估计掩蔽值,该预设神经网络模型通过参考远端信号、参考混合信号和目标掩蔽值训练得到,进而,根据该估计掩蔽值和上述待处理混合信号,获得估计近端信号,从而完全抑制声学回声,并尽可能减小近端语音的失真,提高语音通话和交互的质量。
下面以几个实施例为例对本申请的技术方案进行描述,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本申请实施例提供的一种回声消除方法的流程示意图,本实施例的执行主体可以为图1中的消除装置11,具体执行主体可以根据实际应用场景确定,本申请实施例对此不做特别限制。如图2所示,本申请实施例提供的回声消除方法可以包括如下步骤:
s201:获取待处理数据,该待处理数据包括待处理远端信号和待处理混合信号,该待处理混合信号是近端信号与回声信号混合得到的。
其中,上述待处理数据为需要进行回声消除的数据,具体可以根据实际情况确定,本申请实施例对此不做特别限制。
上述待处理数据可以包括待处理远端信号farend和待处理混合信号mic_mix,其中,待处理混合信号mic_mix是回声信号和近端信号混合而成,也可以理解是近端传声器接收到的信号,例如图1中第二终端设备13的传声器接收到的声音。其中,上述近端信号可以理解为真实近端信号。
s202:根据上述待处理远端信号、上述待处理混合信号和预设神经网络模型,获得估计掩蔽值,其中,该预设神经网络模型通过参考远端信号、参考混合信号和目标掩蔽值训练得到。
这里,预设神经网络模型可以输入参考远端信号和参考混合信号,输出目标掩蔽值。可选地,该目标掩蔽值可以为相位敏感掩蔽值、理想幅度掩蔽值、理想比值掩蔽值、维纳滤波掩蔽值或理想二元掩蔽值等,本申请实施例对比不做特别限制。
在本申请实施例中,上述预设神经网络模型的结构可以采用轻量网络的结构,其中,该轻量网络为mobilenet、mobilenetv2、mobilenetv3、shufflenet或ghostnet等。示例性的,以轻量网络为mobilenet为例,上述预设神经网络模型的结构可以借鉴轻量网络mobilenet(该网络将卷积操作进行简化和加速)的bottleneck结构,先采用纺锥形bottleneck结构对通道数进行扩展,防止特征被淹没,然后利用线性bottleneck结构对通道数进行压缩等等。即本申请实施例采用轻量网络的网络结构,参数量少,运算速度快,从而满足手机、电脑或者其他硬件设备的实时要求。
另外,为了提高上述预设神经网络模型的泛化能力,本申请实施例可以按照一定的比例将多种设备实录的数据,以及不同环境不同设备的仿真数据作为训练集。
示例性的,上述预设神经网络模型训练采用的上述参考远端信号和参考混合信号,可以通过以下方式获得:
获取至少一个设备实录的远端信号,回声信号和近端信号,以及多种预设环境下至少一个设备仿真的远端信号,回声信号和近端信号,其中,上述至少一个设备为不同类型的设备;
将获取的回声信号和近端信号进行混合得到混合信号;
根据获取的远端信号和得到的混合信号,获得上述预设神经网络模型训练采用的参考远端信号和参考混合信号。
其中,上述至少一个设备可以根据实际情况选择,例如不同品牌的手机,笔记本电脑等。同理,上述多种预设环境可以根据实际情况选择,例如不同混响时间不同录音设备的房间传递函数,不同的非线性失真仿真函数等。
另外,当在某一类设备上有更高的要求时,本申请实施例可以采用该类设备数据对上述神经网络模型进行微调,即本申请实施例中上述神经网络模型泛化能力较强,不限于某一类设备,还可针对设备进行微调,进一步提升回声抑制性能。
s203:根据上述估计掩蔽值和上述待处理混合信号,获得估计近端信号。
本申请实施例,通过待处理数据中待处理远端信号和待处理混合信号,以及预设神经网络模型,获得估计掩蔽值,其中,该预设神经网络模型通过参考远端信号、参考混合信号和目标掩蔽值训练得到,进而,根据该估计掩蔽值和上述待处理混合信号,获得估计近端信号,即本申请实施例通过卷积神经网络进行回声消除,不仅能够完全抑制声学回声,而且能够尽可能减小近端语音的失真,提高语音通话和交互的质量。
另外,本申请实施例在根据上述待处理远端信号、待处理混合信号和预设神经网络模型,获得估计掩蔽值时,还考虑对上述待处理混合信号进行线性回声消除处理,对上述待处理远端信号进行延时抖动消除处理。图3为本申请实施例提出的另一种回声消除方法的流程示意图。如图3所示,该方法包括:
s301:获取待处理数据,该待处理数据包括待处理远端信号和待处理混合信号,该待处理混合信号是近端信号与回声信号混合得到的。
其中,步骤s301与上述步骤s201的实现方式相同,此处不再赘述。
s302:对上述待处理混合信号进行线性回声消除处理,获得上述处理后的混合信号。
s303:对上述待处理远端信号进行延时抖动消除处理,获得对齐的远端信号。
这里,远端信号与回声信号之间存在延时抖动,混合信号中存在线性回声,因此需要对远端信号进行延时抖动消除处理,对混合信号进行线性回声消除处理,减小远端信号与回声信号之间的延时抖动,减弱混合信号中的线性回声。
本申请实施例通过自适应线性滤波器,对上述待处理混合信号进行线性回声消除处理,通过延时抖动消除模块,对上述待处理远端信号进行延时抖动消除处理,其中,上述自适应线性滤波器为最小均方自适应滤波器、分块延时频域自适应滤波器或递归最小均方滤波器。本申请实施例通过延时抖动消除模块,对所述待处理远端信号进行延时抖动消除处理,上述延时抖动消除模块可以与上述自适应线性滤波器设置在一起,具体可以根据实际情况确定,本申请实施例对此不做特别限制。
示例性的,如图4所示,将混合信号mic_mix输入到自适应线性滤波器中,将远端信号farend输入到延时抖动消除模块,延时抖动消除模块可以与上述自适应线性滤波器设置在一个模块中,从而,得到估计信号回声比(signaltoechoratio,ser)提高的处理后的混合信号af_out和对齐的远端信号aligned_farend。另外,上述待处理数据还包括近端信号nearend,该近端信号也可以经过上述延时抖动消除模块得到对齐的近端信号aligned_nearend。其中,上述ser为回声信号和近端信号的比值。
可选的,上述步骤s302与s303的顺序可以转换,本申请不作具体限定。
s304:将上述对齐的远端信号和上述处理后的混合信号,输入预设神经网络模型。
其中,步骤s304与上述步骤s202的实现方式类似,参照上述步骤s202的描述,此处不再赘述。
另外,在本申请实施例中,将上述对齐的远端信号aligned_farend和上述处理后的混合信号af_out作为上述神经网络模型的输入特征。在一些应用场景中(比如voip环境)可能存在比较大的延时抖动,虽然上述延时抖动消除模块将远端信号进行了一定程度的对齐,但是也不一定能将aligned_farend与af_out完全对齐,因此本申请实施例不仅将当前帧的aligned_farend和af_out信号作为输入,而且还考虑将当前帧与过去的连续的至少一个帧频谱拼成一组特征,帧数覆盖一定的延时长度,让上述神经网络去学习对应的延时信息,即上述预设神经网络模型可以通过连续的至少一个参考远端信号、参考混合信号,以及上述目标掩蔽值训练得到,进一步地,上述预设神经网络模型可以通过连续的至少一个对齐的参考远端信号、回声消除处理后的参考混合信号,以及上述目标掩蔽值训练得到,从而解决一些应用场景中可能存在的远端信号和混合信号的延时无法对齐的问题,将信号进行一定程度的对齐。
本申请实施例采用上述滤波器、延时抖动消除模块和多帧特征组合提高网络对延时抖动的鲁棒性,适合应用。
其中,上述预设神经网络模型通过参考远端信号、参考混合信号和目标掩蔽值训练得到,这里,上述参考远端信号可以是进行延时抖动消除处理后的参考远端信号,上述参考混合信号可以是进行线性回声消除处理后的参考混合信号。
s305:获取上述预设神经网络模型输出的估计掩蔽值,并根据该估计掩蔽值和上述处理后的混合信号,获得估计近端信号。
本申请实施例对上述待处理混合信号进行线性回声消除处理,对上述待处理远端信号进行延时抖动消除处理,提高网络对延时抖动的鲁棒性,而且本申请实施例通过将对齐的远端信号和处理后的混合信号,输入预设神经网络模型,其中,该预设神经网络模型通过对齐的参考远端信号、回声消除处理后的参考混合信号和目标掩蔽值训练得到,进而,获取上述预设神经网络模型输出的估计掩蔽值,并根据该估计掩蔽值和上述处理后的混合信号,获得估计近端信号,即通过卷积神经网络进行回声消除,不仅能够完全抑制声学回声,而且能够尽可能减小近端语音的失真,提高语音通话和交互的质量。
另外,本申请实施例在将上述对齐的远端信号和处理后的混合信号,输入预设神经网络模型之前,还考虑计算上述对齐的远端信号的频谱和处理后的混合信号的频谱。图5为本申请实施例提出的再一种回声消除方法的流程示意图。如图5所示,该方法包括:
s501:获取待处理数据,该待处理数据包括待处理远端信号和待处理混合信号,该待处理混合信号是近端信号与回声信号混合得到的。
s502:对上述待处理混合信号进行线性回声消除处理,获得处理后的混合信号。
s503:对上述待处理远端信号进行延时抖动消除处理,获得对齐的远端信号。
其中,步骤s501-s503与上述步骤s301-s303的实现方式相同,此处不再赘述。
s504:通过短时傅里叶变换,计算所述对齐的远端信号的频谱和所述处理后的混合信号的频谱。
这里,通过短时傅里叶变换计算上述对齐的远端信号的频谱和处理后的混合信号的频谱,减小特征输入维度,加快后续神经网络模型的处理速度。示例性的,对于采样率为16000hz的语音,上述短时傅里叶变换中的快速傅里叶变换长度为128点,帧移64点,频点数位65,不考虑直流信息,只关注64个频点的信息即可。
s505:将上述对齐的远端信号的频谱和处理后的混合信号的频谱,输入预设神经网络模型,该预设神经网络模型通过参考远端信号的频谱、参考混合信号的频谱和目标掩蔽值训练得到,该目标掩蔽值根据参考混合信号的频谱和参考近端信号的频谱确定。
其中,上述参考远端信号可以是进行延时抖动消除处理后的参考远端信号,上述参考混合信号可以是进行线性回声消除处理后的参考混合信号。
这里,上述掩蔽值可以为相位敏感掩蔽值、理想幅度掩蔽值、理想比值掩蔽值、维纳滤波掩蔽值或理想二元掩蔽值等。
以上述掩蔽值为相位敏感掩蔽值为例,该相位敏感掩蔽值可以根据上述对齐的近端信号aligned_nearend和上述处理后的混合信号af_out的频谱逐频点计算得到,示例性的,根据下述表达式计算相位敏感掩蔽值psf:
s506:获取上述预设神经网络模型输出的估计掩蔽值,并根据该估计掩蔽值和上述处理后的混合信号的频谱,获得估计近端信号。
当上述掩蔽值为相位敏感掩蔽值时,可以将上述相位敏感掩蔽值和上述处理后的混合信号的频谱相乘,根据相乘结果获得估计近端信号的频谱,再通过相应处理,例如逆短时傅里叶变换得到时域的估计近端信号。
本申请实施例,通过短时傅里叶变换计算上述对齐的远端信号和处理后的混合信号的频谱,减小特征输入维度,加快后续神经网络模型的处理速度,而且,本申请实施例通过将上述对齐的远端信号和处理后的混合信号的频谱,输入预设神经网络模型,其中,该预设神经网络模型通过对齐的参考远端信号的频谱、回声消除处理后的参考混合信号的频谱和目标掩蔽值训练得到,该目标掩蔽值根据回声消除处理后的参考混合信号的频谱和近端信号的频谱确定,进而,获取上述预设神经网络模型输出的估计掩蔽值,并根据该估计掩蔽值和上述处理后的混合信号的频谱,获得估计近端信号,即通过卷积神经网络进行回声消除,不仅能够完全抑制声学回声,而且能够尽可能减小近端语音的失真,提高语音通话和交互的质量。
另外,本申请实施例在上述根据上述估计掩蔽值和待处理混合信号的频谱,获得估计近端信号之前,还考虑根据上述待处理数据对应的双讲状态,对上述估计掩蔽值进行修正。图6为本申请实施例提出的又一种回声消除方法的流程示意图。如图6所示,该方法包括:
s601:获取待处理数据,该待处理数据包括待处理远端信号和待处理混合信号,该待处理混合信号是近端信号与回声信号混合得到的。
s602:根据上述待处理远端信号、待处理混合信号和预设神经网络模型,获得估计掩蔽值,其中,该预设神经网络模型通过参考远端信号、参考混合信号和目标掩蔽值训练得到。
s603:根据上述待处理数据对应的双讲状态,对上述估计掩蔽值进行修正,其中,上述双讲状态包括近端单讲、远端单讲,以及近端与远端双讲。
这里,在利用神经网络学习掩蔽值(mask)的同时,本申请实施例还提出同时学习双讲状态检测(dtd),共有三种状态,分别为近端单讲,远端单讲和双讲。
示例性的,上述神经网络模型如图7所示,dtd学习和mask学习共享四层卷积层,上述神经网络结构可以借鉴轻量网络,例如mobilenet的bottleneck结构,先采用纺锥形bottleneck结构对通道数进行扩展,防止特征被淹没,然后利用线性bottleneck结构对通道数进行压缩。dtd和mask再分别各接一层bottleneck和dnn网络作为输出层,分别得到分类和回归的输出。
得到网络学习的dtd和mask之后,可以采用dtd对mask进行修正。可选地,若上述双讲状态为近端单讲,则确定上述估计掩蔽值为第一预设值;若上述双讲状态为远端单讲,则确定上述估计掩蔽值为第二预设值,其中,上述第二预设值与上述第一预设值不同。
示例性的,当dtd的置信度较大时,若dtd为近端单讲,则将mask置为1,若dtd为远端单讲,则将mask置为0,提高近端单讲和远端单讲的处理结果。
这里,可以将上述待处理远端信号和待处理混合信号,输入预设神经网络模型,获取预设神经网络模型输出的估计掩蔽值。其中,在将上述待处理远端信号和待处理混合信号,输入预设神经网络模型之前,还可以分别将上述待处理远端信号和待处理混合信号,进行延时抖动消除处理和线性回声消除处理,获得对齐的远端信号和上述处理后的混合信号,进而,通过短时傅里叶变换,计算上述对齐的远端信号的频谱和处理后的混合信号的频谱,将上述对齐的远端信号的频谱和上述处理后的混合信号的频谱,输入预设神经网络模型,如图7所示,从而,获取上述预设神经网络模型输出的估计掩蔽值,并根据上述待处理数据对应的双讲状态,对上述估计掩蔽值进行修正。
其中,上述近端单讲可以理解为只有近端讲话,远端单讲可以理解为只有远端讲话,近端与远端双讲可以理解为近端和远端都讲话。例如以图1中用户1通过第一终端设备拨打电话,用户2通过第二终端设备接听电话,用户1为远端,用户2为近端,上述近端单讲可以理解为只有用户2讲话,远端单讲可以理解为只有用户1讲话,近端与远端双讲可以理解为用户2和用户1都讲话。
这里,本申请实施例采用双讲状态对上述估计掩蔽值进行修正,从而,提高神经网络模型输出结果的准确度,在多种情况下都能最大程度去除回声,保留近端语音。
另外,除上述采用双讲状态对上述掩蔽值进行修正外,还可以采用有无回声状态,或者有无近端信号状态等来修正上述掩蔽值,具体可以根据实际情况确定,本申请实施例对此不做特别限制。
除上述外,本申请实施例还可以对dtd和mask进行平滑等后处理提高语音听感度。
s604:根据修正后的估计掩蔽值和上述待处理混合信号,获得估计近端信号。
其中,步骤s604与上述步骤s203的实现方式相同,此处不再赘述。
本申请实施例,采用双讲状态对上述估计掩蔽值进行修正,从而,提高神经网络模型输出结果的准确度,而且本申请实施例通过将待处理数据中待处理远端信号和待处理混合信号,输入预设神经网络模型,其中,该预设神经网络模型通过参考远端信号、参考混合信号和目标掩蔽值训练得到,进而,获取上述预设神经网络模型输出的估计掩蔽值,并根据该估计掩蔽值和上述待处理混合信号,获得估计近端信号,即通过卷积神经网络进行回声消除,不仅能够完全抑制声学回声,而且能够尽可能减小近端语音的失真,提高语音通话和交互的质量。
另外,本申请实施例在根据上述待处理远端信号、待处理混合信号和预设神经网络模型,获得估计掩蔽值时,不仅考虑对上述待处理远端信号和待处理混合信号进行延时抖动消除处理和线性回声消除处理,还计算待处理远端信号的频谱和待处理混合信号的频谱,在上述根据上述估计掩蔽值和待处理混合信号,获得近端信号之前,还考虑根据上述待处理数据对应的双讲状态,对上述估计掩蔽值进行修正。图8为本申请实施例提出的又一种回声消除方法的流程示意图。如图8所示,该方法包括:
s801:获取待处理数据,该待处理数据包括待处理远端信号和待处理混合信号,该待处理混合信号是近端信号与回声信号混合得到的。
s802:对上述待处理混合信号进行线性回声消除处理,获得处理后的混合信号。
s803:对上述待处理远端信号进行延时抖动消除处理,获得对齐的远端信号。
这里,通过自适应线性滤波器,对上述待处理混合信号进行线性回声消除处理,通过延时抖动消除模块,对上述待处理远端信号进行延时抖动消除处理,其中,上述自适应线性滤波器为最小均方自适应滤波器、分块延时频域自适应滤波器或递归最小均方滤波器。
s804:通过短时傅里叶变换,计算上述对齐的远端信号的频谱和处理后的混合信号的频谱。
这里,通过短时傅里叶变换计算上述远端信号和混合信号的频谱,减小特征输入维度,加快后续神经网络模型的处理速度。
s805:将上述对齐的远端信号的频谱和处理后的混合信号的频谱,输入预设神经网络模型,其中,该预设神经网络模型通过参考远端信号的频谱、参考混合信号的频谱和目标掩蔽值训练得到,该目标掩蔽值根据参考混合信号的频谱和参考近端信号的频谱确定。
其中,上述参考远端信号可以是进行延时抖动消除处理后的参考远端信号,上述参考混合信号可以是进行线性回声消除处理后的参考混合信号。
可选地,上述掩蔽值可以为相位敏感掩蔽值、理想幅度掩蔽值、理想比值掩蔽值、维纳滤波掩蔽值或理想二元掩蔽值等,本申请实施例对比不做特别限制。
在本申请实施例中,将上述对齐的远端信号aligned_farend的频谱和上述处理后的混合信号af_out的频谱作为上述神经网络模型的输入特征。在一些应用场景中(比如voip环境)可能存在比较大的延时抖动,虽然上述滤波器将远端信号进行了一定程度的对齐,但是也不一定能将aligned_farend与af_out完全对齐,因此本申请实施例不仅将当前帧的aligned_farend和af_out信号作为输入,而且还考虑将当前帧与过去的连续的至少一个帧频谱拼成一组特征,帧数覆盖一定的延时长度,让上述神经网络去学习对应的延时信息。
上述预设神经网络模型的结构可以采用轻量网络的结构,其中,该轻量网络为mobilenet、mobilenetv2、mobilenetv3、shufflenet或ghostnet等。
s806:获取上述预设神经网络模型输出的估计掩蔽值,并根据上述待处理数据对应的双讲状态,对上述估计掩蔽值进行修正,其中,上述双讲状态包括近端单讲、远端单讲,以及近端与远端双讲。
这里,本申请实施例采用双讲状态对上述掩蔽值进行修正,从而,提高神经网络模型输出结果的准确度,在多种情况下都能最大程度去除回声,保留近端语音。
s807:根据修正后的估计掩蔽值和上述处理后的混合信号的频谱,获得估计近端信号。
当上述掩蔽值为相位敏感掩蔽值时,可以将上述修正后的相位敏感掩蔽值和上述处理后的混合信号的频谱相乘,根据相乘结果获得估计近端信号的频谱,再通过相应处理,例如逆短时傅里叶变换得到时域的估计近端信号。
示例性的,采用传统方法和本申请回声消除方法,对近端传声器接收到的信号进行处理,如图9所示,可知,相比传统方法,采用本申请回声消除方法处理得到的近端信号与真实近端信号更接近,适合实际应用。其中,图9中横坐标表示时间(单位秒),纵坐标表示幅度。
本申请实施例,通过卷积神经网络进行回声消除,不仅能够完全抑制声学回声,而且能够尽可能减小近端语音的失真,提高语音通话和交互的质量;采用上述滤波器,对上述待处理远端信号和待处理混合信号进行延时抖动消除处理,提高网络对延时抖动的鲁棒性;通过短时傅里叶变换计算上述远端信号和混合信号的频谱,减小特征输入维度,加快后续神经网络模型的处理速度;采用双讲状态对上述掩蔽值进行修正,从而,提高神经网络模型输出结果的准确度。
对应于上文实施例的回声消除方法,图10为本申请实施例提供的回声消除装置的结构示意图。为了便于说明,仅示出了与本申请实施例相关的部分。图10为本申请实施例提供的一种回声消除装置的结构示意图,该回声消除装置100包括:数据获取模块1001、信号处理模块1002以及信号获得模块1003。这里的回声消除装置可以是上述消除装置11本身,或者是实现消除装置11的功能的芯片或者集成电路。这里需要说明的是,数据获取模块、信号处理模块以及信号获得模块的划分只是一种逻辑功能的划分,物理上两者可以是集成的,也可以是独立的。
其中,数据获取模块1001,用于获取待处理数据,所述待处理数据包括待处理远端信号和待处理混合信号,所述待处理混合信号是近端信号与回声信号混合得到的。
信号处理模块1002,用于根据所述待处理远端信号、所述待处理混合信号和预设神经网络模型,获得估计掩蔽值,其中,所述预设神经网络模型通过参考远端信号、参考混合信号和目标掩蔽值训练得到。
信号获得模块1003,用于根据所述估计掩蔽值和所述待处理混合信号,获得估计近端信号。
在一种可能的实现方式中,所述信号处理模块1002,具体用于:
对所述待处理混合信号进行线性回声消除处理,获得所述处理后的混合信号;
将所述待处理远端信号和所述处理后的混合信号,输入所述预设神经网络模型;
获取所述预设神经网络模型输出的所述估计掩蔽值。
在一种可能的实现方式中,所述信号处理模块1002,还用于:
对所述待处理远端信号进行延时抖动消除处理,获得对齐的远端信号;
所述信号处理模块1002,具体用于:
将所述对齐的远端信号和所述处理后的混合信号,输入所述预设神经网络模型。
在一种可能的实现方式中,所述信号处理模块1002,还用于:
通过短时傅里叶变换,计算所述对齐的远端信号的频谱和所述处理后的混合信号的频谱;
所述信号处理模块1002,具体用于:
将所述对齐的远端信号的频谱和所述处理后的混合信号的频谱,输入所述预设神经网络模型,所述预设神经网络模型通过参考远端信号的频谱、参考混合信号的频谱和所述目标掩蔽值训练得到,所述目标掩蔽值根据参考混合信号的频谱和参考近端信号的频谱确定。
在一种可能的实现方式中,所述信号获得模块1003,还用于:
根据所述待处理数据对应的双讲状态,对所述估计掩蔽值进行修正,其中,所述双讲状态包括近端单讲、远端单讲,以及近端与远端双讲;
所述信号获得模块1003,具体用于:
根据修正后的估计掩蔽值和所述待处理混合信号,获得估计近端信号。
在一种可能的实现方式中,所述信号获得模块1003,具体用于:
若所述双讲状态为所述近端单讲,则确定所述估计掩蔽值为第一预设值;
若所述双讲状态为所述远端单讲,则确定所述估计掩蔽值为第二预设值,其中,所述第二预设值与所述第一预设值不同。
在一种可能的实现方式中,所述信号处理模块1002,具体用于:
通过自适应线性滤波器,对所述待处理混合信号进行线性回声消除处理,所述自适应线性滤波器为最小均方自适应滤波器、分块延时频域自适应滤波器或递归最小均方滤波器。
在一种可能的实现方式中,所述预设神经网络模型的结构采用轻量网络的结构,所述轻量网络为mobilenet、mobilenetv2、mobilenetv3、shufflenet或ghostnet。
在一种可能的实现方式中,所述目标掩蔽值为相位敏感掩蔽值、理想幅度掩蔽值、理想比值掩蔽值、维纳滤波掩蔽值或理想二元掩蔽值。
在一种可能的实现方式中,所述预设神经网络模型通过连续的至少一个参考远端信号、参考混合信号,以及所述目标掩蔽值训练得到。
在一种可能的实现方式中,所述预设神经网络模型训练采用的所述参考远端信号和所述参考混合信号,通过以下方式获得:
获取至少一个设备实录的远端信号,回声信号和近端信号,以及多种预设环境下所述至少一个设备仿真的远端信号,回声信号和近端信号,其中,所述至少一个设备为不同类型的设备;
将获取的回声信号和近端信号进行混合得到混合信号;
根据获取的远端信号和得到的混合信号,获得所述预设神经网络模型训练采用的所述参考远端信号和所述参考混合信号。
本申请实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本申请实施例此处不再赘述。
可选地,图11示意性地提供本申请所述回声消除设备的一种可能的基本硬件架构。
参见图11,回声消除设备1100包括至少一个处理器1101以及通信接口1103。进一步可选的,还可以包括存储器1102和总线1104。
其中,回声消除设备1100可以是上述消除装置11,本申请对此不作特别限制。回声消除设备1100中,处理器1101的数量可以是一个或多个,图11仅示意了其中一个处理器1101。可选地,处理器1101,可以是cpu、gpu或者dsp。如果回声消除设备1100具有多个处理器1101,多个处理器1101的类型可以不同,或者可以相同。可选地,回声消除设备1100的多个处理器1101还可以集成为多核处理器。
存储器1102存储计算机指令和数据;存储器1102可以存储实现本申请提供的上述回声消除方法所需的计算机指令和数据,例如,存储器1102存储用于实现上述回声消除方法的步骤的指令。存储器1102可以是以下存储介质的任一种或任一种组合:非易失性存储器(例如只读存储器(rom)、固态硬盘(ssd)、硬盘(hdd)、光盘),易失性存储器。
通信接口1103可以为所述至少一个处理器提供信息输入/输出。也可以包括以下器件的任一种或任一种组合:网络接口(例如以太网接口)、无线网卡等具有网络接入功能的器件。
可选的,通信接口1103还可以用于回声消除设备1100与其它计算设备或者终端进行数据通信。
进一步可选的,图11用一条粗线表示总线1104。总线1104可以将处理器1101与存储器1102和通信接口1103连接。这样,通过总线1104,处理器1101可以访问存储器1102,还可以利用通信接口1103与其它计算设备或者终端进行数据交互。
在本申请中,回声消除设备1100执行存储器1102中的计算机指令,使得回声消除设备1100实现本申请提供的上述回声消除方法,或者使得回声消除设备1100部署上述的回声消除装置。
从逻辑功能划分来看,示例性的,如图11所示,存储器1102中可以包括数据获取模块1001、信号处理模块1002以及信号获得模块1003。这里的包括仅仅涉及存储器中所存储的指令被执行时可以分别实现数据获取模块、信号处理模块以及信号获得模块的功能,而不限定是物理上的结构。
其中,数据获取模块1001,用于获取待处理数据,所述待处理数据包括待处理远端信号和待处理混合信号,所述待处理混合信号是近端信号与回声信号混合得到的。
信号处理模块1002,用于根据所述待处理远端信号、所述待处理混合信号和预设神经网络模型,获得估计掩蔽值,其中,所述预设神经网络模型通过参考远端信号、参考混合信号和目标掩蔽值训练得到。
信号获得模块1003,用于根据所述估计掩蔽值和所述待处理混合信号,获得估计近端信号。
在一种可能的实现方式中,所述信号处理模块1002,具体用于:
对所述待处理混合信号进行线性回声消除处理,获得所述处理后的混合信号;
将所述待处理远端信号和所述处理后的混合信号,输入所述预设神经网络模型。
在一种可能的实现方式中,所述信号处理模块1002,还用于:
对所述待处理远端信号进行延时抖动消除处理,获得对齐的远端信号;
所述信号处理模块1002,具体用于:
将所述对齐的远端信号和所述处理后的混合信号,输入所述预设神经网络模型。
在一种可能的实现方式中,所述信号处理模块1002,还用于:
通过短时傅里叶变换,计算所述对齐的远端信号的频谱和所述处理后的混合信号的频谱;
所述信号处理模块1002,具体用于:
将所述对齐的远端信号的频谱和所述处理后的混合信号的频谱,输入所述预设神经网络模型,所述预设神经网络模型通过参考远端信号的频谱、参考混合信号的频谱和所述目标掩蔽值训练得到,所述目标掩蔽值根据参考混合信号的频谱和参考近端信号的频谱确定。
在一种可能的实现方式中,所述信号获得模块1003,还用于:
根据所述待处理数据对应的双讲状态,对所述估计掩蔽值进行修正,其中,所述双讲状态包括近端单讲、远端单讲,以及近端与远端双讲;
所述信号获得模块1003,具体用于:
根据修正后的估计掩蔽值和所述待处理混合信号,获得估计近端信号。
在一种可能的实现方式中,所述信号获得模块1003,具体用于:
若所述双讲状态为所述近端单讲,则确定所述估计掩蔽值为第一预设值;
若所述双讲状态为所述远端单讲,则确定所述估计掩蔽值为第二预设值,其中,所述第二预设值与所述第一预设值不同。
在一种可能的实现方式中,所述信号处理模块1002,具体用于:
通过自适应线性滤波器,对所述待处理混合信号进行线性回声消除处理,所述自适应线性滤波器为最小均方自适应滤波器、分块延时频域自适应滤波器或递归最小均方滤波器。
在一种可能的实现方式中,所述预设神经网络模型的结构采用轻量网络的结构,所述轻量网络为mobilenet、mobilenetv2、mobilenetv3、shufflenet或ghostnet。
在一种可能的实现方式中,所述目标掩蔽值为相位敏感掩蔽值、理想幅度掩蔽值、理想比值掩蔽值、维纳滤波掩蔽值或理想二元掩蔽值。
在一种可能的实现方式中,所述预设神经网络模型通过连续的至少一个参考远端信号、参考混合信号,以及所述目标掩蔽值训练得到。
在一种可能的实现方式中,所述预设神经网络模型训练采用的所述参考远端信号和所述参考混合信号,通过以下方式获得:
获取至少一个设备实录的远端信号,回声信号和近端信号,以及多种预设环境下所述至少一个设备仿真的远端信号,回声信号和近端信号,其中,所述至少一个设备为不同类型的设备;
将获取的回声信号和近端信号进行混合得到混合信号;
根据获取的远端信号和得到的混合信号,获得所述预设神经网络模型训练采用的所述参考远端信号和所述参考混合信号。
另外,上述的回声消除设备除了可以像上述图11通过软件实现外,也可以作为硬件模块,或者作为电路单元,通过硬件实现。
本申请提供一种计算机可读存储介质,所述计算机程序产品包括计算机指令,所述计算机指令指示计算设备执行本申请提供的上述回声消除方法。
本申请提供一种芯片,包括至少一个处理器和通信接口,所述通信接口为所述至少一个处理器提供信息输入和/或输出。进一步,所述芯片还可以包含至少一个存储器,所述存储器用于存储计算机指令。所述至少一个处理器用于调用并运行该计算机指令,以执行本申请提供的上述回声消除方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除