一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

回声消除方法、装置、设备及可读存储介质与流程

2021-08-10 16:37:00 来源:中国专利 TAG:回声 语音 装置 消除 可读
回声消除方法、装置、设备及可读存储介质与流程

本申请涉及语音通信技术领域,特别涉及一种回声消除方法、装置、设备及可读存储介质。



背景技术:

在远程会议系统、车载电话和语音网际互连协议(internetprotocol,ip)技术中,往往出现语音质量较差的情况。而声学回声信号作为影响语音质量最大的因素,需要采取行之有效的方法来消除回声,提高语音质量。声学回声是指扬声器发出的声音多次反馈到麦克风引起的回声。

相关技术中,声学回声消除器(acousticechocancellation,aec)利用扬声器信号与由扬声器信号产生的多路径回声的相关性,采用归一化最小均方算法(normalizedleastmeansquarealgorithm,nlms)建立数学模型,通过建立的数学模型来模拟回声路径。然后,通过模拟的回声路径获取远端信号的估计回声,从麦克风获取的混合有回声信号的近端信号中减去该估计回声,并且不断根据反馈误差信号来自适应修改滤波器系数直至误差为0即滤波器收敛,此时即可消除回声。此外,为了降低或避免双端通话对aec性能的影响,常常需要使用双端发声检测器(double-talkdetector,dtd)。通过dtd检测判定是否为双端通话状态,如果是则停止aec滤波器系数的更新,如果否则更新aec滤波器的系数直至误差为0,避免造成自适应滤波算法的发散。

然而,相关技术提供的方法,由于混合衰减随外界因素变化而变化,难以取得一个通用的阈值,通话状态的误判率较高。尤其处于车载场景的应用下,在车窗或天窗随机反复开启(包括部分开启)或关闭,又或者车窗或天窗运动过程中等导致非线性回声严重,使得通话状态的误判率更高,较高的误判率进而导致aec性能下降,回声消除的效果下降。



技术实现要素:

本申请实施例提供了一种回声消除方法、装置、设备及可读存储介质,能够解决相关技术中的问题。所述技术方案如下:

一方面,提供了一种回声消除方法,所述方法包括:

获取远端语音信号与近端语音信号;

检测所述远端语音信号与所述近端语音信号是否为静音状态;

响应于所述近端语音信号与所述远端语音信号均不是静音状态,将所述近端语音信号与所述远端语音信号输入目标神经网络模型,根据所述目标神经网络模型的输出结果更新双端发声检测器dtd的门限阈值;

基于更新门限阈值后的dtd获取所述远端语音信号与所述近端语音信号对应的通话状态,所述通话状态包括双端语音状态与单端语音状态中的至少一种;

基于所述通话状态,通过声学回声消除器aec对所述近端语音信号进行回声消除处理,得到消除回声后的近端语音信号。

在一种可能的实施方式中,所述检测所述远端语音信号与所述近端语音信号是否为静音状态,包括:

对所述远端语音信号与所述近端语音信号分别进行语音活动性检测;

根据所述远端语音信号的语音活动性检测的结果判断所述远端语音信号是否为静音,根据所述近端语音信号的语音活动性检测的结果判断所述近端语音信号是否为静音。

在一种可能的实施方式中,所述基于更新门限阈值后的dtd获取所述远端语音信号与所述近端语音信号对应的通话状态,包括:

获取所述远端语音信号与所述近端语音信号的幅值差值;

响应于所述幅值差值大于更新后的门限阈值,所述远端语音信号与所述近端语音信号对应的通话状态为双端语音状态;

响应于所述幅值差值等于或小于所述更新后的门限阈值,所述远端语音信号与所述近端语音信号对应的通话状态为单端语音状态。

在一种可能的实施方式中,所述aec包括自适应滤波器和辅助滤波器;

所述基于所述通话状态,通过aec对所述近端语音信号进行回声消除处理,得到消除回声后的近端语音信号,包括:

响应于所述通话状态为所述单端语音状态,通过所述自适应滤波器对所述近端语音信号进行滤波处理,根据滤波后的结果得到所述消除回声后的近端语音信号;在所述滤波处理的过程中所述自适应滤波器更新所述自适应滤波器的系数,将更新后的系数发送给所述辅助滤波器作为所述辅助滤波器的系数;

响应于所述通话状态为所述双端语音状态,通过所述辅助滤波器对所述近端语音信号进行滤波处理,根据滤波后的结果得到所述消除回声后的近端语音信号。

在一种可能的实施方式中,所述aec还包括舒适噪声发生器;

所述响应于所述通话状态为所述单端语音状态,通过所述自适应滤波器对所述近端语音信号进行滤波处理,根据滤波后的结果得到所述消除回声后的近端语音信号,包括:

响应于所述滤波后的结果的信号能量小于能量门限值,控制所述舒适噪声发生器发出舒适噪声,将所述舒适噪声作为所述消除回声后的近端语音信号。

在一种可能的实施方式中,所述检测所述远端语音信号与所述近端语音信号是否为静音状态之后,所述方法还包括:

响应于所述近端语音信号与所述远端语音信号均是静音状态,采用静音编码的方式进行通信,并控制所述舒适噪声发生器发出舒适噪声。

在一种可能的实施方式中,所述响应于所述近端语音信号与所述远端语音信号均不是静音状态,将所述近端语音信号与所述远端语音信号输入目标神经网络模型之前,所述方法还包括:

获取训练样本集,所述训练样本集中的每个训练样本包括近端语音信号样本、远端语音信号样本以及所述近端语音信号样本和所述远端语音信号样本对应的通话场景标签;

根据所述训练样本集对初始神经网络模型进行训练,直至满足预设训练停止条件,得到所述目标神经网络模型。

另一方面,提供了一种回声消除装置,所述装置包括:

第一获取模块,用于获取远端语音信号与近端语音信号;

检测模块,用于检测所述远端语音信号与所述近端语音信号是否为静音状态;

更新模块,用于响应于所述近端语音信号与所述远端语音信号均不是静音状态,将所述近端语音信号与所述远端语音信号输入目标神经网络模型,根据所述目标神经网络模型的输出结果更新双端发声检测器dtd的门限阈值;

第二获取模块,用于基于更新门限阈值后的dtd获取所述远端语音信号与所述近端语音信号对应的通话状态,所述通话状态包括双端语音状态与单端语音状态中的至少一种;

消除模块,用于基于所述通话状态,通过声学回声消除器aec对所述近端语音信号进行回声消除处理,得到消除回声后的近端语音信号。

在一种可能的实施方式中,所述检测模块,用于对所述远端语音信号与所述近端语音信号分别进行语音活动性检测;根据所述远端语音信号的语音活动性检测的结果判断所述远端语音信号是否为静音,根据所述近端语音信号的语音活动性检测的结果判断所述近端语音信号是否为静音。

在一种可能的实施方式中,所述更新模块,用于获取所述远端语音信号与所述近端语音信号的幅值差值;响应于所述幅值差值大于更新后的门限阈值,所述远端语音信号与所述近端语音信号对应的通话状态为双端语音状态;响应于所述幅值差值等于或小于所述更新后的门限阈值,所述远端语音信号与所述近端语音信号对应的通话状态为单端语音状态。

在一种可能的实施方式中,所述aec包括自适应滤波器和辅助滤波器;所述消除模块,用于响应于所述通话状态为所述单端语音状态,通过自适应滤波器对所述近端语音信号进行滤波处理,根据滤波后的结果得到所述消除回声后的近端语音信号;在所述滤波处理的过程中所述自适应滤波器更新所述自适应滤波器的系数,将更新后的系数发送给辅助滤波器作为所述辅助滤波器的系数;响应于所述通话状态为所述双端语音状态,通过所述辅助滤波器对所述近端语音信号进行滤波处理,根据滤波后的结果得到所述消除回声后的近端语音信号。

在一种可能的实施方式中,所述aec还包括舒适噪声发生器;所述消除模块,还用于响应于所述滤波后的结果的信号能量小于预设的门限值,控制舒适噪声发生器发出舒适噪声,将所述舒适噪声作为所述消除回声后的近端语音信号。

在一种可能的实施方式中,所述装置还包括:

第三获取模块,用于获取训练样本集,所述训练样本集中的每个训练样本包括近端语音信号样本、远端语音信号样本以及所述近端语音信号样本和所述远端语音信号样本对应的通话场景标签;

训练模块,用于根据所述训练样本集对初始神经网络模型进行训练,直至满足预设训练停止条件,得到所述目标神经网络模型。

在一种可能的实施方式中,所述装置还包括:

静音编码模块,用于响应于所述近端语音信号与所述远端语音信号均是静音状态,采用静音编码的方式进行通信,并控制所述舒适噪声发生器发出舒适噪声。

另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行,以使所述计算机设备实现如第一方面所述的回声消除方法。

另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以使计算机实现如上述方面所述的回声消除方法中所执行的操作。

另一方面,提供了一种计算机程序产品或计算机程序,所述计算机程序产品或所述计算机程序包括计算机程序代码,所述计算机程序代码存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取所述计算机程序代码,处理器执行所述计算机程序代码,使得所述计算机设备实现如上述方面所述的回声消除方法中所执行的操作。

本申请实施例提供的技术方案至少带来如下有益效果:

本申请实施例提供的方法,通过增加近端语音信号的静音检测,并对dtd检测方法进行了基于神经网络模型的改进,利用神经网络不断训练学习迭代dtd的门限阈值,实现了dtd的门限阈值自适应地更新,在非线性回声显著的场景下能够减小dtd检测误判,从而提高自适应滤波器的滤波性能,改善aec的回声消除效果,提升通话过程中的语音质量以及用户体验。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种回声消除方法的实施环境的示意图;

图2是本申请实施例提供的一种回声消除方法的流程图;

图3是本申请实施例提供的一种回声消除装置的示意图;

图4是本申请实施例提供的一种回声消除装置的示意图;

图5是本申请实施例提供的一种回声消除设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

图1是本申请实施例提供的回声消除方法的实施环境的示意图。参见图1,该实施环境包括多个终端101(图1中以2个为例)和服务器102。终端101和服务器102之间通过无线或者有线网络连接。

多个终端101为语音通信中的多个终端,任一终端101在语音通信过程中,能够将输出音频信号通过扬声器播放给其他终端,从而实现多个终端之间的语音通信。终端101会通过麦克风采集近端语音信号(包括除扬声器发出的声音外的其它声音,例如用户发出的声音),在采集近端语音信号时,扬声器发出的声音也会一并被传声器采集,也即是扬声器发出的声音会作为回声对传声器造成干扰。服务器102为多个终端101提供语音通信服务。

其中,终端101可以为手机、平板电脑、笔记本电脑、智能可穿戴设备等各种具有对话功能的终端。服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(contentdeliverynetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。

在一种可能实现方式中,终端101上安装有服务器102提供服务的目标应用,终端101能够通过该目标应用实现语音通信功能。其中,目标应用为终端101操作系统中的目标应用,或者为第三方提供的目标应用。终端101与102服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。

本领域技术人员应能理解上述终端101和服务器102仅为举例,其他现有的或今后可能出现的终端或服务器如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

基于上述图1所示的实施环境,本申请实施例提供一种回声消除方法,该方法可以应用于图1所示的终端101中。如图2所示,本申请实施例提供的方法包括如下步骤201-步骤204。

步骤201,获取远端语音信号与近端语音信号。

在本申请实施例中,获取远端语音信号与近端语音信号的方式可以为:通过终端中安装的语音拾取设备获取,语音拾取设备包括麦克风、声音采集设备等。远端语音信号是指由远端传输并由本地播放的语音信号,近端语音信号是指本地拾取的语音信号。当存在回声信号的时候,本地拾取的语音信号包括本地用户发出的通话语音信号与回声信号。示例性地,对于正在进行通信的用户而言,自身所在一端为近端,通信对方为远端。在电话会议等多用户场景,远端可以有多个。

在一种可能的实施方式中,远端语音信号也可以为终端根据预设程序生成,用于向用户播放的语音信号,例如可以是智能问答系统生成的用于与用户交流的语音信号。在本申请实施例中,回声信号指的是在语音通信过程中,其他终端发送的语音信号通过本地终端扬声器播放,在封闭或半封闭环境中经过多次反射,然后被本地语音拾取设备采集,从而形成回声信号。

示例性地,对于语音通信过程中的第一用户和第二用户,第一用户的语音信号由第一终端的麦克风采集,然后发送给第二终端,第二终端通过扬声器播放第一用户的语音信号。第二终端的麦克风在采集第二用户的语音信号时,也会采集到播放的第一用户的语音信号,从而第二终端发送给第一终端的语音信号中,会包括第一用户的语音信号,对于第一用户而言,听到的语音信号中存在回声信号。

在一种可能的实施方式中,对于获取的远端语音信号与近端语音信号首先进行一个简单的预处理,预处理可以包括预加重、分帧、加窗等处理操作。预处理的过程能够消除由人类发声器官本身和语音拾取设备导致的混叠、高次谐波失真、高频等因素,对语音信号质量的影响。经过预处理的远端语音信号与近端语音信号使得信号更均匀、平滑,能够提高语音信号的处理质量。示例性地,按照设定时间间隔将语音信号在时域上分成帧的形式,依次获取每一帧语音信号作为局部处理信号。例如,设定时间间隔为10ms为一帧,在16khz采样率下,每帧语音信号的采样数为160。

步骤202,检测远端语音信号与近端语音信号是否为静音状态。

本申请实施例不对检测远端语音信号与近端语音信号是否为静音状态的方式进行限定,只要能够检测出远端语音信号与近端语音信号是否为静音状态即可。在一种可能的实施方式中,检测远端语音信号与近端语音信号是否为静音状态的过程为:对远端语音信号与近端语音信号分别进行语音活动性检测;根据远端语音信号的语音活动性检测的结果判断远端语音信号是否为静音,根据近端语音信号的语音活动性检测的结果判断近端语音信号是否为静音。

其中,语音活动性检测(voiceactivitydetection,vad)是指从一段语音信号中准确地找出语音信号的起始点和结束点,使得有效的语音信号和无效的噪声信号相分离。在本申请实施例中,有效的语音信号指的是远端语音信号和近端语音信号中的用户发出的语音信号,或者近端语音信号中的声学回声信号;无效的噪声信号指的是去除有效的语音信号后的其他信号的值的和。由此根据vad的检测结果即可判断远端语音信号与近端语音信号是否为静音状态,若检测到有效的语音信号则判断该语音信号不为静音状态,若未检测到有效的语音信号则判断该语音信号为静音状态。其中,vad的检测方法以帧为单位进行检测。

在一种可能的实施方式中,本申请实施例不对vad检测的方法进行限定。其中,vad检测方法可以是基于阈值的方法,该方法根据语音信号和噪声信号的相同参数所表现出的不同特征来进行区分,包括:提取每一段语音信号相同参数下的特征;然后把这些特征值与设定的阈值进行比较;根据短时过零率来检测清音,根据短时能量来检测浊音。可选地,vad检测方法还可以是基于模式识别的方法,该方法需要估计语音信号和噪声信号的模型参数来进行检测。进一步地,基于模式识别的vad检测方法可以与深度学习方法相结合完成语音活动性检测。

在一种可能的实施方式中,检测远端语音信号与近端语音信号是否为静音状态之后,该方法还包括:响应于近端语音信号与远端语音信号均是静音状态,采用静音编码的方式进行通信,并控制舒适噪声发生器(comfortnoisegenerator,cng)发出舒适噪声。由于在通话过程中可能存在很长的静默期,常常给远端听者造成一种完全寂静的感觉,远端听者会误认为线路中断。为避免这种情况发生,需要给远端听者提供一个与近端背景噪声电平相适应的噪声,该噪声称为舒适噪声。

在本申请实施例中,不对舒适噪声的生成方法进行限定,可以为白化滤波法、背景噪声合成法和特定频谱噪声法等。示例性地,以64点为一块进行频谱估计以产生舒适噪声,包括:首先将噪声估计值跟近端语音信号比较,如果噪声估计值比近端语音信号大,就将估计值过小计数器清零;然后将噪声估计值跟门限tl比较,如果噪声估计值小于门限tl,则按减小比例减小估计值,减小比例为大于近端语音信号部分的1/tl,得到估计好的背景噪声;将估计好的背景噪声与一个随机生成的高斯分布相乘,最后得到输出的舒适噪声。其中,高斯分布为服从一个数学期望为μ、方差为σ2的正态分布,其中μ和σ2的值可根据经验设置。

在一种可能的实施方式中,当检测到远端语音信号与近端语音信号均是静音状态时,也就是当通话双方同时不说话时,此时的静音信号会像正常语音信号一样进行相同的采样编码占用相同的带宽,如果将静音信号和语音信号区分开来,采用静音编码的通信方式,那么可以对静音信号进行压缩编码,使用占用极低带宽的编码即可表示静音信号,能够节省带宽资源。此外,当检测到远端语音信号与近端语音信号均是静音状态时,可以将该静音状态信息发送给aec控制器,那么aec就可以暂停回声消除算法,避免了在静音状态下仍然进行回声消除导致的运算误差。

在本申请实施例中,实现了实时的远端语音信号与近端语音信号的静音检测,通过该技术可以减少语音数据的发送量,降低网络带宽,缓解网络拥塞,同时能够减少回声,更进一步的提高回声消除效果,改善语音通信质量。并且将静音检测的结果反馈给aec控制器,以使其可以控制cng发出舒适噪声,使得语音通信过程中的体验感更舒适。

步骤203,响应于近端语音信号与远端语音信号均不是静音状态,将近端语音信号与远端语音信号输入目标神经网络模型,根据目标神经网络模型的输出结果更新双端发声检测器的门限阈值。

在本申请实施例中,通话状态包括双端语音状态与单端语音状态中的至少一种。其中,双端语音状态指的是近端和远端语音信号同时存在,在这一状态下,远端语音信号存在,故近端语音信号中包括有语音信号和回声信号,需要对近端语音信号进行回声消除,回声消除后的近端语音信号只包括有语音信号;单端语音状态指的是仅仅存在远端语音信号,在这一状态下,近端语音信号只包括有回声信号,需要对近端语音信号进行回声消除,回声消除后的近端语音信号应为静音信号。

在本申请实施例中,dtd用于判断远端语音信号与近端语音信号对应的通话状态。可选地,geigel算法作为目前主流dtd技术之一,是一种基于能量的简单有效的双端语音检测方法,geigel算法的基本思想是:通过比较远端语音信号y(n)和近端语音信号x(n)的幅值来判断双端通话状态。当没有近端语音信号时,x(n)就是实际的回声信号,回声信号是由远端输入信号y(n)通过回声通道产生的,此时x(n)在幅值上比y(n)小;当x(n)中除了回声还包含着实际的近端语音信号时,x(n)的幅值会变大。因此若近端输入信号x(n)与远端输入信号y(n)的幅值相比超过预设的固定的门限阈值,就判定为双端通话状态。

但是,由于混合衰减随外界因素变化而变化,geigel算法难以取得一个通用的门限阈值,通话状态的误判率较高。尤其处于车载场景的应用下,在车窗或天窗随机反复开启(包括部分开启)或关闭,又或者车窗或天窗运动过程中等导致非线性回声严重,使得通话状态的误判率更高,较高的误判率进而导致回声消除算法性能下降,同时回声消除的效果下降。

在本申请实施例中,为了减小geigel算法的误判率,将近端语音信号与远端语音信号输入目标神经网络模型,根据目标神经网络模型的输出结果更新dtd的门限阈值,基于更新门限阈值后的dtd获取远端语音信号与近端语音信号对应的通话状态。由于目标神经网络模型根据训练样本集训练得到的,使得dtd的门限阈值根据不同场景的语音信号能够自适应地更新,达到了提高dtd地检测准确率的目的,进而能够提升整个回声消除的效果。

在一种可能的实施方式中,响应于近端语音信号与远端语音信号均不是静音状态,将近端语音信号与远端语音信号输入目标神经网络模型之前,需要确定目标神经网络模型的参数,具体方法包括如下步骤2031-步骤2032。

步骤2031,获取训练样本集。

其中,该训练样本集中的每个训练样本包括近端语音信号样本、远端语音信号样本以及近端语音信号样本和远端语音信号样本对应的通话场景标签。

其中,通话场景标签用于表示近端语音信号样本和远端语音信号样本所属的通话场景,由于不同的通话场景dtd适用的门限阈值不同,通过训练神经网络模型可得到测试数据样本对应的通话场景,根据通话场景来更新dtd的门限阈值,使得更新门限阈值后的dtd对该测试数据样本的检测准确率提高。本申请实施例不对通话场景的场景类型与数量进行限定,可根据不同的应用场景灵活设置。示例性地,通话场景可以包括远端语音信号的音量突然增大场景、双端通话场景或者非线性回声路径改变场景,上述通话场景即为dtd容易造成误判的几种通话场景。

在一种可能的实施方式中,可以通过下述方式获取近端语音信号样本、远端语音信号样本以及近端语音信号样本和远端语音信号样本对应的通话场景标签。这里,获取近端语音信号样本和远端语音信号样本的方式在本申请实施例中不做限定。

在一种可能的实施方式中,首先大规模地收集常用语音信号以得到干净的语音数据集,干净的语音数据集为高信噪比的语音信号集,即不存在明显噪声的语音信号集。可选地,干净的语音数据集为信噪比大于参考阈值的语音信号集,其中,参考阈值可根据应用场景灵活设置,例如参考阈值为80分贝(db)。一般远端语音信号是高信噪比语音信号,因此该干净的语音数据集可作为远端语音信号样本集。然后,大规模收集噪声信号以得到噪声数据集。这里,该语音信号和噪声信号可以是历史通话过程中产生的,也可是在其他非通话过程中录制的语音信号和噪声信号。

在一种可能的实施方式中,可以根据语音数据集和噪声数据集进行仿真模拟,得到近端语音信号样本。对于单端通话状态下的近端语音信号样本只包括由远端语音信号产生的回声信号,此时的近端语音信号样本为远端语音信号样本卷积随机产生的房间脉冲冲击响应函数。对于双端通话状态下的近端语音信号样本包括两部分,一部分按照上述单端通话状态下的方法获取,叠加的另一部分由上述语音数据集中随机产生。

在一种可能的实施方式中,可通过场景模拟收集回声信号,根据收集的回声信号与语音数据集获取近端语音信号样本。例如,以车载环境为例,通过室内模拟或户外模拟车辆行驶过程中产生的回声信号,对不同行驶状况下的产生的回声信号进行收集,其中,不同行驶状况可以包括不同的行驶车速、不同的车窗或天窗开启程度,车内音频设备的使用状况等。收集的回声信号即可作为只包括有回声信号的近端语音信号样本,将收集的回声信号与语音数据集叠加得到包括有回声信号和语音信号的近端语音信号样本。

在一种可能的实施方式中,根据上述得到的近端语音信号样本集与远端语音信号样本集,根据获取训练数据的不同方式,将获取的训练数据分为预设的几种通话场景下的训练数据,为不同通话场景下的训练数据添加对应的通话场景标签,得到的每个通话场景标签即神经网络模型的训练标签。

示例性地,在近端语音信号样本与远端语音信号样本均只包括语音信号,但是远端语音信号样本的音量明显大于近端语音信号样本的音量,可以将该情况下的标签设置为0,对应远端语音信号的音量突然增大场景;在近端语音信号样本包括语音信号和回声信号的情况下,且回声信号由线性回声路径得到,代表同一时刻同时存在远端信号和近端信号,可以将该情况下的标签设置为1,对应双端通话场景;在近端语音信号样本包括语音信号和回声信号的情况下,且回声信号由非线性回声路径得到,例如通过车载场景模拟收集的回声信号,可以将该情况下的标签设置为2,对应非线性回声路径改变场景。

在一种可能的实施方式中,根据确定的每个训练样本,得到训练样本集。

步骤2032,根据训练样本集对初始神经网络模型进行训练,直至满足预设训练停止条件,得到目标神经网络模型。

在本申请实施例中,对于训练样本集中的每个训练样本,根据近端语音信号样本、远端语音信号样本以及该样本对应的通话场景标签对初始神经网络模型进行训练,直至满足预设训练停止条件,得到目标神经网络模型。

在一种可能的实施方式中,确定目标神经网络模型之前,需要先获取初始神经网络模型,该初始神经网络模型可以是深度神经网络模型(deepneuralnetworks,dnn),但不限于dnn网络,例如,深度学习网络模型还可以是设置合适的网络层数和节点、选择合适的激活函数如sigmoid、tanh和relu等、选择合适的损失函数如均方误差和平均绝对误差等有记忆的网络模型。该初始神经网络模型可以为基于pytorch学习框架的神经网络模型,pytorch是一个简洁且高效快速的学习框架,不仅能够实现强大的图形处理器(graphicsprocessingunit,gpu)加速,同时还支持动态神经网络。本申请实施例不对神经网络模型的学习框架进行限定,该神经网络模型的学习框架还可以为tensorflow、keras、caffe和mxnet等。

示例性地,近端语音信号样本、远端语音信号样本和通话场景标签均已知,即输入输出已知,初始神经网络模型确定,基于此,训练初始神经网络模型,待收敛之后得到确定的网络参数。训练过程可以包括:随机初始化初始神经网络模型的权重参数和损失函数;特征预处理,比如均值为零,方差归一化等;前向计算得到输出,根据输出误差,反向逐层计算权重参数,可根据随机梯度下降算法更新权重参数;将输出误差小于预设阈值确定为预设训练停止条件,在满足预设训练停止条件下,停止权重参数更新,得到目标神经网络模型,此时的参数可认为是训练完成的目标神经网络模型的权重参数。基于确定的目标神经网络模型,该目标神经网络模型能够根据判断方法来区分数据样本对应的不同的通话场景,根据不同的通话场景更新dtd的门限阈值。

在一种可能的实施方式中,获取不同的通话场景下的训练数据后,将训练数据输入到dtd中,根据dtd的输出结果调节dtd的门限阈值,获取不同的通话场景下对应的适用的门限阈值,即不同的通话场景下使得dtd的检测准确率高的门限阈值。本申请实施例不对调节dtd的门限阈值的方法进行限定,只要能得到使得dtd的检测准确率高的门限阈值即可,其中,dtd的检测准确率高指的是dtd的检测准确率大于检测阈值,该检测阈值可根据应用场景灵活调整,例如,检测阈值可以为80%。由此,通过确定的目标神经网络模型判断出数据样本对应的通话场景后,即可根据获取的不同的通话场景下对应的适用的门限阈值,进而更新dtd的门限阈值提高dtd的检测准确率。

在本申请实施例中,经过初始神经网络模型对输入dtd的数据样本不断训练学习,从而不断迭代获取准确的通话场景类型,进而更新dtd的门限阈值为该通话场景下适用的门限阈值,使得基于geigel算法的dtd的门限阈值实现自适应地更新,该方法能够提高dtd双端检测准确率,使得在车窗、天窗不规则运动时导致的非线性回声增强的场景下达到较高的双端检测准确率,为进一步提高回声消除的自适应滤波器的滤波性能提供了前提条件。

步骤204,基于更新门限阈值后的dtd获取远端语音信号与近端语音信号对应的通话状态。

在一种可能的实施方式中,根据基于geigel算法的dtd的基本原理,基于更新门限阈值后的dtd获取远端语音信号与近端语音信号对应的通话状态,包括:获取远端语音信号与近端语音信号的幅值差值;响应于幅值差值大于更新后的门限阈值,远端语音信号与近端语音信号对应的通话状态为双端语音状态;响应于幅值差值等于或小于更新后的门限阈值,远端语音信号与近端语音信号对应的通话状态为单端语音状态。

在本申请实施例中,基于神经网络模型改进的geigel算法,实现了一种门限阈值自适应可变的计算方式,在非线性回声显著增强的场景下,减小因通用固定的阈值带来的高误判率。适用于因扬声器播放出来的声音经不同的路径一次或多次反射后被麦克风采集所产生的回声合集,这种回声因周围物体的变动、大幅度位置变动导致回声具有多路劲、时变的特性,例如人走动时改变反射路径进而影响回声路径。

步骤205,基于通话状态,通过声学回声消除器aec对近端语音信号进行回声消除处理,得到消除回声后的近端语音信号。

在本申请实施例中,进行dtd检测的目的是为了确定此时的通话状态,确定通话状态是为了确定当前aec中的自适应滤波器是否进行系数更新。其中,aec包括自适应滤波器、辅助滤波器和cng等,自适应滤波器用于根据远端语音信号自适应的更新滤波器参数,以优化回声消除的效果;辅助滤波器用于根据缓存的系数进行回声消除处理;cng用于发出舒适的噪声。可选地,自适应滤波器可以采用归一化最小均方自适应算法(normalizedleastmeansquare,nlms)进行系数更新。

在本申请实施例中,在单端通话状态下,回声信号以及自适应滤波器输出的回声误差信号都是准确的,所以此时自适应滤波器既要进行滤波,又要进行自适应滤波器的系数更新,而且自适应滤波器的系数要通过该状态进行快速收敛。在双端通话状态下,自适应滤波器要进行滤波,但不能进行自适应滤波器的系数更新,因为此时的回声残留信号不仅仅包含着真正回声残留信号,还包含了本地的语音信号。如果此时自适应滤波器依旧进行系数更新,会造成回声估计的极大偏差,导致回声消除性能下降。示例性地,如果通话状态判断错误,比如将音量突变判断成双端通话状态,则会造成自适应滤波器停止系数的迭代更新,自适应滤波器将不会继续跟踪不断变化的回声路径从而导致回声消除的效果较差。

在一种可能的实施方式中,基于通话状态,通过aec对近端语音信号进行回声消除处理,得到消除回声后的近端语音信号,包括:响应于通话状态为单端语音状态,通过自适应滤波器对近端语音信号进行滤波处理,根据滤波后的结果得到消除回声后的近端语音信号;在滤波处理的过程中自适应滤波器更新自适应滤波器的系数,将更新后的系数发送给辅助滤波器作为辅助滤波器的系数;响应于通话状态为双端语音状态,通过辅助滤波器对近端语音信号进行滤波处理,根据滤波后的结果得到消除回声后的近端语音信号。

在一种可能的实施方式中,响应于通话状态为双端语音状态,通过辅助滤波器对近端语音信号进行滤波处理的过程中,由于辅助滤波器的系数由自适应滤波器更新后的系数获取,而只有处于单端通话状态时自适应滤波器才进行更新,若双端通话状态发生在单端通话状态之前,辅助滤波器的系数可由随机初始化的结果产生。

在本申请实施例中,由于自适应滤波器系数的误差等原因,经滤波处理后的信号可能会有少量残余回声不能得到完全抑制。在存在本地的语音信号时,由于本地的语音信号的功率一般比残余回声的功率大很多,故本地的语音信号可以在一定程度上掩盖后者。但是在没有本地的语音信号时,残余回声就会对正常的通话造成干扰。此时,可以通过非线性处理将该残余回声完全去掉。一般来说,非线性处理的原理就是当残余回声的信号能量小于一个预先设定的门限值时,使用舒适噪声替代。

在一种可能的实施方式中,响应于通话状态为单端语音状态,通过自适应滤波器对近端语音信号进行滤波处理,根据滤波后的结果得到消除回声后的近端语音信号,包括:响应于滤波后的结果的信号能量小于预设的门限值,控制cng发出舒适噪声,将舒适噪声作为消除回声后的近端语音信号。

在本申请实施例中,在对残留回声信号进行非线性处理后,通过发出舒适噪声代替静音状态,该舒适噪声给远端听者提供一个与近端背景噪声电平相适应的噪声,避免远端听者由于通话过程中完全寂静产生线路中断的错觉。

本申请实施例提供的方法,通过增加近端语音信号的静音检测,并对dtd检测方法进行了基于神经网络模型的改进,利用神经网络不断训练学习迭代dtd的门限阈值,实现了dtd的门限阈值自适应地更新,在非线性回声显著的场景下能够减小dtd检测误判,从而提高自适应滤波器的滤波性能,改善aec的回声消除效果,提升通话过程中的语音质量以及用户体验。

本申请实施例提供了一种回声消除装置,该装置可用于执行上述回声消除方法。参见图3,该装置包括:

第一获取模块31,用于获取远端语音信号与近端语音信号;

检测模块32,用于检测远端语音信号与近端语音信号是否为静音状态;

更新模块33,用于响应于近端语音信号与远端语音信号均不是静音状态,将近端语音信号与远端语音信号输入目标神经网络模型,根据目标神经网络模型的输出结果更新双端发声检测器dtd的门限阈值;

第二获取模块34,用于基于更新门限阈值后的dtd获取远端语音信号与近端语音信号对应的通话状态,通话状态包括双端语音状态与单端语音状态中的至少一种;

消除模块35,用于基于通话状态,通过声学回声消除器aec对近端语音信号进行回声消除处理,得到消除回声后的近端语音信号。

在一种可能的实施方式中,检测模块32,用于对远端语音信号与近端语音信号分别进行语音活动性检测;根据远端语音信号的语音活动性检测的结果判断远端语音信号是否为静音,根据近端语音信号的语音活动性检测的结果判断近端语音信号是否为静音。

在一种可能的实施方式中,更新模块33,用于获取远端语音信号与近端语音信号的幅值差值;响应于幅值差值大于更新后的门限阈值,远端语音信号与近端语音信号对应的通话状态为双端语音状态;响应于幅值差值等于或小于更新后的门限阈值,远端语音信号与近端语音信号对应的通话状态为单端语音状态。

在一种可能的实施方式中,aec包括自适应滤波器和辅助滤波器;消除模块35,用于响应于通话状态为单端语音状态,通过自适应滤波器对近端语音信号进行滤波处理,根据滤波后的结果得到消除回声后的近端语音信号;在滤波处理的过程中自适应滤波器更新自适应滤波器的系数,将更新后的系数发送给辅助滤波器作为辅助滤波器的系数;响应于通话状态为双端语音状态,通过辅助滤波器对近端语音信号进行滤波处理,根据滤波后的结果得到消除回声后的近端语音信号。

在一种可能的实施方式中,aec还包括舒适噪声发生器;消除模块35,还用于响应于滤波后的结果的信号能量小于预设的门限值,控制cng生器发出舒适噪声,将舒适噪声作为消除回声后的近端语音信号。

在一种可能的实施方式中,参见图4,装置还包括:

第三获取模块36,用于获取训练样本集,训练样本集中的每个训练样本包括近端语音信号样本、远端语音信号样本以及近端语音信号样本和远端语音信号样本对应的通话场景标签;

训练模块37,用于根据训练样本集对初始神经网络模型进行训练,直至满足预设训练停止条件,得到目标神经网络模型。

静音编码模块38,用于响应于近端语音信号与远端语音信号均是静音状态,采用静音编码的方式进行通信,并控制cng生器发出舒适噪声。

本申请实施例提供的装置,通过增加近端语音信号的静音检测,并对dtd检测方法进行了基于神经网络模型的改进,利用神经网络不断训练学习迭代dtd的门限阈值,实现了dtd的门限阈值自适应地更新,在非线性回声显著的场景下能够减小dtd检测误判,从而提高自适应滤波器的滤波性能,改善aec的回声消除效果,提升通话过程中的语音质量以及用户体验。

应理解的是,上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

参见图5,其示出了本申请实施例提供的一种回声消除设备的结构示意图,该回声消除设备500可以是:计算机、平板电脑、智能手机、车载导航仪、多媒体播放器或者可穿戴式设备等。回声消除设备500还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

通常,回声消除设备500包括有:处理器501、存储器502和滤波器504。

处理器501可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器501可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器501也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(centralprocessingunit,cpu);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器501可以在集成有图像处理器(graphicsprocessingunit,gpu),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器501还可以包括人工智能(artificialintelligence,ai)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器502可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器502还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器502中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器501所执行以实现本申请中方法实施例提供的回声消除方法。滤波器504可以包括一个或多个电容、电感和电阻组成的滤波电路,该滤波器504可以对电源线中特定频率的频点或该频点以外的频率进行有效滤除,得到一个特定频率的电源信号,或消除一个特定频率后的电源信号。

在一些实施例中,回声消除设备还可选包括有:外围设备接口503和至少一个外围设备。处理器501、存储器502和外围设备接口503之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口503相连。具体地,外围设备包括:音频电路507和电源509中的至少一种。

外围设备接口503可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器501和存储器502。在一些实施例中,处理器501、存储器502和外围设备接口503被集成在同一芯片或电路板上;在一些其他实施例中,处理器501、存储器502和外围设备接口503中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

音频电路507可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器501进行处理,或者输入至射频电路504以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器501的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路507还可以包括耳机插孔。

电源509用于为终端中的各个组件进行供电。电源509可以是交流电、直流电、一次性电池或可充电电池。当电源509包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。

本领域技术人员可以理解,图5中示出的结构并不构成对回声消除设备的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

在示例性实施例中,还提供了一种计算机设备,该计算机设备包括存储器及处理器;存储器中存储有至少一条指令,至少一条指令由处理器加载并执行,以使计算机设备实现本申请任一种示例性实施例所提供的回声消除方法。

在示例性实施例中,还提供了一种计算机可读存储介质,其特征在于,存储介质中存储有至少一条指令,指令由处理器加载并执行,以使计算机实现本申请任一种示例性实施例所提供的回声消除方法。

可选地,上述计算机可读存储介质可以是只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、只读光盘(compactdiscread-onlymemory,cd-rom)、磁带、软盘和光数据存储设备等。

在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一种回声消除方法。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、设备或模块的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

该作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

还应理解,在本申请的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜