|
一种基于麦克风阵列的声源定位算法研究
引 言 基于麦克风阵列的论文联盟http://声源定位是声学信号处理领域中的一个重要问题。麦克风阵列声源定位技术是指利用空间分布的多路麦克风拾取声音信号,通过对麦克风的多路输出信号进行分析和处理,得到一个或多个声源的位置信息。 麦克风阵列声源定位具有广泛的应用前景。它在民用领域可用于电话会议系统、视频会议系统和可视电话系统中,通过对发声者的定位,实现会议现场声源及外接摄像机的实时跟踪,也可用于语音及说话人识别软件的前端预处理,以拾取高质量的声音信号,提高语音及说话人识别软件的识别率,还可用于助听器等领域[1]。在军事领域,可利用麦克风阵列声源定位技术实现狙击手定位[2],地面或低空声目标的定位与追踪[3]等。 尽管可将用于声纳和雷达系统的波束形成技术引入麦克风阵列,但由于语音信号为宽带信号,具有短时平稳特性,且所处环境还具有高混响,噪声大等特点,这些算法针对语音信号的定位精度非常低,需要对算法进行改进。一般来说,常用的声源定位算法划分为三类[4]: 一是基于波束成型的方法; 二是基于高分辨率谱估计的方法; 三是基于波达时延差(tdoa)的方法。 其中基于波束成形方法通过对麦克风阵列接收信号进行滤波、加权求和,直接控制麦克风阵列指向使波束具有最大输出功率的方向,可在目标源多于一个的条件下对多声源进行定位[5],但存在对初值敏感的问题。另外还需要知道声源和噪声的先验知识,该方法存在计算量大,不利于实时处理等缺点。 基于高分辨率谱估计的方法在理论上可以对声源的方向进行有效估计,但由于该算法是针对窄带信号,因此若要获得较理想的精度,就要付出很大的计算量代价。此外这些算法无法处理高度相关的信号,因此混响会给算法的定位精度带来较大影响[6]。 基于时延估计的方法是利用广义互相关等时延估计算法求出信号到阵列不同麦克风的相对时延,并利用时延信息与麦克风阵列的空间位置关系估计声源位置。该方法计算量小,易于实时实现,近年来得到了高度重视。本文主要采用基于时延估计的方法进行声源定位。 1 基于toda方法的基本原理 利用tdoa进行声源定位可分为两个部分: 首先,通过采用广义互相关方法(gcc)[7]等,并利用平滑相干变换(smoothed coherence transform,scot)、相位变换(phase transform,phat)或最大似然(maximum likelihood,ml)进行加权,得出声源到两两麦克风之间的时延差。但当定位环境混响或噪声较大时,基于gcc的声源定位算法性能会急剧下降,以致无法实现精确定位。为了消除混响及噪声影响,n.zotkin提出利用延时累加波束成型技术与srp-phat相结合的声源定位算法来解决混响和噪声的影响[8]。jacob benesty在文献[9]中提出了利用最小熵方法进行时延估计,其实验结果表明,在同等混响或噪声条件下,其时延估计的准确度优于互相关方法,且更适于小型麦克风阵列。 其次,进行方位估计,即根据时延和麦克风阵列的几何位置估计出声源的位置。利用得到的熵值公式对空间中的最小熵值进行搜索是一个典型的全局优化问题。传统的梯度下降法主要用于单个声源进行空间搜索。但当空间中存在多个声源或噪声、混响较大时,极易陷入局部最优解。尽管离散网格搜索方法占用系统资源较大,不适宜实时定位系统,但可精确获得全局最优解,且易于计算机实现,因而得到广泛应用。本文采用离散网格方法对搜索空间进行离散划分,减小空间域搜索范围,加快搜索速度。 2 算法描述 2.1 声音信号建模 在多数语音信号处理应用中,由于语音信号具有非平稳性特征,而短时语音信号的时域分布趋于平稳,常常近似为高斯分布进行离散傅里叶变换。如果声音传播满足线性波动方程,则此时声源与麦克风间的声波传播通道可认为是线性系统[10]。在实际的小型房间环境下,由于房间墙壁的反射等原因,需要考虑混响效应。对于n元麦克风阵列系统,假定声源信号为s(t),阵列第nth麦克风的接收信号yn(t)可表示为: 式中:αn为声音空间传播产生的衰减因子;rn(k)和vn(k)表示第nth麦克风因多径效应及噪声产生的冲击响应;“”表示卷积;xn(k)表示麦克风收集到多径声源信息。设定麦克风阵列的第一个单元为参考点;t为未知声源到参考麦克风的传播时间;τn,1为麦克风n与麦克风1的相对时延,其中τ1,1=0。 3 实验验证
转贴于论文联盟 http://
3.1 实验参数设置 为了验证算法的有效性,构论文联盟http://建了一个仿真实验环境,并考虑室内噪声、语音传播衰减及混响的影响。实验模拟了4 m×6 m×3 m小型办公室环境下,环境的起始坐标为(-2,-3,-1.5),终止坐标为(2,3,1.5)。其中,房间混响的冲激响应函数由 image 模型[11]产生。声源采用的是语速较快的纯净语音源。为了方便分析,将声源位置定为(0,0,0)。输入语音信号以48 khz的采样率进行采样,语音数据帧长为1 024个采样点,相邻两帧重叠 3/4,窗函数为汉明窗(hamming)。测试的语音长度为10 s。麦克风阵列的结构为“十”字型的13元阵,中心阵元坐标为(2,0,0),阵列的长和宽均为l=1.2 m。阵元间的距离s=20 cm,声源距阵列中心的距离为d=2 m。麦克风阵列结构如图1所示。 图1 麦克风阵列结构图 对于实验环境中噪声的影响,设定环境噪声服从高斯分布,且噪声信号与语音信号不相关。因此,相关函 空间搜索方法的优劣直接影响到算法的复杂度及系统的定位时间。传统的离散网格搜索方法存在两个主要问题,一是搜索空间针对整个搜索区域进行,而对于实际的室内环境,部分高度空间出现声源的可能性几乎为零,因此需要对部分空间进行人为压缩;二是搜索网格设置过小,过为单一,导致整个搜索过程迭代次数过多,因此需要对离散网格方法进行局部改进。 考虑到实验所要定位的目标为发音者的头部,根据人头部的大小,设定初始的搜索网格大小为20 cm×20 cm×20 cm。由于在会议室中,主要保持坐立两种状态,通过对人站立和入座后头部高度的测量,可测得人头部高度集中于100~190 cm。由此可将搜索的起始坐标改为(-2,-3,-0.5),终止坐标设为(2,3,0.5)。搜索空间将由72 m3改为24 m3,初始的搜索网格数为3 000。通过计算网格中心点得到的熵值选取其中熵值最小的10个网格,并按照2 cm×2 cm×2 cm的网格大小继续划分,计算网格中心点的熵值,并选择熵值最小点为声源的位置。 3.2 仿真结果 在此,利用matlab仿真软件对me算法与gcc-phat算法进行比较。仿真中采用的语音数据为10 s的男生连续语速录音,原始语音已通过录音软件cool edit进行编辑裁剪,尽可能消去非语音帧的存在,并从中任意抽取20帧数据进行分析。定位误差由声源估计位置(,)与声源位置(0,0,0)的距离表示。在混响时间为50 ms,信噪比snr=10 db仿真环境下,me算法与gcc-phat算法的定位性能如图2所示。 图2 两种定位算法定位精度比较 通过对两种算法的定位性能进行比较可以看到,采用离散网格搜索方法可以保证将声源估计位置的定位误差准确地判定到20 cm×20 cm×20 cm范围内,即初始网格大小。但在定位精度上,gcc-phat算法的平均定位误差为13.5 cm,而me算法的平均定位误差为5.7 cm,优于gcc-phat算法。 4 结 论 本文提出了一种基于最小熵的麦克风阵列声源定位新方法,其特点是根据语音源符合拉普拉斯分布这一特性,采用最小熵值方法实现麦克风阵列时延估计,并利用离散网格方法对声源进行空间搜索。仿真实验结果表明,在同等混响或噪声条件下,本文方法的定位优于gcc-phat。考虑到实际语音环境的复杂性,下一步拟简化定位算法,增强定位算法的实时性,并加强算法抗噪声和抗混响的能力,以进一步改进麦克风阵列声源的定位性能。 转贴于论文联盟 http://
|
|
上一篇艺术论文: 医用超声源声强测量不确定度 下一篇艺术论文: 基于麦克风阵列声源定位的发展历程及关键技术 |
更新时间:
|
|
|
|
|