本发明属于信号处理领域,更进一步涉及一种基于压缩感知的混响房间内分布式欠定数量麦克风阵列多声源定位方法及系统。
背景技术
随着通信行业的迅速发展,阵列信号处理成为一项研究热点。20世纪90年代以来,基于麦克风阵列的声源定位技术已在各个领域取得长足的进步与发展。比如在军事领域,声源定位技术可用于确定狙击手位置以及估计火炮发射位置等;在工业应用上,采用麦克风阵列声源定位技术对机械设备的故障进行定位;在安全监控方面,对于视频监控中存在的死角及视觉不佳的问题,声源定位技术可起到很好地补偿作用;在音/视频会议中,声源定位技术和语音增强技术的应用使与会者可在房间内自由走动而无需手动切换语音采集设备。然而,在像会议室这样的实际房间环境中,声源信号经房间墙壁、天花板、地面等的多次反射而形成房间混响。在混响条件下,常规的麦克风阵列声源定位算法,如基于高分辨率谱估计的定位算法或基于波达时延差的算法的定位性能显得颇为乏力,而基于最大输出功率的可控波束形成算法虽然抗混响能力较好,但在多声源情况下,这种算法须要克服初值敏感的问题,且为了提升定位精度,须以大量的麦克风阵列为代价。
一般多声源定位算法大致分两类:一是基于传统的多重信号分类的声源定位算法,二是基于盲源分离-声达时差方法的声源定位算法。如文献(宋宫琨琨.基于麦克风阵列的室内语音定位算法研究[d].南京信息工程大学,2016.)提出的一种基于一致聚焦变换最小二乘法的麦克风阵列双声源定位算法,运用基于一致聚焦变换最小二乘法的宽带信号music算法,对室内近场双声源进行定位。纵观整个麦克风阵列声源定位算法的特点,现有的麦克风阵列声源定位技术仍无法摆脱三角定位的限制,即使采用信道盲分离技术,可恢复的声源数目依然无法超过麦克风数量;欠定盲源分离方法虽然能解决声源数大于麦克风数量的问题,但目前只能处理相对线性瞬时混叠的情况,不能处理卷积混叠和非线性混叠的情况。所以目前具有实用价值的麦克风阵列系统大都是海量阵列,即麦克风数量至少超过声源数目。
压缩感知理论提出之后,被很多学者应用到阵列信号处理中,如文献(赵小燕,周琳,吴镇扬.基于压缩感知的麦克风阵列声源定位算法[j].东南大学学报(自然科学版),2015,45(2):203-207.)提出了一种基于压缩感知的声源定位算法,实现了在混响环境下使用3个麦克风定位1个声源的定位算法。该算法假设3个麦克风和说话人处于同一水平面,将声源可能存在的空间离散成36个位置(0°,10°,…,350°),并以这36个位置的房间冲激响应来构建字典,再采用omp算法恢复出声源信号矢量,以矢量中最大元素对应空间位置作为实际声源的位置。文献(柯炜,张铭,张铁成.一种利用分布式传声器阵列的声源三维定位方法[j].声学学报,2017(3):361-369.)提出一种利用空间稀疏性和压缩感知原理的声源定位方法,该方法首先通过两次余弦变换提取声音信号特征,并用此特征构建稀疏定位模型,然后利用在线字典学习方法动态调整字典,克服稀疏模型与实际信号之间的失配问题,最后使用一种改进的平滑l0范数稀疏重构算法进行声源位置解算。
以上两种算法虽然都实现了混响环境下麦克风阵列的声源定位,但使用麦克风数量依然多于空间中的声源数量。在像会堂、礼堂这样的大型室内公共场所的混响环境中,要实现多声源定位和语音分离,就需要大量的麦克风阵列采集设备,这无疑增加了系统的计算负担和硬件成本。在类似手机、电脑这样的语音通信设备日益小型化的今天,大而笨重的硬件设施显然过时,在达到精确定位目标的前提下,我们更希望使用的硬件设备更小巧、便捷,在麦克风阵列声源定位系统中,减少阵列数量也是减小阵列尺寸的一条有效路径。
技术实现要素:
为了解决块稀疏表达的问题,本发明提出如下技术方案:
一种多声源定位中二维网格中的信号s在空-频域的表达具有块稀疏性的方法是:假设k个声源同时分布于同一水平面,此水平面被划分成g个网格,声源数目远小于网格的数量,每个声源只占据一个网格,假设在时间观测窗内,声源位置不变,则每个网格信号的频域表示为sg∈cf×1,g∈{1,...,g},将各网格的信号按列堆叠后,k个声源所在的整个二维网格信号的空-频域表达为
有益效果:本发明将声源定位中的二维网格的信号s块稀疏性表示,而s块稀疏处理是解决块稀疏性表达声源位置和数量的技术基础,因而,本发明的方案使得可以使用块稀疏性定位多声源成为可能。
附图说明
图1为本发明实现的基本流程图。
图2为本发明模拟多个声源同时位于房间的不同位置时的定位仿真图;
其中:(a)4个声源位于房间右上角,(b)5个声源同时分布于房间左上角左下角和右上角,(c)5个声源同时分布在房间左上角、右上角、右下角(d)6个声源同时位于房间左上角,(e)7个麦克风同时分布在房间右上角和左下角,(f)8个麦克风同时分布在房间中间。
图3为本发明在不同混响时间下的定位成功率直方图。
图4为本发明在不同频点数时的定位成功率直方图。
图5为本发明在声源数目增加时的声源定位成功率折线图。
图6为本发明方法与其他传统方法的定位对比图。
具体实施方式
为了使本发明的技术内容、特征等更加明显易懂,下面结合图1对本发明的实现步骤做出说明,简要的说,本发明混响房间内分布式麦克风阵列多声源定位方法,可以由软件实现,主要涉及下述步骤:
(1)首先确定房间尺寸,即分别获取房间的长、宽、高数值,同时确定麦克风阵列的位置,均以米为单位。
(2)构造房间冲激响应,生成压缩观测矩阵。
(3)多声源信号、压缩观测矩阵以及麦克风观测数据三者之间的关系由欠定线性方程组所示,此为本发明提出的混响多声源定位算法模型。
(4)麦克风观测数据为已知量,计算压缩观测矩阵,采用块稀疏优化算法求得声源信号的估计,对该估计信号进行整合,将非零块的位置与空间网格对应,即可得出声源和数目。
对上述技术方案作出详细说明如下:
根据混响多声源信号传播及麦克风接收信号的特点构造压缩感知定位算法;在已知房间尺寸和麦克风位置前提下,采用image方法构造压缩观测矩阵;使用块稀疏优化对本发明提出的混响房间内欠定数量麦克风阵列多声源定位算法进行求解,得到空间中各个声源的位置及数目。具体步骤如下:
1.构造压缩感知混响多声源定位算法
1a)混响多声源传播模型描述
室内混响环境下,声源数目未知的多声源多信道的时域传播模型为:
其中xm表示第m个麦克风接收的信号,sn(t)表示第n个声源信号,hmn(t)表示第n个声源与第m个麦克风之间的信道,亦称为第n个声源与第m个麦克风之间的房间冲激响应,*为卷积符号,m为麦克风的数量。经短时傅里叶变换得:
1b)混响多声源空-频域块稀疏表达
考虑k个声源同时分布于同一水平面,即房间的俯视面,此平面被划分成g个网格,声源数目远小于网格的数量,即k<<g(一般g与k的比值大于一个数量级即可),且网格足够密,以使每个声源只占据一个网格。假设在时间观测窗内,声源位置不变。为便于推导,框架构造时将该二维网格按列排列成一维向量(本框架同样适用于三维网格,只有计算量上的差别),在每个网格g处取f个频点,则每个网格信号的频域表示为sg∈cf×1,g∈{1,...,g},多个声源所在的整个二维网格信号的空-频域表达为
1c)压缩感知多声源定位算法
假设房间内有m个麦克风,且m<k,将这m个麦克风接收到的观测信号表示为
上式欠定线性方程组等式左边的项表示m个麦克风接收的信号在不同频点的值。其等式右边第一项为从房间的每个网格点到各麦克风的投影(房间冲激响应)中,各选取f个频点构造的压缩观测矩阵,其具体构造过程参见下述2构造压缩观测矩阵部分,等式右边第二项为声源所在的整个平面网格中各个网格点信号的频域表示。理论上有声源的网格对应的频点有非零值,无声源的网格的所有频点对应的值为零,即声源和s中的非零块存在一一对应关系,如1b)所述,块稀疏信号s是由房间内的各网格处的频点值按列堆叠而成的一维向量,因此通过确定非零块在s中的位置和数目便可获得空间中声源的位置和数目估计。
另外,本发明的多声源定位系统同样适用于个别麦克风坏掉的情况,此时只需将上式中等式左边对应的项去掉,同时将观测矩阵中对应的行去掉,等式右边第二项不做改变。所以当有麦克风坏掉时,无需调整阵列结构,也无需改变定位模型,依然可以使用本发明实现多声源定位。
2.构造压缩观测矩阵
2a)生成全房间冲激响应
假设房间为具有反射系数的多面墙构成的矩形封闭结构,且已知房间尺寸,使用image方法(镜像法)构造房间中任意空间点声源(位置vg)到达某一位置麦克风(位置μm)的房间冲激响应,用green函数表示为:
式中
2b)构造压缩观测矩阵
采用2a)中的声源-麦克风投影构造f个频点的投影矩阵为:
3.使用块稀疏优化算法求解声源位置和数目
3a)采用块稀疏优化算法恢复声源信号
如1c)所述,要确定声源的位置和数目,就得先通过求解1c)中的欠定线性方程组得到信号s的估计
输入:压缩观测矩阵φ;
麦克风观测信号x;
稀疏度k;
输出:重构信号
以下步骤中:t为迭代次数,rt表示第t迭代的残差,j为压缩观测矩阵φ的列序号的索引,lt为第t迭代后的块索引集合,mean|·|表示元素绝对值的均值,
step1:初始化:残差r0=x,迭代次数t=1,块索引集合
step2:求相关系数μ,μ(lj)=φt[j]rt-1,选择与残差rt-1最匹配的k个块的索引集合:
step3:正则化:在上述索引集合ljt对应的相关系数μ中,再次挑选出其能量介于最大能量与最大能量的一半之间的块的索引li,即li满足:
step4:更新块索引集合lt=lt-1∪li;
step5:计算信号的估计:
step6:当t≥k时,算法结束;反之,t=t+1,进入step2继续迭代;
则最后一次迭代得到
3b)确定声源位置和数目
步骤3a)采用块稀疏优化算法求解出块稀疏信号的估计
本发明提出一种混响房间内分布式麦克风阵列的多声源定位方法,该方法不受阵型约束,且能够克服三角定位的限制,使用欠定数量的麦克风阵列(麦克风数量少于声源数)就能对混响房间内的多个声源进行定位。
现有多声源定位算法中,麦克风数目不能少于声源数目;麦克风数量的增加不仅意味着算法的复杂度增加,硬件成本也将提高,本发明使用欠定数量的麦克风阵列实现对多个声源的同时定位,更符合语音通信设备小型化的趋势。
本发明的麦克风阵列不受阵型约束,可随意放置,适合分布式阵列;且麦克风数量增减不影响算法框架,只需简单增减压缩观测矩阵行数即可。
本发明的效果可通过以下仿真进一步说明:
仿真条件:本发明在一个长、宽、高分别为3.3m,4.4m,2.5m的矩形混响房间使用两个全向麦克风进行定位性能验证。分别以0.3m和0.4m为间隔将房间二维平面划分为10×10的网格,两个麦克风位置坐标分别为[1.6,1.6,1.7]和[1.4,1.9,1.7],声源与麦克风阵列处于同一水平面,采样频率fs=16khz,声速c=343m/s,墙壁反射系数均为0.7,采用image方法产生的全房间冲激响应长度约为2500点左右,统一截取前1000个频点的值,在频域进行2048点的傅里叶变换,并等间隔选取f个频点构造压缩观测矩阵。
仿真内容:
仿真1,对不同声源同时位于房间不同位置时本发明的定位情况进行模拟。混响时间0.3s,频点数f为60;图2(a-f)中*为声源所在位置,o则代表采用本发明估计的声源位置,δ表示两个麦克风所在位置。
从图2(a-f)中可以看出,对于混响房间内不同位置的4~8个声源,仅使用两个麦克风就能对其进行定位,效果可观。
仿真2,混响时间rt60分别取0.2s,0.3s,0.4s,0.5s,0.6s,等间隔取f=40个频点构造压缩观测矩阵,采用本发明进行多声源定位,测试混响时间对本发明的定位成功率的影响。图3的直方图验证了本发明的抗混响性能。
仿真4,混响时间rt60=0.3s,频点数f分别取20、40、60、80、100、120,测试频点数与本发明的定位成功率的关系,如图4,可见总体而言,定位成功率随频点数的增加而增加,但当超出一定范围时,这种增加的趋势渐渐缓和。
仿真5,混响时间rt60=0.3s,频点数为f=60,可定位的声源数目分别为3,4,5,6,7时本发明的定位成功率如图5,可见对于声源数目为3和4的情况,本发明的定位结果是可以接受的,因为本发明仅使用2个麦克风进行多声源定位,所以对于更多声源的情况,本发明中未能取得很好的效果,但足以说明本发明使用欠定数量的麦克风进行多声源定位的潜力。
仿真6,混响时间rt60=0.3s,频点数为f=60,将本发明在混响条件下对多声源的定位情况分别与基于时延差的定位算法、基于高分辨率谱估计的定位算法以及基于最大输出功率的可控波束形成算法进行对比,结果如图6。可见对于混响房间中随机放置的3个声源,本发明的定位算法可精确定位出其位置,而其他三种算法受混响等影响较大或其他原因,不能精确定位出声源位置,甚至有漏定位的情况。
综上所述,本发明的声源定位系统使用少于声源数量的麦克风不仅能进行更精确的混响多声源定位;同时麦克风数量的减少降低了算法的计算量,在实际应用中硬件成本也随之减少;本发明具有分布式麦克风的特性,不受阵型约束,应用更灵活,且适用于个别麦克风坏掉的情况;与其他算法相比,抗混响能力更好。
以上所述,仅为本发明创造较佳的具体实施方式,但本发明创造的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明创造披露的技术范围内,根据本发明创造的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明创造的保护范围之内。