李政仪, 宫二玲, 曹孟华
(1.长沙民政职业技术学院 软件学院,湖南 长沙 410004;2.国防科技大学 智能科学学院,湖南 长沙 410073)
语音日渐成为人机交互的主要方式。为了改善人机语音交互质量,一方面需要提升语音识别能力,另一方面需要提升语音的质量,即获取“清晰的”语音。目前,在改善语音质量方面,主要采用单通道降噪和麦克风阵列两种方式。近年来,由于在抑制方向性噪声方面的突出表现麦克风阵列在智能音箱、家电、手机等领域中得到了广泛的应用[1]。
麦克风阵列即由多个麦克风(通常应该是3个及以上)按照一定几何构型组成的阵列,总体上可分为立体阵列、平面阵列和线阵列。常用的阵列为平面阵列。从几何构型的角度出发,平面阵列可分为随机布局和规则布局两种类型。智能家居中的平面阵列使用的麦克风数量不多,通常采用规则型的布局方式(环形);而某些特定产品,如声学照相机、远程会议麦克风阵列等,通常采用数十个麦克风,这种类型的阵列为了优化性能,通常不会采用规则布局,而在一定的准则下设计优化构型,如B&K公司的轮辐构型等[2,3]。
本文针对一类圆形平面阵列,采用启发式优化算法,在实际设计要求的约束下,提出一种优化设计方案。利用这种设计方案,可以有效地提升主旁瓣比,抑制虚像,改善定位或波束形成的效果。
圆形平面阵列是实际应用最为广泛的一类阵列。阵列尺寸D和麦克风总数量N是两个硬性的设计约束,基本不存在调整优化的余地。因此,将D和N设定为固定值,在这两个固定约束下,设计最优的阵列构型。与常规的优化问题不同,阵列构型优化问题的目标函数和约束条件都不存在解析形式,只能采用启发式搜索方法,如遗传算法、微分进化、模拟退火等进行求解。
阵列的性能指标包括主瓣宽度、旁瓣电平、阵列增益等,它们之间不是独立的。因此,对阵列进行优化,必须在这些指标之间的进行合适的折中。在白噪声条件下,阵增益变为白噪声增益,而白噪声增益仅与阵元数量有关,在限定传声器数量N的情况下,不将阵列增益作为优化目标。
低的旁瓣电平可以有效抑制来自于目标方向以外的干扰噪声,降低目标检测的虚警概率;窄的主瓣宽度则可以提高目标方向分辨能力,主瓣越窄,阵列的指向性越好。因此,如果阵列用于定位,可将极小化旁瓣电平作为目标;如果阵列用于波束形成/定向拾音,可将极小化主瓣宽度作为目标[4~6]。
在线性阵列中,主瓣宽度一般定义为波束主瓣下降到-3 dB时的两方向夹角。在平面阵列中,方向由方位角θ和φ俯仰角决定。构造一个右手坐标系,阵列处于xoy平面上,如图1所示,S(r,θ,φ)为声源位置。可知方位角θ∈[0°,360°],俯仰角φ定义为声源到坐标原点的连线与z轴之间的夹角,为了去模糊,只考虑z轴正方向的声源,即φ∈[0°,180°]。
图1 右手坐标系
参照线阵列中关于主瓣宽度的定义,将面阵列的主瓣宽度定义为主瓣下降到-3 dB的等高线内方位角与俯仰角所形成的面积表示主瓣宽度。面积越小,说明主瓣越窄。以一个30阵元的辐射式麦克风阵列为例,阵列直径为24 cm,自圆心辐射出6条半径,将圆等分为6个扇形,即阵列形状为。当声源入射方向为(θ,φ)=(90°,30°)时,其三维波束和平面投影波束如图2所示。在这种情况下,辐射式阵列主瓣宽度为[7 64]°×[50 132]°。
图2 辐射式阵列的波束
(1)
其含义为归一化的最大旁瓣增益在不超过某个增益阈值G0的前提下,使得主瓣宽度最小。问题就成为如何计算主瓣的宽度了。为了计算方便,可将问题(1)构造为一个无约束优化问题
(2)
式中K>0为加权系数,如果要求偏重于控制旁瓣,则K值取较大的数。
给定一个直径为24 cm的圆形阵列面板,设计一个由30个阵元构成的麦克风阵列。考虑到生产加工等实际问题,要求任意2只麦克风之间的最小间距不能低于1 cm。基于这一点,考虑将圆形阵列面划分为大小为1 cm×1 cm的正方形格子。接下来是在这些格子中挑选出30个格子,组成一个“最优阵列”。组合方式的数量超过1 046,因此,只能设计优化算法来快速获取“最优阵列”。
这不是一个凸优化问题,可能存在多个局部极值点。因此,采用启发式搜索算法是比较合适的选择。遗传算法作为一种常用的启发式搜索算法,在寻找全局最优解方面具备明显优势,在实际工程中得到了广泛引用[7]。因此,本文采用该方法进行求解问题(2)。
遗传算法的可分为种群生成、种群选择、种群样本交叉、变异等操作,不停的迭代运算,直到满足迭代停止条件。
在圆域划分出的多个1 cm×1 cm方格内,随机选取30个点,生成一组样本(xi,yi,zi),i=1,2,…,30,zi=0;循环执行这一操作,可得到N组样本,生成一个种群。圆域中各坐标点的横向范围为[-11.5,11.5]cm,按照1 cm的间隔进行采样;纵向范围与横向范围一致。而随机抽样的坐标点(xi,yi,0)一般不会恰好位于方格的中心,因此,应该按照以下方式进行适当的处理
(3)
式中 ⎣」为向0取整。yi也可以参照这种方式进行处理。
在生成的种群中,通过一定的策略,选择合适的样本,生成一个新的种群,容量与原种群保持一致。基本策略是尽量将“较好的”样本,即目标函数F较大的样本选入新种群。一种最为简单的选择策略是轮盘赌模式,其思路为使得较好的样本能够有更大的机会进入种群。考虑到目标函数F>0,因此可直接取F作为样本的适应度,适应度越大,选入新种群的可能性越大。目标函数涉及到主瓣和旁瓣的计算,远场情形下,阵列的波束图为
A(ω,θ,φ)=|exp(-jωτ)*exp(-jωτ′)|
式中ω为入射波的频率(rad/s),(θ,φ)分别为入射方位角和俯仰角;τ为在该入射方向下,声音到达各麦克风的时间,具体计算方式可参见文献[2]。通过二维寻峰算法,可得到波束图的主瓣和旁瓣,以及对应的主瓣宽度。
样本交叉指的是从种群中选择成对的样本进行处理,产生新一代样本,相应替换原有的样本。随机选择M(M D1=αD(1)+(1-α)D(2),D2=αD(2)+(1-α)D(1) 式中D(1)和D(2)为待交叉的两个样本中的坐标点,D1和D2为交叉后的两个样本中的坐标点,α为(0,1)之间的随机数。这种交叉方式可保证D1和D2仍然位于圆域内。需要注意的是,D1和D2有可能不是恰好位于1 cm×1 cm方格的中心,可按照式(3)进行处理,使其位于中心内。此外,D1和D2如果与样本中的其他既有坐标重复,则不替换原有坐标D(1)和D(2)。 变异指的是对种群中某些样本进行适当“干扰”,避免样本过早成熟。通常首先设定一个较小的变异概率Pb,各样本都以这一概率进行变异。具体计算方式为产生一个(0,1)之间的随机数α,当α 在圆域内随机生成一个坐标点W,生成一个(0,1)之间的随机数α,从某个样本中随机选择一个坐标点D,按照D′=αD+(1-α)W的方式产生变异点D′。与交叉操作类似,D′应该进行适当处理,保证位于方格中心,且不与样本中的既有点重复,如果重复,则反复执行上述变异过程,直到得出30个不重复的坐标点。 有两类停止规则,一类是迭代次数超过了预设的最大值,另一类是相邻两代种群的变化较小或者是单代种群中各样本的变化较小。两类停止规则可同时使用。相邻两代种群的变化率可利用目标函数的平均值变化率表示,单代种群中各样本的变化率可用各样本对应的目标函数值的标准差来表示,标准差越小,说明单代种群中各样本越趋同,当小到一定程度,继续迭代的意义已经不大了。 设定种群数量N=50,用于交叉的种群数量M=30,权重系数K=0.01,开展交叉的坐标点数量k=5,变异概率Pb=0.05;入射方向设定为(90°,30°),入射波频率为f=2 000 Hz。利用遗传算法开展优化设计,目标函数的迭代曲线(图3(a))和最终的优化阵列构型(图3(b))。 从图3可以看出:在迭代过程中,目标函数值迅速上升,10次迭代之后,目标函数趋于稳定,说明算法已经收敛,可认为已经得到了最优解。 图3 目标函数迭代曲线与优化阵列构型 图4给出了优化阵列的波束图,计算得到其主瓣宽度[12 54]°×[47 137]°,小于图2所示的辐射型阵列的主瓣宽度,在[0 90]°×[0 180]°的范围内,不存在旁瓣。 图4 优化阵列波束 在兼顾主瓣宽度和最大旁瓣增益的情况下,构造了一个合适的目标函数,消除了优化问题的约束条件,使其成为一个无约束优化问题,便于求解。考虑到电路设计的具体情况,将圆形面板划分为1 cm×1 cm的方格,保证优化得到的阵列结构是可实现的。针对遗传算法选择、交叉和变异等操作,给出了一系列的解决方案,保证整个算法可行。仿真结果表明,优化算法确实能够保证目标函数的下降趋势,且在一定的迭代次数后保持稳定,优化的阵列构型比常规的规则型阵列,在主瓣宽度和最大旁瓣增益控制方面有着更好的表现。 下一步将着重进行阵列的硬件实现,并将其投入到具体的工程应用中,如研发定向拾音、噪声定位等设备。2.4 种群样本变异
2.5 迭代停止规则
3 仿真分析
4 结 论