声源定位方法及系统、电子设备及存储介质与流程

文档序号:22117235发布日期:2020-09-04 15:43阅读:259来源:国知局
声源定位方法及系统、电子设备及存储介质与流程

本发明涉及信号处理领域,特别涉及一种声源定位方法及系统、电子设备及存储介质。



背景技术:

目前,语音识别在高信噪比、无混响、声源距离比较近的场景下性能较好。但是随着语音交互场景扩展至智能音箱、汽车、机器人等应用时,单麦克风系统无法满足实际应用,而麦克风阵列由于可以拾取不同方向的声源实现空时信号处理以提高远场语音交互的性能被广泛研究。

声源定位是麦克风阵列信号处理的第一步,会在语音唤醒阶段中实现。其准确性会直接影响后续信号处理的效果,通常会结合语音前端的vad(voiceactivitydetection,语音活动检测)处理结果:当vad检测为语音时做声源定位。声源定位的结果知道后续的波束形成等语音增强模块,成功唤醒之后上传数据请求至云端服务进行语音交互。

基于麦克风阵列声源定位的算法现在可以划分为三类:到达时间差、空间谱估计以及波束形成的方法。其中,到达时间差的方法计算量小、实时性高,但测向精度低、对噪声以及干扰敏感且只适用于单声源;空间谱估计的方法理论上定位性能最佳,但是需要很高的运算量。而波束形成的方法,以srp-phat(steeredresponsepower-phasetransform,基于相位变换加权的可控响应功率)为例,在预设的搜索空间中计算所有麦克风对假设目标方向的相位加权的广义互相关相位变换(generalizedcrosscorrelationphasetransformation,gcc-phat)。由于其对噪声以及混响环境有一定的鲁棒性,被广泛应用于声源定位。但该算法在低信噪比以及混响环境下,算法性能会急剧下降,此外其较大的运算量使得实用性下降。

目前,srp-phat算法的改进集中在两个方面:一是通过优化搜索策略来提高算法效率,但是在噪声、混响、干扰情况下的结果不佳;二是额外计算每个时频点的直达波的“能量”包络状态判断直达波,虽然提高了高混响以及干扰环境下的性能,但是加大了原srp-phat算法的运算量,降低了算法的实用性。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中的上述缺陷,提供一种在不增加额外运算量的情况下提高低信噪比下声源定位性能的声源定位方法及系统、电子设备及存储介质。

本发明是通过下述技术方案来解决上述技术问题:

本发明的第一方面提供一种声源定位方法,包括:

将参考麦克风接收的语音信号划分为至少一个子频带;其中,所述参考麦克风为麦克风阵列中的其中一个麦克风;

若通过vad检测所述语音信号中存在语音,则针对每个子频带,根据vad检测过程中得到的语音相对噪声的似然比计算语音存在概率;

利用基于分频段的语音存在概率加权的srp-phat算法计算麦克风阵列的最大可控响应功率,并根据所述最大可控响应功率对应的角度确定声源的方向。

较佳地,利用基于分频段的语音存在概率加权的srp-phat算法计算麦克风阵列的最大可控响应功率,具体包括:

利用基于分频段的语音存在概率加权的srp-phat算法在与麦克风阵列对应的角度区间内搜索所述麦克风阵列的最大可控响应功率。

较佳地,利用基于分频段的语音存在概率加权的srp-phat算法计算麦克风阵列的最大可控响应功率,具体包括:

利用gcc-phat算法初步估计麦克风阵列指向声源的方向,并根据初步估计的最小角度和最大角度得到第一角度区间;

利用基于分频段的语音存在概率加权的srp-phat算法在所述第一角度区间内搜索所述麦克风阵列的最大可控响应功率。

较佳地,利用基于分频段的语音存在概率加权的srp-phat算法在所述第一角度区间内搜索所述麦克风阵列的最大可控响应功率,具体包括:

利用基于分频段的语音存在概率加权的srp-phat算法在所述第一角度区间内以第一步长搜索所述麦克风阵列的最大可控响应功率和次大可控响应功率,并根据与所述最大可控响应功率对应的角度以及与所述次大可控响应功率对应的角度得到第二角度区间;

利用基于分频段的语音存在概率加权的srp-phat算法在所述第二角度区间内以第二步长搜索所述麦克风阵列的最大可控响应功率,其中,所述第二步长小于所述第一步长。

较佳地,针对每个子频带,根据vad检测过程中得到的语音相对噪声的似然比计算语音存在概率,具体包括:

将vad检测过程中得到的每个子频带的语音相对噪声的似然比代入如下公式计算每个子频带的语音存在概率:

其中,pi为子频带i的语音存在概率,i=1,2,…,i,i为子频带的数量,lri为子频带i的语音相对噪声的似然比。

较佳地,所述麦克风阵列中包括n个麦克风,基于分频段的语音存在概率加权的srp-phat算法的公式如下:

其中,p(θ)llr-phat为麦克风阵列的可控响应功率,lr(ω)为lri在全频带上的映射,xk(ω)为第k个麦克风接收语音信号的傅里叶变换,xl(ω)为第l个麦克风接收语音信号的傅里叶变换,τkl(θ)为第k个麦克风与第l个麦克风指向声源的方向的可控时延。

本发明的第二方面提供一种声源定位系统,包括频带划分模块、语音检测模块以及声源定位模块;

所述频带划分模块用于将参考麦克风接收的语音信号划分为至少一个子频带;其中,所述参考麦克风为麦克风阵列中的其中一个麦克风;

所述语音检测模块用于在通过vad检测所述语音信号中存在语音的情况下,针对每个子频带根据vad检测过程中得到的语音相对噪声的似然比计算语音存在概率;

所述声源定位模块用于利用基于分频段的语音存在概率加权的srp-phat算法计算麦克风阵列的最大可控响应功率,并根据所述最大可控响应功率对应的角度确定声源的方向。

较佳地,所述声源定位模块具体用于利用基于分频段的语音存在概率加权的srp-phat算法在与麦克风阵列对应的角度区间内搜索所述麦克风阵列的最大可控响应功率。

较佳地,所述声源定位模块包括:

估计单元,用于利用gcc-phat算法初步估计麦克风阵列指向声源的方向,并根据初步估计的最小角度和最大角度得到第一角度区间;

搜索单元,用于利用基于分频段的语音存在概率加权的srp-phat算法在所述第一角度区间内搜索所述麦克风阵列的最大可控响应功率。

较佳地,所述搜索单元具体用于利用基于分频段的语音存在概率加权的srp-phat算法在所述第一角度区间内以第一步长搜索所述麦克风阵列的最大可控响应功率和次大可控响应功率,并根据与所述最大可控响应功率对应的角度以及与所述次大可控响应功率对应的角度得到第二角度区间;以及利用基于分频段的语音存在概率加权的srp-phat算法在所述第二角度区间内以第二步长搜索所述麦克风阵列的最大可控响应功率,其中,所述第二步长小于所述第一步长。

较佳地,所述语音检测模块具体用于将vad检测过程中得到的每个子频带的语音相对噪声的似然比代入如下公式计算每个子频带的语音存在概率:

其中,pi为子频带i的语音存在概率,i=1,2,…,i,i为子频带的数量,lri为子频带i的语音相对噪声的似然比。

较佳地,所述麦克风阵列中包括n个麦克风,基于分频段的语音存在概率加权的srp-phat算法的公式如下:

其中,p(θ)llr-phat为麦克风阵列的可控响应功率,lr(ω)为lri在全频带上的映射,xk(ω)为第k个麦克风接收语音信号的傅里叶变换,xl(ω)为第l个麦克风接收语音信号的傅里叶变换,τkl(θ)为第k个麦克风与第l个麦克风指向声源的方向的可控时延。

本发明的第三方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的声源定位方法。

本发明的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如第一方面所述的声源定位方法的步骤。

本发明的积极进步效果在于:通过将参考麦克风接收的语音信号划分为至少一个子频带;若通过vad检测所述语音信号中存在语音,则针对每个子频带,根据vad检测过程中得到的语音相对噪声的似然比计算语音存在概率;利用基于分频段的语音存在概率加权的srp-phat算法计算麦克风阵列的最大可控响应功率,并根据所述最大可控响应功率对应的角度确定声源的方向。本发明利用vad检测语音的中间结果即每个子频带的语音相对噪声的似然比计算每个子频带的语音存在频率,即分频段的语音存在概率,并将其加权到原有的srp-phat算法中,提高了语音的占比,使得在不增加额外运算量的情况下降低了噪声对声源定位的影响,即提高了低噪声比下声源定位的性能。

附图说明

图1为本发明实施例1提供的声源定位方法的流程图。

图2为本发明实施例1提供的声源定位的整体框架图。

图3为本发明实施例1提供的六麦克圆阵进行声源定位的方法流程图。

图4为本发明实施例2提供的声源定位系统的结构框图。

图5为本发明实施例3提供的电子设备的结构示意图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

实施例1

本实施例提供一种声源定位方法,如图1所示,包括:

步骤s101、将参考麦克风接收的语音信号划分为至少一个子频带;其中,所述参考麦克风为麦克风阵列中的其中一个麦克风。

在可选的一种实施方式中,选取麦克风阵列中离声源最近的麦克风为参考麦克风。本实施方式中,由于参考麦克风离声源最近,相对于麦克风阵列中的其他麦克风而言,其接收的语音信号的质量更好,因此,基于该质量更好的语音信号进行语音检测和声源定位的结果更加准确。

在具体实施中,对参考麦克风接收的语音信号做加窗分帧处理,将每帧语音信号划分为至少一个子频带。在可选的一种实施方式中,对语音信号加汉明窗实现分帧。

步骤s101中,可以根据声源定位的精度要求对语音信号进行频带划分。具体地,如果精度要求较高,则可以将语音信号划分为较多数量的子频带,如果精度要求较低,则可以将语音信号划分为较少数量的子频带。

在一个例子中,将参考麦克风接收的语音信号从80hz~8khz划分为10个子频带。在另一个例子中,将参考麦克风接收的语音信号从100hz~16khz划分为20个子频带。

步骤s102、若通过vad检测所述语音信号中存在语音,则针对每个子频带,根据vad检测过程中得到的语音相对噪声的似然比计算语音存在概率。

步骤s102中检测语音信号中存在语音,则根据vad检测语音的中间结果即语音相对噪声的似然比计算语音存在概率,并执行后续的声源定位以及语音增强,若不存在语音,则结束本次流程,继续采集语音信号,并返回步骤s101。

在可选的一种实施方式中,vad采用高斯混合模型对子频带噪声和语音的能量特征分别建模,得到子频带的似然比(likelihoodratio,lr)函数。具体地,每个子频带特征xfeature_i的语音相对噪声的似然比lri为:

其中,i=1,2,…,i,i为子频带的数量,p(xfeature_i|h1i)为子频带特征xfeature_i在语音存在情况下的条件概率密度函数,p(xfeature_i|h0i)为子频带特征xfeature_i在语音不存在情况下的条件概率密度。

子频带i的语音存在概率可以表示为:

其中,λi为的广义似然比函数,定义为:

其中,qi=p(h0i)为语音不存在的先验概率,这里做一个简化qi=0.5,因此得到λi=lri,那么每个子频带的语音存在概率为:

步骤s103、利用基于分频段的语音存在概率加权的srp-phat算法计算麦克风阵列的最大可控响应功率,并根据所述最大可控响应功率对应的角度确定声源的方向。

本实施例的麦克风阵列中包括n个麦克风,假设麦克风阵列接收到的信号为x,srp-phat算法的公式如下:

其中,p(θ)phat为麦克风阵列的可控响应功率,lxk(ω)为第k个麦克风接收语音信号的傅里叶变换,xl(ω)为第l个麦克风接收语音信号的傅里叶变换,τkl(θ)为第k个麦克风与第l个麦克风指向声源的方向的可控时延,τkl(θ)=(dk(θ)-dl(θ))/c,dk(θ)为θ方向的声源与第k个麦克风之间的距离,dl(θ)为θ方向的声源与第l个麦克风之间的距离,c为声速。

在步骤s103可选的一种实施方式中,基于分频段的语音存在概率加权的srp-phat算法的公式如下:

其中,p(θ)llr-phat为麦克风阵列的可控响应功率,xk(ω)为第k个麦克风接收语音信号的傅里叶变换,xl(ω)为第l个麦克风接收语音信号的傅里叶变换,τkl(θ)为第k个麦克风与第l个麦克风指向声源的方向的可控时延。在具体实施中,对麦克风阵列中所有麦克风接收的语音信号都要做加窗分帧处理,之后再做傅里叶变换。也即,上述xk(ω)和xl(ω)均为加窗傅里叶变换。

lr(ω)为lri在全频带上的映射,例如当ω落在频带1上时,lr(ω)=lr1;当ω落在频带3上时,lr(ω)=lr3。对于语音成分高的子频带,lr(ω)会相对地高,子频带的语音存在概率也较高,将其加权作用到srp-phat,能够提高可靠语音的占比,降低噪声对声源定位的影响。此外,对于每一帧语音数据,计算分频段语音相对噪声的似然比,相较于计算每个频点直达波的“能量”包络状态的复杂度要低、鲁棒性更高。

在步骤s103可选的一种实施方式中,利用基于分频段的语音存在概率加权的srp-phat算法在与麦克风阵列对应的角度区间内搜索所述麦克风阵列的最大可控响应功率。

在一个例子中,麦克风阵列为圆阵,在-180°~180°内搜索最大的p(θ)llr-phat,并根据对应的角度θ=argmaxp(θ)llr-phat确定声源的方向。在另一个例子中,麦克风阵列为线阵,在0~180°内搜索最大的p(θ)llr-phat,并根据对应的角度θ=argmaxp(θ)llr-phat确定声源的方向。

在步骤s103可选的另一种实施方式中,为了提高声源定位的效率,先对声源的方向进行初步估计,然后在初步估计的角度区间内搜索最大可控响应功率。具体包括:

步骤s1031、利用gcc-phat算法初步估计麦克风阵列指向声源的方向,并根据初步估计的最小角度和最大角度得到第一角度区间。

步骤s1032、利用基于分频段的语音存在概率加权的srp-phat算法在所述第一角度区间内搜索所述麦克风阵列的最大可控响应功率。

在步骤s1032可选的一种实施方式中,为了进一步提高声源定位的效率,先以较大的第一步长粗搜索最大可控响应功率,再以较小的第二步长精搜索最大可控响应功率。具体包括:

利用基于分频段的语音存在概率加权的srp-phat算法在所述第一角度区间内以第一步长搜索所述麦克风阵列的最大可控响应功率和次大可控响应功率,并根据与所述最大可控响应功率对应的角度以及与所述次大可控响应功率对应的角度得到第二角度区间;

利用基于分频段的语音存在概率加权的srp-phat算法在所述第二角度区间内以第二步长搜索所述麦克风阵列的最大可控响应功率,其中,所述第二步长小于所述第一步长。

下面针对包括六个麦克风的圆阵举个具体的例子。

如图2所示,麦克风阵列为包括六个麦克风的圆阵,六个麦克风分别为mic1、mic2、mic3、mic4、mic5和mic6。选取mic1为参考麦克风,将mic1接收的语音信号划分为i个子频带,并进行vad检测,若检测到存在语音,则进行声源定位以及语音增强;若检测到不存在语音,则继续采集语音信号。其中,利用vad检测的中间结果即每个子频带的语音相对噪声的似然比,计算每个子频带的语音存在概率即分频段的语音存在概率,并将其加权到声源定位的srp-phat算法中,抑制噪声成分相应地提高语音比重,在不增加额外运算量的情况下降低了噪声对声源定位的影响。

上述麦克风阵列进行声源定位的具体流程如图3所示。利用gcc-phat对两两距离最远的mic1与mic4、mic2与mic5、mic3与mic6初步估计声源的方向,得到θ14,θ25,θ36。由于噪声混响等不可抗力的影响,这三个角度会有误差,根据最小角度和最大角度得到第一角度区间[θmin,θmax],其中,θmin=min(θ14,θ25,θ36)-θe,θmax=max(θ14,θ25,θ36)+θe,θe为初步估计声源方向的误差。

利用基于分频段的语音存在概率加权的srp-phat算法在第一角度区间[θmin,θmax]内以第一步长θstep1的角度间隔粗搜索麦克风阵列的最大可控响应功率和次大可控响应功率,并根据θ=argmaxp(θ)llr-phat得到最大可控响应功率对应的角度θ′max以及次大可控响应功率对应的角度θ′min,由此得到第二角度区间[θ′min,θ′max]。

利用基于分频段的语音存在概率加权的srp-phat算法在第二角度区间[θ′min,θ′max]内以第二步长θstep2的角度间隔精搜索麦克风阵列的最大可控响应功率,并根据θ=argmaxp(θ)llr-phat得到最大可控响应功率对应的角度,即为最终确定的声源的方向。其中,θstep2<θstep1。本例子中经过精搜索得到的声源方向已经可以满足后续波束形成的要求。

实施例2

本实施例提供一种声源定位系统400,如图4所示,包括频带划分模块401、语音检测模块402以及声源定位模块403。

所述频带划分模块用于将参考麦克风接收的语音信号划分为至少一个子频带;其中,所述参考麦克风为麦克风阵列中的其中一个麦克风。

所述语音检测模块用于在通过vad检测所述语音信号中是否存在语音的情况下,针对每个子频带根据vad检测过程中得到的语音相对噪声的似然比计算语音存在概率。

所述声源定位模块用于利用基于分频段的语音存在概率加权的srp-phat算法计算麦克风阵列的最大可控响应功率,并根据所述最大可控响应功率对应的角度确定声源的方向。

在可选的一种实施方式中,所述声源定位模块具体用于利用基于分频段的语音存在概率加权的srp-phat算法在与麦克风阵列对应的角度区间内搜索所述麦克风阵列的最大可控响应功率。

在可选的另一种实施方式中,所述声源定位模块包括:

估计单元,用于利用gcc-phat算法初步估计麦克风阵列指向声源的方向,并根据初步估计的最小角度和最大角度得到第一角度区间;

搜索单元,用于利用基于分频段的语音存在概率加权的srp-phat算法在所述第一角度区间内搜索所述麦克风阵列的最大可控响应功率。

在可选的一种实施方式中,所述搜索单元具体用于利用基于分频段的语音存在概率加权的srp-phat算法在所述第一角度区间内以第一步长搜索所述麦克风阵列的最大可控响应功率和次大可控响应功率,并根据与所述最大可控响应功率对应的角度以及与所述次大可控响应功率对应的角度得到第二角度区间;以及利用基于分频段的语音存在概率加权的srp-phat算法在所述第二角度区间内以第二步长搜索所述麦克风阵列的最大可控响应功率,其中,所述第二步长小于所述第一步长。

在可选的一种实施方式中,所述语音检测模块具体用于将vad检测过程中得到的每个子频带的语音相对噪声的似然比代入如下公式计算每个子频带的语音存在概率:

其中,pi为子频带i的语音存在概率,i=1,2,…,i,i为子频带的数量,lri为子频带i的语音相对噪声的似然比。

在可选的一种实施方式中,所述麦克风阵列中包括n个麦克风,基于分频段的语音存在概率加权的srp-phat算法的公式如下:

其中,p(θ)llr-phat为麦克风阵列的可控响应功率,lr(ω)为lri在全频带上的映射,xk(ω)为第k个麦克风接收语音信号的傅里叶变换,xl(ω)为第l个麦克风接收语音信号的傅里叶变换,τkl(θ)为第k个麦克风与第l个麦克风指向声源的方向的可控时延。

实施例3

图5为本实施例提供的一种电子设备的结构示意图。所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现实施例1的声源定位方法。图5显示的电子设备3仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

电子设备3可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备3的组件可以包括但不限于:上述至少一个处理器4、上述至少一个存储器5、连接不同系统组件(包括存储器5和处理器4)的总线6。

总线6包括数据总线、地址总线和控制总线。

存储器5可以包括易失性存储器,例如随机存取存储器(ram)51和/或高速缓存存储器52,还可以进一步包括只读存储器(rom)53。

存储器5还可以包括具有一组(至少一个)程序模块54的程序/实用工具55,这样的程序模块54包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

处理器4通过运行存储在存储器5中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1的声源定位方法。

电子设备3也可以与一个或多个外部设备7(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口8进行。并且,模型生成的设备3还可以通过网络适配器9与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器9通过总线6与模型生成的设备3的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备3使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

实施例4

本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1的声源定位方法的步骤。

其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。

在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1的声源定位方法的步骤。

其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1