融合子带分析的双声源定位方法与流程

文档序号:13759420阅读:252来源:国知局
本发明涉及应用声波及麦克风阵列结构来确定声源位置的方法,属于语音信号处理领域,具体涉及一种融合子带分析的双声源定位方法。
背景技术
:声源定位已经成为语音信号处理领域的一个研究热点,在视频会议、智能机器人以及智能视频监控系统等领域有广泛的应用。目前,单声源定位算法已经有了一定的发展,并与硬件系统相结合,构建了比较完整的小型单声源定位系统。但是现存的多声源定位算法,无法克服声源信号之间的相互干扰,以致无法准确获得各个声源的位置。目前针对多声源定位的算法大致可分为两种,一种算法是在定位前先对声源进行分离,然后对单个目标声源进行定位。例如文献“基于声达时间差的多声源目标定位系统”(中南大学学报第42卷S1期)运用了两种不同的技术,误差的叠加导致定位准确率降低。而且声源分离的相关参数需要经常调整,以便适应不同的环境噪声,适应性较低。另一种算法是基于子带分析的多声源定位。文献“基于子带可控响应功率的多声源定位方法”(计算机工程与应用第49卷24期)中提到的多声源定位算法利用语音信号的稀疏性,将信号划分为不同的子带信号,再进行定位。但是该算法需要大量的声源和环境噪声的频谱特性的先验知识,实际应用中很难获得,而且计算量较大,无法实现实时定位。文献“LocalizationofMultipleSimultaneousSpeakersbyCombiningtheInformationfromDifferentSubbands”(201321stIranianConferenceonElectricalEngineering)中提到的多声源定位算法,其子带中采用的时延估计算法为传统的广义互相关(GeneralizedCrossCorrelation,GCC)算法,该算法在存在混响的情况下性能会下降。技术实现要素:本发明主要研究如何在两个声源同时发声的情况下,准确估计出各个声源的位置。为了提高双声源定位算法在混响环境下的性能,提出融合子带分析的双声源定位方法。该方法首先利用语音信号在频域的稀疏性,将混合语音信号频域分解为8个不同的子带。然后对各个子带中的GCC进行多帧加权平滑,获得SGCC函数。再融合各子带中的SGCC函数,得到各声源对应的时延估计值。最后结合空间几何定位算法得到各声源的三维位置估计。本发明的具体技术方案如下:融合子带分析的双声源定位方法,利用语音信号频域的稀疏性和基于声达时间差的声源定位技术进行双声源三维空间定位,包括以下步骤:(A)麦克风阵列采集双声源混合语音信号,并对其进行预处理;(B)将经过预处理的信号划分为子带信号;(C)对各个子带信号中的语音信号进行预白化处理;(D)计算预白化处理后的各个子带中任两路麦克风信号的平滑广义互相关函数;即SmoothGeneralizedCrossCorrelation函数,简称SGCC函数;(E)融合各个子带的SGCC函数,获得两路信号最终的SGCC函数,并根据所述SGCC函数的最大值确定声源信号到达两路麦克风的时延;(F)根据麦克风阵列的几何位置和所述双声源信号到达两个麦克风的时延值,确定声源位置;步骤(A)包括:(1)采用四元矩形阵麦克风采集双声源混合语音信号;(2)采用基于能量和过零率的双门限端点检测法确定语音信号的起始点和终止点,具体如下:对四元麦克风阵列所有麦克风接收到的信号x(n)进行分帧,每一帧表示为xi(n),n=1,2,...,N,n表示采样点,N表示帧长,i表示帧数;计算语音信号每一帧的短时帧能量:计算语音信号每一帧的过零率:其中第一级判决:首先根据语音信号的平均能量值即所有Ei的平均值设定一个较高的阈值T1,用来寻找语音的起始点;然后再利用噪声的平均能量设定一个较低的阈值T2,用来判定第一级判决中语音信号的终止点,至此第一级判决结束;第二级判决:利用噪声的平均过零率ZN即所有Zi的平均值,设定一个阈值T3,用来判定语音信号开始时的清音和结尾处的尾音;(3)采用FIR带通滤波器去除声源信号低频段和高频段的噪声,得到带通滤波后的声源信号;对带通滤波后的信号进行加窗分帧,窗函数为n表示采样点,N表示帧长;步骤(B)包括:采用FIR滤波器组将步骤(A)预处理后的语音信号均匀划分为8个不同的子带,FIR滤波器用于划分子带的冲击函数h(n)的Z变换为步骤(C)采用公式xm(n)=IFFT{FFT[xm(n)]/|FFT[xm(n)]|}对划分完子带的语音信号进行预白化处理,其中xm(n)为第m个麦克风接收到的语音信号;每个子带中都包含有所有麦克风接收到的信号,对各个子带中每个麦克风接收到的语音信号都要进行预白化处理;步骤(D)如下:设四元麦克风阵列中第m(m=1,2,3,4)个阵元接收的信号为式中,st(n)表示第t个声源信号;hmt(n)表示第t个声源与第m个麦克风之间的房间脉冲响应,即房间混响;*表示卷积;bm(n)表示房间背景噪声;每个子带中任两路麦克风信号xq(n)、xj(n)之间的广义互相关函数为式中,为麦克风q和麦克风j接收信号的互功率谱;Xq(k)为xq(n)的短时傅里叶变换;H表示共轭;N为信号的样点数即帧长;Φ(k)为加权函数;本步骤采用PHAT加权函数:式中表示麦克风q和麦克风j接收信号的加权互功率谱;引入一阶平滑滤波器对GCC-PHAT的加权互功率谱进行平滑处理,获得:Sxqxj′′i(k)=Sxqxj′i(k)i=1(1-α)Sxqxj′′i-1(k)+αSxqxj′i(k)i≥2]]>式中,α为平滑系数,取值范围为(0<α<0.5),为经过平滑后的第i(i≥1)帧信号的加权互功率谱,为平滑前的第i(i≥1)帧信号的加权互功率谱;各个子带中任两路麦克风信号的平滑广义互相关函数计算公式为:ψ^SGCC(n)=1NΣk=0N-1Sxqxj′′i(k)ej2πnk/N;]]>步骤(E)包括:采用加权平均的方法融合各个子带中任两路麦克风信号的SGCC函数:ψ^SGCC′(n)=ΣO=1Lψ^O_SGCC(n)*gL,L=8]]>其中,式中,表示各个子带中任两路麦克风信号的SGCC函数,L表示子带数,本发明将信号划分为8个子带,g表示对每个子带SGCC函数加权的权值;对所述函数进行峰值检测,其中两个最大峰值对应的时间点即为两个声源到达两路麦克风的时延值。本发明的原理说明:语音信号在频域具有稀疏性,在两个声源同时发声时,发出的语音片段在时域中会有重叠部分。但是由于各声源信号能量的不同,一个时频点将主要对应其中一个发言者(主要发言者)的频谱内容。考虑到计算的复杂性,本发明没有处理每个时频点对应的信号,而是将语音信号划分为不同的子带,对子带中的信号进行处理。考虑到在混响情况下,GCC算法的性能会急速下降,本发明引入一阶平滑滤波器对子带中的GCC函数进行平滑。保持了各个帧信号之间的连续性,消除GCC算法中仅由当前帧信号估计出的结果的波动,提高时延估计的准确性,进而提高声源定位算法的精度。与传统的双声源定位方法相比,本发明克服了声源信号间的相互干扰,提高了算法的定位精度。而且本发明有较高的抗混响性,能在强混响情况下准确估计出各个声源的位置。附图说明图1为本发明融合子带分析的双声源定位方法的框图;图2为本发明中融合子带分析的时延估计算法框图;图3为8通道FIR滤波器的频率响应;图4为经过8通道FIR滤波器划分后的部分子带语音信号;图5为SGCC时延估计的基本原理框图;图6为四元麦克风阵列双声源定位模型。具体实施方式下面结合附图对发明技术方案进行详细说明:本方法的流程图参见图1,本发明的一种融合子带分析的双声源定位方法,利用语音信号的稀疏性,结合子带分析的时延估计技术和空间几何定位技术进行双声源定位,具体实施步骤如下:1、采用麦克风阵列采集双声源混合语音信号,并对其进行预处理。本发明的预处理包括:端点检测、预滤波及加窗分帧,具体包括:端点检测是为了准确地确定语音信号的起始点和终止点,减小待处理语音信号的数据量,大大提高算法的利用率。本方法采用基于能量和过零率的双门限端点检测法,对麦克风采集到的语音信号进行检测。对麦克风阵列信号x(n)进行分帧,每一帧表示为xi(n),n=1,2,...,N,n表示采样点,N表示帧长,i表示帧数。计算语音信号的短时帧能量:计算语音信号每一帧的过零率:其中首先根据语音信号的平均能量值设定一个较高的阈值T1,用来寻找语音的起始点。然后再利用噪声的平均能量设定一个较低的阈值T2,用来判定第一级判决中语音信号的终止点,至此第一级判决结束。第二级判决(在第一级判决的基础上再进行的判决)利用噪声的平均过零率ZN,设定一个阈值T3,用来判定语音信号开始时的清音和结尾处的尾音。三个阈值的确定:首先计算最初10帧信号每帧的短时能量Ei,最大值记为EMAX,最小值记为EMIN,然后令:I1=0.03(EMAX-EMIN)+EMIN,I2=4EMIN,T1和T2按下式确定:T2=min(I1,I2)T1=5T2。过零率阈值T3:T3=min(IF,zc+2fzc),IF为25;zc、fzc分别为最初10帧过零率的“均值”和“标准差”。预滤波的目的是抑制信号中的高频和直流噪声,提高信噪比。语音信号的频率范围为300~3400Hz,而在各个频段中都可能有噪声的存在。所以在对信号进行处理前,本发明采用FIR带通滤波器去除信号低频段和高频段的噪声。加窗分帧可以确保信号的短时平稳性。本发明采用交叠分段的办法进行分帧,以确保帧与帧之间能够平滑过渡,保持信号的连续性。采用矩形窗进行分帧,窗函数为本发明中信号采样率为fs=8000Hz,帧长256采样点,帧移128采样点。2、对任两路麦克风采集到的信号进行时延估计,本发明融合子带分析的平滑广义互相关时延估计算法框图参见图2,具体包括:a.将经过预处理的信号划分为子带信号。与IIR滤波器相比,FIR滤波器具有线性相位特性,使得信号在传输时不会发生明显的相位失真。所以本发明采用FIR滤波器将语音信号均匀划分为8个子带FIR,8通道FIR滤波器的频率响应如图3所示,图4所示为利用FIR滤波器进行均匀子带划分后部分子带中的信号。b.对各个子带中的信号进行预白化处理:xm(n)=IFFT{FFT[xm(n)]/|FFT[xm(n)]|}。c.计算各个子带中任两路麦克风信号的SGCC函数。本发明SGCC函数的计算原理框图参见图5,其基本步骤为:先将两路麦克风接收到的时域信号变换为频域信号,求它们的互功率谱,公式为:表示麦克风q和麦克风j接收信号的互功率谱。Xq(k)为xq(k)的短时傅里叶变换,H表示共轭。然后通过加权来锐化函数峰值,以抑制环境噪声和房间混响的影响,获得加权互功率谱。本发明采用的加权函数为PHAT,加权互功率谱:引入一阶平滑滤波器对信号的加权互功率谱进行平滑处理,保持各个帧信号之间的连续性,消除仅由当前帧信号估计出的结果的波动,提高时延估计的准确性,进而提高声源定位算法的精度。公式如下:Sxqxj′′i(k)=Sxqxj′i(k)i=1(1-α)Sxqxj′′i-1(k)+αSxqxj′i(k)i≥2]]>式中,α为平滑系数,取值范围为(0<α<0.5),表示经过平滑后的第i(i≥1)帧信号的加权互功率谱,为平滑前的第i(i≥1)帧信号的加权互功率谱。最后通过傅里叶逆变换获得两路麦克风信号间的平滑广义互相关函数:ψ^SGCC(n)=1NΣk=0N-1Sxqxj′′i(k)ej2πnk/N.]]>d.融合各个子带的SGCC函数,获得两路信号最终的SGCC函数。采用加权平均的方式融合各个子带中的SGCC函数,即先对每个子带的SGCC函数进行加权,然后再求平均值获得最终的SGCC函数。其中权值为各子带中SGCC函数最大峰值与次大峰值幅度的比值,如下式所示:ψ^SGCC′(n)=ΣO=1Lψ^O_SGCC(n)*gL,L=8]]>其中,式中,g表示对每个子带SGCC函数加权的权值。当某个子带中只有一个声源为主要声源,即一个声源的能量远远大于另一个声源的能量时,最大峰值的幅度会远远大于次大峰值的幅度,该子带的权值也就相应的比较大;当某个子带中两声源的能量相近时,最大峰值的幅度与次大峰值的幅度比较接近,则该子带的权值就比较小。所以,该加权平均的方式充分地利用了语音信号频域的稀疏性,使得某些主要对应于一个发言者频谱内容的子带SGCC函数在最终SGCC函数中的比重增大,提高时延估计精度。该函数两个最大峰值对应的时间点即为两个声源的时延值。3、根据麦克风阵列的几何位置和所述双声源信号到达两个麦克风的时延值,确定声源位置。建立四元阵双声源空间几何定位模型,参见图6。四个麦克风的坐标位置分别为M1(a1,b1,0),M2(a1,b2,0),M3(a2,b1,0),M4(a2,b2,0)。两声源信号的位置分别为S1(x,y,z),S2(x′,y′,z′)。取M1作为参考麦克风,利用本发明融合子带分析的平滑广义互相关时延估计算法分别计算出两声源相对于M1到达其余麦克风的时延值。假定S1相对于M1到达麦克风M2、M3、M4的时延值分别为τ21、τ31、τ41,S1到坐标原点的距离为r,S1到M1、M2、M3、M4的距离分别为d1、d2、d3、d4,声音在空气中的传播速度为c。则d21=d2-d1=τ21c;d31=d3-d1=τ31c;d41=d4-d1=τ41c。根据麦克风阵列和声源S1的几何位置关系可得到方程组:x2+y2+z2=r2(x-a1)2+(y-b1)2+z2=d12(x-a1)2+(y-b2)2+z2=(d1+τ21c)2(x-a2)2+(y-b1)2+z2=(d1+τ31c)2(x-a2)2+(y-b2)2+z2=(d1+τ41c)2]]>式中(x,y,z,r,d1)为未知数,通过计算方程组即可得到S1的具体位置S1(x,y,z);同理可得到S2的具体位置坐标S2(x′,y′,z′)。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1