基于麦克风阵列的声源定位技术在人工智能、雷达探测、电话会议等多个领域有广泛的应用. 根据Brandstein的分类方法[1], 将基于麦克风阵列的声源定位技术分为3类: 基于到达时间差的定位技术(TDOA)、基于最大输出功率的可控波束形成技术和基于高分辨率谱估计的定位技术. 基于到达时间差的定位方法在定位准确性上, 优于另外2种方法[2], 并且由于其计算量相对较小、在实时系统中可以实现等原因, 在声源定位方面受到了更多的青睐, 被广泛使用. 对于TDOA, 获得准确的时延估计是声源定位精确的前提条件. 根据所采用的不同物理参量可将时延估计分为2类: 1)基于广义互相关函数(Generalized Cross Correlation, GCC)[3]的时延估计算法; 2)基于自适应最小均方(Least Mean Square, LMS)[4]的时延估计算法. 在实际应用中, 由于噪声的干扰和语音信号的短时处理, 可能会使GCC时延估计算法出现较大的误差, 通常的做法是引入加权函数来抑制噪声干扰. 本文介绍了麦克风阵列时延估计模型和广义互相关时延估计算法以及一种改进算法, 并对这几种加权方法进行了Matlab仿真, 通过比较各加权方法的时延估计效果以及声源定位精度, 分析其优劣性.
1 基于麦克风阵列的声源定位算法麦克风阵列中, 当不同阵元接收同一声源信号时,由于信号传输距离的不同引起了时间上的差别. 通过声源信号到达各麦克风的时间差(即时延)和声音在媒质中的传播速度即可估计声源的方向和位置, 从而来实现声源定位. 在这个过程中准确的时延估计是基于TDOA的声源定位技术的前提.
1.1 麦克风阵列声源定位模型麦克风阵列是由麦克风作为阵元按一定的方法排列组成的阵列. 根据声源离麦克风的距离远近, 可将声源传递的波分为近场波和远场波. 假设声源距麦克风阵列较远, 产生的是远场波. 此时可以将远场波近似看作成平面波. 此外, 为了简化分析, 将麦克风阵列抽象为均匀线性阵列(Uniform Linear Array, ULA), 该阵列由同一直线上距离相同间隔的多个麦克风组成. 构建的麦克风阵列模型如图1所示[2].
图1中, d表示两阵元的间距, 一般通过测量得到, 是已知值; φ表示声源信号与麦克风阵列法线的夹角.
由图1可知, 对于两个相邻的阵元, 语音信号在传播过程中存在
$\tau (\varphi ) = \frac{{d\sin \varphi }}{c}$ | (1) |
式中, c表示声音的传播速度, 此处假设声音在1个标准大气压和15 ℃的条件下传播, 即c=340 m/s. 由式(1)可知, 通过计算时间延迟即可估计声源的方向和位置.
1.2 基于互相关的时延估计算法在基于TDOA的声源定位算法中, Knapp和Carter[3]提出的广义互相关函数的时延估计算法是一种传统的TDE算法. 因为来自同一声源的信号必然存在一定的相关性, 该算法根据这一特点, 通过计算不同阵元接收到的声源信号之间相关函数, 利用数学中相关函数的性质, 选取使互相关函数最大的时刻, 即可估算出不同阵元间的时延差值.
在一个麦克风阵列系统中, 任意选取阵列中的2个麦克风, 假设这2个麦克风接收到的信号分别为x(n)和y(n), 则这两路信号可表示为:
$x(n) = {\alpha _x}s(n) + {v_x}(n)$ | (2) |
$y(n) = {\alpha _y}s(n - T) + {v_y}(n)$ | (3) |
其中, n表示接收到的数字信号的时间采样点; s(n)表示阵列接收到的有用信号;
对于两个麦克风阵元, 其接收到的信号x(n)和y(n)的互相关函数
${R_{xy}}(\tau ) = E[x(n)y(n - \tau )]$ | (4) |
其中, E[·]为数学期望. 假设有用信号s(n)和加性噪声v(n)相互独立, 在无混响条件下, 将式(2)和式(3)代入到式(4)中, 可得:
$\begin{aligned}[b] {R_{xy}}(\tau ) =& {\alpha _x}{\alpha _y}E[s(n)s(n - T - \tau )] + E[{v_x}(n){v_y}(n - \tau )] \\ = &{\alpha _x}{\alpha _y}{R_{ss}}(\tau - T) + {R_{{v_x}{v_y}}}(\tau ) \end{aligned} $ | (5) |
其中,
由式(5)可得, 若阵元接收到的信号的信噪比足够的大, 由相关函数的性质可知, 当
根据维纳-辛钦定理[5,6], 互相关函数及其互功率谱之间的关系可表示为:
${R_{xy}}(\tau ) = \int_{ - \infty }^{ + \infty } {{G_{xy}}(\omega )} {e^{j\pi \tau }}d\omega $ | (6) |
由于混响、噪声和语音信号的短时处理, 信号中可能会包含多个回波分量. 在这种情况下, 若采用基于互相关函数的时延估计算法计算得到的互相关函数是包含直达波与反射波共同形成的峰值, 这些峰在低信噪比的情况中会降低时延估计的精度. 此外, 对于宽带语音信号, 基音周期的存在使得互相关函数更加复杂[7]. 为了保证时延估计不受信号本身的影响, 尽可能地抑制混响等影响, 提高时延估计精度, 需要对该算法进行改进. 常用的方法就是在信号的功率谱中进行加权, 从而在时域中抑制噪声干扰, 锐化相关的信号, 使时延估计准确. 这种方法得到的互相关函数就是广义互相关函数, 即[2]:
$R_{xy}^{GCC}(\tau ) = \int_{ - \infty }^{ + \infty } {{\psi _{xy}}(\omega ){G_{xy}}(\omega )} {e^{j\pi \tau }}d\omega $ | (7) |
其中,
图2中, (·)*表示取共轭运算; |·|表示求模运算.
在实际应用中, 针对不同的噪声情况可以选择不同的加权函数
2.2 GCC时延估计流程
语音信号是明显的非平稳信号, 但在10~30 ms的时段上, 语音信号是具有短时平稳性的. 因此, 对语音信号进行分帧处理[9]是至关重要的. 选取帧长度为256个点, 在8 KHz采样频率下, 这样大概是32 ms长度的信号. 为消除每帧信号的边缘效应, 采用哈明窗(Hamming)对输入信号加窗. 时延估计算法流程如图3所示.
3 改进的PHAT-GCC时延估计算法在众多加权函数的广义互相关时延估计算法中, PHAT-GCC能够更好地抑制噪声, 使互相关函数得到更好的锐化效果, 从而提高时延估计的精度. 加之其算法复杂度低等优点, PHAT-GCC时延估计算法被广泛地应用于实际生活. 然而, 该算法仍存在一定的弊端, 当环境噪声过大, 出现混响, 或者信噪比突变的时候, PHAT-GCC算法的性能也会急剧下降. 基于此, 本文提出了一种改进的PHAT-GCC算法.
3.1 语音信号预处理
当语音信号受到噪声的干扰, 其最明显的影响就是语音信号的幅值会发生一定的变化. 因为噪声具有高频率, 低幅值的特点, 当语音信号某时刻幅值较小, 噪声甚至会淹没该时刻信号. 所以提出将接收到的语音信号乘上3次方, 即
在实际情况下, 尤其是在封闭环境中, 噪声会利用墙壁等实体反射, 进而导致两个麦克风阵元接收到的噪声并非不相关. 因此, 在PHAT-GCC算法中, 需要把PHAT加权函数中的互功率谱减去相关噪声的互功率谱. 改进后的加权函数为:
${\psi _{xy}} = \frac{1}{{\left| {{G_{xy}}(\omega ) - {G_{{v_x}{v_y}}}(\omega )} \right|}}$ | (8) |
其中,
考虑到在实际情况中, 整个频域内的信噪比不可能完全相同. 也就是说, 对于不同的
${\psi _{xy}}(\omega ) = \frac{1}{{{{\left| {{G_{xy}}(\omega ) - {G_{{v_x}{v_y}}}(\omega )} \right|}^\rho }}},\;\;0 \le \rho \le 1$ | (9) |
其中, 加权因子
在PHAT-GCC算法中, 当信号能量较小时, 加权函数的分母项趋于0, 而加权函数整体趋于无穷大, 从而会出现一个较大的误差. 通常的做法是添加一个非零因子
${\psi _{xy}}(\omega ) = \frac{1}{{{{\left| {{G_{xy}}(\omega ) - {G_{{v_x}{v_y}}}(\omega )} \right|}^\rho } + \beta }}$ | (10) |
为了切合广义互相关算法的思想, 本文考虑采用相干函数的概念作为非零因子
${\gamma ^2}_{xy}(\omega ) = \frac{{{{\left| {{G_{xy}}(\omega )} \right|}^2}}}{{{G_x}(\omega ){G_y}(\omega )}},\;\;0 < {\gamma ^2}_{xy}(\omega ) < 1$ | (11) |
在实际的系统中, 两个麦克风阵元接收到的信号不可能完全相干, 也不可能完全无干, 所以
综上所述, 最终改进的PHAT-GCC加权函数为:
${\psi _{xy}}(\omega ) = \frac{1}{{{{\left| {{G_{xy}}(\omega ) - {G_{{v_x}{v_y}}}(\omega )} \right|}^\rho } + \gamma ^2_{xy}(\omega )}}$ | (12) |
为了比较分析不同加权函数的GCC时延估计和声源定位的性能, 本文模拟麦克风阵元间距为d=0.1 m的麦克风阵列接收语音信号. 所采集的语音信号时长大约3 s, 采样频率8 KHz, 声源方向角
广义互相关函数的峰值尖锐程度是时延估计准确度的表征[2], 峰值越尖锐, 时延估计越准确. 在50 dB、20 dB和5 dB 3种信噪比情况下, 选取CC、Roth、PHAT和改进的PHAT 4种加权函数做广义互相关MATLAB仿真. 其中对于改进的PHAT-GCC算法, 语音信号的预处理如图5所示.
由图1麦克风阵列模型和式(1)可知, 真正的时间延迟
将仿真得到的4种加权函数的GCC时延估计代入式(1), 比较在不同信噪比下, 声源定位的准确程度. 所得到的数据均保留两位小数, 结果如表2所示.
根据仿真结果, 在高信噪比情况下, 4种加权函数得到的广义互相关函数峰值均较尖锐, 声源定位精度也很高. 但随着信噪比降低, 前3种加权方式的广义互相关函数的峰值尖锐程度降低, 同时干扰峰值随之增多, 有用信号相关函数的峰值也不够明显. 这表明GCC算法的时延估计准确性随信噪比的降低而恶化, 声源定位精度也随之骤降. 特别地, 对于Roth加权, 随着信噪比的降低, 性能急剧下降, 峰值受噪声影响严重, 几乎淹没在噪声中. 对于PHAT加权, 在高信噪比条件下, 峰值尖锐, 噪声波动较小, 被很好地抑制; 在低信噪比条件下, 相对于CC和Roth加权, 峰值更加尖锐, 保持着良好的抗噪特性. 此外, 相较于一般的PHAT加权, 改进后的PHAT加权法在低信噪比情况下性能明显更优, 峰值最为尖锐且噪声能够被更好地抑制掉, 声源定位的误差也是最小的. 综合来看, 改进的PHAT加权的广义互相关法表现出最优的时延估计性能, 而Roth加权的广义互相关法表现出最劣的时延估计性能.
5 结论与展望本文通过Matlab仿真, 分析了3种常用加权函数的GCC时延估计算法的优劣性. 通过比较广义互相关函数、时延估计准确度和声源定位精度, 发现PHAT加权有更好的抗噪特性, 能够更加准确地做出时延估计. 但总体来说, GCC时延估计的准确性随信噪比的降低, 性能逐渐下降. 因此, 本文提出了一种改进的PHAT-GCC算法. 从实验结果来看, 该算法在低信噪比情况下也能有效地抑制噪声锐化峰值, 从而提高声源定位的精度. 这对麦克风阵列的研究和设计有着积极地指导意义. 在后续工作中, 为了进一步优化改进的PHAT-GCC算法, 考虑采用神经网络算法, 训练得到一个更优的参数组合, 从而提高该算法的性能.
[1] |
Brandstein M, Ward D. Microphone Arrays: Signal Processing Techniques and Applications. Berlin: Springer-Verlag, 2001.
|
[2] |
李幸远. 麦克风阵列语音增强系统设计与实现[硕士学位论文]. 西安: 西安电子科技大学, 2008.
|
[3] |
Knapp C, Carter G. The generalized correlation method for estimation of time delay. IEEE Transactions on Acoustics, Speech, and Signal Processing, 1976, 24(4): 320-327. DOI:10.1109/TASSP.1976.1162830. |
[4] |
Reed F, Feintuch P, Bershad N. Time delay estimation using the LMS adaptive filter-static behavior. IEEE Transactions on Acoustics, Speech, and Signal Processing, 1981, 29(3): 561-571. DOI:10.1109/TASSP.1981.1163614. |
[5] |
Wiener N. Generalized harmonic analysis. Acta Mathematica, 1930, 55(1): 117-258. |
[6] |
Khintchine A. Korrelationstheorie der stationären stochastischen Prozesse. Mathematische Annalen, 1934, 109(1): 604-615. DOI:10.1007/BF01449156. |
[7] |
崔玮玮. 基于麦克风阵列的声源定位与语音增强方法研究[博士学位论文]. 北京: 清华大学, 2009.
|
[8] |
Omologo M, Svaizer P. Acoustic source location in noisy and reverberant environment using CSP analysis. Proceedings of 1996 IEEE International Conference on Acoustics, Speech, and Signal Processing Conference Proceedings. Atlanta, GA, USA. 1996. 921–924.
|
[9] |
Quatieri TF. 离散时间语音信号处理. 赵胜辉, 译. 北京: 电子工业出版社, 2004.
|
[10] |
李猛. 基于改进GCC-PHAT算法的麦克风阵列声源定位技术[硕士学位论文]. 阜新: 辽宁工程技术大学, 2017.
|