本发明涉及信号处理技术领域,具体涉及一种多声源定位方法。
背景技术:
小型传声器阵列通常适用于办公室、会议室、智能机器人等应用场所,相位变换加权的可控响应功率srp-phat声源定位算法只需一帧信号即可实现定位,但在多声源情况下,传统srp-phat算法难以克服声源之间的干扰,最强声源的谱峰常常掩盖其它较弱声源的谱峰,导致难以找到多个声源,定位成功率较低,而小型传声器阵列的空间分辨率较低,使得实现多声源定位更为困难,多帧统计的方法虽然可以实现多声源定位,但是这类方法必须假定声源在连续多帧时间内静止不动,实时性较差。
技术实现要素:
本发明为了解决现有技术存在的问题,提出了一种基于gammatone滤波器和直方图的多声源定位方法,为了实现上述目的,本发明采用了以下技术方案。
用传声器作为阵元,组成传声器阵列,采集声源信号,传声器的数量为u,序号为u,u=1...u,第u个传声器采集的的声源信号为su(t)。
用gammatone滤波器产生脉冲响应,组成滤波器组,滤波器的数量为i,序号为i,i=1...i,第i个gammatone滤波器产生的脉冲响应函数为gi(t),gammatone滤波器的增益为a,阶数为m,衰减因子为bi,中心频率为fi,相位为
将第u个传声器采集的的声源信号su(t)通过第i个gammatone滤波器产生的脉冲响应函数gi(t),获得第i个子带的时域信号xu(i,t),子带信号为xu(i,t)=su(t)*gi(t),在时域将声源信号分割为子带信号。
在时域将子带信号xu(i,t)分割为单帧信号,单帧信号的数量为l,长度为n,序号为l,l=1...l,单帧内的采样序号为n,0≤n<n,第l个单帧第n个采样信号为xu(i,ln+n),将每个子带信号分帧。
将分帧信号作加窗处理,用窗信号
用离散傅里叶变换函数dft对xu(i,l,n)作时频转换,变换的长度为k,k=2n,频点为k,0≤k<k,得到
计算候选方位到第v个阵元的导引时延τv0(r),候选方位的声源位置为r,阵列中心的位置为r0,第v个阵元的位置为rv,空气中的声速为c,候选方位到阵列中心的声传播时延为τ0(r),候选方位到第v个阵元的声传播时延为τv(r),候选方位到第v个阵元的导引时延
计算阵列的phat可控响应输出yphat(i,l,k,r),信号采样率为fs,将τv0(r)和xu(i,l,k)代入,得到
计算每个时频单元信号的可控响应功率值,由yphat(i,l,k,r)计算第i个子带第l个单帧的时频单元信号在候选方位r的可控响应功率值
确认可控响应功率值的主峰方位和次峰方位,将p(i,l,r)的最大值确认为主峰,次最大值确认为次峰,主峰对应的rpeak1(i,l)为第i个子带第l个单帧的时频单元信号的可控响应功率最大值的方位,次峰对应的rpeak2(i,l)为第i个子带第l个单帧的时频单元信号的可控响应功率次最大值的方位。
用直方图统计主峰方位和次峰方位的数量,对第l个单帧所有子带的时频单元信号对应的方位rpeak1(i,l)作直方图,统计每个方位的数量,数量最多的方位为
将
本发明利用gammatone滤波器组分解信号子带,在时频单元内计算可控响应功率,提取声源方位信息,用直方图融合同一帧内的所有子带信息,作为方位估计的判决量,实现多声源定位;分解的每个子带在频域相互交叠而不分隔,避免相位缠绕,多个频率分量的空间谱的平均效应抑制了旁瓣,使主瓣突出,阵元间距不严格限于半波长;直方图简单易操作,计算量低;无需多帧信息,也无需假定声源在连续多帧内静止不动,实现了实时多声源定位,应用场合更为广泛;显著提高了主声源和次声源的定位成功率,尤其次声源的定位成功率提升更为明显,算法对噪声和混响都具有更强的鲁棒性。
附图说明
图1是本方法的流程图,图2是混响时间t60=0.3s时本方法和传统srp-phat方法的主声源定位成功率比较图,图3是混响时间t60=0.3s时本方法和传统srp-phat方法的次声源定位成功率比较图,图4是混响时间t60=0.3s时本方法和传统srp-phat方法的主次声源定位平均成功率比较图,图5是混响时间t60=0.6s时本方法和传统srp-phat方法的主声源定位成功率比较图,图6是混响时间t60=0.6s时本方法和传统srp-phat方法的次声源定位成功率比较图,图7是混响时间t60=0.6s时本方法和传统srp-phat方法的主次声源定位平均成功率比较图。
图2至图7的横坐标为全局信噪比,纵坐标为定位成功率。
具体实施方式
以下结合附图对本发明的技术方案做具体的说明。
一种基于gammatone滤波器和直方图的多声源定位方法,如图1所示,用麦克风作为阵元,组成传声器阵列,接收语音,采集声源信号;将声源信号通过gammatone滤波器组,通过gammatone滤波器产生的脉冲响应,将声源信号在时域分割为子带信号;将每个子带信号分帧和加窗,作时频转换处理,获得单帧信号的频域信号,作为时频单元信号;计算候选方位到阵元的导引时延,进而计算每个时频单元信号的可控响应功率值;获取声源方位信息,包括可控响应功率值的主峰方位和次峰方位;绘制直方图,统计主峰方位和次峰方位的数量;先从主峰方位的数量估计主声源方位和次声源方位,若无法估计次声源方位,再从次峰方位的数量估计次声源方位。
选用6个全向麦克风,组成均匀的圆形阵列,通过圆形麦克风阵列接收语音,采集声源信号,阵列半径设置为0.1m,每个麦克风作为一个阵元,阵元间距不必严格限于半波长,阵列采集声源信号的数量和阵元的数量u=6,序号u=1...u,第u个传声器采集的的声源信号为su(t)。
用gammatone滤波器产生脉冲响应,组成滤波器组,滤波器的数量i=32,序号i=1...i,第i个gammatone滤波器产生的脉冲响应函数为gi(t),gammatone滤波器的增益为a,阶数m=6,衰减因子bi=1.109erb(fi),中心频率fi的范围取[800hz,8000hz],相位
将第u个传声器采集的的声源信号su(t)通过第i个gammatone滤波器产生的脉冲响应函数gi(t),获得第i个子带的时域信号xu(i,t),子带信号为xu(i,t)=su(t)*gi(t),在时域将声源信号分割为子带信号,每个子带对应不同的频域范围,在频域相互交叠而不分隔,避免相位缠绕,多个频率分量的空间谱的平均效应抑制了旁瓣,使主瓣突出。
预设分帧长度和帧移,在时域将麦克风阵列第u个阵元的第i个子带的时域信号xu(i,t)分割为单帧信号,单帧信号的数量为l,长度n=512(32ms),序号为l,l=1...l,单帧内的采样序号为n,0≤n<n,帧移为0,语音信号的采样率fs=16khz,第l个单帧第n个采样信号为xu(i,ln+n),将每个子带信号分帧。
将分帧信号作加窗处理,用窗信号
用离散傅里叶变换函数dft对xu(i,l,n)作时频转换,变换的长度为k,k=2n=1024,频点为k,0≤k<k,得到
计算候选方位到第v个麦克风的导引时延τv0(r),候选方位的声源位置为r,阵列中心的位置为r0,第v个麦克风的位置为rv,空气中的声速c=342m/s,候选方位到阵列中心的声传播时延为τ0(r),候选方位到第v个麦克风的声传播时延为τv(r),候选方位到第v个麦克风的导引时延
若声源与麦克风阵列处于同一水平面,声源位于阵列的远场,声源位置由方位角θ表示,定义水平面的正前方为0°,那么θ的范围为[-180°,180°],间隔为1°,负90°表示正左方,90°表示正右方,导引时延的计算公式修正为
若声源与麦克风阵列不处于同一水平面,方位角由水平角θ和俯仰角
计算阵列的phat可控响应输出yphat(i,l,k,r),信号采样率为fs,将τv0(r)和xu(i,l,k)代入,得到
计算每个时频单元信号的可控响应功率值,由yphat(i,l,k,r)计算第i个子带第l个单帧的时频单元信号在候选方位r的可控响应功率值
确认可控响应功率值的主峰方位和次峰方位,将p(i,l,r)的最大值确认为主峰,次最大值确认为次峰,主峰对应的rpeak1(i,l)为第i个子带第l个单帧的时频单元信号的可控响应功率最大值的方位,次峰对应的rpeak2(i,l)为第i个子带第l个单帧的时频单元信号的可控响应功率次最大值的方位。
用直方图统计主峰方位和次峰方位的数量,对第l个单帧所有子带的时频单元信号对应的方位rpeak1(i,l)作直方图,组距为5°,组数为360/5=72,统计每个方位的数量,数量最多的方位为
将
分别设置混响时间t60=0.3s和t60=0.6s,测试不同信噪比和混响的环境中,本声源定位方法的性能,如图2至7所示,横坐标表示全局信噪比,纵坐标表示定位成功率,本方法比传统srp-phat算法显著提升了主次声源的定位成功率,尤其是次声源的定位成功率,对噪声和混响都具有更强的鲁棒性。
上述作为本发明的实施例,并不限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。