第十章 声源定位(DOA)
DOA(direction of arrival),在三维空间中,除了时域、频域、还可以利用空域信息对信号进行处理,基于阵列麦克的远场语音识别场景,一些声源分离技术(beamforming, blind source seperation)会要使用到声源方位信息。声源定位技术并不仅限于单个目标源的定位,且对于ASR场景的声源目标是宽带信号。 此外,定位出声源方,还有益于产品的交互体验(寻向灯,以及电机转动姿态)。
声源定位算法需要考虑鲁棒性和角分辨率两项指标。有资料表明FRIDA和MUSIC算法的鲁棒性较好,其次是SRP-PHAT和TOPS,再次WAVES和CSSM算法。在角分辨率这块FRIDA也比较好,MUSIC和SRP-PHAT次之,基于相关性的方法比非相关性方法差。
假设入射的声波是平面波,且夹角是,则有:
以第一个麦克风为参考点,则在t时刻,第k个声源到达地麦克风的信号可表示为:
是入射方向性,是入射强度,对于无方向性声源,可以假设其等于1。
则第m个麦克采集到的带噪声的信号可表示成下式:
为便于表示,可以将e的指数部分用表示,则有:
则采集到的信号可用如下阵列表示:
其中:
因为后续会有频域方法计算DOA,这里给出时间上的延迟和频域上的关系:
GCC-SRP互相关技术
互相关方法具有计算量小,实时性好而被大多数系统中使用,其基于阵元之间的差异时间差(Time-Delay/Frequency-Delay)进而提取出声源距离阵元的位置信息,根据不同的麦克风对就可以在三维空间中唯一确定一个声源,互相关方法也是有缺点的,其抗噪性能差,在混响场景准确性也会降低,也有一些算法针对混响场景进行了优化,如SRP-PHAT。此外还有一些波束扫描算法,基本思想是在可能的空间点中做波束合成,然后根据合成后的各个方向上的功率最大值认为是声源方法。 两个麦克风之间的TDOA估计可以通过麦克风之间广义互相关(GCC, generalized cross-correlation)计算得到,如下两个麦克风。
这里:
其中,是频域权重函数,是互相关的频域计算。
频域权重函数对延迟估计的影响较大。
- 经典互相关法 理想远场模型
- 平滑互相关变换(SCOT, smoothed coherence transform)
这里推导一下SCOT适应场景:
假设两个麦克风采集到的信息的信噪比相等,则有:
从上式可以看出,计算的准确性适用于信噪比较高的场合,但是对于高混响场景来说效果就不行,实际效果也确实是这样.
- 相位变换法 权重变成由相位组成而不是互功率谱幅度。
由此可得,这和SCOT在SNR趋于无穷大时结果一致. GCC算法在适度噪声和无混响环境下较好,且计算量小,跟踪实时性好,对于混响,需要采用倒谱滤波器以滤除混响的影响.
在工程实现上时域卷积等于频域相乘,在频域里进行计算以减小计算量,且在对频点的处理上,声源发声所在的频点能量较高,可以选择一部分频点以减少无关频点的扰动影响.
MUSIC算法
MUSIC算法(MUsical Signal Classification)基于子空间法,MUSIC方法具有分辨率高的特性。用到二阶统计量信息,根据式5采集到的信号,得协方差矩阵可表示为:
是转置共轭运算符。假设信号和噪声是不相关的,则式5带入式19可得下式:
其中是声源信号自相关矩阵,假设噪声之间是不相关的,则噪声的协方差矩阵退化成如下的单位阵:
在实际应用中,无法精确得到,采用近似的方法获得:
是的最大似然估计,当估计值无线逼近真实值。
由于,是一个满秩矩阵,其有N个正实数特征值,对应的有N个特征向量,又因为是艾米尔特矩阵,则特征向量是正交的:
特征值按照降序排列如下:
25式中靠前的D个特征值对应于信号,剩下的N-D个特征值对应于噪声。
特征和特征向量满足下式:
另是最小特征值,则有:
将23带入27得:
则可以得到:
因为是DXD的满秩矩阵,则逆矩阵是存在的,则29两边同乘以
则进一步可得:
31表明,噪声的特征向量是和A列正交的,A的每一行是信号的一个方向。MUSIC思想就是用噪声的特征向量计算生源的方位。
噪声矩阵构建如下:
根据噪声矩阵,可以得到空间谱:
MUSIC算法流程是: 首先估计采集信号的特征矩阵:
进行特征值分解得到:
根据特征值的顺序,根据目标数D,得到噪声矩阵:
变换,根据33计算空间谱能量,能量峰值所在位置即为目标声源的方向。
对MUSIC算法的改进和实现,有root-MUSIC。
TOPS算法
test of orthogonality of projected subspaces。该方法通过信号和噪声子空间多个频率成分的正交关系估计声源方位,TOPS可用于一维和二维阵列,和CSSM(coherent signal subspace method)及WAVES之列宽带相关方法不同,该方法不需要对初始信号预处理,基于互相关的方法在低信号比时可以获得较好的效果,非互相关的方法在高信噪比可以获得比较好的效果,TOPS在SNR处在中等范围是可以或获得较好的效果。
大多数宽带子空间方法通过滤波器组或者DFT的方法将信号分解为多个子带信号.根据图1和式子1,用DFT方法将信号变换到频域得到:
如果选定的频率范围是,则DFT的结果对应于选定K个bin值,则可以表示成下式:
其中:
,是的方向向量,D是声源个数,N是麦克风阵列数量。
式42的每一列都是维,在频率为时对应的主瓣是:
d是声源的索引,为了后面公式简单,忽略频率,将写作,同理,写为。
假设D个信号是不相关的,则根据式子19和20,是满秩矩阵,则信号子空间矩阵和噪声子空间矩阵可以表示如下:
是采集到信号协方差矩阵的特征值按降序排序对应的特征向量。
TOPS使用对角酉变换矩阵,变换阵的第k个对角元素表示如下:
变换矩阵可以保持主瓣不变。
令,在和满足如下关系时:
有下面两个距离空间是等价的:
当和时,可以将为的矩阵定义如下:
,是假设的方位角。定义TOPS矩阵的矩阵如下:
由于真实的互相关矩阵是无法获得的,使用子空间投影法可以减少对其估计的误差,定义零空间的投影矩阵:
则通过下式可以得到修正后的TOPS矩阵:
这可以减少噪声子空间中泄漏的信号子空间成分。
TOPS算法的步骤如下: 1.将麦克风采集到的信号分成J个块; 2.计算J个块的DFT; 3.对于第j个块,在预选的上选择; 4.根据估计的协方差矩阵,用奇异值SVD分解法计算信号子空间和噪声子空间, 5.对于假设的方向,使用58和50计算 6.通过下式准则估计得到。
FRIDA算法
FRI(finite rate of innovation sampling based algorithm),该算法实现的方法已经开源了,源码点击