发明内容
有鉴于此,本公开旨在能够识别出声源垂直方向的变化,实现声源精确定位。
为了达到这个目的,根据本公开的一方面,本公开提供一种视音频会议设备,包括沿第一平面延伸的基座、从基座上沿第二平面伸出的显示屏、麦克风阵列、以及声源定位单元,其中,所述麦克风阵列中至少部分麦克风封装于所述基座中,至少部分麦克风封装于所述显示屏中,所述声源定位单元根据麦克风阵列收集的声音信号,确定声源的三维空间位置。
可选地,所述基座与所述显示屏之间具有轴,所述轴根据确定的声源的三维空间位置转动,使得所述显示屏面对所述声源。
可选地,所述麦克风阵列呈四面体,所述麦克风阵列具有4个麦克风,分别位于四面体的四个顶点。
可选地,所述麦克风阵列包括多个四面体。
根据本公开的一方面,提供了一种终端设备,包括沿第一平面延伸的第一部分、从所述第一部分上沿第二平面伸出的第二部分、麦克风阵列、以及声源定位单元,其中,所述麦克风阵列中至少部分麦克风封装于所述第一部分中,至少部分麦克风封装于所述第二部分中,所述声源定位单元根据麦克风阵列收集的声音信号,确定声源的三维空间位置。
可选地,所述第一部分与所述第二部分之间具有轴,所述轴根据确定的声源的三维空间位置转动,使得所述第二部分面对所述声源。
可选地,所述终端设备是智能电视,所述第一部分是基座,所述第二部分是显示屏。
可选地,所述终端设备是智能音箱,所述第一部分是操作台,所述第二部分是音箱体。
可选地,所述终端设备是会话机器人,所述第一部分是机器人脚,所述第二部分是机器人脸。
根据本公开的一方面,提供了一种声源定位方法,包括:
获取初始声源位置;
根据所述初始声源位置,预测下一周期声源位置,作为目标声源位置;
将所述目标声源位置代入针对麦克风阵列中麦克风对的多个候选时延对应的时延误差项式,将所述多个候选时延中时延误差项式的值最小的一个候选时延作为目标时延;
根据所述麦克风阵列中麦克风对的目标时延,构造所述麦克风阵列的时延方程,并确定使得所述时延方程最小的声源位置,如与所述目标声源位置的距离在预定距离阈值之内,以确定的声源位置替代所述目标声源位置重新代入所述时延误差项式,直到确定的声源位置与所述目标声源位置的距离在预定距离阈值之内。
可选地,所述获取初始声源位置,包括:
针对所述麦克风阵列的麦克风对,构造时延的广义互相关函数,确定使得所述广义互相关函数最大的时延;
针对该麦克风对,构造基于初始声源位置和该麦克风对的两个麦克风位置的时延表达式,使得该时延表达式等于确定的使得所述广义互相关函数最大的时延,求解得到初始声源位置。
可选地,所述广义互相关函数为频率加权函数、与该麦克风对分别接收到的声音信号的互频谱的积按照所述时延进行相移后的结果在频域上的积分。
可选地,所述时延表达式为初始声源位置与该麦克风对的两个麦克风位置之间的距离之差除以声速。
可选地,所述下一周期是所述麦克风阵列所在的视音频会议设备的摄像头拍摄下一帧的期间。
可选地,所述根据所述初始声源位置,预测下一周期声源位置,是根据卡尔曼滤波法进行的。
可选地,所述多个候选时延是针对所述麦克风阵列的麦克风对构造的时延的广义互相关函数第k大的峰值对应的时延,其中,k=1,……, N,N为大于等于2的正整数。
可选地,所述时延误差项式是所述广义互相关函数的第k大的峰值对应的时延与基于初始声源位置和该麦克风对的两个麦克风位置的时延表达式之差的平方,乘以该麦克风对的增益调节系数,除以所述第k大的峰值。
可选地,所述时延方程等于所述麦克风阵列中麦克风对的目标时延的和加上正则项乘以正则项系数的乘积,所述正则项等于要确定的声源位置与所述目标声源位置的差的平方。
根据本公开的一方面,提供了一种计算机存储介质,包含计算机可执行代码,当所述计算机可执行代码被处理器执行时,实现根据如上所述的方法。
不同于现有技术的麦克风阵列的麦克风全部位于一个平面上,本公开实施例的麦克风阵列的一部分麦克风位于基座的第一平面,另一部分位于显示屏的第二平面,这样,就不但能感知声源水平方向的变化,还能感知声源垂直方向的变化,实现声源的三维精确定位。
现有技术的声源定位方法一般需要先获得声源到达麦克风阵列的时延,然后利用该时延结合阵列结构去确定声源位置,两个过程是孤立的。本公开实施例将两个孤立的过程统一起来,先根据时延确定声源位置,再根据声源位置的偏差消除时延估计中出现的误差,再重新根据消除误差的时延重新确定声源位置,不断重复,达到声源精确化定位的目的。
具体实施方式
以下基于实施例对本公开进行描述,但是本公开并不仅仅限于这些实施例。在下文对本公开的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本公开。为了避免混淆本公开的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
在本文中使用以下术语。
麦克风阵列:由多个麦克风搭建而成的阵列,每个麦克风分别收集声源发出的声音信号,由于每个麦克风相对于声源的角度不同,其检测的声音信号的方向也不同,因此根据多个麦克风检测到的声音信号的方向能唯一确定声源的位置。
四面体:四面体一般指三棱锥。三棱锥锥体的一种,几何体,由四个三角形组成。四面体的底面是一个三角形,三角形有三个顶点,三角形的三条边分别与四面体的第四个顶点各自形成一个三角形。
麦克风对:麦克风阵列中任意两个麦克风之间组成一个麦克风对。
时延:该麦克风对的一个麦克风接收到同一声源发出的声音信号的时间与另一个麦克风接收到同一声源发出的声音信号的时间的差叫做时延。
候选时延:作为候选的时延。
时延误差项式:是指按照两种不同方式计算出的时延的差与相应调节系数相乘的算式。本公开实施例中的计算时延的两种不同方式中,一种是根据时延的广义互相关函数,当广义互相关函数取一定值时,能反推出对应的时延;另一种是根据距离差处于声速来确定,其中,用声源位置到麦克风对的两个麦克风的距离的差,除以声速,就得到声源发出的声音信号传播到一个麦克风到传播到另一个麦克风的时间的差。本公开实施例对多个候选时延,分别计算上述时延误差项式,得到的时延误差项式的值不同。由于声源位置到麦克风对的两个麦克风的距离的差除以声速得到的时延是真实时延,上述时延误差项式的值越小,候选时延与真实时延越接近,因此,通过确定多个候选时延中时延误差项式的值最小的一个候选时延作为目标时延,可以提高确定时延的精确性。
广义互相关(GCC)函数:利用信号之间的相关性计算信号的时延差的方法。广义互相关算法考虑自由场模型和麦克风对来进行时延计算,它将麦克风对的两个麦克风接收到的同一声源的声音信号的互相关表示为时延的函数。所述广义互相关函数可以是频率加权函数、与该麦克风对分别接收到的声音信号的互频谱的积按照该麦克风对分别接收到的声音信号的时延进行相移后的结果在频域上的积分,在后文中会详细描述。
频域加权函数:广义互相关函数在计算两个信号的互相关之前对信号进行了滤波,从频域表现上相当于在频域上乘以一个加权函数,该加权函数叫做频域加权函数。
目标时延:在多个候选时延中根据时延误差项式确定的作为确定声源位置的基础的时延。
时延方程:麦克风阵列中有不同的麦克风对,每个麦克风对具有一个目标时延,根据不同麦克风对的目标时延构造出的麦克风阵列整体的算式为时延方程,根据该时延方程可以确定声源位置,例如,求该时延方程最小时的声源位置作为确定的声源位置。
基于声源位置和该麦克风对的两个麦克风位置的时延表达式:即用声源位置分别到两个麦克风位置的距离的差除以声速得到时延的表达式,后文中详细描述。
卡尔曼滤波:一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行估计的算法。本公开实施例利用卡尔曼滤波法由当前周期声源位置预测下一周期声源位置。
增益调节系数:用于调节时延误差项式中对于第k大的峰值对应的时延,两种方式计算出的时延的差的系数,不同的k值对应于不同的增益调节系数。
正则项:约束项,即通常在利用一个经验函数取最小值来求解未知变量时,为了体现对该经验函数的实际约束,通常在经验函数基础上加约束项,在加上约束项后通过最小值的方式进行求解,能够提高求解结果的精度。
高斯-牛顿迭代算法:非线性回归模型中求回归参数进行最小二乘的一种迭代方法。
图1是现有技术的视音频会议设备的示意图。视音频会议设备包括基座20和显示屏10。基座20和显示屏10是分离的。基座20具有号码输入键盘21,用于输入会议号码,接通电话会议。用户通过该号码输入键盘,输入会议号码或参会人员分别的号码,就可以接通视音频会议。显示屏10包括屏幕主体11,用于显示视音频会议设备旁的参会者的图像、以及连入视音频会议的其它方的远程参会者的图像。该屏幕主体11 可以是触摸显示屏主体。视音频会议设备旁的工作人员可以在屏幕主体 11显示的各图像中通过触摸来点选、切换、设置主发言人或主发言会场等等。显示屏10可能还包括摄像头12,用于拍摄视音频会议设备旁的说话的人。
基座20内部封装有麦克风阵列22,如图1的虚线所示。该麦克风阵列22包括多个位于同一平面的麦克风23,分别用于收集说话的人(声源)说出的声音信号。如图1中,示出了3个麦克风23,相邻麦克风 23之间成120°。由于3个麦克风23离声源的角度是不同的,收集到的声音信号的方向也是不同的,这样,就可以根据3个麦克风23各自收集到的声音信号的方向,确定声源的位置,从而使摄像头12跟随声源转动,使摄像头12始终面向声源,达到视音频会议中清晰拍摄到说话人的目的。
一般来说,基座20水平放置,显示屏10竖直放置。麦克风阵列22 中的多个麦克风23位于一个水平面内,无法感知声源垂直方向的变化。如果说话的人在说话时站起身来,这些麦克风23感受不到声音垂直方向的分量,无法识别说话的人已经站了起来,无法使摄像头12跟踪站起来的人脸。
为了克服现有技术的麦克风阵列的麦克风全部位于一个平面上,因此无法感知声源竖直方向的移动的问题,如图2所示,本公开实施例让显示屏10和基座20不再是分离的,而是接合在一起的结构。但是,显示屏10和基座20在两个不同方向上延伸。基座20在第一平面上延伸,第一水平可以是水平的。显示屏10从基座20上沿第二平面伸出,第二平面可以是竖直的,即与第一平面垂直,但也可以是与第一平面相交成任何锐角或钝角。由于显示屏10和基座20是接合并位于不同平面上,就可以设计麦克风阵列22,所述麦克风阵列22中至少部分麦克风23 封装于所述基座20中,位于基座20的第一平面,至少部分麦克风23 封装于所述显示屏10中,位于显示屏10的第二平面,这样,就不但能感知声源水平方向的变化,还能感知声源垂直方向的变化,实现声源的三维精确定位。
图2示出了四面体形状的麦克风阵列,如虚线所示。麦克风阵列22 具有4个麦克风23,分别位于四面体的四个顶点,其中,3个麦克风位于四面体的底面的三个顶点上,它们位于基座20的第一平面内;1个麦克风位于显示屏10的第二平面内,位于四面体的最上面的一个顶点。虽然图2以3个麦克风位于基座20的第一平面、1个麦克风位于显示屏 10的第二平面为例进行了图示,本领域技术人员理解,可以在第一平面上设置其它数量的麦克风,例如2、4个;可以在第二平面上设置其它数量的麦克风,例如2、3、4个。另外,麦克风阵列22也不需要是四面体形状,其可以是其它形状,只要在第一平面和第二平面上分别具有一定数量的麦克风即可。但四面体形状相对来说比较节省麦克风,在节约麦克风的数量的情况下,达到比较精确的声源定位。
如图2所示,基座20与显示屏10之间通过轴25接合。麦克风阵列22可以设置成2个四面体,2个四面体分别设置在轴25的两端侧。这样做的好处是,提高在不同方向上声源定位的精度。应当理解,麦克风阵列22也可以设置成其它数量的四面体,以在不同方向上提高声源定位的精度。
图4是视音频会议设备的内部结构图。除了图2中示出的显示屏11、摄像头12、麦克风阵列22,视音频会议设备内部还包括声源定位单元 24、电机驱动器27、电机26、处理器28、收发器29、存储器30。声源定位单元24根据麦克风阵列22收集的声音信号,确定声源的三维空间位置。由于麦克风阵列22中一部分麦克风23位于基座20的第一平面,一部分麦克风23位于显示屏10的第二平面,这样,就不但能感知声源水平方向的变化,还能感知声源垂直方向的变化,与现有技术只能实现声源的二维定位相比,能够实现声源的三维精确定位。当声源定位单元24确定出声源的位置后,按照声源的位置发出驱动信号,通过电机驱动器27驱动电机26带动轴25转动。该轴可以在360°的方向转动。让轴25根据确定的声源的三维空间位置转动,使得所述摄像头12 面对所述声源。
摄像头12拍摄的说话的人的图像传送给处理器28。麦克风阵列22 采集的声音信号一方面传送给声源定位单元24进行定位,另一方面还传送给处理器28进行声音处理。处理器28将图像信号和声音信号进行处理后,一方面发送给显示屏11显示,另一方面通过收发器29传送给其它参会会场的视音频会议设备,在其它参会会场的视音频会场设备上显示和播放。另外,处理器28也从收发器29接收其它参会会场的视音频会议设备传送的其它参会会场的参会者的视频,将其在显示屏11上与本会场的说话的人的视音频同时显示和播放。在显示屏11显示时,可以让显示屏11分成不同的子画面,让不同会场的人的视频占用不同的子画面,播放哪个会场的声音可以由视音频会议设备旁的人员在触摸显示屏11上指定。
以上描述了将本公开实施例的麦克风阵列22的麦克风23分别位于两个不同平面上以不但能感知声源水平方向的变化,还能感知声源垂直方向的变化,实现声源的三维精确定位的实现思路运用于视音频会议设备的实施例。实际上,该实现思路不只能够运用于视音频会议设备,还能运用于任何在人机交互过程中需要感测声源位置的终端设备。该终端设备可以是智能家居设备,例如智能电视、智能音箱,也可以是智能人机交互设备,例如聊天机器人、语音搜索系统等。智能电视需要感测说话的人的水平和垂直方向的变化以精确定位人,实现电视屏幕始终朝向人,提高观看体验。智能音箱需要感测说话的人的水平和垂直方向的变化以精确定位人,让音箱的喇叭正面朝向人,提高收听体验。聊天机器人需要感测说话的人的水平和垂直方向的变化以精确定位人,让机器人的人脸始终正对人脸,甚至在人移动时机器人可以随之移动,提高人的会话体验。
图3示出了本公开实施例所应用的通用终端设备的框图。它包括沿第一平面延伸的第一部分20’、从第一部分20’上沿第二平面伸出的第二部分10’、麦克风阵列22、以及声源定位单元(未示)。麦克风阵列 22中至少部分麦克风封装于所述第一部分20’中,至少部分麦克风封装于所述第二部分10’中。在图3中示出麦克风S2-S4位于第一部分20’中,麦克风S1位于第二部分10’中。但实际上,在第一部分20’中也可能包含其它数量的麦克风,在第二部分10’中也可能包含其它数量的麦克风。只要在两个平面上分别有一定数目的麦克风,就能达到感测说话的人的水平和垂直方向的变化以精确定位人的目的。声源定位单元未示出,其可以在第一部分20’的内部,也可以在第二部分10’的内部,或者在二者中各有一部分,其作用是根据麦克风阵列收集的声音信号,确定声源的三维空间位置。
在终端设备是智能电视的情况下,第一部分20’是电视的基座,第二部分10’是显示屏。基座与显示屏之间具有轴,所述轴根据确定的声源的三维空间位置转动,使得所述显示屏面对声源。这样,无论观看电视的人在上下左右任何一个方向移动,显示屏就随用户移动,使人脸正对显示屏,提高用户观看电视的体验。
在终端设备是智能音箱的情况下,第一部分20’是操作台,在操作台上可以布置智能音箱开关和各种功能键,第二部分10’是音箱体。操作台与音箱体之间具有轴,所述轴根据确定的声源的三维空间位置转动,使得所述音箱体面对声源。这样,无论收听音箱的人在上下左右任何一个方向移动,音箱体的喇叭就随用户移动,使喇叭正对用户,提高用户听到音箱声音的清晰度。
在终端设备是会话机器人的情况下,第一部分20’是机器人脚,第二部分10’是机器人脸。该机器人的脖子能360°旋转。这样,机器人的脖子就能根据确定的声源的三维空间位置转动,使得机器人脸面对所述声源,即面对说话的人脸,实现正面对话,提高用户的会话体验。该实施例中,随着声源定位单元确定的声源的水平方向移动,可以控制机器人的脚走动,从而使机器人跟随说话的人进行移动,让机器人始终对着人脸说话,提高会话体验。
本领域技术人员应当理解,终端设备可以是其它需要人机语音交互的设备,只要该设备需要人机语音交互,其就需要不只感测到声源水平方向的变化,还需要感测到声源垂直方向的变化,实现声源的三维精确定位。第一部分20’和第二部分10’可以根据终端设备的实际结构部署在终端设备中。
图4示出了根据本公开一个实施例中的声源定位方法的流程图。该方法是由声源定位单元24执行的,它不只可以应用于图2所示的视音频会议设备,也可以应用于图3所示的更广义的终端设备。如图4所示,该方法包括:
步骤110、获取初始声源位置;
步骤120、根据所述初始声源位置,预测下一周期声源位置,作为目标声源位置;
步骤130、将所述目标声源位置代入针对麦克风阵列中麦克风对的多个候选时延对应的时延误差项式,将所述多个候选时延中时延误差项式的值最小的一个候选时延作为目标时延;
步骤140、根据所述麦克风阵列中麦克风对的目标时延,构造所述麦克风阵列的时延方程,并确定使得所述时延方程最小的声源位置,如与所述目标声源位置的距离在预定距离阈值之内,以确定的声源位置替代所述目标声源位置重新代入所述时延误差项式,直到确定的声源位置与所述目标声源位置的距离在预定距离阈值之内。
下面对这些步骤进行详细描述。
在一个实施例中,步骤110可以包括:针对所述麦克风阵列的麦克风对,构造时延的广义互相关函数,确定使得所述广义互相关函数最大的时延;针对该麦克风对,构造基于初始声源位置和该麦克风对的两个麦克风位置的时延表达式,使得该时延表达式等于确定的使得所述广义互相关函数最大的时延,求解得到初始声源位置。
麦克风阵列22中任意两个麦克风23之间组成一个麦克风对。该麦克风对的两个麦克风接收到同一声源的声音信号分别是:
y1(t)=α1s(t-τ)+v1(t-τ) (公式1)
其中,y1(t)是第一麦克风接收到的声音信号,s(t)是声源发出的声音信号,τ是声源发出的声音信号到达第一麦克风用的时间,α1是声源发出的声音信号到达第一麦克风的衰减系数,v1(t)是干扰第一麦克风的噪声信号;y2(t)是第二麦克风接收到的声音信号,s(t)是声源发出的声音信号,τ是声源发出的声音信号到达第一麦克风用的时间,φ12表示声源发出的声音信号到达第一麦克风和到达第二麦克风用的时间之差,即时延,α2是声源发出的声音信号到达第二麦克风的衰减系数,v2(t)是干扰第二麦克风的噪声信号。
广义互相关(GCC)函数是利用信号之间的相关性计算信号的时延差的方法。广义互相关算法考虑自由场模型和麦克风对来进行时延计算,它将麦克风对的两个麦克风接收到的同一声源的声音信号的互相关表示为时延的函数。所述广义互相关函数可以是频率加权函数、与该麦克风对分别接收到的声音信号的互频谱的积按照该麦克风对分别接收到的声音信号的时延进行相移后的结果在频域上的积分,如公式3所示。
r
y1y2(p)是广义互相关函数。υ(f)表示频域加权函数。广义互相关函数在计算两个信号的互相关之前对信号进行了滤波,从频域表现上相当于在频域上乘以一个加权函数,该加权函数叫做频域加权函数。p为声源的声音信号达到麦克风对的第一麦克风和第二麦克风的时延。e
j2πfp是按照该时延进行的相移。
表示为互频谱,即
Y1(f)表示y1(t)经傅里叶变换后的信号,Y2*(f)表示y2(t)经傅里叶变换后的信号的共轭,E表示期望。
如果υ(f)设置为1,公式3退化为互相关算法。最常用的PHAT(Phrase Transform)算法中,设置υ(f)为
则公式4可以化为
上述公式6可以表示成如图5所示的曲线图。图5中,横坐标代表时延p,纵坐标为时延的广义互相关函数ry1y2(p)是广义互相关函数。该广义互相关函数有几个峰值,其中一个是最大的峰值,可以在图5中找到该最大峰值对应的时延。也就是说,当时延为该值时,广义互相关函数最大,到达麦克风对的两个麦克风的声音信号最相关。得到该时延后,再利用基于初始声源位置和该麦克风对的两个麦克风位置的时延表达式求解初始声源位置。基于声源位置和该麦克风对的两个麦克风位置的时延表达式,可以是用声源位置分别到两个麦克风位置的距离的差除以声速得到时延的表达式。
仍以图2所示的四面体麦克风阵列为例,其中麦克风S1位于显示屏10 的第二平面,麦克风S2、S3、S4位于基座20的第一平面。麦克风S1和麦克风S2形成一个麦克风对,麦克风S1和麦克风S3形成一个麦克风对,麦克风S1和麦克风S4形成一个麦克风对。不考虑麦克风S2、S3、S4内部形成的麦克风对,是因为它们之间形成的麦克风对仍旧不能考虑到声源竖直方向的位置变化。假设声源位置为xt,则时延可以通过下式计算得到
上述公式7即构造的基于初始声源位置和该麦克风对的两个麦克风位置的时延表达式,其中j={2,3,4},c代表声速,||·||
2代表二范数,代表两个位置坐标的距离。‖s
1-x
t‖
2代表声源位置坐标到麦克风S
1位置坐标之间的距离,‖s
j-x
t‖
2代表声源位置坐标到麦克风S
j位置坐标之间的距离,距离差除以声速就得到声源的声音传播到麦克风S
1和传播到麦克风 S
j的时间差,即时延。由于传统算法中,已经按照图5中最大的一个峰值等到对应的时延,其等于
将其代入公式7,得到x
t,即初始声源位置。
在步骤120中,根据所述初始声源位置,预测下一周期声源位置,作为目标声源位置。
下一周期是麦克风阵列22所在的视音频会议设备的摄像头12拍摄下一帧的期间。摄像头12要随着说话的人的人脸(声源)转动,因此,确定声源位置的周期与摄像头12转动的周期可以是一致的,这样,在每一周期,确定声源实时位置,根据该实时位置转动摄像头12拍摄下一帧。
根据所述初始声源位置,预测下一周期声源位置,可以根据卡尔曼滤波法进行。由于卡尔曼滤波法是已有方法,故不赘述。
在步骤130中,将所述目标声源位置代入针对麦克风阵列中麦克风对的多个候选时延对应的时延误差项式,将所述多个候选时延中时延误差项式的值最小的一个候选时延作为目标时延。
候选时延是作为候选的时延。在本公开一个实施例中,候选时延是针对所述麦克风阵列的麦克风对构造的时延的广义互相关函数第k大的峰值对应的时延,其中,k=1,……,N,N为大于等于2的正整数。如图5所示,广义互相关函数的曲线中,除了最大峰值外,最大峰值两侧的左右各一个峰值也比较大,可以将这3个峰值对应的时延都作为候选时延。与现有技术中,仅利用最大峰值的时延作为目标时延,据此计算声源位置不同,本公开实施例中考虑到,不是最大峰值的其它峰值可能更适合作为目标时延,据此计算出的声源位置可能更准确。因此,通过先确定多个候选时延,从中先选一个作为目标时延,利用目标时延确定声源位置,再利用确定的声源位置重新在多个候选时延中确定目标时延,再据此确定声源位置,经过这样多次反复的过程,提高了声源定位的准确性。
时延误差项式是指按照上述广义互相关函数法确定的时延和基于初始声源位置和该麦克风对的两个麦克风位置的时延表达式确定的时延的差的平方与相应调节系数相乘的算式。前一种方法根据时延的广义互相关函数,当广义互相关函数取一定值时,能反推出对应的时延。后一种是根据距离差处于声速来确定,其中,用声源位置到麦克风对的两个麦克风的距离的差,除以声速,就得到声源发出的声音信号传播到一个麦克风到传播到另一个麦克风的时间的差。上述时延误差项式就代表不同的候选时延对时延误差造成的影响。时延误差项式的值越小,代表确定的时延误差越小。本公开实施例对多个候选时延,分别计算上述时延误差项式,得到的时延误差项式的值不同。由于声源位置到麦克风对的两个麦克风的距离的差除以声速得到的时延是真实时延,上述时延误差项式的值越小,候选时延与真实时延越接近,因此,通过确定多个候选时延中时延误差项式的值最小的一个候选时延作为目标时延,可以提高确定时延的精确性。即如下公式8:
其中,
代表麦克风对的两个麦克风位置的时延表达式确定的时延,由于目标声源位置x
t是已知的,各麦克风S
1和S
j的位置也是已知的,这里
是已知的,td
j,1,t即上述广义互相关函数法确定的时延,即前若干大的峰值对应的多个候选时延。m代表麦克风对的数量,麦克风使用的越多,定位越准确,麦克风对数量最低是三对,因为这样才能刚好构成三维平面,但实际使用通常要大于三对,这样可以保证一定的冗余性。
就是调节系数,用来提高前几个最大峰值对应时延的优先级,其等于该麦克风对j对应的增益调节系数a
j,除以所述麦克风对j的第k大的峰值 P
j,k。这样,就可以将多个候选时延中时延误差项式
的值最小的一个候选时延,作为目标时延。
在步骤140中,根据所述麦克风阵列中麦克风对的目标时延,构造所述麦克风阵列的时延方程,并确定使得所述时延方程最小的声源位置,如与所述目标声源位置的距离在预定距离阈值之内,以确定的声源位置替代所述目标声源位置重新代入所述时延误差项式,直到确定的声源位置与所述目标声源位置的距离在预定距离阈值之内。
如图4所示,步骤140可以包括:步骤141、根据所述麦克风阵列中麦克风对的目标时延,构造所述麦克风阵列的时延方程,并确定使得所述时延方程最小的声源位置;步骤142、确定使得所述时延方程最小的声源位置是否与目标声源位置的距离在预定距离阈值之内;如是,回到步骤120,重新预测下一周期声源位置,作为目标声源位置;如果不是,执行步骤143,即用使得所述时延方程最小的声源位置替代目标声源位置,返回步骤130,将该目标声源位置重新代入所述时延误差项式,反复迭代,直到确定的声源位置与所述目标声源位置的距离在预定距离阈值之内。
麦克风阵列中有不同的麦克风对,每个麦克风对具有一个目标时延。根据不同麦克风对的目标时延构造出的麦克风阵列整体的算式为时延方程。根据该时延方程可以确定声源位置,例如,求该时延方程最小时的声源位置作为确定的声源位置。时延方程可以如公式9所示:
公式9中,将m个麦克风对分别求出的目标时延加和,得到E(x
t),可以将其作为时延方程。从公式9可以直接优化出某一个时间点的声源位置,但这么做会将某个位置的计算孤立起来,因此在公式9后加入正则项,将每次计算与前一轮计算出的声源位置
关联起来,并形成一定约束,即
这里v代表一个正则项系数,R(x)为正则项,可以表示为
这样,在一个实施例中,时延方程等于所述麦克风阵列中麦克风对的目标时延的和E(x
t)加上正则项R(x)乘以正则项系数v的乘积,所述正则项R(x)等于要确定的声源位置x
t与所述目标声源位置
的差的平方。
当目标时延确定后,E(x
t)是固定的,卡尔曼滤波估计出的目标声源位置
是确定的,只有x
t是不确定的,因此,求解公式10变成了确定x
t是何值时E(x
t)+vR(x)最小的问题。它可以用高斯-牛顿迭代求解,在这里不赘述。
确定使得时延方程最小的声源位置后,在步骤142中,确定使得所述时延方程最小的声源位置是否与目标声源位置的距离是否在预定距离阈值之内。如果否,执行步骤143,即用使得所述时延方程最小的声源位置替代目标声源位置,返回步骤130,将该目标声源位置重新代入所述时延误差项式,反复迭代,直到确定的声源位置与所述目标声源位置的距离是否在预定距离阈值之内。一致后,认为已经确定了下一周期的准确的声源位置。轴可以在下一帧拍摄时根据这个声源位置带动显示屏 11转动,从而使摄像头12面对声源。然后,回到步骤120,预测再下一周期的声源位置,作为目标声源位置,重复步骤130-140,得到再下一周期的准确的声源位置,依次类推。
本公开实施例还提供了一种计算机存储介质,包含计算机可执行代码,当所述计算机可执行代码被处理器28执行时,实现如图4所示的方法。
现有技术的声源定位方法利用广义互相关函数的最大峰值对应的时延等于基于声源和各麦克风位置得到的时延来求解声源位置,联立方程就可以直接求解,但这种做法计算量大,化简困难,且没有考虑到误差信息,容易出现无解的情况。本公开实施例将确定时延和利用确定的时延得到声源位置的两个过程统一起来,在准确三维定位的同时有效消除了时延估计中出现的误差,并在此基础上将整个声源定位过程看作一个整体,并加入正则项,提高定位的估计精度。
图7A是现有技术的声源定位方法定位轨迹图。图7B是根据本公开的一个实施例的声源定位方法定位轨迹图。图中23表示麦克风对中两个麦克风位置。实际测试时,说话的人绕场运动一圈半。图7A和7B分别反映了现有技术和本公开实施例中每个时间点确定的声源位置按照时间点顺序连成的线。从中可以看出,而图7A出现了极多的噪点,轨迹严重失真,而图7B中轨迹比较平滑,且较好反映了声源移动的轨迹。
本公开的商业价值
本公开实施例中,提出一种新型视音频会议设备和终端通用的部署方案,并基于此方案提出了一套行之有效的声源定位算法,将定位问题与时延问题关联起来,利用前一周期的位置协助本周期广义互相关算法的运用,并利用正则项关联前后位置的信息,从而将声源位置估计问题看作一个连贯的整体,而不是某个孤立的过程,具有较高的应用价值。经试验,本公开实施例使声源定位的准确率提高50%,具有极高的商业前景。
应该理解,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
应该理解,上述对本说明书特定实施例进行了描述。其它实施例在权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
应该理解,本文用单数形式描述或者在附图中仅显示一个的元件并不代表将该元件的数量限于一个。此外,本文中被描述或示出为分开的模块或元件可被组合为单个模块或元件,且本文中被描述或示出为单个的模块或元件可被拆分为多个模块或元件。
还应理解,本文采用的术语和表述方式只是用于描述,本说明书的一个或多个实施例并不应局限于这些术语和表述。使用这些术语和表述并不意味着排除任何示意和描述(或其中部分)的等效特征,应认识到可能存在的各种修改也应包含在权利要求范围内。其他修改、变化和替换也可能存在。相应的,权利要求应视为覆盖所有这些等效物。