声源定位及语音增强方法、装置与流程
未命名
10-17
阅读:150
评论:0
1.本发明涉及音频信号处理技术领域,特别涉及一种声源定位及语音增强方法、装置。
背景技术:
2.语音增强技术,通常是指对语音信号进行降噪处理,在通讯技术日益发达的今天,有着非常广泛的应用场景。多麦克风语音增强算法利用空间信息,不仅可以抑制平稳噪声,也可以抑制非目标位置方向的非平稳噪声,其中,目标位置方向和非目标位置方向可通过算法自适应确定,也可人为规定。
3.常常使用多麦克风语音增强算法对目标位置方向的声音进行增强,多麦克风语音增强算法可大致分为两类:求和算法和差分算法,求和算法也称为加性算法,包括delay&sum、mvdr、gsc等算法,通用性好且失真小,但其低频指向性差;而差分算法通过设置零点虽然可以完全抑制掉非目标位置方向声音,但是低频信号经过补偿后底噪容易被放大,对麦克风的间距有一定的要求。
技术实现要素:
4.本发明的目的在于提供一种声源定位及语音增强方法、装置,以解决求和算法和差分算法在低频上的问题。
5.为解决上述技术问题,本发明提供一种声源定位方法,包括以下步骤:
6.对多个麦克风进行两两配对,根据麦克风对的位置、所需的定位精度获得至少部分的所述麦克风对中两个麦克风之间的频域相位补偿斜率张量;
7.基于所述频域相位补偿斜率张量计算至少部分的所述麦克风对的频域互相关系数;
8.使用分位数法扫描待拾取的空间范围,将各所述频域互相关系数之和最大的位置记为目标位置。
9.优选地,基于所述频域相位补偿斜率张量计算至少部分的所述麦克风对的频域互相关系数的步骤包括:
10.选取至少部分的麦克风对,将所述麦克风对中的麦克风信号转换到频域;
11.对于选取的所述麦克风对,对每个所述麦克风对中其中一麦克风的频谱进行相位补偿得到补偿频谱,对其中一麦克风的补偿频谱与另一麦克风的频谱求互相关得到至少部分的所述麦克风对的频域互相关系数。
12.本发明还提供了一种语音增强方法,采用如上的声源定位方法,还包括以下步骤:
13.对多个麦克风进行两两配对并选取至少部分的麦克风对,使用延迟求和算法得到所述麦克风对在所述目标位置延迟求和结果;
14.将所述麦克风对在所述目标位置进行相位补偿后的互相关值作为增益因子;
15.将所述增益因子的均值作用于所述延迟求和结果。
16.优选地,基于如下公式获得所述增益因子:
[0017][0018]
其中,k是频点索引,k1和k2表示第n个所述麦克风对中的两个麦克风,d'
k1
(k)是麦克风k1的频谱经过相位补偿后的补偿频谱,d
k2
(k)是麦克风k2的频谱信号,h是复共轭标志。
[0019]
本发明还提供了另一种语音增强方法,采用如上的声源定位方法,还包括以下步骤:
[0020]
获取声源相对于所述目标位置的至少一阻塞方向;
[0021]
对多个麦克风进行两两配对并选取至少部分的麦克风对,使用差分阵列方法计算所述麦克风对在所述阻塞方向的差分结果,并将补偿因子作用于所述差分结果;
[0022]
选取所述差分结果中各个所述阻塞方向具有最小值的阻塞频谱作为输出。
[0023]
优选地,所述补偿因子基于如下公式获得:
[0024][0025]
其中,δω(n,q,k)为第n个所述麦克风对的频谱幅值补偿增益,k是频点索引,q表示所述阻塞方向有q个,τ表示声波在第n个麦克风对的两个麦克风之间传递所需时间。
[0026]
优选地,δω(n,q,k)基于如下公式获得:
[0027]
δω(n,q,k)=angle
blo
(n,q,k)-angle
aim
(n,k)
[0028]
angle
aim
(n,k)=slopematrix(ai,aj,n)*k
[0029]
angle
blo
(n,q,k)=slopematrix(bi(q),bj(q),n)*k
[0030]
其中,k是频点索引,所述目标位置坐标设置为(ai,aj),所述阻塞方向坐标设置为(bi(q),bj(q)),q表示阻塞方向有q个,angle
aim
(n,k)和angle
blo
(n,q,k)分别表示第n个麦克风对在所述目标位置和所述阻塞方向的补偿相位。
[0031]
优选地,基于如下公式将所述阻塞方向上的声音通过差分去除得到所述差分结果:
[0032]
d'
k1
(n,q,k)=d
k1
(k)*exp(j*angle
blo
(n,q,k))
[0033]
block(n,q,k)=d
k2-d'
k1
(n,q,k)
[0034]
其中,d'
k1
(n,q,k)表示第n个麦克风对中的麦克风k1在所述阻塞方向上相位补偿后的补偿频谱,d
k2
(k)表示麦克风k2的频谱,k是频点索引。
[0035]
优选地,基于如下公式将所述补偿因子作用到所述差分结果上:
[0036][0037]
其中,block(n,q,k)表示第n对麦克风的所述差分结果,k是频点索引,q表示阻塞方向有q个。
[0038]
本发明还提供了一种语音增强装置,包括:
[0039]
频域相位补偿斜率张量计算单元,用于对多个麦克风进行两两配对,根据麦克风对的位置、所需的定位精度获得至少部分的所述麦克风对中两个麦克风之间的频域相位补偿斜率张量;
[0040]
麦克风相关性计算单元,基于所述频域相位补偿斜率张量计算至少部分的所述麦克风对的频域互相关系数;
[0041]
声源定位单元,使用分位数法扫描待拾取的空间范围,将各所述频域互相关系数之和最大的位置记为目标位置;
[0042]
第一语音增强单元,用于使用延迟求和算法得到所述麦克风对在所述目标位置延迟求和结果,将所述麦克风对在所述目标位置进行相位补偿后的互相关值作为增益因子,将所述增益因子的均值作用于所述延迟求和结果;
[0043]
第二语音增强单元,用于获取相对于所述目标位置的至少一阻塞方向,对麦克风进行两两配对并选取至少部分的麦克风对,使用差分阵列方法计算所述麦克风对在所述阻塞方向的差分结果,并将补偿因子作用于所述差分结果,选取所述差分结果中各个所述阻塞方向具有最小值的阻塞频谱作为输出。
[0044]
在本发明提供的声源定位及语音增强方法、装置中,首先可以通过利用分位数方法搜索空间区域,定位声源所在的目标位置方向或者自定义目标位置方向,然后基于所需的目标位置方向,对目标位置方向的声源进行对齐求和增强或者对阻塞方向的声源进行差分阻塞,其中,还对得到的求和结果设置补偿因子,以解决求和方法的低频指向性差的问题,以及对差分结果设置相应的增益因子解决差分阵列方法不适应多麦克风和麦克风间距较大的情况,还可根据需要选择多个阻塞方向,提高对环境噪声的抑制能力。
附图说明
[0045]
图1是现有技术的双麦克风的方位估计示意图;
[0046]
图2a-图2b是现有技术的延迟求和(delay&sum)方法增强示意图;
[0047]
图3是现有技术中声源模型的定位示意图;
[0048]
图4是本发明实施例一提供的声源定位方法的流程示意图;
[0049]
图5是本发明实施例二提供的语音增强方法的流程示意图;
[0050]
图6是本发明实施例三提供的语音增强方法的流程示意图;
[0051]
图7是本发明实施例中麦克风对的声源语音增强方法的详细流程示意图;
[0052]
图8是本发明实施例四提供的语音增强装置的结构示意图;
[0053]
图9是本发明实施例五提供的电子设备的结构示意图。
[0054]
图中,
[0055]
100、频域相位补偿斜率张量计算单元;200、麦克对相关性计算单元;300、声源定位单元;400、第一语音增强单元;500、第二语音增强单元;600、处理器;700、输入装置;800、存储器;900、输出装置。
具体实施方式
[0056]
以下结合附图和具体实施例对本发明提出的声源定位及语音增强方法、装置作进一步详细说明。根据下面说明,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
[0057]
发明人研究发现对于多麦克风阵列的语音增强算法,求和算法和差分算法本质上是利用阵列信号的相位关系进行的空域滤波,两者在低频上均存在问题,求和算法的低频
指向性差,差分算法的低频通过补偿后底噪容易被放大。
[0058]
多麦克风阵列可利用beamforming(波束成形)算法,对目标位置方向的声音进行增强,同时对非目标位置方向的声音进行抑制,对于复杂的声学环境下的降噪任务,有着天然的优势。beamforming算法是利用同一声源到达不同麦克风的相位不同,对特定方向的声音进行增强。如图1所示,以两个麦克风为例,根据目标位置方向θ和a,b两个麦克风间距l可确定出到达时间差τ。
[0059]
τ=sinθ*l/c(1)
[0060]
其中,c是声速。当时间差τ确认之后,常用的一个语音增强方法是delay and sum(延迟求和算法),即将麦克风信号对齐然后相加,如图2所示。
[0061]
基于此,本发明实的核心思想在于,对于求和算法和差分算法,设置相应的增益因子和补偿因子作用在求和结果和差分结果上,从而解决求和算法和差分算法在低频上的问题。
[0062]
本发明基于多麦克风阵列的语音增强分成两大步骤:对声源进行定位和增强固定方向的声源,其中对声源进行定位的步骤也可省略,替换为人为规定的目标位置方向,下面对于声源定位方法和语音增强方法进行详细阐述。
[0063]
实施例一
[0064]
具体的,请参考图4,其为本发明实施例一的示意图。如图4所示,一种声源定位方法,包括以下步骤:
[0065]
对多个麦克风进行两两配对,根据麦克风对的位置、所需的定位精度获得至少部分的所述麦克风对中两个麦克风之间的频域相位补偿斜率张量;
[0066]
基于所述频域相位补偿斜率张量计算至少部分的所述麦克风对的频域互相关系数;
[0067]
使用分位数法扫描待拾取的空间范围,将各所述频域互相关系数之和最大的位置记为目标位置。
[0068]
具体的,基于麦克风对中两个麦克风获得频域相位补偿斜率张量。由式(1)可知,入射角度θ和时延τ有一一对应的关系θ=arcsin(cτ/l),其中,c是声速,l是两个麦克风的间距。对于多个麦克风的阵列,以麦克风在阵列同一平面内为例,入射角度和各个麦克风之间的时延仍然有一一对应关系。将入射角度范围替换成一个无限大的平面,则入射角度在横向和纵向上的角度范围均为[-π/2,π/2]。
[0069]
如图3所示,麦克风阵列(图中array处)位于一个平面(图中i处)内,阵列前方与平面法线呈一定角度的方向入射平面声波,当声源(图中source处)发出的声波的入射方向一定时(入射角度为θ),麦克风阵列的相位关系也是一定的,也就是说入射方向和麦克风间的相位差具有一一对应的关系。可根据此原理定位声源位置。将角度范围[-π/2,π/2]进行等角度划分为2*dpi+1份,每个角度都对应平面上的一个点。将麦克风阵列中心位置在笛卡尔坐标系中置于原点,入射平面到阵列距离为d,阵列的法线作为x轴,则入射平面的空间坐标为(d,y,z),其中d是入射平面到阵列的距离,y和z表示声源入射角度对应平面上的坐标。求出每个入射点(d,y,z)到麦克风阵列每个麦克风的欧氏距离,可得到张量distmatrix。distmatrix维度是(2*dpi+1)*(2*dpi+1)*m,其中m表示麦克风数量。每个入射点都对应着m
个麦克风距离,有个麦克风对的距离差值,考虑计算量,选择其中的n个麦克风对的距离差值:
[0070]
dmatrix(i,j,n)=distmatrix(i,j,k2)-distmatrix(i,j,k1)
[0071]
i,j∈[1,2*dpi+1],n∈[1,n],k1,k2∈[1,m])
ꢀꢀꢀ
(2)
[0072]
dmatrix(i,j,n)表示第i,j个入射点位置到第k2个麦克风的距离与第k1个麦克风的距离差值。当距离d趋于无穷大时,该差值等效于平面波的入射时的距离差。距离差值得到后,便可计算出与之对应的频域相位差斜率张量:
[0073]
slopematrix(i,j,n)=dmatrix(i,j,n)*fs*2π/(c*len)
ꢀꢀꢀ
(3)
[0074]
其中,fs表示信号采样率,c表示声速,len是fft(快速傅里叶变换)长度。slopematrix(i,j,n)表示位置(i,j)处的声源到达第k1个麦克风与到达第k2个麦克风相位对齐所要的频域相位补偿斜率张量。slopematrix(i,j,n)乘上频点索引k,则表示具体频点的相位差。张量slopematrix只需在算法初始化的时候计算一次。
[0075]
找到slopematrix每个麦克风对的最大的斜率slopemax[n],并根据所需的定位精度对最大斜率进行等间距划分成l份,得到斜率差值slopediff[n]=slopemax[n]/l,n表示麦克风对的数目。
[0076]
具体的,基于所述频域相位补偿斜率张量计算至少部分的所述麦克风对的频域互相关系数的步骤包括:
[0077]
选取至少部分的麦克风对,将所述麦克风对中的麦克风信号转换到频域;
[0078]
对于选取的所述麦克风对,对每个所述麦克风对中其中一麦克风的频谱进行相位补偿得到补偿频谱,对其中一麦克风的补偿频谱与另一麦克风的频谱求互相关得到至少部分的所述麦克风对的频域互相关系数。
[0079]
对每个麦克风信号进行分帧加窗,并通过傅里叶变换获得每个麦克风的频谱信号dm,其中,下标m表示麦克风索引,m∈[1,m],m表示麦克风数量,对于第n对麦克风对,将相位差补偿到麦克风k1的频谱信号,并与麦克风k2的频域信号求相关:
[0080]
d'
k1
(l,k)=d
k1
(k)*exp(j*slopediff(n)*l*k)
ꢀꢀꢀ
(4)
[0081][0082]
d'
k1
(l,k)是麦克风k1的补偿频谱,k是频点索引,l是斜率补偿索引,l∈[-l,l],式(5)表示对麦克风k1的补偿频谱和麦克风k2频谱求互功率谱并取其中的实数部分对频点求和,可以理解为求两个频谱的互相关系数。当对应频点相位差在π/2以内时,所得的值为正;当相位差为π/2时,所得值为零;当相位差位于π/2到π之间时,所得值为负。上标h是复共轭标志,len表示fft长度,n表示第n个麦克风对。
[0083]
由式(5)可以得出,当两个麦克风信号完全对齐时,corrn(l)具有最大值,如果两个麦克风信号不相关或者没有对齐,corrn(l)更小甚至为负值。corrn(l)的长度为2l+1,表示的是第n个麦克风对的互相关系数。
[0084]
在一种实施方式中,为减少计算量,在式(5)中可以不必对每个频点进行计算,选择一定频率区间的能量大的频点进行计算。
[0085]
可以理解的,使用求和的方式获得互相关系数,式(5)可替换成:
[0086][0087]
使用求和的方式同样能够表征两个频谱的相关性,相对于求积的方式,求和的方式所需的计算量相对更小。
[0088]
然后使用分位数法,搜索张量slopematrix(i,j,n)空间位置,找到对应的斜率对应的l的值,代入corrn(l),使各麦克风对的互相关值的和最大,最大值对应的位置(i,j)就是声源位置。
[0089][0089][0091]
采用实施例一中的声源定位方法进行定位,可大大减少计算量,且由于其直接采用的是麦克风对的形式进行计算,所得的部分参数(如麦克风的频谱信号)以及麦克风的配对信息,可直接应用于后续的语音增强方法(如实施例二和实施例三)中,并配合实施例一中式(5),使用求和的方式并选择一定频率区间的能量大的频点进行计算获得互相关系数,能够进一步降低计算量。
[0092]
实施例二
[0093]
具体的,请参考图5,其为本发明实施例二的示意图。一种语音增强方法,包括以下步骤:
[0094]
采用实施例一的声源定位方法获取声源所在的目标位置;
[0095]
对多个麦克风进行两两配对并选取至少部分的麦克风对,使用延迟求和算法得到所述麦克风对在所述目标位置延迟求和结果;
[0096]
将所述麦克风对在所述目标位置进行相位补偿后的互相关值作为增益因子;
[0097]
将所述增益因子的均值作用于所述延迟求和结果。
[0098]
使用麦克风对的平均相关性作为增益因子对延迟求和结果进行增益或抑制,适用于多麦克风且麦克风间距较大的情况下,在麦克风间距较大的情况下或者说麦克风间距与时域信号的波长相接近的情况下,采用本实施例的语音增强方法在低频上可以得到较好的增强效果。
[0099]
在一种实施方式中,在选用实施例一中的方法时,可以直接采用实施例一中配对后的麦克风对,减少计算量,或者重新选择麦克风对,有助于灵活选择麦克风对的组合。
[0100]
在一种实施方式中,人为规定所需加强的目标位置方向。
[0101]
对所需要的目标位置方向,选取麦克风对使用延迟求和算法(delay&sum),具体如下:
[0102]
d'
k1
(k)=d
k1
(k)*exp(j*slopematrix(i,j,n)*k)
ꢀꢀꢀ
(8)
[0103]
beamf=d
k2
+d'
k1
ꢀꢀꢀ
(9)
[0104]
其中,slopematrix(i,j,n)是第i,j个声源入射点的位置到第k2个麦克风与第k1个麦克风的频域相位差斜率张量,可参考式(3)求得频域相位差斜率张量,d'
k1
(k)是麦克风k1的补偿频谱,d
k2
则表示麦克风k2的频谱,beamf表示delay&sum结果即延迟求和结果。在此结果上,可进一步对延迟求和结果进行处理:
[0105]
具体的,基于如下公式获得所述增益因子:
[0106]
[0107]
其中,k是频点索引,k1和k2表示第n个所述麦克风对中的两个麦克风,d'
k1
(k)是麦克风k1经过相位补偿后的频谱信号,d
k2
(k)是麦克风k2的频谱信号,h是复共轭标志。对于式(10),当d
k2
(k)与d'
k1
(k)相位相同时,gain1结果为1,当相位差是π,gain1结果为-1,相位差为其余值,则值gain1值位于(-1,1)。
[0108]
然后,求得增益因子的均值,并将其作用于延迟求和结果:
[0109][0110]
beamf(k)=beamf(k)*gain1(k)
ꢀꢀꢀ
(12)
[0111]
当所有麦克风对的频谱相位匹配时,式(11)的值也接近于1,否则小于1。用麦克风对的平均相关性作为抑制因子对delay&sum结果进行抑制。在麦克风间距足够大,以上操作在低频也能获得较好的效果,避免延迟求和方法在低频指向性差的问题。假如麦克风间距较小,非目标位置方向的声源在低频的相位也是几乎相同的,用上述实施例二的操作较难抑制非目标位置方向声源,为此提出如下的实施例三解决这一问题,在麦克风间距远小于波长的情况下,选取实施例三的语音增强方法。
[0112]
实施例三
[0113]
具体的,请参考图6,其为本发明实施例三的示意图。如图6所示,一种语音增强方法,包括以下步骤:
[0114]
采用实施例一中的声源定位方法获取声源所在的目标位置,以及相对于所述目标位置的至少一阻塞方向;
[0115]
对多个麦克风进行两两配对并选取至少部分的麦克风对,使用差分阵列方法计算所述麦克风对在所述阻塞方向的差分结果,并将补偿因子作用于所述差分结果;
[0116]
选取所述差分结果中各个所述阻塞方向具有最小值的阻塞频谱作为输出。
[0117]
一般的差分麦克风阵列可以解决麦克风间距小导致的指向性问题,但并不适用于多麦克风情况,目标位置方向的低频信号容易失真,当麦克风间距较大时,零点的范围小,抑制区域比较小。本方法采用麦克风对的形式使用endfire算法,之后将麦克风对的结果合并,通过设置多个阻塞方向来解决大间距麦克风阵列的抑制区域较小的问题,并给予差分结果相应的补偿因子来补偿信号在目标位置方向上低频的损失,后选取对各个方向的抑制结果取能量最小值对应的频谱作为输出。
[0118]
在一种实施方式中在选用实施例一中的方法时,可以直接采用实施例一中配对后的麦克风对,减少计算量,或者重新选择麦克风对,有助于灵活选择麦克风对的组合。
[0119]
在一种实施方式中,人为规定所需的目标位置。
[0120]
首先设置目标位置和阻塞方向的坐标,阻塞方向也即不需要加强的非目标位置方向,假定所述目标位置坐标设置为(ai,aj),所述阻塞方向坐标设置为(bi(q),bj(q)),q表示阻塞有q个。第n个麦克风对在目标位置方向和阻塞方向对应的补偿相位为:
[0121]
angle
aim
(n,k)=slopematrix(ai,aj,n)*k
ꢀꢀꢀ
(13)
[0122]
angle
blo
(n,q,k)=slopematrix(bi(q),bj(q),n)*k
ꢀꢀꢀ
(14)
[0123]
其中,k为频点索引,angle
aim
(n,k)和angle
blo
(n,q,k)分别表示第n个麦克风对在所述目标位置和所述阻塞方向对应的补偿相位。
[0124]
其中,δω(n,q,k)为第n个所述麦克风对的频谱幅值补偿增益:
[0125]
δω(n,q,k)=angle
blo
(n,q,k)-angle
aim
(n,k)
ꢀꢀꢀ
(15)
[0126]
所述补偿因子基于如下公式获得:
[0127][0128]
其δω表示目标位置方向和阻塞方向的相位差,τ表示声波在第n个麦克风对的两个麦克风之间传递所需时间,τ=l/c。gain2(n,q,k)表示第n个麦克风对第q个抑制方向第k个频点所需的补偿。将gain2作用到差分结果上,可补偿目标位置方向上低频的能量损失。
[0129]
并且所述差分结果基于如下公式将所述阻塞方向上的声音通过差分去除:
[0130]
d'
k1
(n,q,k)=d
k1
(k)*exp(j*angle
blo
(n,q,k))
ꢀꢀꢀ
(17)
[0131]
block(n,q,k)=d
k2-d'
k1
(n,q,k)
ꢀꢀꢀ
(18)
[0132]
d'
k1
(n,q,k)表示麦克风k1在所述阻塞方向上相位补偿后的补偿频谱,d
k2
(k)表示麦克风k2的频谱,通过式(17)对阻塞方向进行相位补偿的到麦克风k1的补偿频谱,将d
k1
与d
k2
阻塞方向声音进行对齐;进一步的,使用式(18)将阻塞方向的声音通过差分去掉,这时,目标位置方向的声音也会受到抑制,特别是低频,后基于如下公式将所述补偿因子作用到所述差分结果上:
[0133][0134]
通过上式(19)补偿目标位置方向声音的能量损失,并对麦克风对取平均值,缓解目标位置方向声音的失真。基于如下公式对各个方向的抑制结果取能量最小值对应的频谱作为输出:
[0135]
block(k)=min
l
(|block(l,k)|)
ꢀꢀꢀ
(20)
[0136]
实施例四
[0137]
本实施例可应用在电子设备上,图7是本发明提供的多麦克风语音增强方案总的流程图,具体可拆分为以下步骤:根据麦克风位置、选择的麦克风对,计算出频域相位补偿斜率张量;将每个麦克风时域信号进行分帧和时频变换,每个麦克风对求频域互相关系数;用分位数方法,将频域相位补偿斜率张量合入互相关序列进行求和,定位值最大的位置作为声源位置;若用求和形式语音增强,计算麦克风对在目标位置方向相位补偿后的和,并计算每个麦克风对相位补偿后的互相关值作为增益,将增益作用于求和结果作为输出;若采用差分形式的语音增强,则计算各个设定阻塞方向的阻塞频谱同时给予能量补偿,最后选择能量最小方向的频谱作为输出。
[0138]
具体的,请参考图8,其为本发明实施例四的示意图,结合图4-图8进行详细阐述。一种语音增强装置,包括:
[0139]
频域相位补偿斜率张量计算单元100,用于对多个麦克风进行两两配对,根据麦克风对的位置、所需的定位精度获得至少部分的所述麦克风对中两个麦克风之间的频域相位补偿斜率张量。
[0140]
根据各个麦克风具体位置、需要的角度分辨率和选择的麦克风对。将需要定位的空间的范围投影到一个平面上,根据角度分辨率将平面分成一个个节点。计算出每个节点到每个麦克风的距离distmatrix,维度是(2*dpi+1)*(2*dpi+1)*m,m表示麦克风数量。计算
选择的麦克风对之间的距离差值,得到张量dmatrix(i,j,n),维度是(2*dpi+1)*(2*dpi+1)*n,n表示麦克风对的数目,由于每个入射点,都对应着m个麦克风距离,有个麦克风对的距离差值,考虑到计算量,选择其中的n个麦克风对的距离差值。利用式(3)得到频域相位补偿斜率张量slopematrix,维度是(2*dpi+1)*(2*dpi+1)*n,表示选取的麦克风对对于每个空间位置声源的相位补齐所需的频域斜率。
[0141]
在一种实施方式中,计算选取的麦克风对的最大斜率,并将之平均细分,得到细分后的斜率差值slopediff[n]。可以理解的,频域相位补偿斜率张量计算单元100中的这一步骤仅需在算法初始化进行一次,所占计算量可忽略。
[0142]
麦克风相关性计算单元200,基于所述频域相位补偿斜率张量计算至少部分的所述麦克风对的频域互相关系数。
[0143]
对麦克风时域信号进行分帧、加窗和dft,得到麦克风的频域信号dm。对第n个麦克风对的中麦克风k1和麦克风k2的频谱d
k1
、d
k2
,对麦克风k1的频谱进行相位补偿然后和麦克风k2的频谱求互相关,选择出一定频率区间的能量大的频点计算每个细分斜率的互相关值,得到频域互相关序列corrn。序列维度是2*l+1,corrn值越大,表示两个麦克风信号对齐程度越高,相位补偿斜率值对应的位置越有可能是声源位置。
[0144]
声源定位单元300,使用分位数法扫描待拾取的空间范围,将各所述频域互相关系数之和最大的位置记为目标位置。用分位数方法搜索待拾取的空间范围,每个空间节点对应着每个麦克风对的相位补偿斜率,每个相位补偿斜率对应着互相关序列corrn的具体互相关系数。将使n个互相关系数之和最大的位置作为声源位置(ai,aj)。
[0145]
第一语音增强单元400,用于使用延迟求和算法得到所述麦克风对在所述目标位置延迟求和结果,将所述麦克风对在所述目标位置进行相位补偿后的互相关值作为增益因子,将所述增益因子的均值作用于所述延迟求和结果。声源位置(ai,aj)可以是基于上述声源定位单元300求得的,也可以是人为设置的。对(ai,aj)位置处的麦克风对进行对齐相加得到beamf,然后求对齐后的互相关系数。如果完全对齐,则互相关系数等于1,其余情况值均小于1甚至小于0。对互相关系数按麦克风对数进行求平均,得到平均的互相关系数作为最后的增益作用在beamf进一步抑制旁瓣声音。
[0146]
第一语音增强单元400的方法在麦克风距离较大时效果较好,能够解决低频指向性问题。但对于小麦克风间距(间距远小于波长),各方向声源的低频相位很难分离,效果欠佳,因此,在小麦克风间距的情况下,选取第二语音增强单元500对于麦克风进行处理。
[0147]
第二语音增强单元500,用于获取相对于所述目标位置的至少一阻塞方向,对麦克风进行两两配对并选取至少部分的麦克风对,使用差分阵列方法计算所述麦克风对在所述阻塞方向的差分结果,并将补偿因子作用于所述差分结果,选取所述差分结果中各个所述阻塞方向具有最小值的阻塞频谱作为输出。
[0148]
可以理解的,对目标位置方向的声音信号进行对齐然后相加,可增强该方向声音的信噪比;对阻塞方向的声音对齐然后相减,则理论上可以完全消除该方向的声音。由于低频位置目标位置方向和阻塞方向的相位较难分离,相减的同时也会损失目标位置方向频点幅值。通过式(13)-(16)得到的补偿增益可缓解目标位置方向低频的衰减,并采取了设置多个非目标位置方向来解决麦克风距离大抑制区域较小的问题。
[0149]
在一种实施方式中,还包括判断单元(未图示),用于判断麦克风间距和当前麦克风接收到的信号波长之间的关系,然后选取第一语音单元和第二语音单元来处理信号,当麦克风间距远小于波长时,则选取第二语音单元,当麦克风间距和波长相接近时,则选取第一语音单元。
[0150]
可以理解的,麦克风间距往往是固定的,而麦克风阵列所接收到的声音信号的波长则可能随声源改变,两个语音增强单元,可以根据实际场景选择性使用。
[0151]
实施例五
[0152]
图9是本发明一示例性实施例提供的电子设备的结构。该电子设备可以是语音增强装置或与它们独立的单机设备,该单机设备可以与语音增强装置进行通信,以从它们接收所采集到的输入信号。图9图示了根据本公开实施例的电子设备的框图。如图9所示,电子设备包括一个或多个处理器700和存储器800。
[0153]
处理器700可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。
[0154]
存储器800可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器600可以运行所述程序指令,以实现上文所述的本公开的各个实施例的软件程序的声源定位方法以及/或者其他期望的功能。在一个示例中,电子设备还可以包括:输入装置700和输出装置900,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
[0155]
此外,该输入装置700还可以包括例如键盘、鼠标等等。
[0156]
该输出装置900可以向外部输出各种信息。该输出设备900可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
[0157]
当然,为了简化,图9中仅示出了该电子设备中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备还可以包括任何其他适当的组件。
[0158]
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“实施例”部分中描述的根据本公开各种实施例的声源定位方法及语音增强方法中的步骤。
[0159]
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
[0160]
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的声源定位方法中的步骤。
[0161]
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0162]
综上可见,在本发明实施例提供的声源定位及语音增强方法、装置中,首先进行声源定位,然后增强目标位置方向的声音,由于是采用麦克风对的方式,所以对于多麦克(》2)场景可用互相关和差分的形式进行语音增强,并通过设置增益因子和补偿因子进一步处理求和结果和差分结果,分别解决低频指向性差和环境噪声的问题,且可以灵活选择麦克风对的组合,提升定位效果和语音增强效果。
[0163]
上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
技术特征:
1.一种声源定位方法,其特征在于,包括以下步骤:对多个麦克风进行两两配对,根据麦克风对的位置、所需的定位精度获得至少部分的所述麦克风对中两个麦克风之间的频域相位补偿斜率张量;基于所述频域相位补偿斜率张量计算至少部分的所述麦克风对的频域互相关系数;使用分位数法扫描待拾取的空间范围,将各所述频域互相关系数之和最大的位置记为目标位置。2.如权利要求1所述的声源定位方法,其特征在于,基于所述频域相位补偿斜率张量计算至少部分的所述麦克风对的频域互相关系数的步骤包括:选取至少部分的麦克风对,将所述麦克风对中的麦克风信号转换到频域;对于选取的所述麦克风对,对每个所述麦克风对中其中一麦克风的频谱进行相位补偿得到补偿频谱,对其中一麦克风的补偿频谱与另一麦克风的频谱求互相关得到至少部分的所述麦克风对的频域互相关系数。3.一种语音增强方法,其特征在于,采用如权利要求1-2任一项所述的声源定位方法获取声源所在的目标位置,还包括以下步骤:对多个麦克风进行两两配对并选取至少部分的麦克风对,使用延迟求和算法得到所述麦克风对在所述目标位置延迟求和结果;将所述麦克风对在所述目标位置进行相位补偿后的互相关值作为增益因子;将所述增益因子的均值作用于所述延迟求和结果。4.如权利要求3所述的语音增强方法,其特征在于,基于如下公式获得所述增益因子:其中,k是频点索引,k1和k2表示第n个所述麦克风对中的两个麦克风,d'
k1
(k)是麦克风k1的频谱经过相位补偿后的补偿频谱,d
k2
(k)是麦克风k2的频谱信号,h是复共轭标志。5.一种语音增强方法,其特征在于,采用如权利要求1-2任一项所述的声源定位方法获取声源所在的目标位置,还包括以下步骤:获取声源相对于所述目标位置的至少一阻塞方向;对多个麦克风进行两两配对并选取至少部分的麦克风对,使用差分阵列方法计算所述麦克风对在所述阻塞方向的差分结果,并将补偿因子作用于所述差分结果;选取所述差分结果中各个所述阻塞方向具有最小值的阻塞频谱作为输出。6.如权利要求5所述的语音增强方法,其特征在于,所述补偿因子基于如下公式获得:其中,δω(n,q,k)为第n个所述麦克风对的频谱幅值补偿增益,k是频点索引,q表示所述阻塞方向有q个,τ表示声波在第n个麦克风对的两个麦克风之间传递所需时间。7.如权利要求6所述的语音增强方法,其特征在于,δω(n,q,k)基于如下公式获得:δω(n,q,k)=angle
blo
(n,q,k)-angle
aim
(n,k)angle
aim
(n,k)=slopematrix(ai,aj,n)*kangle
blo
(n,q,k)=slopematrix(bi(q),bj(q),n)*k
其中,k是频点索引,所述目标位置坐标设置为(ai,aj),所述阻塞方向坐标设置为(bi(q),bj(q)),q表示阻塞方向有q个,angle
aim
(n,k)和angle
blo
(n,q,k)分别表示第n个麦克风对在所述目标位置和所述阻塞方向的补偿相位。8.如权利要求5所述的语音增强方法,其特征在于,基于如下公式将所述阻塞方向上的声音通过差分去除得到所述差分结果:d
′
k1
(n,q,k)=d
k1
(k)*exp(j*angle
blo
(n,q,k))block(n,q,k)=d
k2-d
′
k1
(n,q,k)其中,d'
k1
(n,q,k)表示第n个麦克风对中的麦克风k1在所述阻塞方向上相位补偿后的补偿频谱,d
k2
(k)表示麦克风k2的频谱,k是频点索引。9.如权利要求8所述的语音增强方法,其特征在于,基于如下公式将所述补偿因子作用到所述差分结果上:其中,block(n,q,k)表示第n对麦克风的所述差分结果,k是频点索引,q表示阻塞方向有q个。10.一种语音增强装置,其特征在于,包括:频域相位补偿斜率张量计算单元,用于对多个麦克风进行两两配对,根据麦克风对的位置、所需的定位精度获得至少部分的所述麦克风对中两个麦克风之间的频域相位补偿斜率张量;麦克风相关性计算单元,基于所述频域相位补偿斜率张量计算至少部分的所述麦克风对的频域互相关系数;声源定位单元,使用分位数法扫描待拾取的空间范围,将各所述频域互相关系数之和最大的位置记为目标位置;第一语音增强单元,用于使用延迟求和算法得到所述麦克风对在所述目标位置延迟求和结果,将所述麦克风对在所述目标位置进行相位补偿后的互相关值作为增益因子,将所述增益因子的均值作用于所述延迟求和结果;第二语音增强单元,用于获取相对于所述目标位置的至少一阻塞方向,对麦克风进行两两配对并选取至少部分的麦克风对,使用差分阵列方法计算所述麦克风对在所述阻塞方向的差分结果,并将补偿因子作用于所述差分结果,选取所述差分结果中各个所述阻塞方向具有最小值的阻塞频谱作为输出。
技术总结
本发明公开了一种声源定位及语音增强方法、装置,属于音频信号处理技术领域,该声源定位方法,包括以下步骤:对多个麦克风进行两两配对,根据麦克风对的位置、所需的定位精度获得至少部分的所述麦克风对中两个麦克风之间的频域相位补偿斜率张量;基于所述频域相位补偿斜率张量计算至少部分的所述麦克风对的频域互相关系数;使用分位数法扫描待拾取的空间范围,将各所述频域互相关系数之和最大的位置记为目标位置。通过设置相应的增益因子和补偿因子作用在求和结果和差分结果上,从而分别解决低频指向性差和环境噪声的问题,且可以灵活选择麦克风对的组合,提升定位效果和语音增强效果。效果。效果。
技术研发人员:罗本彪 邹灵琦 董鹏宇 居彩霞 尹东
受保护的技术使用者:上海富瀚微电子股份有限公司
技术研发日:2023.08.21
技术公布日:2023/10/11
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种算法流程编辑方法及相关装置与流程 下一篇:一种防爆蓄电池及其生产工艺的制作方法
