本发明涉及声源定位领域,尤其涉及声源定位方法、装置及计算机可读存储介质。
背景技术:
随着人工智能产业的飞速发展,语音交互设备越来越多的出现在人们的生活当中,例如智能音箱、智能会议机等,其中声源定位和跟踪是语音交互中的关键技术,为多麦克风降噪和音视频产品交互等方向提供技术基础。但是目前的声源定位与跟踪方法存在计算量大和抗干扰能力差的问题,从而导致现有的技术运算速度慢,不适合在性能较低的嵌入式平台运行。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
技术实现要素:
本发明的主要目的在于提供一种声源定位方法、装置及计算机可读存储介质,旨在解决目前的声源定位与跟踪方法存在计算量大和抗干扰能力差的技术问题。
为实现上述目的,本申请提供一种声源定位方法,包括步骤:
获取预设麦克风阵列中各麦克风位置和预设的多个潜在声源方位;
根据各麦克风位置和各潜在声源方位,获得每个潜在声源相对各麦克风对的时延,其中麦克风对由任意两个麦克风组成;
实时获取各麦克风采集的时域信号;
每获取到各麦克风采集到的对应的一帧时域信号时,根据对应的一帧时域信号,获得各麦克风对在该帧的互相关函数;
根据每个潜在声源相对各麦克风对的时延和各麦克风对在该帧的互相关函数,获得该帧可能声源方位;
获取前一帧声源方位和前一帧方位协方差,并根据该帧可能声源方位、前一帧声源方位和前一帧方位协方差,获得该帧对应的声源方位。
可选地,所述根据各麦克风位置和各潜在声源方位,获得每个潜在声源相对各麦克风对的时延,其中麦克风对由任意两个麦克风组成的步骤包括:
获取所述麦克风阵列的预设采样率;
根据各麦克风位置、各潜在声源方位、所述麦克风阵列的预设采样率和时延计算公式
其中tkij为第k个潜在声源相对第i个麦克风和第j个麦克风组成的麦克风对的时延,k=1,2...k,k为预设的潜在声源数量,i=1,2...m-1,j=i+1...m,m为预设麦克风阵列中麦克风数量,(xi,yi,0)为第i个麦克风位置,(xj,yj,0)为第j个麦克风位置,
可选地,所述每获取到各麦克风采集到的对应的一帧时域信号时,根据对应的一帧时域信号,获得各麦克风对在该帧的互相关函数的步骤包括:
每采集到一帧时域信号时,对各麦克风采集到的一帧时域信号进行傅里叶转换,获得各麦克风在该帧对应的频域信号;
根据麦克风在该帧对应的频域信号以及公式
对各麦克风对的互功率谱pij进行傅里叶逆变换,获得各麦克风对的时域互相关函数rij(t),其中rij(t)为第i个麦克风和第j个麦克风组成的麦克风对的互相关函数,t=1,2...2n-1,n为一帧信号的采样点数。
可选地,所述根据每个潜在声源相对各麦克风对的时延和各麦克风对在该帧的互相关函数,获得该帧可能声源方位的步骤包括:
根据每个潜在声源相对麦克风对的时延tkij和各麦克风对在该帧的互相关函数rij(t),获得各潜在声源相对麦克风对的所有互相关值rij(n-1+tkji),其中rij(n-1+tkji)为第k个潜在声源相对第i个麦克风和第j个麦克风组成的麦克风对的互相关值;
根据各潜在声源对麦克风对的互相关值rij(n-1+tkij)和公式
从各潜在声源相对麦克风阵列的互相关值rk中,选取最大的互相关值对应的潜在声源的方位,作为该帧的可能声源方位。
可选地,所述获取前一帧声源方位和前一帧方位协方差,并根据该帧可能声源方位、前一帧声源方位和前一帧方位协方差,获得该帧对应的声源方位的步骤包括:
获取前一帧声源方位和前一帧方位协方差;
根据前一帧对应的声源方位和方位协方差,获得该帧对应的声源经验推断方位和经验方位协方差;
根据该帧对应的声源经验推断方位、经验方位协方差、预设的方位测量协方差和该帧对应的可能声源方位,获得该帧对应的声源方位和方位协方差。
可选地,所述根据前一帧对应的声源方位和方位协方差,获得该帧对应的声源经验推断方位和经验方位协方差的步骤包括:
根据前一帧对应的声源方位和方位先验性预测公式l′(t)=l(t-1),获得该帧对应的声源经验推断方位,其中l′(t)为该帧对应的声源经验推断方位,l(t-1)为前一帧对应的声源方位;
根据前一帧对应的方位协方差和方位协方差先验性预测公式p′(t)=p(t-1)+p0,获得该帧对应的经验方位协方差,其中p′(t)为该帧对应的经验方位协方差,p(t-1)为前一帧对应的方位协方差,p0为预设不确定性值。
可选地,所述根据该帧对应的声源经验推断方位、经验方位协方差、预设的方位测量协方差和该帧对应的可能声源方位,获得该帧对应的声源方位的步骤包括:
将该帧对应的声源经验推断方位、经验方位协方差、预设的方位测量协方差和该帧对应的可能声源方位输入方位最优估计公式
可选地,所述根据该帧对应的声源经验推断方位、经验方位协方差、预设的方位测量协方差和该帧对应的可能声源方位,获得该帧对应的方位协方差的步骤包括:
将该帧对应的经验方位协方差、预设的方位测量协方差和该帧对应的可能声源方位输入方位协方差最优估计公式
此外,为实现上述目的,本发明还提供一种声源定位装置,所述装置包括:通信模块、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的声源定位方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的声源定位方法的步骤。
本发明实施例提出的一种声源定位方法、装置及计算机可读存储介质,通过获取预设麦克风阵列中各麦克风位置和预设的多个潜在声源方位;根据各麦克风位置和各潜在声源方位,获得每个潜在声源相对各麦克风对的时延,其中麦克风对由任意两个麦克风组成;实时获取各麦克风采集的时域信号;每获取到各麦克风采集到的对应的一帧时域信号时,根据对应的一帧时域信号,获得各麦克风对在该帧的互相关函数;根据每个潜在声源相对各麦克风对的时延和各麦克风对在该帧的互相关函数,获得该帧可能声源方位;获取前一帧声源方位和前一帧方位协方差,并根据该帧可能声源方位、前一帧声源方位和前一帧方位协方差,获得该帧对应的声源方位。从而声源定位过程的运算量更小和定位更快速,减小了噪音、混响和突发性噪声对声源定位的影响,抗干扰能力更强,声源定位的鲁棒性更高。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的结构示意图;
图2为本发明声源定位方法第一实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参照图1,图1为本发明各个实施例所提供的装置的硬件结构示意图,所述装置包括通信模块10、存储器20及处理器30等部件。本领域技术人员可以理解,图1中所示出的装置还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中,所述处理器30分别与所述存储器20和所述通信模块10连接,所述存储器20上存储有计算机程序,所述计算机程序同时被处理器30执行。
通信模块10,可通过网络与外部设备连接。通信模块10可以接收外部通讯设备发送的指令,如启动指令或关闭指令,还可广播发送声源方位信息至所述外部通讯设备。所述外部通讯设备可以是灯控系统、转向控制系统、手机、平板电脑、笔记本电脑、台式电脑及监控设备等电子设备。
存储器20,可用于存储软件程序以及各种数据。存储器20可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如计算潜在声源相对麦克风对的时延)等;存储数据区可存储根据系统的使用所创建的数据或信息等。此外,存储器20可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器30,是装置的控制中心,利用各种接口和线路连接整个装置的各个部分,通过运行或执行存储在存储器20内的软件程序和/或模块,以及调用存储在存储器20内的数据,执行装置的各种功能和处理数据,从而对声源定位装置进行整体监控。处理器30可包括一个或多个处理单元;优选的,处理器30可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器30中。
尽管图1未示出,但上述装置还可以包括电路控制模块,用于保证其他部件的正常工作。
本领域技术人员可以理解,图1中示出的装置结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
根据上述硬件结构,提出本发明方法各个实施例。
参照图2,在本发明声源定位方法的第一实施例中,所述声源定位方法包括步骤:
步骤s10,获取预设麦克风阵列中各麦克风位置和预设的多个潜在声源方位;
在本方案中,麦克风阵列中各麦克风收集现场声音,并将收集的现场声音由模拟信号转为为数字信号。麦克风阵列由至少2个麦克风组成的,麦克风数量可以为2个、3个、4个或更多,各麦克风用于收集现场的声音。各麦克风组成的阵列可以为均匀阵列也可以为非均匀阵列。以麦克风阵列中所有麦克风组成的平面建立三维空间坐标系,阵列中各麦克风的位置为(xi,yi,0),其中i=1,2,...m。
将平面均分成预设的k个方位角度作为预设k个潜在声源的方位角θk,其中k≥2,k=1,2,...k,并将预设的俯仰角
步骤s20,根据各麦克风位置和各潜在声源方位,获得每个潜在声源相对各麦克风对的时延,其中麦克风对由任意两个麦克风组成;
声源定位装置获取所述麦克风阵列的预设采样率fs,一般采样率可以为8khz、11.025khz、22.05khz、16khz、37.8khz、44.1khz、48khz等。
声源定位装置将获得的所述麦克风阵列中各麦克风位置、预设的各潜在声源方位和所述麦克风阵列的预设采样率输入到时延计算公式
步骤s30,实时获取各麦克风采集的时域信号;
声源定位装置实时获取各麦克风收集的现场声音并通过a/d转换(analog-to-digitalconvert,模数转换)为数字信号,该数字信号类型为时域信号。
步骤s40,每获取到各麦克风采集到的对应的一帧时域信号时,根据对应的一帧时域信号,获得各麦克风对在该帧的互相关函数;
各麦克风每采集到一帧时域信号时,声源定位装置会获取各麦克风采集到的对应的一帧时域信号,并将各麦克风采集到的一帧时域信号进行傅里叶转换,获得各麦克风在该帧对应的频域信号。
声源定位装置根据麦克风在该帧对应的频域信号以及公式
声源定位装置对获得的各麦克风对的互功率谱pij进行傅里叶逆变换,获得各麦克风对的时域互相关函数rij(t),其中rij(t)为第i个麦克风和第j个麦克风组成的麦克风对的互相关函数,t=1,2...2n-1,n为一帧信号的采样点数,n根据帧长度和采样率有关,n=帧长度*采样率,一般为128/256。
步骤s50,根据每个潜在声源相对各麦克风对的时延和各麦克风对在该帧的互相关函数,获得该帧可能声源方位;
声源定位装置根据每个潜在声源相对麦克风对的时延tkij和各麦克风对在该帧的互相关函数rij(t),获得每个潜在声源相对麦克风对的所有互相关值rij(n-1+tkji),其中rij(n-1+tkji)为第k个潜在声源相对第i个麦克风和第j个麦克风组成的麦克风对的互相关值。
声源定位装置将各潜在声源对麦克风对的互相关值rij(n-1+tkij)输入公式
声源定位装置从每个潜在声源相对麦克风阵列的互相关值rk中,选取最大的互相关值对应的潜在声源的方位,作为该帧的可能声源方位。
步骤s60,获取前一帧声源方位和前一帧方位协方差,并根据该帧可能声源方位、前一帧声源方位和前一帧方位协方差,获得该帧对应的声源方位。
为了避免受到噪音,混响和突发性噪声对声源定位的影响,本方案根据当前帧声源测量位置和前一帧声源位置进行位置滤波处理,加强声源定位的鲁棒性。
声源定位装置首先获取前一帧声源方位和前一帧方位协方差,并根据前一帧对应的声源方位和方位协方差,获得该帧对应的声源经验推断方位和经验方位协方差,其具体过程为:
由于声音信号和声源方位都具有短时平稳的特性,对于当前帧声源经验推断方位l′(t)有:l′(t)=l(t-1)。声源定位装置会获取前一帧对应的声源方位输入到方位先验性预测公式l′(t)=l(t-1)中,输出该帧对应的声源经验推断方位l′(t)。
需要说明的是,若该帧为第一帧,则前一帧对应的声源方位l(t-1)=0,根据方位先验性预测公式l′(t)=l(t-1),获得的该帧对应的声音经验推断方位l′(t)也为0。
对于声源方位的协方差,经过了经验公式的处理,声源方位本身的不确定性增加,因此该帧声源经验方位协方差p′(t)有:p′(t)=p(t-1)+p0.其中p0是经验公式本身的不确定性。声源定位装置会获取前一帧对应的方位协方差p(t-1),并将前一帧对应的方位协方差输入方位协方差先验性预测公式p′(t)=p(t-1)+p0,获得该帧对应的经验方位协方差p′(t)。
需要说明的是,若该帧为第一帧,则前一帧对应的方位协方差p(t-1)=0,根据方位协方差先验性预测公式p′(t)=p(t-1)+p0,获得的该帧对应的经验方位协方差p′(t)=p0。
需要说明的是,声源定位装置获取该帧对应的声源经验推断方位和获取该帧对应的声源经验方位协方差的顺序可以先后进行,也可以同时进行,本方案不做限定。
声源定位装置获得该帧对应的声源经验推断方位和经验方位协方差后,会根据该帧对应的声源经验推断方位、经验方位协方差、预设的方位测量协方差和该帧对应的可能声源方位,获得该帧对应的声源方位和方位协方差,其具体过程如下:
声源定位装置将获得的该帧对应的声源经验推断方位、经验方位协方差、预设的方位测量协方差和该帧对应的可能声源方位输入方位最优估计公式
声源定位装置将该帧对应的经验方位协方差、预设的方位测量协方差和该帧对应的可能声源方位输入方位协方差最优估计公式
需要说明的是,声源定位装置获得该帧对应的声源方位和该帧对应的方位协方差可以先后进行,也可以同时进行,本方案不做限定。
声源定位装置获得该帧对应的声源方位后,可以发送声源方位信息给灯光控制系统,使得灯光控制系统开启声源方位对应的led灯;或者发送相关声源方位信息给转向控制系统,控制设备向声源方位转向移动。
本实施例通过获取预设麦克风阵列中各麦克风位置和预设的多个潜在声源方位;根据各麦克风位置和各潜在声源方位,获得每个潜在声源相对各麦克风对的时延,其中麦克风对由任意两个麦克风组成;实时获取各麦克风采集的时域信号;每获取到各麦克风采集到的对应的一帧时域信号时,根据对应的一帧时域信号,获得各麦克风对在该帧的互相关函数;根据每个潜在声源相对各麦克风对的时延和各麦克风对在该帧的互相关函数,获得该帧可能声源方位;获取前一帧声源方位和前一帧方位协方差,并根据该帧可能声源方位、前一帧声源方位和前一帧方位协方差,获得该帧对应的声源方位。从而声源定位过程的运算量更小和定位更快速,减小了噪音、混响和突发性噪声对声源定位的影响,抗干扰能力更强,声源定位的鲁棒性更高。
本发明还提出一种计算机可读存储介质,其上存储有计算机程序。所述计算机可读存储介质可以是图1的装置中的存储器20,也可以是如rom(read-onlymemory,只读存储器)/ram(randomaccessmemory,随机存取存储器)、磁碟、光盘中的至少一种,所述计算机可读存储介质包括若干信息用以使得装置执行本发明各个实施例所述的方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。