利用块稀疏特性的压缩感知麦克风阵列声源定位
2019-09-06李剑汶章宇栋黄惠祥
李剑汶 章宇栋 童 峰 黄惠祥
(厦门大学水声通信与海洋信息技术教育部重点实验室,厦门,361100)
引 言
随着音/视频会议、语音增强和智能家居系统等领域需求的不断提升,麦克风阵列已成为语音信号研究领域的热点,而良好的声源定位技术是保证麦克风阵列具有较好工作性能的前提。传统的声源定位算法主要分为基于最大输出功率的可控波束形成的定位算法[1]、时延估计定位算法[2]和基于高分辨率谱估计的定位算法[3]三大类。
可控波束形成的定位算法对语音信号和噪声信号的频谱特性有较强的依赖性,运算量复杂,使得该算法的应用范围较小[4];时延估计定位算法运算量较小,李芳兰等[5]用时延补偿构造可调波束形成器对声源方向进行估计,利用阵列的空间增益来提高麦克风阵列定位性能。但是,在混响及噪声较强的实际应用环境下,麦克风阵列获取精确时延值的难度较大,同时其定位精度会受到信号采样率影响[2]。基于高分辨率谱估计的定位算法主要针对窄带远场信号进行处理,然而目前大部分的语音信号主要为宽带自然语音信号,极大限制了该算法的应用范围[6]。
近年来,随着压缩感知领域的不断发展,压缩感知也逐渐被应用于麦克风阵列声源定位中。Wang等[7]针对语音信号子频带发生局部畸变的情况,利用最大相关熵准则对传统多任务贝叶斯压缩感知声源定位算法进行改进。仿真实验表明,改进后的算法与传统的多任务贝叶斯压缩感知声源定位算法相比,具有更高的定位准确率和鲁棒性。针对强混响、强噪声环境传统声源定位算法性能急剧下降的问题[8],赵小燕等[9]提出了一种基于压缩感知的麦克风阵列声源定位算法。该算法以室内混响环境下的麦克风阵列接收信号的稀疏性建立模型,将不同位置的房间冲激响应作为特征来构建字典,通过正交匹配追踪(Orthogonal matching pursuit,OMP)算法[10]重构稀疏信号,对目标声源进行定位。仿真实验表明,与基于联合控响应功率和相位变换(Steered response power phase transform,SRP-PHAT)声源定位算法[11]相比,该算法的定位准确率更高。但在实际远场环境下,由于声源指向性、混响等原因,麦克风阵列接收信号的稀疏度存在块稀疏特性,导致该算法的精度下降。
在传统压缩感知理论[12]中,稀疏信号的稀疏分布特性较为理想,但在实际麦克风阵列远场声源定位等应用场景中,由于远场声源自身的指向性不够尖锐、混响等影响因素,压缩感知麦阵声源定位中声源方向向量稀疏性呈现一定的块稀疏结构。此时,采用本质上是l1范数优化的OMP算法或其他基于常见l0,l1范数的稀疏恢复方法将由于l0,l1范数本身无法很好地描述块稀疏特性,从而导致稀疏恢复性能下降。
文献[13]基于块稀疏分布规律特性[14],提出了一种能够识别块稀疏结构的块稀疏似零范数。基于块稀疏似零范数(Block approximatedl0,BAL0)的压缩感知恢复算法是通过引入块稀疏似零范数约束项,推导出复数域块稀疏似零范数恢复迭代算法,对块稀疏似零范数进行梯度下降迭代并将梯度解投影至空间解来获得稀疏估计解[14]。
本文针对麦克风阵列实际应用,在压缩感知算法的基础上,考虑到远场声源自身的指向性不够尖锐、混响等因素,引入块稀疏似零范数进行声源方向向量重构,进而获取目标声源方位。实验结果表明:该方法相比于传统的声源定位算法和基于OMP的压缩感知声源定位算法具有更高的定位精度。
1 算 法
1.1 压缩感知定位算法
对于室内远场环境,令M元麦克风阵列的第m个麦克风的接收信号为xm(n)(m=1,2,…,M),则
式中:n表示时间坐标;hm(rs,n)表示声源位置rs到第m个麦克风的房间传输响应;s(n)表示声源位于rs处的语音信号;ωm(n)表示第m个麦克风接收到的噪声信号。麦克风信号在频域下可表示为
式中Xm(k),Hm(rs,k),S(k),Wm(k)分别为xm(n),hm(rs,n),s(n),ωm(n)的离散傅里叶变换,可用矢量表示为
式中:X(k)为频域的麦克风接收信号矢量;H(rs,k)为声源位置rs处的房间频域响应矢量,W(k)为频域的噪声矢量。
令声源的空间位置集为{r1,r2,…,rI},其中空间位置集个数I远大于目标声源个数,则冗余的房间频域响应矩阵为
将冗余的房间频域响应矩阵D(k)称为字典,式(3)可改写为
文献[9]通过仿真证明了理想环境下采用OMP的压缩感知方法能有效地通过麦克风阵列对单声源进行定位。但在实际环境中,由于声源指向性不够尖锐、混响等原因,声源方向向量可能呈块稀疏分布特性,如图1所示。图1(a)为经典稀疏模型,图1(b)为呈现块稀疏分布特性的稀疏模型。在实际应用场景中,由于声源存在一定的波束宽度,同时考虑到混响等因素,声源方向的邻近角度也会不同程度存在语音声信号能量,即声源方向向量在具有稀疏性的同时呈现块稀疏的分布特性。考虑到传统压缩感知声源定位算法以声源方向向量具有理想稀疏特性为前提,块稀疏特性的存在会影响传统压缩感知定位算法的定位性能。
图1 稀疏模型结构示意图Fig.1 Illustration of sparse model structure
1.2 块稀疏似零范数稀疏估计算法
对于源信号向量S,其块稀疏度定义为
式中:‖s‖表示对向量s求欧式范数,supp表示对应向量的支持集,|supp(·)|表示支持集的个数。式(6)表示源信号向量非零稀疏块的个数,且n=Ld,其中d为块长度,并假设共有L个块。用s[l]表示第l个块,则
若满足‖s‖2,0≤κ,称S为块稀疏度为κ的信号。
由式(5)可得,源信号向量的块稀疏信号恢复可表示为
式中ε是与噪声能量有关的非负实数。BAL0算法则首先对信道进行分块并对所分块进行块稀疏识别,最后对所选稀疏块进行抽头估计。
考虑到源信号向量的复数域情况,定义一个计算块稀疏的函数为
文献[14]给出了采用梯度下降及梯度解投影混合迭代的块稀疏似零范数稀疏恢复算法。本文采用文献[14]算法进行块稀疏似零范数稀疏恢复的迭代求解。求解过程为:令A+表示对矩阵A求伪逆,则有初始值
迭代过程为
更新:σl+1=βσl。设σth为终止阈值,则当σj<σth时,停止迭代并输出估计结果。
2 实 验
2.1 实验设置
为了验证本文算法的有效性,在厦门大学翔安校区希平楼大厅进行了麦阵声源定位实验。大厅尺寸为16 m×16 m×3 m,为较典型的办公、家用结构,墙壁和地面均为大理石和瓷砖并有若干玻璃门窗分布。实验采用七元麦克风均匀圆形阵列,阵列直径为15 cm。实验语音信号为测试者语音声信号。声源距离麦阵为5 m,设置声源以间隔15°分别放置在环绕1周的24个不同方向进行麦克风阵列声源定位测试。语音信号原始信噪比为11.58 dB,实验中通过叠加实录背景环境噪声构成不同信噪比的测试语音,用于评估分析不同信噪比下的各种定位算法的定位性能。
实验比较了时延累加算法(Delay-and-sum,DS)、SRP-PHAT算法、OMP压缩感知方法和本文BAL0压缩感知定位算法(下文简称BAL0算法)的性能。实验中用到的参数如表1所示。
表1 实验参数Tab.1 Experimental parameters
2.2 实验结果与讨论
本文对实际采集到的信号进行指向性分析处理,结果如图2所示,可以看出,在声源实际方位的相邻角度存在的一定的能量,呈现出块稀疏特性。采用均方根误差(Root mean square error,RMSE)来评估各个算法的定位性能,其计算公式为[15]
式中:θi为算法得到的定位角度值,θr为声源的真实角度值;N为DOA算法分辨的空间角度数。
图2 指向性分析结果Fig.2 Directivity analysis result
不同信号信噪比下各种算法的DOA性能评估值RMSE如表2所示。可以看出,在不同信号信噪比下,采用BAL0算法的RMSE值最低;在信噪比为11.58 dB和5.56 dB的情况下,DS算法的RMSE值优于OMP算法,且均优于SRP-PHAT;在信噪比为2.03 dB的情况下,DS算法的RMSE值优于SRP-PHAT算法,且均优于OMP算法,可见BAL0的算法性能优于其他算法。同时,在不同信噪比下,BAL0算法的RMSE值较为稳定,说明BAL0算法对于不同信噪比情况下的定位性能具有较好的鲁棒性。
表2 不同信噪比下各种算法的DOA估计的RMSE值Tab.2 RMSE of DOA estimate of different algorithms at different SNRs
实验还针对本文算法的部分参数的敏感性进行分析评估,包括使用不同语音信号频点数以及不同块搜索长度下的BAL0算法的定位性能分析。由于人说话的语音信号频率主要分布在300~3 400 Hz,对接收语音信号选用合适的频点数,可以充分利用人语音信号的频率特性,更好地对声源方向向量进行稀疏恢复。同时,不同搜索块长度会影响到算法对块稀疏多径特征的检测性能,进而影响到算法声源方向向量的稀疏恢复能力。
采用不同语音信号频点数下BAL0算法的DOA性能如表3所示。可以看出,当使用频点数较少时,BAL0算法的RMSE值相对较高;当频点数设置为14~16点时,BAL0算法的RMSE值有所下降;当频点数进一步增加时,BAL0算法的RMSE值又明显提高。为了保证BAL0算法的定位性能,同时为了降低计算量,实验过程中,将BAL0算法的使用频点数参数设置为14,即选取麦克风接收信号矢量X(k)中频率为0~1.75 kHz的语音信号部分,为测试者语音信号能量较高的频率分段。
采用不同搜索块长度下的BAL0算法的DOA性能如表4所示。可以看出,当BAL0算法在搜索块长度为1时,退化为AL0算法,其RMSE值相对较高;当BAL0算法搜索块长度设置为3时,RMSE值相对较低;当BAL0算法进一步增加时,RMSE又明显提高,这是由于当算法的搜索块长度设置过大时,不利于算法对块稀疏特征的检测,导致定位精度下降。为了保证BAL0算法的定位性能,实验过程中将BAL0的搜索块长度参数设置为3。
表3 不同频点数下BAL0算法的DOA性能Tab.3 DOA performance of BAL0 algorithm at different frequency points
表4 不同搜索块长度下BAL0算法的DOA性能Tab.4 DOA performance of BAL0 algorithm at different search block lengths
本文还对各种算法的计算复杂度进行比较。在算法参数设置不变的情况下,基于WIN7的64位机操作系统和MATLAB(R2008a)版本进行了算法运行时间的测试。测试硬件配置为:英特尔酷睿i5处理器3.30 GHz,内存16 GB。测试时将每种算法运行4次后,分别记录运行时间并求平均,得到的算法运行时间如表5所示。可以看出,本文BAL0算法的运行时间略高于OMP算法,这是因为BAL0算法中引入了块稀疏似零范数的非线性计算,使得计算量有所提高。
表5 各种算法的运行时间Tab.5 Running time of different algorithms ms
3 结束语
由于声源方向向量具有稀疏性,压缩感知技术被引入用于麦克风阵列声源方向估计。但是在麦克风阵列远场声源定位实际应用场景中,考虑到声源具有一定的波束宽度以及存在混响等因素导致声源方向向量稀疏度呈现块稀疏分布特征的特点,引入块稀疏似零范数进行声源方向向量的压缩感知稀疏估计来改善稀疏恢复性能,提高定位性能。实验结果验证了本文方法的有效性,且本文方法在较低信噪比情况下,具有较好的鲁棒性。