声源定位方法及装置与流程

文档序号:11229119阅读:809来源:国知局
声源定位方法及装置与流程

本发明涉及语音信号处理领域,尤其涉及一种声源定位方法及装置。



背景技术:

声源定位技术是一种接收声源信号并利用电子装置确定声源位置的技术,其在人们的日常生活中也有着较为广泛的应用。例如,在视频会议中,通过声源定位技术控制摄像头,使其自动转向正在发言的说话者方向;将声源定位技术应用于助听器中,能够为有听觉障碍的残疾人提供了帮助。

目前,一种常用的声源定位技术是基于最大输出功率的可控波束形成技术,当接收到声源信号时,对各路声源信号进行加权求和形成波束,直到得到具有最大输出功率的波束为止。该方法在定位过程中需要知道声源和噪声的先验知识,该先验知识很难获得,从而定位结果的误差往往较高。



技术实现要素:

有鉴于此,本发明实施例提供一种声源定位方法及装置,采用自适应的延迟估计方法获得两路声源信号的时延,并基于此时延进行声源定位,减小定位结果的误差。

本发明实施例提供一种声源定位方法,包括:

获取麦克风阵列接收的第一声源信号和第二声源信号,所述第一声源信号由所述麦克风阵列中的参考麦克风接收,所述第二声源信号是所述麦克风阵列中的m个非参考麦克风接收的m路第二声源信号中的任一路,m大于或等于5;

对所述第一声源信号进行滤波处理;

确定所述第二声源信号与滤波后的第一声源信号的误差信号;

确定使得所述误差信号最小的滤波系数;

根据所述滤波系数确定所述第一声源信号与所述第二声源信号的信号接收时延差;

根据所述第一声源信号分别与所述m路第二声源信号的信号接收时延差,以及所述m个非参考麦克风与所述参考麦克风的位置关系,确定声源位置。

本发明实施例提供一种声源定位装置,包括:

获取模块,用于获取麦克风阵列接收的第一声源信号和第二声源信号,所述第一声源信号由所述麦克风阵列中的参考麦克风接收,所述第二声源信号是所述麦克风阵列中的m个非参考麦克风接收的m路第二声源信号中的任一路,m大于或等于5;

滤波模块,用于对所述第一声源信号进行滤波处理;

第一确定模块,用于确定所述第二声源信号与滤波后的第一声源信号的误差信号;

确定使得所述误差信号最小的滤波系数;

根据所述滤波系数确定所述第一声源信号与所述第二声源信号的信号接收时延差;

第二确定模块,用于根据所述第一声源信号分别与所述m路第二声源信号的信号接收时延差,以及所述m个非参考麦克风与所述参考麦克风的位置关系,确定声源位置。

本发明实施例提供的声源定位方法及装置,首先,获取麦克风阵列中参考麦克风接收的第一声源信号以及m个非参考麦克风中任一麦克风接收的第二声源信号。进而,对第一声源信号进行滤波处理,使第一声源信号能够逼近第二声源信号,并在此基础上对滤波后的第一声源信号以及第二声源信号进行误差计算,从而获得两路声源信号之间的误差信号。通过多次调整滤波系数,使得第一、第二声源信号之间的误差信号最小,根据此最小误差信号对应的滤波系数确定出信号接收时延差,保证了信号接收时延差的准确性。最后,根据准确的信号接收时延差以及参考麦克风与非参考麦克风之间的位置关系确定出声源的位置,提高定位的精准度。同时,上述声源定位过程中无需获知声源信号或者噪声信号的先验知识,也就避免了因先验知识难以获得而导致的定位不准确的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的声源定位方法实施例一的流程图;

图2为本发明实施例提供的声源定位方法实施例二的流程图;

图3为本发明实施例二中非参考麦克风均匀分布于麦克风阵列时麦克风阵列的示意图;

图4为本发明实施例二中非参考麦克风非均匀分布于麦克风阵列时麦克风阵列的示意图;

图5为本发明实施例提供的声源定位装置实施例一的结构示意图;

图6为本发明实施例提供的声源定位装置实施例二的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述xxx,但这些xxx不应限于这些术语。这些术语仅用来将xxx彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一xxx也可以被称为第二xxx,类似地,第二xxx也可以被称为第一xxx。

取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

图1为本发明实施例提供的声源定位方法实施例一的流程图,本实施例提供的该声源定位方法的执行主体可以为声源定位器,如图1所示,该方法包括如下步骤:

s101,获取麦克风阵列接收的第一声源信号和第二声源信号。

预先建立一个麦克风阵列,位于阵列中参考位置的麦克风为参考麦克风,位于阵列中其他位置的多个麦克风为非参考麦克风。

当声源发出声源信号后,麦克风阵列中的各个麦克风都能接收到声源发出的模拟声源信号,并通过麦克风中的模拟/数字转换模块将接收到的模拟声源信号转换为数字声源信号。声源定位器能够获取到参考麦克风以及m个非参考麦克风接收的数字声源信号,其中,参考麦克风接收的声源信号为第一声源信号,m个非参考麦克风接收的m路声源信号中的任意一路声源信号为第二声源信号。

s102,对第一声源信号进行滤波处理。

s103,确定第二声源信号与滤波后的第一声源信号的误差信号。

s104,确定使得误差信号最小的滤波系数。

s105,根据滤波系数确定第一声源信号与第二声源信号的信号接收时延差。

为了提高获取的信号接收时延差的准确性,首先,需要对第一声源信号进行滤波处理,此滤波处理的过程也即是使第一声源信号逼近第二声源信号的过程。

本实施例中,采用多点逼近的方式使第一声源信号逼近第二声源信号。

具体来说,对于第二声源信号中的某采样点来说,对第一声源信号中相应采样点以及该相应采样点前后相邻的一定数目的采样点进行加权累加处理,从而以该相应采样点以及其相邻采样点来逼近第二声源信号中的上述某采样点。其中,上述加权累加的处理即为对第一声源信号中的上述相应采样点以及其相邻采样点的滤波处理,每个采样点的加权系数即为滤波系数。其中,第二声源信号中的某采样点与第一声源信号中相应采样点之间的对应性可以体现为:第二声源信号中的第n个采样点对应于第一声源信号中的第n个采样点,第一声源信号中的第n个采样点的相邻采样点比如可以是第n-1个采样点、第n+1个采样点。

对于第二声源信号中的其他采样点,采用同样方式,在第一声源信号中确定与之对应的多个采样点以及每个采样点对应的滤波系数。

值得说明的是,此时,第一声源信号中的各采样点所对应的滤波系数是未知变量。

然后,将滤波处理后的第一声源信号与第二声源信号作差即是两声源信号之间的误差信号,此误差信号的大小可以表示两声源信号之间的相近程度。可选地,误差信号的大小可以用误差信号的均方值来表征,均方值越小则表示第一声源信号的逼近效果越好,两声源信号的相近程度越高。

进而,确定两声源信号误差信号最小时对应的滤波系数。

实际应用中,可以采用最小均方算法求解两声源信号的误差信号的最小均方值。在采用最小均方算法时,需要迭代更新第一声源信号中各采样点对应的滤波系数,以寻求使得两声源信号的误差信号均方值最小的滤波系数。

在迭代过程中,可以在首次迭代时,初始化各采样点对应的滤波系数。将第一声源信号中的各采样点对应的滤波系数视为一个序列,则初始滤波系数可以为任意一个不全为0的离散序列。基于该初始滤波系数,得到两声源信号的误差信号的一个均方值。

然后,根据预设的系数更新策略更新滤波系数序列,基于更新后的滤波系数序列得到又一个误差信号的均方值。如此迭代下去,直到满足迭代截止条件。其中,迭代截止条件可以是:某次迭代后得到的误差信号的均方值小于一定阈值。此时,该次迭代所对应的滤波系数序列即为使得两声源信号的误差信号最小的滤波系数序列。另外,迭代截止条件还可以为:达到迭代总次数。当达到迭代总次数时,以多次迭代中的误差信号的均方值中的最小值最作为使得误差信号最小的一次迭代,该次迭代对应的滤波系数序列即为使得两声源信号的误差信号最小的滤波系数序列。

最后,根据确定出的使得两声源信号的误差信号最小的滤波系数序列即可确定出信号接收延时差。可选地,可以采用峰值检测方式,将与滤波系数序列中的最大值对应的采样点在第一声源信号中对应的采样时长作为两路声源信号的信号接收时延差,该采用时长可以通过该滤波系数序列中的最大值对应的采样点在第一声源信号中对应的采样点个数以及采样间隔确定,假设该采样点为第50个采样点,采样间隔为t,则这两声源信号的信号接收时延差为50t。

s106,根据第一声源信号分别与m路第二声源信号的信号接收时延差,以及m个非参考麦克风与参考麦克风的位置关系,确定声源位置。

声源定位器获取参考麦克风以及各个非参考麦克风之间的位置关系,根据确定出的第一、第二声源信号之间的接收时延差以及麦克风阵列中各麦克风之间的位置关系行声源定位。

另外,采用同样的方法,还可以分别确定出第一声源信号与其他m-1路第二声源信号之间对应的信号接收时延差。

本实施例中,首先,获取麦克风阵列中参考麦克风接收的第一声源信号以及m个非参考麦克风中任一麦克风接收的第二声源信号。进而,对第一声源信号进行滤波处理,使第一声源信号能够逼近第二声源信号,并在此基础上对滤波后的第一声源信号以及第二声源信号进行误差计算,从而获得两路声源信号之间的误差信号。通过多次调整滤波系数,使得第一、第二声源信号之间的误差信号最小,根据此最小误差信号对应的滤波系数确定出信号接收时延差,保证了信号接收时延差的准确性。最后,根据准确的信号接收时延差以及参考麦克风与非参考麦克风之间的位置关系确定出声源的位置,提高定位的精准度。同时,上述声源定位过程中无需获知声源信号或者噪声信号的先验知识,也就避免了因先验知识难以获得而导致的定位不准确的问题。

图2为本发明实施例提供的声源定位方法实施例二的流程图,如图2所示,该方法可以包括如下步骤:

s201,获取麦克风阵列接收的第一声源信号和第二声源信号。

上述步骤执行过程与前述实施例的相应步骤相似,可以参见如图1所示实施例中的相关描述,在此不赘述。

s202,对第二声源信号进行如下延迟处理:x2(n-p)。

其中,x2表示第二声源信号,x2(n-p)为对第二声源信号中的第n个采样点进行p个采样间隔延迟后的结果,p为大于或等于1的整数,n取自p+1~n-p,n为第二声源信号对应的采样点总数。

上述延迟处理就是对第二声源信号中的每个采样点都进行p个采样间隔的延迟。在实际的计算过程中,通常会忽略时间为负时对应的采样点,因此,在对第二声源信号进行延迟处理的过程中,需要保证n-p为正整数,因此,n的最小取值为p+1。当对第二声源信号进行p个采样间隔的延时后,会使第二声源信号中会出现p个超出采样时间段的采样点,在第一声源信号中不存在与此p个采样点对应的采样点,因此,这p个采样点也是可以忽略的,使得n的最大取值为n-p。

s203,根据如下公式对第一声源信号进行滤波处理:

其中,x1表示第一声源信号,x1(n-m)为第一声源信号中的第n-m个采样点,h(n-m)为第n-m个采样点对应的滤波系数。

根据上述公式对第一声源信号进行滤波处理以便通过多点逼近的方式使第一声源信号能够逼近第二声源信号。其滤波过程具体为:针对第二声源信号中的采样点n来说,在对其进行p个采样间隔的延迟后,对第一声源信号中的第n个采样点以及先后的p个采样点分别进行加权计算,形成滤波后的第一声源信号中的部分。举例来说,假设n=10,p=2,首先获取原始第一声源信号中第10个采样点以及与第10个采样点距离为±2的采样点,也即是获取第一声源信号中的第8、9、10、11、12个采样点。然后将第一声源信号中的第8~12个采样点分别与其对应的滤波系数相乘从而得到滤波后的第一声源信号中第10个采样点,也即是将对第10个采样点影响较大的前后4个采样点以及第10个采样点进行加权计算后,得到滤波后第一声源信号中的第10个采样点。对第一声源信号中的各个采样点都进行上述方式的滤波处理即可得到滤波后的第一声源信号。

s204,根据如下公式确定第二声源信号与滤波后的第一声源信号的误差信号:

其中,e(n)为第二声源信号中的第n个采样点对应的误差值,误差信号由第二声源信号对应的z个误差值组成,z=n-2p-1。

第二声源信号与滤波后的第一声源信号的误差信号是由第二声源信号中各采样点对应的误差值组成的。由于步骤s202中已经确定出n的取值范围为p+1~n-p,则表示经过延迟处理后的第二声源信号中需要计算与n-2p-1个采样点对应的误差值,并由z=n-2p-1个误差值组成第二声源信号与滤波后的第一声源信号的误差信号。

s205,采用最小均方算法,结合如下滤波系数更新公式,求解第k+1次迭代时误差信号的均方值:

hk+1(j)=hk(j)+μe(j)e[x1(j-m)]

其中,k为迭代次数,取自1~q,q为预设的迭代总次数;hk(j)为与第一声源信号中的第j个采样点对应的滤波系数,j取自1~n,e为求均值运算符,m=-p~p,μ为预设收敛因子。

s206,判断第k+1次迭代时误差信号的均方值是否小于预设阈值或者k+1次迭代时误差信号的均方值是否全部k+1次迭代分别对应的均方值中的最小值,若第q次迭代时误差信号的均方值小于预设阈值或者k+1次迭代时误差信号的均方值是全部q次迭代分别对应的均方值中的最小值,则执行步骤s207。

s207,确定使得误差信号最小的滤波系数为:第k+1次迭代时的n个滤波系数中的最大值。

s208,信号接收时延差确定为最大值对应的j值与p的差值。

可选地,可以将各个误差值的平均数作为误差信号的均方值。在利用第k次迭代时对应的滤波系数计算误差信号的均方值后,若计算出的均方值大于或等于预设阈值,则利用步骤s205中的公式对第k次迭代对应的滤波系数进行更新,形成第k+1次迭代对应的滤波系数。

或者,在利用第k次迭代时对应的滤波系数计算误差信号的均方值后,若计算出的均方值不是全部q次中均方值中的最小值,同样地,可以利用步骤s205中的公式对第k次迭代对应的滤波系数进行更新,形成第k+1次迭代对应的滤波系数。

利用步骤s205中的公式对滤波系数进行调整,当第k+1次迭代后,计算出的误差信号的均方值小于预设阈值时,停止对滤波系数进行调整,或者k+1次迭代时误差信号的均方值是全部q次迭代分别对应的均方值中的最小值时,则确定出误差信号均方值最小时对应的滤波系数。同时也可以确定出第二声源信号与滤波后第一声源信号的信号接收时延差为最大滤波系数对应的j值与第二声源信号延迟p值之间的差值。此j值与p值的差值即为两路声源信号的信号接收时延差,其中,j值表示与最大滤波系数存在对应关系的采样点处于声源信号中的第几个采样点。

s209,建立如下矩阵方程:ax=b。

其中,(xi,yi,zi)分别是m个非参考麦克风中第i个麦克风在以参考麦克风为原点建立的空间坐标系中的坐标位置,i=1~m,c是声速,τi0是m个非参考麦克风中第i个麦克风与参考麦克风之间的信号接收时延差。

s210,求解矩阵方程,以获得声源位置(x,y,z)。

麦克风阵列可以为环形麦克风阵列,位于环形麦克风阵列的中心的麦克风为参考麦克风,其他麦克风为非参考麦克风。

步骤s208中确定出的延时也即是矩阵a中的τi0。假设声源的坐标位置为(x,y,z),利用参考麦克风与非参考麦克风距离声源的远近不同可以列出以下方程组:

其中,(x1,y1,z1)……(xm,ym,zm)分别为m各非参考麦克风在麦克风阵列中的位置坐标,τ10……τm0分别为m个非参考麦克风与参考麦克风对应的声源信号之间的时间延迟,声速c取340m/s。

整理上述方程组,则有:

此整理后的方程组可以进一步简化为:ax=b。

其中,

利用最小二乘法求解上述超定方程组,可以得到方程组的近似解为:x=(ata)-1atb。

值得说明的是,环形麦克风阵列中的非参考麦克风可以是均匀分布于的,如图3所示,也可以是非均匀分布的,如图4所示。图3、4是麦克风阵列设置方式的示意图,但本方案并不对麦克风阵列的设置方式进行限定。

并且,上述矩阵方程中的未知数个数为4个,而为了确保方程组可以有解,需要将环形麦克风阵列中参考麦克风的数目设置为至少5个,从而使方程组成为超定方程组,满足方程组一定有解的条件。

可选地,在确定出声源所在的位置坐标后,需要对定位结果进行误差判断,当方程组的近似解满足:|x2+y2+z2-r02|<δ时,说明声源定位结果的误差在可控范围内,即确定声源的位置为(x,y,z)。

本实施例中,在接收到第一、第二声源信号后,对第二声源信号进行延迟处理,以及第一声源信号的滤波处理,同时,通过最小均值算法,采用迭代计算的方式不断调整滤波系数以得到均方值最小的误差信号,并基于此均方值最小的误差信号确定出两路信号之间的信号接收时延差,提高信号接收时延差估计的精准性。最后,基于此精准的接收时延差以及建立的超定方程组来求解声源的具体位置,从而保证了定位的精准性。

图5为本发明实施例提供的声源定位装置实施例一的结构示意图,如图5所示,该声源定位装置包括:获取模块11、滤波模块12、第一确定模块13、第二确定模块14。

获取模块11,用于获取麦克风阵列接收的第一声源信号和第二声源信号,第一声源信号由麦克风阵列中的参考麦克风接收,第二声源信号是麦克风阵列中的m个非参考麦克风接收的m路第二声源信号中的任一路,m大于或等于5。

滤波模块12,用于对第一声源信号进行滤波处理。

第一确定模块13,用于确定第二声源信号与滤波后的第一声源信号的误差信号,

确定使得误差信号最小的滤波系数,

根据滤波系数确定第一声源信号与第二声源信号的信号接收时延差。

第二确定模块14,用于根据第一声源信号分别与m路第二声源信号的信号接收时延差,以及m个非参考麦克风与参考麦克风的位置关系,确定声源位置。

图5所示装置可以执行图1所示实施例的方法,本实施例未详细描述的部分,可参考对图1所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1所示实施例中的描述,在此不再赘述。

图6为本发明实施例提供的声源定位装置实施例二的结构示意图,如图6所示,在图5所示实施例基础上,该声源定位装置还包括:延迟模块21。

延迟模块21,用于对第二声源信号进行如下延迟处理:x2(n-p),

其中,x2表示第二声源信号,x2(n-p)为对第二声源信号中的第n个采样点进行p个采样间隔延迟后的结果,p为大于或等于1的整数,n取自p+1~n-p,n为第二声源信号对应的采样点总数。

滤波模块12,具体用于根据如下公式对第一声源信号进行滤波处理:

其中,x1表示第一声源信号,x1(n-m)为第一声源信号中的第n-m个采样点,h(n-m)为第n-m个采样点对应的滤波系数。

可选地,该声源定位装置中的第一确定模块13具体用于:

根据如下公式确定第二声源信号与滤波后的第一声源信号的误差信号:

其中,e(n)为第二声源信号中的第n个采样点对应的误差值,误差信号由第二声源信号对应的z个误差值组成,z=n-2p-1。

可选地,该声源定位装置中的第一确定模块13具体包括:

求解单元131,用于采用最小均方算法,结合如下滤波系数更新公式,求解第k+1次迭代时误差信号的均方值:

hk+1(j)=hk(j)+μe(j)e[x1(j-m)]

其中,k为迭代次数,取自1~q,q为预设的迭代总次数;hk(j)为与第一声源信号中的第j个采样点对应的滤波系数,j取自1~n,e为求均值运算符,m=-p~p,μ为预设收敛因子,

确定单元132,用于若第k+1次迭代时误差信号的均方值小于预设阈值或者k+1次迭代时误差信号的均方值是全部q次迭代分别对应的均方值中的最小值,则确定使得误差信号最小的滤波系数为:第k+1次迭代时的n个滤波系数中的最大值,

信号接收时延差确定为最大值对应的j值与p的差值。

可选地,麦克风阵列为环形麦克风阵列,参考麦克风位于环形麦克风阵列的中心。

该声源定位装置中的第二确定模块14具体包括:

方程建立单元141,用于建立如下矩阵方程:ax=b。

其中,

其中,(xi,yi,zi)分别是m个非参考麦克风中第i个麦克风在以参考麦克风为原点建立的空间坐标系中的坐标位置,i=1~m,c是声速,τi0是m个非参考麦克风中第i个麦克风与参考麦克风之间的信号接收时延差。

求解单元142,用于求解矩阵方程,以获得声源位置(x,y,z)。

图6所示装置可以执行图2所示实施例的方法,本实施例未详细描述的部分,可参考对图2所示实施例的相关说明。该技术方案的执行过程和技术效果参见图2所示实施例中的描述,在此不再赘述。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以产品的形式体现出来,该计算机产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1