基于麦克风阵列的动态数量声源跟踪方法转让专利

申请号 : CN201510750553.3

文献号 : CN105590021B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 江晓波蒋三新应忍冬刘佩林

申请人 : 上海交通大学

摘要 :

本发明涉及一种基于麦克风阵列的多声源跟踪方法,所述方法包括:利用波束形成算法处理麦克风阵列接收信号并计算空间谱;计算空间谱峰与跟踪声源的匹配概率以实现两者的数据关联;根据匹配结果更新各个跟踪声源的粒子权值并更新声源位置;检测谱峰判定为新声源的概率,激活新声源粒子滤波器并评估其存在可能性;监测跟踪声源活跃状态并删除非活跃声源。采用本发明可以实现动态声源数量的多目标实时跟踪,在人机交互、远程会议及虚拟现实等复杂场景中都有广泛的应用。

权利要求 :

1.一种基于麦克风阵列的动态数量声源跟踪方法,其特征在于,包括以下步骤:S1、接收音频信号,计算空间谱,检测空间谱谱峰位置,得到观测值;

S2、根据所述观测值与当前时刻的K个跟踪声源进行数据关联,计算空间谱峰与跟踪声源的匹配概率;

S3、检查当前时刻粒子滤波器或检查当前时刻跟踪目标数量;

若所述粒子滤波器已经初始化或所述跟踪目标数量不等于0,进入步骤S4;

若所述粒子滤波器尚未初始化或所述跟踪目标数量等于0,进入步骤S8;

S4、评估试用声源存在概率并删除伪声源,监测跟踪声源活跃状态并删除非活跃声源;

S5、根据谱峰-声源匹配边缘后验概率定义声源的似然函数,并更新各声源的粒子权重;

S6、根据所述粒子权重和粒子位置计算当前时刻各声源的位置;

S7、根据贝叶斯推断预测各声源的先验活跃概率;

S8、检测各谱峰的匹配概率,若所述各谱峰的匹配概率大于预设的判定阈值,激活新声源;

S9、预测下一个时刻各声源粒子状态;

S10、判断各声源的有效粒子数量,若所述有效粒子数量少于预设的粒子数量值,则重新采样所述声源的粒子,并进入步骤S1;反之,进入步骤S1。

2.根据权利要求1所述的基于麦克风阵列的动态数量声源跟踪方法,其特征在于,所述步骤S2包括以下步骤:S2.1、列举所有谱峰-声源匹配的组合;

S2.2、根据所述谱峰-声源匹配的组合计算谱峰-声源匹配联合先验概率;

S2.3、计算预测性似然概率;

S2.4、根据所述谱峰-声源匹配联合先验概率以及所述预测性似然概率计算谱峰-声源匹配联合后验概率;

S2.5、重复步骤S2.1至S2.4,计算谱峰-声源匹配边缘后验概率;

S2.6、归一化所述谱峰-声源匹配边缘后验概率。

3.根据权利要求1所述的基于麦克风阵列的动态数量声源跟踪方法,其特征在于,所述步骤S4包括以下步骤:S4.1、计算各声源当前观测下的活跃概率;

S4.2、检查各个声源当前所处阶段:若声源处于试用阶段,进入步骤S4.3;

若声源处于跟踪阶段,进入步骤S4.4;

S4.3、评估试用声源存在概率,删除伪声源;

S4.4、监测跟踪声源活跃状态,并删除非活跃声源。

4.根据权利要求3所述的基于麦克风阵列的动态数量声源跟踪方法,其特征在于,所述步骤S4.3包括以下步骤:S4.31、更新试用声源累积活跃概率;

S4.32、检查试用期计时器,若试用期未满,进入步骤S5;

若试用期已满,进入步骤S4.33;

S4.33、计算试用声源在试用期间平均存在概率,若所述试用声源在试用期间平均存在概率高于预设的存在性阈值,标记所述试用声源,并进入跟踪阶段;反之,删除该试用声源的粒子滤波器。

5.根据权利要求3所述的基于麦克风阵列的动态数量声源跟踪方法,其特征在于,所述步骤S4.4包括以下步骤:S4.41、检验跟踪声源当前时刻非活跃程度,若所述非活跃程度小于预设的活跃值,非活跃计数器自加1,并进入步骤S4.42;

反之,所述非活跃计数器清零,并进入步骤S5;

S4.42、检查所述非活跃计数器,若所述非活跃计数器的值等于预设的次数,删除该非活跃声源。

6.根据权利要求1所述的基于麦克风阵列的动态数量声源跟踪方法,其特征在于,所述步骤S8包括以下步骤:S8.1、检测各谱峰的匹配概率,若所述各谱峰的匹配概率大于预设的判定阈值,进入步骤S8.2,反之,进入步骤S9;

S8.2、初始化新声源粒子状态,对粒子赋予均匀权值;

S8.3、初始化新声源活跃概率;

S8.4、为新声源分配ID;

S8.5、标记新声源进入试用阶段,开启试用期计时器。

说明书 :

基于麦克风阵列的动态数量声源跟踪方法

技术领域

[0001] 本发明涉及的是一种阵列音频信号处理领域的方法,尤其涉及一种基于数据关联和粒子滤波的多声源跟踪方法。

背景技术

[0002] 在声源定位与跟踪的许多应用中,如人机交互、远程会议、虚拟现实等,都需要对应用场景中的说话人进行定位与跟踪。由于实际应用场景中存在噪声,回响以及其他声源的干扰,如何在复杂环境下完成对说话人实时的定位与跟踪并保证系统的鲁棒性一直是研究的热点。除此之外,由于语音信号本身的非平稳特性,声源沉默与活跃状态的随机性,更使得这一问题更具有挑战性。
[0003] 目前,对于单声源的定位与跟踪技术已经非常成熟,主要采用基于TDOA的声源定位算法与基于粒子滤波的声源跟踪算法。对于多声源定位的问题,目前存在的主流方法主要分为两类:基于可控波束形成的方法和基于现代高分辨率谱估计的方法,其中,后者需要对声源数量具有先验假设,而前者没有这种限制。对于多声源跟踪的问题,由于存在观测与跟踪目标的匹配模糊问题,所以在对多个跟踪目标位置更新之前,需要对观测进行分类。目前存在的多声源跟踪算法主要采用最近邻的原则对观测与跟踪声源进行匹配。然而,这种处理方式忽略了实际情况下存在的很多其他可能性。并且,现有的多声源跟踪方法应用的场景是一种较为理想的环境,即,假设声源数量可知且在跟踪过程中不会变化,这意味着说话人在跟踪过程中会不间断地说话,这种限制使得现有的多声源跟踪算法难以应用于实际的场景。

发明内容

[0004] 本发明针对现有技术存在的上述不足,提供一种基于数据关联和粒子滤波的多声源跟踪方法,既可提升声源定位与跟踪的准确度,又可以实现动态声源数量的目标跟踪,可应用在动态变化的复杂场景中。
[0005] 为了实现上述目的,本发明提供了一种基于麦克风阵列的动态数量声源跟踪方法,包括以下步骤:
[0006] S1、接收音频信号,计算空间谱,检测空间谱谱峰位置,得到观测值;
[0007] S2、根据观测值与当前时刻的K个跟踪声源进行数据关联,计算空间谱峰与跟踪声源的匹配概率;
[0008] S3、检查当前时刻粒子滤波器或检查当前时刻跟踪目标数量;
[0009] 若粒子滤波器已经初始化或跟踪目标数量不等于0,进入步骤S4;
[0010] 若粒子滤波器尚未初始化或跟踪目标数量等于0,进入步骤S8;
[0011] S4、评估试用声源存在概率并删除伪声源,监测跟踪声源活跃状态并删除非活跃声源;
[0012] S5、根据谱峰-声源匹配边缘后验概率定义声源的似然函数,并更新各声源的粒子权重;
[0013] S6、根据粒子权重和粒子位置计算当前时刻各声源的位置;
[0014] S7、根据贝叶斯推断预测各声源的先验活跃概率;
[0015] S8、检测各谱峰的匹配概率,若各谱峰的匹配概率大于预设的判定阈值,激活新声源;
[0016] S9、预测下一个时刻各声源粒子状态;
[0017] S10、判断各声源的有效粒子数量,若有效粒子数量少于预设的粒子数量值,则重新采样声源的粒子,并进入步骤S1;反之,进入步骤S1。
[0018] 作为优选的,步骤S2包括以下步骤:
[0019] S2.1、列举所有谱峰-声源匹配的组合;
[0020] S2.2、根据谱峰-声源匹配的组合计算谱峰-声源匹配联合先验概率;
[0021] S2.3、计算预测性似然概率;
[0022] S2.4、根据所述谱峰-声源匹配联合先验概率以及预测性似然概率计算谱峰-声源匹配联合后验概率;
[0023] S2.5、重复步骤S2.1至S2.4,计算谱峰-声源匹配边缘后验概率;
[0024] S2.6、归一化谱峰-声源匹配边缘后验概率。
[0025] 作为优选的,步骤S4包括以下步骤:
[0026] S4.1、计算各声源当前观测下的活跃概率;
[0027] S4.2、检查各个声源当前所处阶段:
[0028] 若声源处于试用阶段,进入步骤S4.3;
[0029] 若声源处于跟踪阶段,进入步骤S4.4;
[0030] S4.3、评估试用声源存在概率,删除伪声源;
[0031] S4.4、监测跟踪声源活跃状态,并删除非活跃声源。
[0032] 进一步的,步骤S4.3包括以下步骤:
[0033] S4.31、更新试用声源累积活跃概率;
[0034] S4.32、检查试用期计时器,若试用期未满,进入步骤S5;
[0035] 若试用期已满,进入步骤S4.33;
[0036] S4.33、计算试用声源在试用期间平均存在概率,若试用声源在试用期间平均存在概率高于预设的存在性阈值,标记试用声源,并进入跟踪阶段;反之,删除该试用声源的粒子滤波器。
[0037] 进一步的,步骤S4.4包括以下步骤:
[0038] S4.41、检验跟踪声源当前时刻非活跃程度,
[0039] 若非活跃程度小于预设的活跃值,非活跃计数器自加1,并进入步骤S4.42;
[0040] 反之,非活跃计数器清零,并进入步骤S5;
[0041] S4.42、检查非活跃计数器,若非活跃计数器的值等于预设的次数,删除该非活跃声源。
[0042] 作为优选的,步骤S8包括以下步骤:
[0043] S8.1、检测各谱峰的匹配概率,若各谱峰的匹配概率大于预设的判定阈值,进入步骤S8.2,反之,进入步骤S9;
[0044] S8.2、初始化新声源粒子状态,对粒子赋予均匀权值;
[0045] S8.3、初始化新声源活跃概率;
[0046] S8.4、为新声源分配ID;
[0047] S8.5、标记新声源进入试用阶段,开启试用期计时器。
[0048] 与现有技术相比,本发明将数据关联纳入粒子滤波的框架之中,通过对观测-声源目标匹配先验与后验的精确建模解决了观测与声源之间的匹配模糊问题,由于数据关联考虑了几乎所有的匹配可能,本发明提出的方法能够应对各种各样不同的运动模式。另外,通过将新声源的加入机制与非活跃声源的删除机制纳入数据关联与粒子滤波的框架,实现了动态声源数量的多目标跟踪,并且,不需要加入单独的声源活跃状态检测模块,有效地降低了算法的运算时间,保证了跟踪的实时性。

附图说明

[0049] 图1是本发明一实施例的工作主流程图。
[0050] 图2是本发明一实施例中步骤S2的流程示意图。
[0051] 图3是本发明一实施例中步骤S4的流程示意图。
[0052] 图4是本发明一实施例中声源经历的阶段图。
[0053] 图5是本发明一实施例中实验环境俯视图。

具体实施方式

[0054] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。
[0055] 为解决上述技术问题,本发明的第一实施方式提供了一种基于麦克风阵列的动态数量声源跟踪方法,如图5所示,在听音室的中心位置布置8阵元圆形麦克风阵列,每个阵元采用平衡式测试麦克风接收空间声场信息,每个通道的麦克风通过卡农头连接到听音室外部的幻象电源,并通过多通道数据采集卡连接到PC计算机。由于本实施例中采用的是单个麦克风阵列,故而波束形成的搜索空间为以阵列中心为圆心的三维空间方位,即将一个单位球面分为足够密的格点,实际应用过程中,格点数量的选取只要满足分辨率的需要即可。整个声源定位与跟踪过程中,采样率设置32KHz,帧长取为1024点,具体的步骤如下:
[0056] S1、打开音频输入流,将麦克风阵列读取的音频数据分帧并存入缓冲区,从缓冲区取出一帧数据并运用波束形成算法计算空间谱,对空间谱进行谱峰检测得到一系列观测值,以j∈{1...M}来标记它们,这里M的值取为4,选择空间谱中能量最高的4个谱峰位置。
[0057] S2、对上一步骤中得到的观测值和当前时刻的K个跟踪声源进行数据关联,计算空间谱峰与跟踪声源的匹配概率。为了保证算法的实时性,这里限定同时跟踪的声源数量不超过3个。计算空间谱峰与跟踪声源的匹配概率具体过程为:
[0058] S2.1、列举所有谱峰-声源匹配的可能组合。
[0059] 以k∈{1...K}标记当前时刻的跟踪声源,用λ=(r,MN,MC,MT)来表示观测值与跟踪声源目标之间的匹配关系,其中,MN,MC,MT分别表示由新声源,错误检测以及跟踪目标引起的观测数量,显然,M=MN+MC+MT。匹配向量r=(r1...rM)由以下表达式给出[0060]
[0061] 在跟踪算法的初始化阶段,跟踪目标数量为零,集合k∈{1...K}为空集,所有的观测值由新声源和错误检测引起。可以看出,匹配向量 或者λ=(r,MN,MC,MT)代表了一种空间谱峰与跟踪声源之间的匹配组合。
[0062] 列举所有的组合可能,构成集合Λt。构成该集合的过程中,每添加一种组合都需要对该组合进行冲突性检测,以保证每个跟踪声源在每种组合中最多出现一次。例如,r=(r1...r4)=(-1,0,1,2)为有效组合,此时,λ=(r,1,1,2);而r=(r1...r4)=(-1,0,1,1)为无效组合。
[0063] S2.2、根据谱峰-声源匹配的组合计算谱峰-声源匹配联合先验概率。
[0064] 在贝叶斯推断的框架下,为了获得谱峰-跟踪声源的后验匹配概率,需要对匹配的先验分布建模。这里,假定谱峰-跟踪声源匹配的先验分布与观测之间相互独立,则匹配的先验分布可以表示为
[0065]
[0066] 其中,
[0067]
[0068] PN为固定值,表示新声源出现的先验概率。λC为伪峰出现的平均瞬时速率,与房间的尺寸以及回响情况有关。 表示声源rj,t当前时刻的先验活跃概率。
[0069] 计算谱峰-声源匹配联合先验概率 在算法的初始化阶段,由于不存在跟踪声源,所以该公式中的第三项 不存在;对于处于试用阶段和跟踪阶段的声源, 在上一个时刻由预测得出。这里,新声源出现的
先验PN取为0.05,与声源从沉默状态转化为活跃状态先验相同。
[0070] S2.3、计算预测性似然概率。计算预测性似然概率的公式为
[0071]
[0072] 其中, 为以粒子位置 为均值,σ为方差的高斯分布在观测位置yj,t处的取值,方差σ取为0.05。同样,在算法的初始化阶段,此项不存在。
[0073] S2.4、根据所述谱峰-声源匹配联合先验概率以及预测性似然概率计算谱峰-声源匹配联合后验概率。
[0074] 对于任意一种匹配组合λ=(r,MN,MC,MT),假定单个谱峰与单个跟踪声源的匹配rj(j∈{1...M})之间是相互独立的,则该组合的后验联合概率可以表示为:
[0075]
[0076] 其中,V为波束形成搜索空间面积,预测性似然概率 可通过以下公式给出:
[0077]
[0078]
[0079] 表示对于一个位于粒子位置 处的声源,其观测为yj,t的概率。为上一时刻的粒子权重,NP为粒子数目。
[0080] S2.5、重复步骤S2.1至S2.4,计算谱峰-声源匹配边缘后验概率,计算谱峰-声源匹配边缘后验概率。
[0081] 具体的,遍历集合Λt中的所有组合可能,计算谱峰-声源匹配边缘后验概率[0082]
[0083] S2.6、归一化谱峰-声源匹配边缘后验概率。
[0084] 由于每个谱峰最终最多只能与一个跟踪声源匹配,所以必有
[0085]
[0086] 故而每个谱峰j∈{1...M}最终的匹配概率需要由下式进行归一化
[0087]
[0088] 显然,p(rj,t=-1|y1:t)表示谱峰j∈{1...M}被判定为新声源的概率,p(rj,t=0|y1:t)表示谱峰j∈{1...M}被判定为错误检测的概率。
[0089] S3、检查当前时刻粒子滤波器或检查当前时刻跟踪目标数量;
[0090] 若粒子滤波器已经初始化或跟踪目标数量不等于0,进入步骤S4;
[0091] 若粒子滤波器尚未初始化或跟踪目标数量等于0,进入步骤S8。
[0092] S4、评估试用声源存在概率并删除伪声源,监测跟踪声源活跃状态并删除非活跃声源,具体过程为:
[0093] S4.1、计算各声源当前观测下的活跃概率。
[0094] 用Ak,t∈{0,1}表示跟踪声源目标k∈{1...K}当前时刻的活跃状态,则声源k∈{1...K}在当前观测下的活跃概率可以表示为Pk=p(Ak,t=1|yt),而根据以上算出的后验匹配概率,活跃概率Pk可以由以下公式计算得到
[0095]
[0096] 令p(rj,t=k|y1:t)=Pj,k,所以
[0097] S4.2、检查各个声源当前所处阶段,若声源处于试用阶段,则进入步骤S4.3;若声源处于跟踪阶段,则进入步骤S4.4。
[0098] S4.3、评估试用声源存在概率并删除伪声源,具体过程为:
[0099] S4.31、更新试用声源累积活跃概率 其中,τ为激活该试用声源粒子滤波器的时刻;
[0100] S4.32、检查试用期计时器,若t-τ<Tprob,则试用期未满,否则,试用期满。若试用期未满,直接跳至步骤S5;若试用期已满,则进入下一步骤S4.33。其中,Tprob为事先定义的试用期长度,在本实施例中设为50,表示50次循环,每次循环大约为一帧数据的时长,本实施例中设为32ms;
[0101] S4.33、计算试用声源试用期间平均存在概率 若 则表示新声源通过试用期,确认该声源的存在性,并标记该声源进入跟踪阶段;否则,删除该试用声源的粒子滤波器。其中,Pprob为事先定义的存在性阈值,在本实施例中,存在性阈值Pprob设置为0.7。
[0102] S4.4、监测跟踪声源活跃状态并删除非活跃声源,具体过程为:
[0103] S4.41、检验跟踪声源当前时刻非活跃程度,若非活跃程度小于预设的活跃值,即则更新非活跃计数器Tcount=Tcount+1,进入下一步骤S4.42;否则,非活跃计数器清零,即令Tcount=0并跳至步骤S5。
[0104] S4.42、检查非活跃计数器,若Tcount=Tcumu,则计数器满,删除该非活跃声源。设置Tcumu为25,表示当声源连续25个循环处于非活跃状态时,则需要删除该声源。
[0105] S5、根据谱峰-声源匹配边缘后验概率定义声源的似然函数,并更新各声源的粒子权重。
[0106] 由步骤S2中计算得到的谱峰-声源匹配边缘后验概率Pj,k=p(rj,t=k|y1:t),声源k∈{1...K}的似然函数可以定义成
[0107]
[0108] 粒子权值可以由以下公式来更新
[0109]
[0110] S6、根据粒子权重和粒子位置计算当前时刻各声源的位置。计算公式为[0111]
[0112] S7、根据贝叶斯推断预测各声源的先验活跃概率。
[0113] 用p(Ak,t+1=1|Ak,t=1)表示声源在下一时刻保持活跃状态的概率,p(Ak,t+1=1|Ak,t=0)表示沉默声源转为活跃状态的概率,则通过简单的边缘化与贝叶斯推断,下一时刻声源的先验活跃概率可以用以下公式预测:
[0114] p(Ak,t+1=1|y1:t)=p(Ak,t+1=1|Ak,t=1)p(Ak,t=1|y1:t)
[0115]                 +p(Ak,t+1=1|Ak,t=0)p(Ak,t=0|y1:t)
[0116] p(Ak,t=1|y1:t)+p(Ak,t=0|y1:t)=1
[0117] 其中p(Ak,t=0|y1:t-1)=1-p(Ak,t=1|y1:t-1),p(Ak,t=0|yt)=1-p(Ak,t=1|yt)。
[0118] 设置声源保持活跃状态的先验为p(Ak,t+1=1|Ak,t=1)=0.95,声源由沉默状态转为活跃状态的先验为p(Ak,t+1=1|Ak,t=0)=0.05,则预测声源下一时刻的先验活跃概率公式为:
[0119] p(Ak,t+1=1|y1:t)=0.95p(Ak,t=1|y1:t)+0.05p(Ak,t=0|y1:t)。
[0120] S8、检测各谱峰的匹配概率,若各谱峰的匹配概率大于预设的判定阈值,激活新声源,具体过程为:
[0121] S8.1、检测各谱峰的匹配概率p(rj,t=-1|y1:t),即谱峰j∈{1...M}被判定为新声源的概率,若p(rj,t=-1|y1:t)>Pnew,则激活新声源粒子滤波器,并进入下一步骤S8.2;否则,直接跳至步骤9。其中,Pnew表示新声源的判定阈值,在本实施例中设定为0.5。
[0122] S8 .2、初始化新声源粒子状态 并对粒子赋以均匀权值为了保证粒子的数量足以准确估计声源状态的后验概率密度,同时不至于
使得算法的复杂度过高,在本实施例中,粒子数量Np设置为1000。
[0123] S8.3、初始化新声源活跃概率p(Ak,0=1|y0)=1;
[0124] S8.4、为新声源分配ID;
[0125] S8.5、标记新声源进入试用阶段并开启试用期计时器。
[0126] S9、用以下运动模型对各个声源的粒子状态进行预测:
[0127]
[0128]
[0129] 其中,a=e-αΔT, ΔT为状态更新的时间间隔,即为一帧数据的时长32ms。根据不同的运动状态,α,β有不同的取值,这里考虑三种不同的状态:
[0130] 静止声源(α=2,β=0.004);
[0131] 匀速声源(α=0.05,β=0.2);
[0132] 加速声源(α=0.5,β=0.2)。
[0133] S10、判断各声源的有效粒子数量,若有效粒子数量少于预设的粒子数量值,则重新采样声源的粒子,并进入步骤S1;反之,进入步骤S1。
[0134] 估计各个跟踪声源的有效粒子数量 若Neff<Nthresh,则对退化粒子进行重采样,然后跳回步骤1,进入下一个循环;否则,直接跳回步骤1。其中,Nthresh为事先设定的有效粒子数量门限。在本实施例中,Nthresh设为0.7Np,即700。
[0135] 在本实施例中,所有的声源都会经历以下完整的过程:
[0136] 初始化;
[0137] 试用阶段;
[0138] 通过试用期,则进入跟踪阶段;否则,直接删除声源;
[0139] 处于连续非活跃状态;
[0140] 删除声源。
[0141] 本方法主要用于声场重建系统,通过麦克风阵列采集一个房间中声源发出的声音,同时根据采集的音频信号实时跟踪声源的位置,然后将音频信号连同声源的位置信息远程发送到另一个房间,在这个远程的房间重建出虚拟的声源。
[0142] 上述各实施方式是实现本发明的具体实施例,本领域的普通技术人员可以理解,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。