基于小型阵列MIC的机器人声源定位方法

摘要 – 声源定位(SSL)是智能家庭机器人听觉系统的一个主要功能。SRP-PHAT广泛的应用于机器人声源定位系统的一种鲁棒性定位方法,但是,这种定位方法由于需要进行大范围的搜索,需要较长的时间进行定位,实时性不强。本文提出一种适用于小型阵列MIC的SRP-PATH加速方法。实验表明,与传统的方法相比,这种方法可以减少30.6%的待搜索位置,减少46.7%的错误率。

abstract – Sound source localization (SSL) is a major function of robot auditory systems for intelligent home robots. The steered response power-phase transform (SRP-PHAT) is a widely used method for robust SSL. However, it is too slow to run in real time, since SRP-PHAT searches a large number of candidate sound source locations. This paper proposes a search space clustering method designed to speed up the SRPPHAT based sound source localization algorithm for intelligent home robots equipped with small scale microphone arrays. The proposed method reduces the number of candidate sound source locations by 30.6% and achieves 46.7% error reduction compared to conventional methods.

关键字:声源定位;SRP;空间搜索簇;小型阵列MIC;机器人听觉系统;智能家庭机器人;

INTRODUCTION

随着人形机器人的进步,智能服务机器人将逐渐的走向我们的生活,他们将替代人类做家务,照顾老年人等等,然而在机器人技术的发展进程当中, 为了建立人类与机器人之间的有效沟通,更多关注的是机器人的运动和视觉系统,但语音识别才是人机交流最具前景性的交流工具,因此,机器人听觉系统是智能家庭机器人中一个关键部分。

机器人听觉系统中,声源定位又是家庭机器人环境当中进行人机交互的核心部分。当一个用户与人形机器人进行语言交流时,机器人必须能够自动定位到用户的位置。图1 描绘了采用Samsung Electronics开发的小型服务机器人的声源定位场景。例如,如果用户距离机器人一段距离说“过来!”,机器人必须能够辨识到用户的位置,从而做出回应。而且声源定位的准确评估可以通过多通道波束形成技术增加语音质量。另外,声源定位也是一种在黑暗中寻找说话者的方法。

到目前位置,已经有很多的声源定位算法被提出,例如:基于声达时间差方法,基于高分辨率频谱分析方法,基于SRP方法(。。。)。其中SRP-PATH是在有回响室内环境下极具鲁棒性的一种方法。然而,SRP-PHAT是一种网格式空间搜索技术,它需要检查大量可能是声源方向的位置。因此,SRP-PHAT不适用于实时系统当中,比如:计算性能受限的小型服务机器人。

有很多方法被提出来改进SRP-PHAT的实时性问题。比如:[7]中从粗糙到精细的层级搜索方法,【但这种方法会在搜索完成之前,过早的根据最大功率排除可能存在的声源】;[8]中是一种折中的方法,它首先采用TDOA方法产生一个待确定的声源空间集合,然后采用SRP-PHAT进行网格搜索这个空间集合。如果第一步的TDOA不成功,第二步中的SRP-PHAT也就会失败。这种方法受限于TDOA产生可能位置集合,故而降低了低信噪比中的声源定位性能。[9]中采用互相关函数计算时延,从而确定声源位置。这种方法建立一种时延到待选位置集的拟映射表,它将时延映射到位置对应的输出功率,从而找到最大输出功率。然而,这种方法也可能无法找到最大功率位置集合,因为它只搜索相关时延映射过去的少量位置。总体来说,这几种方法都不太可行,他们的搜索结果都可能与全局网格搜索不同,特别是在噪声回响环境中。

在配备小型MIC阵列的机器人中,如果采用实时SRP-PHAT方法,我们一直关注总是可以以最大功率定位声源位置有效搜索方法。声源位置的解析度取决于SRP-PHAT方法所依赖的采样率和MIC阵列几何结构。如果我们将整个搜索空间划分为几个子区域,每个子区域都只包含相同TDOA的声音信号点,并且仅检查子区域中具有代表性的点来确定最高功率声源,我们就可以大幅度缩减传统网格搜索方法的计算量。在这篇论文当中,我们提出空间搜索聚类的方法来将整个搜索空间划分为几个子搜索区域,每个区域都仅包含相同TDOA点。这种方法构建了一个查找表,该表包含了不同声音信号的TDOA值对应区域的完整集合。通过搜索子区域中的代表性点可以大幅度缩减计算量,并且与全局网格搜索相比,并不会降低声源定位的精度。我们已经在4MIC阵列小型服务机器人的听觉系统上有效的应用这种方法。

这篇论文后面是这样组织的。第二三部分,我们回顾下SRP-PHAT理论并为小规模MIC阵列改进实时SRP-PHAT提出搜索空间聚类方法。第四五部分评估了采用搜索空间聚类改进的SRP-PHAT方法在仿真和真实房间环境中的性能。第六部分我们做了个总结。

SRP-PHAT回顾

对于N MIC阵列,给出信号源:xn(t),第n个MIC在时间t时接收到信号,该MIC延时累加后的波束信号为:y(t,q),其定义如下:

1
y(t,q)=n从1到N对xn(t+t(n,q))的累加和

其中,t(n,q)是信号从位置q到第n个mic的时间延迟。对于复杂噪声环境,比如回响,则可以采用具有权重函数的过滤累加波束信号,在频率域,过滤累加波束信号如下:

1
Y(w,q)=n从1到N对Gn(w)Xn(w)e(jwt(n,q))的累加和

其中,Xn(w)和Gn(w)是第n个MIC信号和它的相关过滤器经过傅里叶变换后的函数。上式中,应用过滤器后,通过调节延迟累加和可以使得MIC信号相位对齐。

基于SRP的声源定位算法将整个MIC阵列聚焦在某个空间点q上,并且计算整个MIC阵列的输出功率P(q),公式如下:

1
P(q)=积分计算

其中….,在SRP-PHAT中,滤波器的定义如下:

1
滤波器函数

对每个待选位置点计算SRP P(q)后,具有最大输出功率的点q’就是声源的位置:

1
q'=argmaxP(q)

因为SRP-PHAT采用网格搜索方法来找到最大输出功率点q’,它需要对三维空间中每一个网格点进行SRP计算,所以具有很高的计算代价。下一节,我们会提出一种搜索空间聚类的方法在不降低定位精度的前提条件下降低SRP-PHAT的搜索空间。

搜索空间聚类

虽然SRP-PHAT计算每个网格点的输出功率,并以最大输出功率来找到声源位置,但受限于模数转化采样率,候选位置的输出功率并不都相同【??】,如式3所示,待选位置的输出功率取决于所有MIC的信号及它们由于聚焦同一位置而产生的相位差,而且因为信号由模拟转换成数字,相位差也是离散的。如果任意两个待选点的相位差(TDOA)相近或相同,则他们在离散的时间域里就是相同,两个位置的输出的功率也就无法由式3作出区分。因此,如果将具有相同TDOA值的候选位置聚类到一起,并且将每个聚集组的代表坐标预先存储在查找表中,则可以大大减少计算成本,因为只有查找表中预先计算的坐标才能进行搜索,而不需要搜索网格中的每个点。

采用自上而下预先构建查找表,首先,位置q对每个MIC对的相位差s(k,l,q)可以通过下式获得:

1
s(k,l,q)=round(r*(t(l,q)-t(k,q)))

其中,r为采样率。最初,整个搜索空间被聚集为单个块。如果块不够小并且包含至少两个具有不同TDOA的点,则将其划分为八个较小尺寸的块。这种划分过程一直持续下去,直到每个块中仅包含相同TDOA的点。例如:考虑一个4 MIC阵列的情况,对于位置q,我们可以计算6个TDOA值,从而构成一个TDOA向量,如下:

1
sq=[s(1,2,q), s(1,3,q), s(1,4,q), s(2,3,q), s(2,4,q), s(3,4,q)]T

给定一个块,如图2(a),我们可以在块的8个顶点上进行计算,获得8个TDOA向量,如果这8个向量不相同,将这个块划分为8个更小的块,如图a(b)所示。划分之后,对TDOA向量相同的块进行合并。最后,将每个块的中心点存储在查找表中。这种对搜索空间聚类的方法对于小规模MIC阵列系统是非常行之有效的,因为小规模MIC阵列系统当中,具有不同TDOA向量的中心点数要远少于网格中候选位置点的总和。搜索空间聚类算法总结如表1。

模拟环境下评估

我们采用图10中描述的MIC阵列及候选声源位置来模拟声音数据,利用所提出的搜索空间聚类方法评估SRP-PHAT,以分析各种SNR和混响条件下的性能。声音数据是在562m3的房间内生成的,MIC采用0.17*0.17m2的方形阵列,阵列的中心在房间的(2.5, 2,
0.3)位置。声源放置在多个位置,如图3所示。声源高度为1.2m和1.6m。我们在三种不同的SNR条件(10,20和30db)和三种不同的混响时间(20,200和200毫秒)下评估SRP-PHAT和SSC的性能。信号源采用白噪声进行污染以产生不同的SNR信号。声音源持续时间为30s,帧长度为128ms,采样率为16KHz。

我们将SRP-PHAT与SSC的性能与使用网格搜索方案的常规SRP-PHAT进行了比较,以分析精度。对于传统的SRP-PHAT,我们使用了1至20厘米的各种格栅尺寸,栅格为1cm,传统SRP-PHAT必须搜索6万个候选位置,作为对比,SSC后产生的查找表中只有5203个代表性位置,也就是说搜索空间减少了11531倍。

图4和图5展示出在不同SNR和不同回响时间的声源定位性能:

两张图………

精度用方位角上估计角度与真正角度的百分比来描述,估计角度位于真正方位角的正负10度内算作正确。图4在三种不同的SNR条件(10,20和30dB)下,将SRP-PHAT与SSC的声源定位精度与传统SRP-PHAT进行比较,栅格尺寸采用1cm、10cm、15cm和20cm。类似地,图5比较了三种不同混响时间(20,200和300毫秒)的声源定位精度,图5的平均SNR为30dB。可以看出,不管SNR和回响时间如何,采用SSC改进的SRP-PHAT性能在各栅格尺寸下皆优于传统SRP-PHAT。图4和图5还展示出采用SSC改进的SRP-PHAT方法具有和传统SRP-PHAT以1cm栅格完全搜索具有相同的精度。这表明采用SSC改进的SRP-PHAT时钟可以定位到最大输出功率声源。

真实环境下评估

我们在真实的室内环境当中记录声音数据,并采用SSC改进后的SRP-PHAT评估性能,MIC和声源位置,房间大小,声音数据等都和模拟环境相同,房间的回响时间约为530ms,平均SNR约为23dB。只有SNR大于20dB的帧才会被用于声源定位。表II是SSC改进的SRP-PHAT和传统SRP-PHAT在不同栅格下对位置精度,侯选位置和处理时间三个方面进行对比。从表II可以看出,与传统SRP-PHAT相比,在栅格为20cm时,SSC改进的SPR-PHAT候选位置减少了30.6%,然而方向角误差减少了41.9%,垂直方向误差减少50.7%,SSC改进的SRP-PHAT与常规SRP-PHAT方向相比,栅格为1cm时,侯选位置减少了11531倍,而且在位置精度方面没有任何的损失,SSC改进的SRP-PHAT运行时间为0.56s。

图7采用直方图的方式将SSC改进的SRP-PHAT与传统SRP-PHAT在性能方面进行对比,图中展示出本文所提出的方法与传统SRP-PHAT相比,栅格为20cm时,方位角精度提升4.7%,垂直方向精度提升8.1%。对应的方位角错误率减少41.9,垂直方向错误率减少50.7%。

结论

本文提出一种新颖的SRP-PHAT搜索空间聚类方法,它可以在没有任何性能下降的情况下大幅减少计算时间。这种方法通过显著减少搜索空间来实现性能增益,使用TDOA估计来保证缩减后的搜索空间总是包含具有最高功率的位置点。与[7][8][9]中的常规方法不同,SSC改进的SRP-PHAT时钟可以找到最大输出功率位置,因此本文所提出的SSC改进SRP-PHAT方法可以用于声源定位。

本文所提的SSC改进SRP-PHAT方法与采用网格搜索的传统SRP-PHAT相比具有很多的优点。首先,在不同SNR和回响时间的情况下,SSC改进SRP-PHAT方法总是可以找到全局最大输出功率点;第二,SSC改进SRP-PHAT方法可以获得大幅缩减后的侯选位置留给SRP-PHAT搜索,急剧减少运算时间;第三,SSC改进SRP-PHAT方法实现了错误率的下降。综上,本文所提出的方法可以成功的应用到具有4MIC阵列的小型家用机器人的实时听觉系统中。

本文所提出的方法可以大大减少搜索空间的侯选位置,从而大大减少小型MIC阵列的SRP-PHAT的计算成本,虽然我们观察到使用大尺寸麦克风阵列时搜索空间大小的显着减少,但是降低速度并不像小型麦克风阵列那样显着。我们正在开发可扩展到较大系统的搜索空间聚类算法。

Brick wechat
扫一扫,用手机看更方便(^ ◕ᴥ◕ ^)