专栏首页解洪文的专栏智能语音交互中的麦克风阵列技术
原创

智能语音交互中的麦克风阵列技术

引言

近年来,随着语音识别技术的发展成熟,语音交互越来越多的走进我们的生活。从苹果手机Siri助手的横空出世开始,各大公司纷纷效仿开发自己的语音助手和语音识别平台,手机端的近场语音交互日趋成熟。后来Amazon发布Echo智能音箱,开启了智能硬件远场语音交互时代。相比于Siri手机端近场的语音交互,Echo音箱的语音交互支持距离更远,交互更加自然便捷,它使用了麦克风阵列来保证远距离复杂背景噪声和干扰环境下的良好拾音效果,随后麦克风阵列逐渐成为了后续语音交互智能硬件的标配。

1.什么是麦克风阵列

麦克风阵列(Microphone Array),从字面看,指的是多个麦克风的有序排列,它是由一定数目的麦克风组成,用来对声场的空间特性进行采样并处理的系统。

麦克风阵列的构型多种多样,根据几何构型大概可分为线性阵列、平面阵列以及空间阵列等,如图1所示。

图1 不同几何类型的阵列

一般智能音箱上使用的是线性或平面阵列,如亚马逊Echo使用的环形6+1阵列(图2)和Google Home使用的双麦克风阵列。

图2 Echo环形6+1阵列

2.为什么需要麦克风阵列

最初,语音交互应用最为普遍的就是以Siri为代表的智能手机助手,这个场景属于近场的语音交互,一般都是利用单麦克风在低噪声、低混响、距离声源很近的情况下获得符合语音识别需求的声音信号。但是,当语音交互的场景过渡到以Echo、机器人或者汽车为主要场景的时候,单麦克风的局限就凸显出来,此时一般声源距麦克风较远,并且真实环境存在大量的噪声、多径反射和混响,导致拾取信号的质量下降,这会严重影响语音识别率。而且,单麦克风接收的信号,是由多个声源和环境噪声叠加的,很难实现各个声源的分离。

如图3,在远场语音交互的情况下,由于声音存在显著的传输衰减,且环境中存在噪声和干扰,导致目标声音信号的信噪比较低,为了提高目标声音信号的收音质量,需要对来自特定方向的目标声音进行增强,对背景噪声和来自其他方向的干扰声音进行抑制。而麦克风阵列可以利用多个麦克信号之间的相位差异,计算目标声源的方位并产生指向该方向性的波束,从而对目标声音信号进行增强,对噪声和干扰进行抑制。这两个功能也就是我们经常听到的声源定位(Sound Source Localization,SSL)和波束形成(Beamforming),这也是麦克风阵列区别于单个麦克风特有的功能。

图3 麦克风阵列远场语音识别应用

此外,远场语音交互情况下,还需考虑由于房屋墙壁反射带来的混响效应,进行去混响(De-reverberation)操作。同时,当设备自身播放声音时,为了能够正常的进行识别语音,还需要从麦克风信号中消除自身扬声器播放的声音,也就是进行回声消除(Acoustic Echo Cancellation)。虽然单通道的麦克风也可以进行去混响和回声消除操作,但麦克风阵列保留了信号的空间相位特性,为去混响和回声消除提供了更多的可用信息,事实上,经过麦克风阵列Beamforming之后的信号也在一定程度上对混响信号进行了抑制。

3.常用麦克风阵列技术原理

通过上面分析可见,对于智能音箱等语音交互设备来讲,麦克风阵列通常需要实现的功能有声源定位、波束形成、去混响和回声消除等,下面对相关技术原理做简要介绍。

3.1声源定位

麦克风阵列可以利用多通道语音信号来计算目标说话人的角度和距离,从而实现对目标说话人的跟踪以及后续的语音定向拾取,是人机交互非常重要的前处理技术。所以麦克风阵列技术不限制说话人的运动,不需要移动位置以改变其接收方向。

严格的声源定位是指同时确定说话人的角度(包括方位角、俯仰角)和距离,这在大阵元间距的阵列中使用较多,此时的距离计算会比较准确。但在消费级的麦克风阵列中,我们通常关心的是声源到达的方向,也就是波达方向(Direction of Arrival,DOA)。根据不同的阵列几何形状,我们可以计算出不同维度的DOA,对于线性阵列,由于其空间轴对称型,我们只能得到一个轴向夹角,对于环形阵列等二维平面阵列,我们可以同时计算出方位角和俯仰角(由于平面的对称性,俯仰角会有两个解),但我们最关心的一般是方位角,如在Echo等智能音箱中,当我们说出唤醒词后,环形麦克风阵列会计算出说话人的方位角并以色环高亮的方式显示。

比较典型的DOA计算方法有基于到达时间差(time difference of arrival,TDOA)估计的方法和基于子空间分解的方法(如MUltiple SIgnal Classification,MUSIC方法)。

TDOA方法:

在远场平面波的假设下,在已知麦克风对间距的情况下,在计算出两个麦克风信号的TDOA后,可以通过图4中的几何关系计算出方位角θ。

图4 TDOA和DOA的几何关系

广义互相关法是比较常用的TDOA计算方法,如图5,它利用信号的互相关函数和互功率谱密度服从一对傅里叶变换的关系,在频域计算两个信号的互功率谱,然后通过傅里叶反变换转换到时域,来寻找最大互相关值对应的时延。

图5 GCC方法流程

其中,\phi \left ( \omega \right ) 为广义互相关的变换函数,可以有多种选取,常用的是相位变换函数:

该函数相当于将互功率谱幅值归一化,只保留相位信息。这种方法叫做广义互相关-相位变换(Generalized Cross Correlation PHAse Transformation,GCC-PHAT),该方法实现相对简单,运算量小,便于实时处理,本身具有一定的抗噪声和抗混响能力,因此在实际中运用广泛。

子空间MUSIC方法:

MUSIC是一个高分辨率的DOA计算方法,它基于阵列观测到数据的协方差矩阵进行特征值分解进行。

MUSIC可适用于多声源的估计,适用于声源数目已知的情况,它采用多声源模型,如下式,M个麦克风的阵列,D个声源,x(t)为麦克风采集到信号,n(t)为噪声信号,它们均为M×1的列向量,s(t)为D×1的声源信号向量,a\left ( \theta_i \right ) 为每个声源对应的导向矢量(Steering vector),A为导向矢量矩阵。

R_x为麦克风信号的协方差矩阵,单独来看,其中第一项AR_s A^H 为M×M的信号协方差矩阵,秩为D,特征值为

\lambda_i(i=1,...,D)

,第二项\sigma_n^2I 为噪声协方差矩阵,特征值均为\sigma_n^2 .

所以,矩阵R_x 的特征值组成:

D个正特征值\lambda_i+\sigma_n^2 ,对应的特征向量U_s=[v_1,...,v_D] 张成信号子空间;

M-D个特征值\sigma_n^2,对应特征向量U_n= [u_{D+1},...,u_M] 张成噪声子空间;

声源的steering vector也属于信号子空间,它们与噪声子空间正交。那么这意味着在信号DOA方向,a^H(\theta_i)U_n=0

实际中不严格为0,因此可以通过寻找下式的极值来确定各个声源的方位。

MUSIC方法仅适用于窄带信号,对于语音宽带信号,需要分频段进行,对所有感兴趣频段计算,计算量非常大。

3.2波束形成

波束形成是对信号进行空域滤波的有效途径,体现了阵列对信号的空间选择性。如图6所示,当确定目标声源信号的方位之后,就可以设计合适的波束样式(Beampattern)来指向目标声源,此时除目标声源方向之外的噪声和干扰声源会被衰减,目标声源的信干噪比(SINR)得到提升。

图6 阵列波束形成

对于宽带语音信号,通常在频域按照每个频段进行波束形成的设计,其结构一般如图7所示。

图7 频域波束形成结构

对于每个频段,声源信号的估计为各个麦克信号的加权求和

其中需要求解的加权系数即为要求的Beamformer:

定义信号从θ角度入射时的阵列增益为Beampattern:

Beampattern描述了阵列对于不同方向入射信号的增益或衰减程度,是麦克风阵列的重要参数。在阵列波束设计时,通常会绘制阵列波束图来分析阵列的性能,图8为几种常见的阵列波束图样式。

图8 几种常见阵列波束图样式

波束形成的设计方法一般可分为固定波束形成和自适应波束形成。固定波束形成在合理的声场环境假设下,计算各波束形成系数,不随现场噪声和信号统计特性变化,比较代表性的有延时求和(Delay-Sum)和差分波束形成;而自适应波束形成利用观测信号和噪声的统计特性自适应地调整波束图以获得最大的阵增益,其设计思想是约束期望声源信号强度的同时最小化阵列输出的方差或者剩余噪声的方差,代表性的有线性约束最小方差(linearly constrained minimum variance, LCMV)波束形成和最小方差无失真响应(minimum variance distorionless response,MVDR)波束形成。

其中最简单直观的波束形成为Delay-Sum波束形成,其基本思想是将多通道的语音信号进行时间对齐,从而使得目标信号得到增强,不相关噪声得到抑制,如图9所示。

图9 Delay-Sum波束形成

图10为一个均匀线性麦克风阵列(ULA)采用Delay-Sum的三维波束图:

图10 Delay-Sum波束形成Beampattern

3.3去混响

混响是指声音信号遇到墙壁、天花板、地面等障碍物形成反射声,并和直达声相叠加的现象,如图10所示。

图10 混响

合适的混响会使得声音圆润动听、富有感染力。但是,混响对于语音识别就没有好处了,它会使得不同步的语音相互叠加,带来了音素的交叠效应(Phoneme Overlap Effect),从而严重影响语音识别效果。影响语音识别的部分一般是晚期混响部分,所以去混响的主要工作重点是放在如何去除晚期混响上面,多年来,去混响技术抑制是业界研究的热点和难点。

一般,混响程度可以用T60时间来衡量,它指的是声源停止发声,混响能量衰减到直达声能量的60dB时所经历的时间。

如下式,混响的建模可以通过房屋冲激响应(room impulse response,RIR)来描述,其中s(t)为声源信号,h(t)为声源的房屋冲激响应,n(t)为噪声,x(t)为最终麦克接收到的信号

转换到频域,可以写成

那么一个比较直观的去混响方法就是估计一个滤波器G_k,使得

这种方法称作逆滤波的方法,但由于一般房间的冲击响应为非最小相位, 具有非稳定的逆,因此基于逆滤波的方法 可应用的实际场合很有限。在实时应用中, 随着说话人的位置变化(如人的走动等) 或者房间内物体位置变化(如门的开闭等),甚至对于每一帧信号, 冲激励响应都在改变, 这就需要实时测量和跟踪, 问题因此变得更加复杂。

此外,还有基于倒谱(Cepstrum)的方法以及基于线性预测(Linear Prediction)的方法,如多通道线性预测(MCLP,Multi-Channel Linear Prediction)等,此处不再详细介绍。

3.4 回声消除

在智能音箱应用场景中,需要在播放音乐的时候仍然能够识别用户的语音交互指令,这时候,就需要从本地麦克风信号中去除本地扬声器播放的声音信号。实际上,回声消除的需求最早出现在电话通讯中,需要从近端说话人听筒采集的声音中消除电话扬声器带来的回声,如图11所示。

图11 回声消除场景

同样,回声可以采用扬声器到麦克风的冲激响应来建模:

其中z(t)为扬声器信号,h(t)为扬声器到麦克的冲激响应,s(t)为说话人声音,也就是我们需要还原的声音,n(t)为噪声。那么回声消除的过程就是估计一个滤波器\hat{h}(t) ,使其无限接近真实的冲激响应h(t),其基本的结构如图12所示。

图12 回声消除结构框图

那么,从麦克风信号中减去估计出来的回声信号,则得到还原出来的目标声音

\hat{h}(t)的估计一般可采用自适应滤波的方法,常用的有最小均方自适应滤波器(LMS,Least Mean Square)、归一化最小均方自适应滤波器(NLMS,Normalized Least Mean Square)和递归最小二乘滤波器(RLS,Recursive Least Squares)以及它们的变种。

在实际使用中,需要引入扬声器的参考信号z(t),可以通过硬件回采扬声器的输出来实现。

4.结语

本文简要介绍了智能语音交互前端广泛使用的麦克风阵列技术基本原理,并对其中部分方法进行了简要分析。需要注意的是,各个功能模块并不是孤立工作的,不同模块之间需要相互配合调优才能达到最终满意的整体性能,多数情况下需要根据具体的使用场景进行针对设计。

目前,随着深度学习技术的发展,也涌现出一些基于深度学习的麦克风阵列信号处理技术,如将深度学习用于去混响、多声源的语音分离(也就是解决“鸡尾酒会”效应)等,取得了一些效果,本文这里不做过多探讨。目前,基于传统信号处理的麦克风阵列技术仍是实际应用中的主流,也是后续技术提升的基础。本文初步探究麦克风阵列主要信号处理模块的工作原理,可作为技术开发和提升的参考。

参考文献

[1] Knapp, C. , & Carter, G. . (1976). The generalized correlation method for estimation of time delay. IEEE Transactions on Acoustics Speech & Signal Processing, 24(4), 320-327.

[2]Schmidt, R. , & Schmidt, R. O. . (1986). Multiple emitter location and signal parameters estimation. IEEE Transactions on Antennas & Propagation, 34(3), 276-280.

[3]Benesty, J. , Chen, J. , & Huang, Y. . (2008). Microphone array signal processing. Journal of the Acoustical Society of America, 125(6), 4097-4098.

[4]Benesty, J. , & Chen, J. . (2013). Study and design of differential microphone arrays. Springer Topics in Signal Processing, 6.

[5]Benesty, J. , Chen, J. , & Pan, C. . (2016). Fundamentals of differential beamforming. , 10.1007/978-981-10-1046-0.

[6]Huang,Y. and Benesty. (2004) Audio Signal Processing for Next-generation Multimedia Communication Systems, Kluwer Academic, Norwell, MA.

[7] Haykin, S. (2002) Adaptive Filter Theory, 4th edn, Prentice-Hall, Upper Saddle River, NJ.

[8]Tashev, I. J. . (2009). Sound Capture and Processing: Practical Approaches. John Wiley & Sons.

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 漫谈 SLAM 技术(下)

    本文对 SLAM 技术及其发展进行简要介绍,分析视觉 SLAM 系统的关键问题以及在实际应用中的难点,并对 SLAM 的未来进行展望。

    DancingWind
  • ORB_SLAM论文解读

    ORB-SLAM是西班牙Zaragoza大学的Raul Mur-Artal在2015年提出的视觉SLAM系统,它吸取了以往SLAM系统的优点,是当前开源SLAM...

    DancingWind
  • 漫谈 SLAM 技术(上)

    本文对 SLAM 技术及其发展进行简要介绍,分析视觉 SLAM 系统的关键问题以及在实际应用中的难点,并对 SLAM 的未来进行展望。

    DancingWind
  • Pycharm连接Github

    绑定账号 1、File->Settings->Version Control->Github ? Settings.png 会出现github,然后在旁边输入你...

    zhisheng
  • grafana 查询count

    用户5760343
  • 【Appetite】ionic3实录(暂终)剩余内容截图及开源

    因为是按入门教程顺序写的,所以本示例并没有做特别优化!!!如视频播放就没有采用我另一篇文章所写的方式。而优化这章本来是作为示例教程最后一章,代码相应完善一下再发...

    IT晴天
  • 微信小程序云开发 初学者入门教程一

    本教程适合刚刚入门的小白,云开发为开发者提供完整的云端支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代...

    王小婷
  • 共识机制

    区块链作为一个去中心化的分布式账本系统,然而在实际运行中,怎么解决因为去中心化后,保证整个系统能有效运行,各个节点诚实记账,在没有所谓的中心的情况下,互相不信任...

    用户2909867
  • 小白如何搭建自己的WordPress个人博客超详细教教程

    首先解析域名到服务器(这步就不详细介绍了,详情可参考:https://cloud.tencent.com/document/product/302/3446)

    后浪云
  • 传统医疗行业上云实践

    随着医疗行业的发展,在医疗行业也出现了比较激烈的竞争,许多的医院开始由线下转到线上来,比较出名的可能就是寻医问药和春雨医生等这样问答形式的站点。他们验证了在线问...

    相柳

扫码关注云+社区

领取腾讯云代金券