一种校准麦克风阵列的方法、声源定位方法及相关设备与流程

文档序号:18299685发布日期:2019-07-31 09:55阅读:217来源:国知局
一种校准麦克风阵列的方法、声源定位方法及相关设备与流程
本申请涉及声源定位
技术领域
,尤其涉及一种校准麦克风阵列的方法、声源定位方法及相关设备。
背景技术
:在众多语音交互相关的场合中,如语音助手以及完成语音通信的手机等消费类电子产品中,普遍使用麦克风阵列根据用户的声音确定用户的位置,对该位置上的声音进行语音增强。在设备出厂之前,通常需要对麦克风阵列进行校准。现有技术中,对麦克风阵列进行校准的方法一般为:测试单个麦克风的校准参数,以单个麦克风的参数之和作为麦克风阵列的校准结果。该声源定位校准方式获得校准结果的方式忽略了各个麦克风的性能参数变化的影响,且忽略了各个麦克风之间的相关性,因此,该校准方式获得的校准结果的准确性差。技术实现要素:本申请实施例提供一种麦克风阵列校准方法、声源定位方法及相关设备,用于提高获得的麦克风的校准值的准确性。第一方面,提供一种校准麦克风阵列的方法,包括:通过麦克风阵列中的n个麦克风采集来自设定声源点的声音数据;其中,所述n个麦克风到所述设定声源点的距离均相同,n为大于或等于3的整数;根据所述n个麦克风的声音数据,采用预设相关系数算法获得所述n个麦克风中每两个麦克风的相关系数;根据所述相关系数中小于预设的相关系数阈值的那部分相关系数,确定出相关联的对应m个麦克风;其中,m为小于n的整数;基于所述n个麦克风中除了所述m个麦克风之外的其余麦克风中每两个麦克风的声音数据,获得所述其余麦克风中每两个麦克风采集的声音数据的时延差;基于所述时延差,确定出所述其余麦克风中需要进行校准的每个麦克风对应的时延校准值。在上述方案中,根据麦克风阵列中每两个麦克风的相关系数,确定异常的麦克风,再根据麦克风阵列中除了异常的麦克风之外的麦克风来计算时延差校准值,避免了异常的麦克风影响校准结果,提高校准结果的准确性。且,巧妙利用相关系数排除麦克风阵列中的异常麦克风,可以对产品的品质进行检测。在一种可能的设计中,据所述n个麦克风的声音数据,采用预设相关系数算法获得所述n个麦克风中每两个麦克风的相关系数,包括:截取预设长度的所述n个麦克风中每两个麦克风中每个麦克风声音数据,得到截取后的所述n个麦克风中每两个麦克风的声音数据;对截取后的所述n个麦克风中每两个麦克风的声音数据进行归一化处理,得到所述n个麦克风中每两个麦克风的相关系数。在上述方案中,对每两个麦克风的声音数据进行截取处理,一方面可以保证了相关计算的声音数据的长度相同,使得计算出的相关系数更具有参考价值,在一种可能的设计中,基于所述n个麦克风中除了所述m个麦克风之外的其余麦克风中每两个麦克风的声音数据,获得所述其余麦克风中每两个麦克风采集的声音数据的时延差,包括:构建所述其余麦克风中每两个麦克风的声音数据之间的代价函数;基于预设时延差取值范围,获得所述其余麦克风中每两个麦克风的代价函数的最大值;确定以所述最大值对应的时延差为所述其余麦克风中每两个麦克风采集的声音数据的时延差。在上述方案中,通过遍历代价函数,获得每两个麦克风的代价函数来获得每两个麦克风的声音数据的时延差,可以使得更多帧的声音数据参与计算,避免某一帧声音数据异常而对结果造成影响,使得获得的每两个麦克风的声音数据的时延差更准确。在一种可能的设计中,基于所述时延差,确定出所述其余麦克风中需要进行校准的每个麦克风对应的时延校准值,包括:确定所述时延差中与所述时延差的平均值之间的差值大于预设差值的至少两个时延差;根据所述平均值,以及所述至少两个时延差,确定出与所述至少两个时延差关联的至少一个麦克风对应的一个校准值,从而获得所述其余麦克风中需要进行校准的每个麦克风对应的时延校准值。在上述方案中,根据多个时延差的平均值与每个时延差之间的差值来确定某个时延差是否偏差较大,依据平均值以及时延差确定对应麦克风的校准值,也就是说,根据多个麦克风的时延一致性的原则,能够相对准确地获得时延校准值。第二方面,提供一种声源定位方法,包括:根据通过第一方面及一种可能的设计中任意一种的方法获得的其余麦克风中需要进行校准的每个麦克风对应的时延校准值,对所述其余麦克风采集来自待测声源点的目标声音数据进行补偿;基于所述其余麦克风中除了补偿后的麦克风之外的麦克风的目标声音数据,以及补偿后的麦克风的目标声音数据,获得所述待测声源点的位置。上述方案中,在对待测声源进行定位的基础上,根据麦克风对应的准确的时延校准值,对该麦克风的声音数据进行补偿,进而获得待测声源点的位置,由于麦克风对应的时延校准值准确,因此使得获得的待测声源点的位置相对也更准确。第三方面,提供一种校准麦克风阵列的设备,包括:检测模块,用于通过麦克风阵列中的n个麦克风采集来自设定声源点的声音数据;其中,所述n个麦克风到所述设定声源点的距离均相同,n为大于或等于3的整数;处理模块,用于根据所述n个麦克风的声音数据,采用预设相关系数算法获得所述n个麦克风中每两个麦克风的相关系数;所述处理模块,还用于根据所述相关系数中小于预设的相关系数阈值的那部分相关系数,确定出相关联的对应m个麦克风;其中,m为小于n的整数;所述处理模块,还用于基于所述n个麦克风中除了所述m个麦克风之外的其余麦克风中每两个麦克风的声音数据,获得所述其余麦克风中每两个麦克风采集的声音数据的时延差;所述处理模块,还用于基于所述时延差,确定出所述其余麦克风中需要进行校准的每个麦克风对应的时延校准值。在一种可能的设计中,处理模块具体用于:截取预设长度的所述n个麦克风中每两个麦克风中每个麦克风声音数据,得到截取后的所述n个麦克风中每两个麦克风的声音数据;对截取后的所述n个麦克风中每两个麦克风的声音数据进行归一化处理,得到所述n个麦克风中每两个麦克风的相关系数。第四方面,提供一种声源定位设备,包括:补偿模块,用于通过第一方面中的方法获得的其余麦克风中需要进行校准的每个麦克风对应的时延校准值,对所述其余麦克风采集来自待测声源点的目标声音数据进行补偿;处理模块,用于基于所述其余麦克风中除了补偿后的麦克风之外的麦克风的目标声音数据,以及补偿后的麦克风的目标声音数据,获得所述待测声源点的位置。第五方面,提供一种智能设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如第一方面或第二方面中所述的方法。第六方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如第一方面或第二方面中所述的方法。附图说明图1为本申请实施例提供的一种麦克风阵列的排布示意图;图2为本申请实施例提供的一种校准麦克风阵列的方法的流程示意图;图3为本申请实施例提供的声音数据的一种示意图;图4为本申请实施例提供的一种声源定位方法的流程图;图5为本申请实施例提供的一种校准麦克风阵列的设备的结构示意图;图6为本申请实施例提供的一种声源定位装置的结构示意图;图7为本申请实施例提供的一种智能设备的结构示意图。具体实施方式为了更好的理解本申请实施例提供的技术方案,下面将结合说明书附图以及具体的实施方式进行详细的说明。为了提高获得的准麦克风阵列的校准值的准确性,本申请实施涉及一种校准麦克风阵列的方法,下面对本申请实施例中的方法涉及的麦克风阵列进行介绍。请参照图1,图1表示一种麦克风阵列,该麦克风阵列110中包括n个麦克风120和设定声源位置点130。多个麦克风120的性能参数一致,性能参数例如采样率、采样精度、通道数以及比特率等。n个麦克风120到设定声源位置点130的距离均相等。设定声源位置点130用于放置设定声源点。其中,麦克风阵列一般不包括设定声源点。在实际进行校准的过程中,用户可以在设定声源位置点130上放置设定声源点,多个麦克风120到该设定声源点的距离均相等。其中,图1中是以麦克风阵列110的形状为圆形为例,但是实际上麦克风阵列110的形状可以是正多形,也可以是正立方体形,也可以是球形,本申请实施例中不对麦克风阵列110的形状进行具体限制。图1中是以麦克风阵列110中包括6个麦克风120为例,但是实际上不限制麦克风阵列110中麦克风120的数量。另外,本申请实施例中的校准麦克风阵列的方法适用于远场校准的场景,下面对远场校准进行简要介绍。请继续参照图1,设定声源点130到麦克风阵列110之间的距离l远大于声源点发出的信号的波长λ,具体l与λ之间的具体关系表示如下:其中,d表示每两个声源点之间的距离。下面结合图1的麦克风阵列,对本申请实施例中的校准麦克风阵列的方法的两种使用场景进行说明。场景一,麦克风阵列在出厂之前,厂商可以用该方法对麦克风阵列进行校准;场景二,用户在后面麦克风阵列之后,可以根据该方法随麦克风阵列进行校准。下面结合图1所述的麦克风阵列,下面对本申请实施例涉及的校准麦克风阵列的方法进行介绍,请参照图2,该方法具体包括:步骤201,通过麦克风阵列中的n个麦克风采集来自设定声源点的声音数据;其中,n个麦克风到设定声源点的距离均相同,n为大于或等于3的整数;步骤202,根据n个麦克风的声音数据,采用预设相关系数算法获得n个麦克风中每两个麦克风的相关系数;步骤203,根据相关系数中小于预设的相关系数阈值的那部分相关系数,确定出相关联的对应m个麦克风,其中,m为小于n的整数;步骤204,基于n个麦克风中除了m个麦克风之外的其余麦克风中每两个麦克风的声音数据,获得其余麦克风中每两个麦克风采集的声音数据的时延差;步骤205,基于时延差,确定出其余麦克风中需要进行校准的每个麦克风对应的时延校准值。本申请实施例涉及的校准麦克风阵列110的方法可以由校准麦克风阵列的设备来执行。校准麦克风阵列的设备可以通过麦克风阵列和处理单元来实现。处理单元可以是中央处理器(centralprocessingunit,cpu),也可以是特定集成电路(applicationspecificintegratedcircuit,asic),也可以是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(digitalsignalprocessor,dsp),或,一个或者多个现场可编程门阵列(fieldprogrammablegatearray,fpga)。下面对校准麦克风阵列的设备执行上述步骤的过程进行介绍。用户准备对麦克风阵列110进行校准,用户开启校准麦克风阵列的设备,校准麦克风阵列的设备执行步骤201,即通过麦克风阵列110中的n个麦克风120采集来自设定声源点的声音数据。具体的,校准麦克风阵列的设备中各个麦克风120开启,用户控制设定声源点发出声音,n个麦克风120会相应采集到设定声源点发出的声音数据。n个麦克风120采集的声音数据一般是时域数据。声音数据可以以帧为单位,n个麦克风120中每个麦克风采集至少一帧来自设定声源点的声音数据。校准麦克风阵列的设备从n个麦克风120,获取n个麦克风120中每个麦克风120对应的声音数据。在获取声音数据的同时,校准麦克风阵列的设备建立n个麦克风120中每个麦克风120与对应的声音数据之间的对应关系。具体的,校准麦克风阵列的设备从n个麦克风120获取声音数据的同时,会获取n个麦克风120的标识,从而建立n个麦克风120中每个麦克风120与该麦克风120对应的声音数据之间的关系。或者,校准麦克风阵列的设备中提前预存有每个麦克风120的标识,校准麦克风阵列的设备在获得每个麦克风120的声音数据之后,建立该麦克风120与对应的声音数据之间的关系。在校准麦克风阵列的设备执行步骤201之后,校准麦克风阵列的设备执行步骤202,根据n个麦克风120的声音数据,采用预设相关系数算法获得n个麦克风中每两个麦克风的相关系数。在一种可能的实施例中,校准麦克风阵列的设备可能获取n个麦克风中每个麦克风对应的多帧声音数据,为了保证能够参与每个麦克风对应的声音数据的长度相同,校准麦克风阵列的设备可以在每个麦克风的声音数据中截取相应的预设长度的声音数据,也可以理解为对每两个麦克风中一个麦克风的声音数据进行移位处理。其中,每两个可以理解为n个麦克风中任意一个麦克风会与其它麦克风中每个麦克风进行组合。预设长度以时间长度来衡量,或者以帧数来衡量,例如预设长度为3s,或者预设长度为20帧。进一步,在截取每两个麦克风的声音数据时,可以相应覆盖两个麦克风的声音数据的重叠区,以增加计算出的相关系数的准确性。具体的,每两个麦克风的声音数据的重叠区可以理解为每两个麦克风的最大相似的声音数据,由于每两个麦克风的声音数据的重叠区可能并不完全相同,因此,不同的两个麦克风所对应的截取后的声音数据可能并不完全相同。例如,请参照图3,n个麦克风中的第一麦克风的声音数据如图3中的a1所示,n个麦克风中的第二麦克风的声音数据如图3中的a2所示,截取a1中的预设长度l的声音数据,为了使得a1的声音数据与a2的声音数据相似度更高,可以截取a2中延迟t2段后的预设长度l的声音数据。在截取每个麦克风预设长度的声音数据之后,校准麦克风阵列的设备将每个麦克风预设长度的声音数据通过傅利叶变换(fft)转换到为频域数据。在截取每个麦克风预设长度的声音数据之后,可以根据截取后的n个麦克风中每个麦克风对应的声音数据,对截取后的n个麦克风中每个麦克风对应的声音数据进行归一化处理,获得n个麦克风中每两个麦克风的相关系数。相关系数可以理解为对应两个麦克风的声音数据的相似程度。对截取后的n个麦克风中每个麦克风对应的声音数据进行归一化处理获得n个麦克风中每两个麦克风的相关系数有很多种计算方式,下面进行示例说明。方式一:根据如下公式进行归一化处理:其中,m表示截取后的声音数据的长度,xi(k)表示n个麦克风中第i个麦克风采集的第k帧声音数据,xh(k)表示n个麦克风中第j个麦克风采集的第k帧声音数据,xh(k)*表示n个麦克风中第j个麦克风采集的声音数据的共轭数。方式二:根据如下公式进行归一化处理:其中,xi表示n个麦克风中第i个麦克风采集的多帧声音数据按照时间先后顺序组成的向量,xh表示n个麦克风中第h个麦克风采集的多帧声音数据按照时间先后顺序组成的向量。应当说明的是,如果之前的声音数据为声音时域数据,在计算每两个麦克风的相关系数时,应当将声音时域数据转换为声音频域数据进行计算。在执行步骤202之后,校准麦克风阵列的设备执行步骤203,即根据相关系数中小于预设的相关系数阈值的那部分相关系数,确定出相关联的对应m个麦克风,m为小于n的整数。具体的,由于一共有n个麦克风,每个麦克风与其它麦克风中每个麦克风均对应一个相关系数,因此,每个麦克风相关联的相关系数对应有(n-1)个,校准麦克风阵列的设备在获得n个麦克风中每两个麦克风的相关系数之后,可以将多个相关系数与预设的相关系数阈值进行比较。如果一个麦克风相关联的相关系数均大于或等于相关系数阈值,或者一个麦克风相关联的相关系数只有一个相关系数小于相关系数阈值,则校准麦克风阵列的设备确定该麦克风正常。如果一个麦克风与其它麦克风的相关系数中至少两个相关系数均小于相关系数阈值,则校准麦克风阵列的设备确定该麦克风异常。其中,预设的相关系数阈值可以是由用户设定的,或者由校准麦克风阵列的设备默认设置的。校准麦克风阵列的设备可能从n个麦克风中确定出一个或多个异常的麦克风,也可能n个麦克风中没有确定出异常的麦克风,也就是说,m的取值可以为0,也可以是大于或等于1的整数。例如,校准麦克风阵列的设备中存储的相关系数阈值为0.7,校准麦克风阵列的设备中包括3个麦克风(a,b,c),3个麦克风对应的相关系数具体如下表1所示。麦克风相关系数a-b0.65b-c0.6a-c0.8例如,校准麦克风阵列的设备确定麦克风b与其它麦克风对应的相关系数均小于相关系数阈值,校准麦克风阵列的设备确定麦克风b异常。因为n个麦克风距离设定声源点的距离均相同,所以理论上n个麦克风中每两个麦克风接收的声音数据的相关系数应该是较大的。如果某个麦克风对应的相关系数出现异常,则可以确定该麦克风异常。本申请实施例中,利用相关系数与相关系数阈值进行比较的方式可以排除那些信号幅度值偏低或者完全不工作的麦克风。排除异常的麦克风,以避免异常的麦克风影响后续获得校准值的准确性,即使在麦克风阵列中出现几个异常的麦克风,麦克风阵列依旧能够相对准确地进行工作。且,排除异常麦克风,可以相对减少后续过程中的处理量。且,能够用于筛查不合格的麦克风阵列产品。在执行步骤203之后,校准麦克风阵列的设备执行步骤204,即基于n个麦克风中除了m个麦克风之外的其余麦克风中每两个麦克风的声音数据,获得其余麦克风中每两个麦克风采集的声音数据的时延差。具体的,在确定m个麦克风异常之后,校准麦克风阵列的设备不再对异常的m个麦克风的声音数据进行处理,而是根据n个麦克风中除了异常的m个麦克风中之外的其余麦克风中每两个麦克风的声音数据,来计算其余麦克风中每两个麦克风之间的时延差。时延差可以理解为两个麦克风接收设定声源点的同一帧声音数据的存在的时延差。其中,如果m取值为0时,则其余麦克风还是n个麦克风,如果m取值不为0,则其余麦克风为除了异常的m个麦克风之外的麦克风。获得其余麦克风中每两个麦克风采集的声音数据的时延差的方式有很多种,下面进行示例说明。一种获得时延差的方式为:构建其余麦克风中每两个麦克风的声音数据之间的代价函数;基于预设时延差取值范围,获得其余麦克风中每两个麦克风的代价函数的最大值;确定以最大值对应的时延差为其余麦克风中每两个麦克风采集的声音数据的时延差。具体的,校准麦克风阵列的设备可以先构建两个麦克风的声音数据之间的代价函数,根据预设的时延差范围,对该代价函数进行遍历,获得该代价函数的最大值,该最大值对应的时延差则为每两个麦克风的时延差。一种代价函数具体表达式如下:其中,k表示声音数据中的第k帧,w表示加权系数,j表示虚部,τ表示时延差,s表示截取的声音数据的长度,s和前文中的m取值可以相同,也可以不相同,xi(k)表示n个麦克风中第i个麦克风采集的第k帧声音数据,xh(k)表示n个麦克风中第j个麦克风采集的第k帧声音数据,xh(k)*表示n个麦克风中第j个麦克风采集的声音数据的共轭数。具体的,预设的时延差范围为[-x,x],预设的遍历步长为z,则校准麦克风阵列的设备依次取τ为-x,(-x+z),…(-x+2z)…x,依次计算出不同τ对应的的值,获得的的最大值对应的τ则为第i个麦克风与第j个麦克风之间的时延差。由于其余麦克风与设定声源点之间的距离相等,在排除麦克风阵列110的位置偏差、麦克风安装偏差、麦克风幅度偏差等差异带来的影响,其余麦克风中每两个麦克风的时延差应该是相等或是相近的。但是可能某些麦克风由于物理性能退化等原因,某个或某些麦克风可能出现较大偏差,因此,需要对该麦克风进行校准。因此,校准麦克风阵列的设备在执行步骤204之后,执行步骤205,即基于时延差,确定出其余麦克风中需要进行校准的每个麦克风对应的时延校准值。具体的,校准麦克风阵列的设备在获得其余麦克风中每两个麦克风的时延差,从而可以获得其余麦克风对应的多个时延差。校准麦克风阵列的设备根据该多个时延差,确定出需要校准的麦克风对应的时延校准值。基于时延差,确定时延校准值的方式有很多种,下面对确定时延校准值的方式进行示例说明。一种确定时延校准值的方式为:根据多个时延差,以及多个时延差的平均值,获得其余麦克风中需要进行校准的麦克风对应的时延差。具体的,校准麦克风阵列的设备确定时延差中与时延差的平均值之间的差值大于预设差值的至少两个时延差;根据平均值,以及至少两个时延差,确定出与至少两个时延差关联的至少一个麦克风对应的一个校准值,从而获得其余麦克风中需要进行校准的每个麦克风对应的时延校准值。校准麦克风阵列的设备确定多个时延差的平均值,确定每一个时延差与该平均值的差值,如果该某些时延差对应的差值大于预设差值,则表示这些时延差可能偏差较大,因此,校准麦克风阵列的设备可以根据这些时延差关联的一个麦克风,确定该麦克风可能偏差较大。校准麦克风阵列的设备可以根据其余麦克风的时延差的平均值减去其余麦克风所对应的时延差的平均值,获得该麦克风的时延校准值。一种确定时延校准值的方式为:根据该麦克风关联的时延差的平均值减去其余麦克风中除了该麦克风之外的麦克风所对应的时延差的平均值,获得该麦克风对应的时延校准值。确定偏差较大的麦克风的方法可以参照前文论述的方式,此处不再赘述。在获得其余麦克风中需要进行校准的每个麦克风对应的时延校准值之后,校准麦克风阵列的设备对声源进行定位的时候,可以基于每个麦克风对应的时延校准值,对该麦克风获取的声音数据进行时延校准。在前文论述的场景一中,厂商利用校准麦克风的设备获得时延校准值之后,可以将该时延校准值存储在校准麦克风阵列的设备中,该设备后续进行处理,可以随时利用该时延校准值。在前文论述的场景二中,用户购买相应的校准麦克风的设备之后,校准麦克风的设备可以间隔预设时长进行校准,后续处理中,延用最新的时延校准值。在前文论述的一种校准麦克风阵列的方法的基础上,本申请实施例还提供一种声源校准方法,请参照图4,该方法的具体流程如下:步骤401,根据图2中论述的方法获得的其余麦克风中需要进行校准的每个麦克风对应的时延校准值,对其余麦克风采集来自待测声源点的目标声音数据进行补偿;步骤402,基于其余麦克风中除了补偿后的麦克风之外的麦克风的目标声音数据,以及补偿后的麦克风的目标声音数据,获得待测声源点的位置。该方法由声源定位装置来执行,声源定位装置包括校准麦克风阵列的设备,或者,声源定位装置与校准麦克风阵列的设备等同。本申请实施例的总体思路如下:在每次对声源进行定位之前,声源定位装置可以通过前文论述的校准麦克风阵列的方法获得其余麦克风中需要进行校准的每个麦克风对应的时延校准值,再根据获得的时延校准值对麦克风的声音数据进行时延补偿,根据补偿后的声音数据来获得声源的位置。由于时延校准值更准确,所以相对获得的声源位置更准确。下面对声源定位装置进行声源定位过程进行说明。声源定位装置执行步骤401,即根据图2中论述的方法获得的其余麦克风中需要进行校准的每个麦克风对应的时延校准值,对其余麦克风采集来自待测声源点的目标声音数据进行补偿。为了便于理解,下面对待测声源点和设定声源点进行说明,设定声源点可以理解为在校准麦克风的阵列的时候,放置于设定声源位置130上的声源点。而待测声源点是指在需要进行定位的声源点,该声源点可能位于任意位置。具体的,获得其余麦克风中需要进行校准的每个麦克风对应的时延校准值的内容可以参照前文图1中论述的内容,此处不再赘述。声源定位装置可以在每次进行定位声源之前,都获取每个麦克风对应的时延校准值。或者,声源定位装置可以只获取一次时延校准值,在获取时延校准值之后,后续对声源进行定位的时候,均以该时延校准值为准。或者,声源定位装置可以预设间隔时间获取一次时延校准值,在获取当前时延校准值之后,下一次对声源进行定位的时候,均以该时延校准值为准。声源定位装置可以通过其余麦克风采集待测声源点的声音数据,该声音数据也就是目标声音数据。目标声音数据可以是时域声音数据或频域声音数据。声源定位装置再根据前文中获得的时延校准值对该目标声音数据进行补偿校准。下面对执行步骤401的方式进行说明。执行步骤401的方式为:声源定位装置根据每个麦克风对应的时延校准值,对其余麦克风采集来自待测声源点的目标声音数据进行补偿。例如声源定位装置确定其余麦克风中需要进行校准的第i个麦克风对应的时延校准值为τ’,当对第i个麦克风进行校准时,该第i个麦克风的时延差为(τ-τ’)。声源定位装置在执行步骤401之后,执行步骤402,即基于其余麦克风中除了补偿后的麦克风之外的麦克风的目标声音数据,以及补偿后的麦克风的目标声音数据,获得待测声源点的位置。下面对进行说明。一种执行步骤402的方式为:声源定位装置构建其余麦克风中每两个麦克风的声音数据之间的代价函数;基于声源位置取值范围,获得其余麦克风中每两个麦克风的代价函数的最大值;确定以最大值对应的时延差对应的位置为待测声源的位置。具体的,校准麦克风阵列的设备可以先构建两个麦克风的声音数据之间的代价函数,根据预设的声源位置范围,对该代价函数进行遍历,获得该代价函数的最大值,该最大值对应的位置为待测声源的位置。其中,声源位置包括声源的方位角和声源的俯仰角。方位角可以理解为在水平方向上与麦克风阵列120的夹角,俯仰角可以理解为垂直方向上与麦克风阵列120的夹角。声源位置范围是指声源的方位角,以及声源的俯仰角。一种代价函数具体表达式如下:其中,s表示截取的第i个麦克风与第h个麦克风的声音数据的长度,s与m可以相同,也可以不同。公式中的其它字母含义可以参照前文论述的内容,此处不再赘述。声源定位装置中预存有不同声源位置与不同时延差之间的对应关系,声源定位装置根据预设的声源位置范围,获得对应的时延差范围,再将时延差范围内对应的时延差代入上述代价函数中,当每两个麦克风中有一个麦克风对应有时延校准值时,声源定位装置在计算该代价函数的值时,按照校准时延差对代价函数中的时延差进行补偿,从而获得不同时延差对应的代价函数的取值,以代价函数最大取值对应的声源位置为待测声源的位置。每两个麦克风对应确定出待测声源的位置,其余麦克风有(n-m)个,可以确定出多个位置,对多个位置求平均值,获得待测声源的位置。在前文图2中的论述的一种校准麦克风阵列的方法的基础上,本申请实施例还提供一种校准麦克风阵列的设备,请参照图5,该装置包括采集模块501和处理模块502,其中:采集模块501,用于通过麦克风阵列中的n个麦克风采集来自设定声源点的声音数据;其中,n个麦克风到设定声源点的距离均相同,n为大于或等于3的整数;处理模块502,用于根据n个麦克风的声音数据,采用预设相关系数算法获得n个麦克风中每两个麦克风的相关系数;处理模块502,还用于根据相关系数中小于预设的相关系数阈值的那部分相关系数,确定出相关联的对应m个麦克风;其中,m为小于n的整数;处理模块502,还用于基于n个麦克风中除了m个麦克风之外的其余麦克风中每两个麦克风的声音数据,获得其余麦克风中每两个麦克风采集的声音数据的时延差;处理模块502,还用于基于时延差,确定出其余麦克风中需要进行校准的每个麦克风对应的时延校准值。在一种可能的实施方式中,处理模块502具体用于:截取预设长度的n个麦克风中每两个麦克风中每个麦克风声音数据,得到截取后的n个麦克风中每两个麦克风的声音数据;对截取后的n个麦克风中每两个麦克风的声音数据进行归一化处理,得到n个麦克风中每两个麦克风的相关系数。在一种可能的实施方式中,处理模块502具体用于:构建其余麦克风中每两个麦克风的声音数据之间的代价函数;基于预设时延差取值范围,获得其余麦克风中每两个麦克风的代价函数的最大值;确定以最大值对应的时延差为其余麦克风中每两个麦克风采集的声音数据的时延差。在一种可能的实施方式中,处理模块502具体用于:确定时延差中与时延差的平均值之间的差值大于预设差值的至少两个时延差;根据平均值,以及至少两个时延差,确定出与至少两个时延差关联的至少一个麦克风对应的一个校准值,从而获得其余麦克风中需要进行校准的每个麦克风对应的时延校准值。在前文图4中的论述的一种声源定位方法的基础上,本申请实施例还提供一种声源定位装置,请参照图6,该装置包括获取模块601和处理模块602,其中:获取模块601,用于通过图2中论述的方法获得其余麦克风中需要进行校准的每个麦克风对应的时延校准值;处理模块602,用于根据其余麦克风中需要进行校准的每个麦克风对应的时延校准值,对其余麦克风采集来自待测声源点的目标声音数据进行补偿;处理模块602,还用于基于其余麦克风中除了补偿后的麦克风之外的麦克风的目标声音数据,以及补偿后的麦克风的目标声音数据,获得待测声源点的位置。在前文图2或图4中的论述的基础上,本申请实施例还提供一种智能设备,智能设备例如智能音响、球机或智能语音助手等。请参照图7,该智能设备包括处理器701和存储器702,其中:存储器702存储有可被处理器701执行的指令,处理器701通过执行存储器702存储的指令实现如图2或图4中论述的方法。图7中是以一个处理器701为例,但是实际上不限制处理器701的数量。作为一种实施例,图5中的校准麦克风阵列的设备可以通过图7中的处理器701来实现。作为一种实施例,图6中的声源定位装置可以通过图7中的处理器701来实现。在前文图2或图4中论述的方法的基础上,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如图2或图4中论述的方法。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1