专利名称:一种机器人声源定位方法
技术领域:
本发明涉及一种应用在机器人领域的音频处理技术,特别是涉及机器人的声源定位方法。属于信息技术领域。
背景技术:
在机器人对周围环境的感知系统中,视觉感知和听觉感知是两种最重要的信息来源方式。而听觉感知对于视觉感知系统最大的优势是数据量小,因此对机器人计算机的运算能力的要求更低,更便于应用于移动机器人领域。随着科技的发展,音频技术在机器人领域的应用除了大家所熟知的基于语音识别系统的人机交互,声源定位技术也成为热门研究方向,特别是对于自动机器人而言。其核心问题是让机器人准确、迅速的对声源发出的声音信息做出响应。而利用较少的麦克风对、以简单的定位方法、较小的数据计算量,获取高实时性、准确定位结果就是移动机器人的声源定位技术要解决的最紧迫的问题。声源方位的识别是人和动物对环境感知的一种基本技能,人类所拥有声源定位能力的机制主要是利用声音传到双耳的时间、相位和强度的差异来判断声源的位置。声源定位技术就是根据麦克风接收到的声音数据确定声源的位置,现有的声源定位技术也基本都是围绕这三种参数进行,最常用的方法是计算声音到达不同的麦克风的时间差来确定声源的位置。但因为日常的环境中通常存在噪声、声源的反射与折射、多径效应、混响等一些环境参数的影响,以及移动机器人步进电机等本身发出的噪声及震动的影响,使得对声源的准确定位变得十分困难。通常的声源定位技术都是基于时间差的方法,即计算声源发出的声音到达麦克风阵列中(麦克风数量大于两个)不同的麦克风之间的时间差。如
图1所示。从声源发出的声音到达两个麦克风的信号可以分别表示为x^t) = s1(t)+n1(t)(1)x2 (t) = α S1 (t+D) +n2 (t) (2)其中Xl (t) ,X2 (t)分别表示在时刻t到达两个麦克风的声音信号,如果将一只麦克风接收到声源发出的声音表示为S1 (t),则我们可以将另外一只麦克风接收到声源发出的声音为a&(t+D)。ni(t)、n2(t)分别为两只麦克风接收到的噪声,D为声源发出的声音到达两只麦克风的时间差。知道了到达的时间差D,同时两个麦克风之间的距离Dl为已知的值, 计算两个麦克风之间的时间差将在三维空间上得到一个符合条件的双曲面,两个麦克风还不能完全准确定位声源的具体位置,因此在实际应用中采用多对麦克风阵列的形式来收集声音信号,计算声源相对于每对麦克风在三维空间上的多个双曲面,多对麦克风分别对应的双曲面的交叉点就是声源相对于机器人的准确位置。麦克风阵列技术是语音信号处理的一个新领域,麦克风阵列由多个麦克风按照一定的拓扑结构组成,典型的如图2所示十字形麦克风阵列,分别计算信号到达两组麦克风的时间差,可以计算得到声源相对于麦克风阵列的位置。通常计算时间差D的方法为对两只麦克风信号进行互相关运算,首先将麦克风采集的信号进行模数转换,转换为数字信号,再对数字信号进行互相关的运算。对数字信号进行互相关的运算通常有时域与频域两种方法。时域上的方法如下
N-m-\Rxix2Im]= Σ x[n + m]y[n](3)
n=0其中代为互相关运算的结果,N为两信号长度之和。通过两路的麦克风信号进行互相关运算,并求得互相关运算的最大值。根据最大值的位置确定两路信号的时间差 D0在时间域上对信号进行互相关运算的运算复杂度较高,可以将信号进行傅里叶变换,将信号变换到频率域上进行运算。首先将两路信号分别进行傅里叶变换,然后对两路信号傅里叶变换的结果进行互相关运算
权利要求
1.一种机器人声源定位方法,包括如下步骤1)机器人采用至少一对麦克风采集声源信号,并将信号转换为数字信号后存储;2)对存储的数字信号进行声源定位计算a)对每个麦克风采集到的数据信号进行傅里叶变换,将信号从时域变换到频域 其中,x[n]为时间域的信号,ω为频率变量,j表示复数虚部的一个单位,m表示从1 到η的变量,S(co)为经过傅里叶变换后得到的频率域的信号;b)计算麦克风所在空间环境信噪比,根据信噪比确定信噪比参数P,0< P < 1 ;c)对麦克风对的频率域信号进行加权互相关运算其中,为加权函数 W* (ω) =-- 其中,Φ12(ω)是互功率谱密度函数;d)对互相关运算的结果进行傅里叶逆变换,从频域变换到时域 e)搜索R'[η]的最大值,找出最大值的位置,获得声源到所述麦克风对的时间差D ;f)根据时间差D与麦克风对中两麦克风之间的距离D1,计算声源相对于麦克风对的位置。
2.根据权利要求1所述的机器人声源定位方法,其特征在于,进一步优化的加权函数炉为 其中,γ12(ω)为相干函数 其中,φ^ω)和φ2(ω)分别为麦克风对中各麦克风接收信号的功率谱密度函数。
3.根据权利要求1或2所述的机器人声源定位方法,其特征在于,在对数字信号进行声源定位计算前,对数字信号进行有效音频信号的端点检测,对包含有效音频的信号进行声源定位计算。
4.根据权利要求3所述的机器人声源定位方法,其特征在于,对包含有效音频的信号每采集到设定数据量的数据就进行一次声源定位的计算。
5.根据权利要求4所述的机器人声源定位方法,其特征在于,所述设定数据量为帧长大小的数据。
6.根据权利要求1或2所述的机器人声源定位方法,其特征在于,所述傅里叶变换为快速傅里叶变换。
7.根据权利要求1或2所述的机器人声源定位方法,其特征在于,机器人采用包含两对或两对以上麦克风的麦克风阵列采集声源信号。
8.根据权利要求7所述的机器人声源定位方法,其特征在于,所述麦克风阵列为两对或两对以上麦克风时,计算出声源相对于每对麦克风的位置后,计算声源相对于麦克风阵列的位置,计算方法为取声源相对于各对麦克风的位置的交叉点作为声源相对于麦克风阵列的位置。
9.根据权利要求1或2所述的机器人声源定位方法,其特征在于,机器人为移动机器人或固定机器人。
10.根据权利要求1或2所述的机器人声源定位方法,其特征在于,所述声源为固定声源或移动声源。
全文摘要
本发明公开了一种机器人声源定位方法,包括1)机器人采用至少一对麦克风采集声源信号,并将信号转换为数字信号后存储;2)对存储的数字信号通过改进的加权互相关计算来进行声源定位计算。本发明的方法通过对互相关运算中的加权函数进行改进,降低了背景噪声、混响等干扰因素的影响,提高了定位的准确性。且麦克风设置简单,可设置较少数量的麦克风对也能取得相应的定位效果。
文档编号G01S5/30GK102411138SQ20111019586
公开日2012年4月11日 申请日期2011年7月13日 优先权日2011年7月13日
发明者刘宏, 李晓飞, 沈苗 申请人:北京大学