目录
引言:
麦克风阵列和其对应的波束形成算法,是远场语音交互中前端处理的核心部分。(SNR较低)经典的场景如多人说话的嘈杂场景称为鸡尾酒会效应。
解决鸡尾酒会问题:
方案1: BSS.
利用单通道算法解决鸡尾酒会问题属于盲源分离问题(BSS,Blind Source Seperation),目标是从多个混合的信号中提取目标信号。盲源分离问题从独立元分析(ICA)发展到如今使用神经网络,但效果仍然不佳。
方案2:利用麦克风阵列。
利用麦克风阵列能获取空间信息,通过空间滤波对信号实现定向增强。 波束形成方法就是一种典型的空间滤波。 并且定向增强能抑制语音反射,起到减轻混响作用。
一. 麦克风阵列概述
麦克风阵列定义:多个按照一定规则排列的麦克风。最常用的阵型包括线性、环形和矩形等。
环形阵列:适用于平面360度收音,可以区分水平与垂直角度。比如圆柱形音箱。
线性阵列:平面180度收音,但无法区分水平和垂直角度。比如微软Kinect等游戏设备,智能交互大屏。
矩形阵列:可以区分水平和垂直角度。
波阵面(英语:wave surface)简称“波面”,为波在介质中传播时,经相同时间所到达的各点所连成的直线、曲线(二维内)或面(三维内)。也就是说,它指的是某一时刻波动所达到的各点所连成的曲面。最前方的曲面叫做“波前”(英语:wave front)。波阵面质点的振动情况与机械波的波源初始振动情况相同。由于同一波阵面上各点的振动相位相同,所以波阵面是同相面(即相位差为零)。
麦克风阵列增强的原理:
不同相位信号叠加时,同相增强,反相抵消。
近场与远场:
对麦克风阵列,语音看作点声源:
- 当声源距离小于2*d^2 / λ,为近场,可看作球面波模型(每个麦克风收到的信号幅度和相位均不同)
- 当声源距离大于2*d^2 / λ,为远场,可看作平面波模型(每个麦克风收到信号幅度一致,相位不同)
(这里只考虑远场情况,采样率一般16kHZ, 最高频率8kHz, 对应波长0.0425m, 即此时2*d^2 / λ = 47*(d^2)
波达方向(DOA):
声波入射方向与麦克风连线的法线的夹角。
两个麦克风收到的信号差与在波达方向上的投影间距成正比。
零陷:
当两个麦克风信号完全反相,输出为0,这种现象称之为”零陷“。
零陷条件为,波达时间差的绝对值等于周期的一半。
空域混叠:
当出现零陷,DOA进一步增大,输出幅度会再次增加,从而在波束特性中形成栅瓣,这种现象为空域混叠。
空域采样定理:
d <= λ/2 , λ为最高频率信号的波长(8kHz的波长时0.0425m, 因此麦克风之间的间距应该小于0.02125m).
实际应用中由于高频信号传播损耗严重,可以适当放开对高频信号的混叠,允许高频部分出现一定程度的栅瓣。
时域的那奎斯特采样定理:f >= 2fmax
线性均匀分布麦克风阵列的波束增益一般形式:
极坐标图和二维深度图:
如上图左,角度是DOA,半径反映信号增益。0度和180度方向上是主瓣,对应右图中间黄色条带,其他是旁瓣,旁瓣能量较小。
主瓣的增益和宽度是评价麦克风阵列的重要指标。增益是指对目标信号的增强能力,宽度是指增益下降3db时,从最高点往左右两侧下降组成的夹角。
主瓣的宽度在不同频率上是不一样的,语音信号这样的宽带信号,处理后会导致各频率之间能量比的改变,带来一定的失真。
线性阵列的波束响应与麦克风个数及间距的关系:
由图:
- 麦克风数量增加,主瓣宽度变窄,旁瓣数量增多。
- 同样数量麦克风,间距越大,旁瓣数量越多,旁瓣的峰值增益越高。
如上图,对于均匀线性阵列,只需将所有信号相加即可实现正面0度方向对指向性波束。
但对于环形阵列和矩形阵列,不存在一个方向的波束使得每个麦克风接受到的信号相位相同,因此不能直接将信号相加。
麦克风阵列对噪音信号建模:
通常使用噪声场对麦克风阵列采集到的噪声进行建模,即定义不同通道之间的噪音互功率谱相关性。
理想无散射环境下(如消声室),每个麦克风接受到的噪声说一样,可采用相干噪声场模型。对于电气特性产生的噪音,认为它们完全不相干采用不相干噪声场模型。
利用sinc函数对散射噪声场进行建模:
总结自《语音识别服务实战》