APP下载

基于麦克风阵列的不一致性的校正

2018-07-26王汀洲朱梦尧吴修坤

复旦学报(自然科学版) 2018年3期
关键词:混响麦克风声源

王汀洲,朱梦尧,吴修坤

(上海大学 通信与信息工程学院,上海 200444)

麦克风阵列由一定数目的麦克风组成,可以很好地对空间信息进行捕获.针对不同的实际问题,麦克风阵列比单个麦克风可以更为灵活地进行处理.麦克风阵列可有效进行噪声抑制、去混响、回声抑制等,在视频会议、语音识别以及可视/车载电话等领域得到了广泛的应用和研究[1].

麦克风阵列信号处理的一个主要功能是估计信号源的位置.目前,基于麦克风阵列的声源定位方法大致可分为3类: 1) 基于子空间的定位技术[2];2) 基于可控波束形成的定位技术[2];3) 基于到达时延差(Time Differences Of Arrival, TDOA)的定位技术[2].

但在具体实践中,这些方法的性能都会有所下降,其原因是因为假设的阵列模型过于简单化、理想化,使得实际的麦克风阵列与假设的阵列模型之间存在误差[3].这误差由多种原因造成,比如房间混响的影响、多径效应的影响、麦克风之间的差异、放大电路增益的不一致、麦克风阵列加工精度低等.为了提高阵列性能,一般从两个方面入手: 一种是从定位算法本身入手;一种是对麦克风阵列进行校正,使其更接近理想值.本文采用第二种方法,对麦克风阵列进行校正.

目前,麦克风阵列校正方法主要分为自校正方法和有源校正方法[4].自校正方法主要在没有或者很少有信号源的先验条件的情况下进行校正,该方法无需设置校正源或者很少设置校正源,这是其优点,但是因为需要对阵列误差与波达方向联合迭代,涉及到多变量循环求最优解,这导致计算量大,且若初始值选择不当,也许会导致最终收敛到局部最优点而不是全局最优点,或者结果不收敛,这在实际应用中有较大限制.有源校正方法是在很多先验条件都知晓的情况下进行校正,如信号源个数、方向、信号参数等,该方法虽然有设置校正源的操作负担,但也因有额外的校正源,大大简化计算过程,同时有较高的误差估计精度[5].

结合不同的定位方法和校正方法,又有对应不同的校正方式: 在基于子空间的定位技术中使用自校正方法[5-8],使用有源校正方法[4,9-11];在基于可控波束形成的定位技术中使用自校正方法[12],使用有源校正方法[10-11,13].而在基于到达时延差的定位技术中,更多的是对时延估计算法本身的改进,如广义互相关(Generalized Cross-Correlation, GCC)方法[14-15]、自适应最小均方方法[16]、基于空间的特征值分解方法[17]等.这些方法皆需集成在某一类定位算法中,形成特定的校正方法.

本文针对这种情况提出一种新的校正方法,该方法属于有源校正,具有简化计算过程的优点,且不局限于某一定位算法,可以作为一种前置模块用于不同定位算法,且不会影响其他算法.该方法将麦克风不一致性造成的时延误差看作定值,并为了保证误差计算精确,引入分数时延算法与拉格朗日内插算法设计的分数级别的有限长单位冲激响应(Finite Impulse Response, FIR)滤波器[18],通过引入估计的麦克风不一致性造成的固定时延,对麦克风阵列进行校正.该校正方法效果比上述方式略有不足,但简单有效.在本文中,使用基于到达时延差的方法来验证该方法的有效性,本文的方法对改善定位效果具有一定的作用,且计算量小.

1 时延估计及校正

1.1 GCC时延估计算法

假设两麦克风Mic1,Mic2接收到的信号x1(t)和x2(t)表示如下:

x1(t)=s(t-τ1)+h1(t)*s(t),

(1)

x2(t)=s(t-τ2)+h2(t)*s(t),

(2)

式中:s(t)为声源信号;h1(t)和h2(t)是房间混响的冲击响应;“*”表示信号卷积,h1(t)*s(t)和h2(t)*s(t)为混响噪声;τ1和τ2是两麦克风收到信号的不同时延.

通过广义互相关时延估计算法(GCC)计算时延τ12:

τ12=arg maxR12(n),

(3)

这里我们采用GCC-PHAT算法[19],GCC-PHAT加权函数对混响噪声有较好的鲁棒性,其φ(f)如下所示:

(4)

(5)

1.2 分数阶时延估计算法

通过该方法我们可以得到两信号的时延值,但是得到的时延精度可能会小于一个采样单元,在假设整数采样时延单元估计准确的情况下,可以利用分数时延算法估计小于一个采样单元的部分.目前最常用的分数时延算法有信号内插法、线性内插法、Sinc内插法等,但这些方法估计精度受限于内插倍数,复杂度较高.这里采用二次抛物线插值方法[20]对相关函数的极值位置进行拟合,该方法基于相关峰前后两点的信息进行抛物线插值,提高了分数时延精度,同时不增加计算量.

假设我们的互相关谱的极值为R(0),则取R(0)前后各两点为R(-2),R(-1),R(1),R(2),其满足单调性R(-2)

(6)

将5点代入式(6),则可以分别求出二次抛物线系数a,b和c,可知二次抛物线最大值对应的位置为:

(7)

(8)

(9)

将式(8),(9)代入式(7),可得

(10)

该方法不止可以用五点插值,三点、七点甚至九点插值法皆可用来计算分数时延,但是综合考虑,三点插值利用的点数过少,导致误差增大,影响分数时延精度,而七点插值和九点插值因插值点数过多,也许相关峰前后会不满足之前所述的单调性,这样就会限制该方法的使用范围,因此使用五点插值是比较合理的.

1.3 确定麦克风不一致性造成的时延

由文献[21]知,麦克风阵列的性能在90°时受到的影响最小,越偏离90°越有可能受到房间混响、多径效应等多种因素影响.因麦克风阵列越偏离90°受到的影响越多,仅针对麦克风不一致性的修正,在将麦克风不一致性造成的时延误差看为定值的前提下,可将90°计算的时延误差看作麦克风阵列不一致性造成的时延误差,则麦克风造成的时延误差为:

τmic=Δτ=τideal-τmea.

(11)

则由麦克风不一致性造成的时延误差τmic_delay为:

(12)

式中:N为声源在90°时测量的次数.通过这种方法可以确定麦克风不一致性造成的时延误差.

1.4 分数时延滤波器设计

由上述方法我们可以比较精确地得到分数级别的时延,为了准确补偿分数级别的时延,利用拉格朗日内插法[18]设计的分数级别的FIR滤波器,该方法简单有效,可很好地设置指定的时延值.对于给定的分数时延D,有滤波器的系数如下所示:

(13)

式中:N为滤波器阶数;n为滤波器系数.通过式(13)可得该FIR滤波器的系数,如表1所示.

表1 N=1,2,3时拉格朗日分数时延滤波器系数

3 实验验证

3.1 实验内容

为了验证该方法在实际环境中的效果,在一个大小为8m×7m×5m的会议室进行实验,A组麦克风阵列采用4个A单元作阵元,B组麦克风阵列采用2个B单元作阵元.A组阵元间隔为6cm,其型号为XMOS®Xcore-200,B组阵元间隔为10cm,其型号为AIHUA AWA14604,所使用的声卡为Roland UA-1010,将麦克风阵元摆成线性阵列,其实物图如图1所示.

图1 两类麦克风阵列实物图Fig.1 The picture of two sets of microphone arrays

将麦克风阵列阵元所在直线和房间边保持平行,考虑到线性阵列的对称性,只在麦克风阵列的右半部分摆放声源,在30°~90°间,以10°为间隔共7个位置分别摆放声源,每个角度的声源记录10次.

在本实验中,为了尽可能考虑人耳对声音的感知频率,采用20Hz~20kHz的扫频信号,通过处理分析可得到房间冲击响应,为了尽可能地消除房间混响对麦克风阵列性能的影响,将房间冲击响应的反射和混响部分加窗取零,通过这种方式来尽可能消除房间混响对麦克风阵列性能的影响.麦克风阵列以44.1kHz的采样率去采样声源.通过以上方式可得到麦克风阵列两两阵元之间的时延差,然后将处理过的两个房间冲击响应分别经过同一阶数,不同时延的FIR滤波器,该时延由式(12)得出的麦克风阵列不一致性造成的时延误差τmic_delay确定,可以达到补偿麦克风阵列不一致性的时延.

3.2 实验结果分析

将90°测得的信号再经过处理后的不同的房间冲击响应通过相位变换的广义互相关算法,在一致性较好的麦克风阵列可得整数时延差为0,再经过分数级别的时延估计算法,可以得到τmea,τmea为测量得到的分数时延,在90°测10次,分别经过式(12)处理,并取平均,可得由麦克风不一致性造成的时延值.将此时延值分别在不同角度对信号进行校正,将经过校正后的信号时延差与未校正的信号时延差进行对比,其结果如图2所示.

从图2可以看出,麦克风阵列经过校正后时延误差与未经过校正的时延误差相比显著缩小,说明该方法有效.同时可以发现从30°到90°,随着声源角度越来越偏离麦克风阵列的中轴线,其时延误差大体上呈减少趋势,这符合客观规律,因声源在麦克风阵列中轴线处,麦克风阵列阵元间的时延最小,而互相关算法算出的时延也较小,相对应时延误差也越小;而当声源偏离中轴线后,麦克风阵列采集的信号会受到多种因素影响,如多径效应等,同时互相关算法的估计时延值也会出现较大偏差,相对应的时延误差也会较大.

而图3所示的B组麦克风阵列的结果也可以说明上述分析是正确的,表明该方法有效.

在每个角度上对每组麦克风阵列上相邻麦克风求出的时延值求出相应的角度,并对每组信号进行校正,将校正后的角度平均,与未校正的角度进行对比,其结果如表2所示.

图2 A组麦克风阵列在各个角度校正与未校正的时延误差Fig.2 A group microphone array estimate the error of the delay at each angle

图3 B组麦克风阵列在各个角度校正与未校正的时延误差Fig.3 B group microphone array estimate the error of the delay at each angle

表2 A组麦克风阵列未校正估计的角度与校正后估计的角度

由表2可以看出,麦克风阵列经过校正后估计角度与未经过校正的估计角度相比明显更接近于真实值.并且通过对实验结果分析可以发现,声源越靠近麦克风阵列中轴线,其校正效果越好,声源越偏离麦克风阵列中轴线,校正效果较差,这与上述分析的理论结果相同,因为越靠近中轴线,信号所受到的外界干扰因素越少,校正效果越好,甚至在90°完全不需要校正.

同时通过该表可以计算修正后的角度误差的平均值大约在1.3742°左右.

文献[6]中的两种方法如图4所示.

图4 文献[6]中两种方法中在不同迭代次数的角度误差Fig.4 DOA estimation errors versus iteration number for Method 1 and 2 by Ref.[6]

通过比较发现,本文的方法在实际环境中的实验效果大致与文献中的第二类方法在仿真实验中迭代4~6次的效果相当.相较于文献[6],本文算法从方位估计算法的优化角度出发,具有很好的可拓展性,且在具有一定的校正效果的同时,计算量小.

4 结 语

本文提出了一种针对麦克风阵列不一致性造成分数时延的校正方法,进行了两类麦克风阵列的实际测量并验证数据.实验结果表明: 该方法计算量小,实验有效,可以作为不同定位方法的前置模块,使实验结果更接近理想值,起到了校正麦克风阵列的作用,因此,该方法的提出为麦克风阵列的校正提供了一种新的参考方法.

猜你喜欢

混响麦克风声源
GRAS发布新12Bx系列、支持TEDS的测量麦克风电源模块
虚拟声源定位的等效源近场声全息算法
Binaural Rendering based on Linear Differential Microphone Array and Ambisonic Reproduction
基于GCC-nearest时延估计的室内声源定位
海洋混响特性分析与建模仿真研究∗
浅谈音响效果器的应用
麦克风的艺术
运用内积相关性结合迭代相减识别两点声源
用于室内环境说话人识别的混响补偿方法
麦克风