专利名称:音源定位方法和系统的制作方法
技术领域:
本发明涉及音源定位,具体地说涉及应用在玩具等产品中的音源 定位方法和音源定位系统。
背景技术:
现在的玩具越来越机械化和智能化。比如,Sony公司开发的一款 商业机器人AIBO是模拟真实狗行为的全机械机器人玩具宠物。AIBO 配置有CMOS摄像头和触觉传感器,用于接收外界环境的输入信息,分 析这些信息,并通过输出来对输入做出反应。AIB0的耳朵是一个微麦, 它可以对声音命令、周围噪声以及主人的声音做出响应。
然而,这些玩具在空间定位方面都存在较大误差。AIB0的微麦仅 可以筒单地识别出声音的方向。随着玩具的智能化程度进一步提高, 玩具厂商对音源定位技术提出了较高的要求。
发明内容
本发明的目的是克服包括玩具在内的产品中音源定位精度不足的 缺点。
本发明在第一方面提供音源定位方法,包括步骤接收来自不同 指向的多个麦克的声音信号;对声音信号低通滤波、放大和AD转换; 对AD转换后的声音信号进行在若干方向上的音量判断,所述若干方向 包括多个麦克所指向的多个主方向;并且基于音量判断结果,确定音 源方向为所述若干方向之一。
本发明在笫二方面提供音源定位系统,包括多个麦克;滤波放 大电路,与多个麦克相连,将来自多个麦克的声音信号滤波放大;AD 转换器,将滤波放大后的声音信号转换为数字信号;数据处理单元, 对AD转换后的声音信号进行在若干方向上的音量判断,所述若干方向
包括多个麦克所指向的多个主方向;并且确定音源方向为所述若干方 向之一。
优选的是,本发明的第一方面和第二方面中提到的所述若干方向
还包括位于多个主方向之间的数个副方向。
本发明以较低的成本实现了对音源进行较高精度且实时的方向定位。
下面将参照附图对本发明的优选实施方案进行更详细的说明,附困
中
图l是根据本发明的优选实施方案的音源定位系统结构图; 图2是图l音源定位系统的处理流程图; 图3是滤波放大电路的示意图4是根据本发明的一个优选实施例,采用图3放大电路构成的
音源定位系统的总体电路图; 图5是AD转换的处理流程; 围6是音量判断原理图; 图7示意了音量判断中的多级搜索过程; 图8是音量判断处理的具体流程图; 图9是音源方向判断的处理流程图;以及 图IO是音量分布结果示意图。
具体实施例方式
图l是根据本发明的音源定位系统结构图。音源定位系统结构可 以分为三部分声音数据采集部分、数据处理部分、定位结果指示部 分。
如图1所示,声音数据采集部分包括三个指向性麦克以及与之相 连的滤波放大电路。三个指向性麦克成120度夹角放置,用于接收声 音信号。麦克所接收的声音信号被送往滤波放大电路,后者将声音信 号滤波放大。需要指出,麦克的数量和指向可以根据需要确定,可以 呈空间或平面均匀分布。
数据处理部分由单片机构成。该单片机包括AD接口和存储器(未 图示)。单片机通过AD接口接收来自滤波放大电路的信号,并且对其 进行AD转换.量化后的数据保存到存储器中等待处理。单片机采用音 源定位算法,基于所采集到的声音数据进行音童判断,并且由此判断
音源的方向。需要指出,AD转换模块也可以独立于单片机被提供。
定位结果指示部分包括6个音源方向D1-D6,它们可以由例如发光 二极管构成。单片机在判断出当前音源方向后,输出驱动信号,点亮 对应音源方向的 一个发光二极管。
在图1中,Dl、 D3和D5对应三个麦克的主方向,这三个主方向每 两个之间有一个副方向(D2、 D4和D6)。所以,音源定位系统最终能 够指示6个方向,即系统的定位精度为60度。
在一个例子中,单片机釆用SPCE061A,这是凌阳科技推出的n, nSP 系列产品中的一款16位结构的微控制器。SPCE061A的内存为2K 字,同时内嵌了 32K字的闪存(FLASH)。
下文将结合单片机SPCE061A进一步说明音源定位系统的处理过程 和具体结构。
图2是音源定位系统的处理流程图。从图2可以看出,单片机上 电或复位后系统首先在步骤S200进行初始化,然后经步骤S202的循 环逻辑判断之后进入步骤S204。在步骤S204擦写闪存。在步骤S206, 将AD转换结果暂存入闪存中。当需要处理数据时,系统在步骤S208 分段栽入AD转换结果到内存。在步骤S210,基于AD转换结果判断音 源方向。当判断出音源方向后,在步骤S212显示音源位置。然后,程 序返回步骤S202,进行下一循环的操作。
简言之,在系统初始化后,系统便处于接收数据、处理数据和指 示音源方向三个状态的循环之中。
下面将详细说明音源定位系统中的滤波放大电路、AD转换流程和 数据处理部分。
1.滤波放大电路
图3是滤波放大电路的示意图,该滤波放大电路利用例如运算放 大器LM358构成,利用二级差分放大的形式为单片机提供输入信号。
如图3所示,将电源稳压后供给麦克MIC作为驱动电压,可以减 小电源对麦克的影响。麦克一般分为两种动围式和电容式。在本例 中,采用了驻体极电容传声器作为采集声音的麦克。麦克优选具有单 指向性。
在图3中,第一个运算放大器LM358将麦克输出信号与驱动电压 的差放大例如10倍作为第二级的输入。在第二级输入处,利用电容构
成的低通滤波器将第二级的输入电压取样作为第二级的基准电压。第
二个运算放大器LM358将第二级的输入信号与第二级的基准电压之差 放大例如13倍,作为最终麦克通道的采样结果。
该放大电路结构简单,电源的影响低,数据波形的质量高。 图4是根据本发明的一个优选实施例,采用图3放大电路构成的 音源定位系统的总体电路图。如图4所示,来自不同麦克的3路声音 信号分别经各自的两级放大电路放大后,经输入端IOA0、 IOAl、 I0A2 输入单片机SPCE061A中。单片机对输入数据进行AD转换,音量判断 和音源方向判断,最后将音源方向数据经输出端口 10B10-15输出,控 制指示灯或电机。
2. AD转换流程
在单片机SPCE061A中,AD转换器的基准电压为3V,分辨率为2—'。, 采样精度约为3mV。由于SPCE061A内存只有2K字,受此限制,AD转 换模块每次只能积累600个采样点,大约为0. 0625s的声音数据。而 定位程序需要较长的声音才能准确确定音源位置。为提高定位的准确 度,将0.75s的数据暂存到闪存中,这相当于大约单片机60X的闪存 空间。当积累够0. 75s的声音数据后才开始处理这些数据,对这段数 据的音源进行判断。
此部分会连续转换大约0.75s的声音数据,保存到闪存中。后续 处理数据时再将数据每次以600个点的方式读入内存中使用。
图5是AD转换的处理流程。如图5所示,程序在步骤S500开始 后,首先在步骤S502启动第1路AD转换。
程序在步骤S504经过适当的延时等待,为使定位达到比较好的实 时性效果,设置单片机SPCE061A工作在最高的时钟频率49. 152MHz 下,此时的AD转换速率为96KHz,通过软件延时的方式,可以将采样 频率控制在大约24kHz。三路麦克采用串行处理方式,故此每路麦克 的采样频率大约为8KHz,
然后,在步骤S506保存AD转换后的数据到闪存中。
在步骤S508判断是否K3,即其它路AD转换没有完成?如果没有 完成,则程序返回步骤S502,按照类似于笫1路AD转换的顺序,依 次进行笫2路和第3路AD转换。
如果在步骤S508判断其它路AD转换完成,则程序进入步骤S510,
程序结束。
在一个优选例子中,AD转换的声音数据还要进行一次滤除直流分 量的处理。这一步处理后能得到更平滑的声音波形,同时也将声音波 形的中心穗定在纵坐标的零值。
单片机在AD转换后进行的数据处理包括音量判断和方向判断。接 下来,将分别对其进行详细说明。
3.音量判断
图6是根据本发明的音量判断原理图。
音量判断是指分别判断3路麦克输入的声音数据的音量大小。一 种具体的办法是计算出每一路的有效点(lag)数。为减少噪声的影响,
设定了音量判断的阈值。在麦克灵敏度和阈值设定恰当的情况下,准 确计算出每一路麦克的有效点数,能够在较短时间(比如l秒)内处
理完三路麦克的声音数据。需要说明,音重判断也可以采取其它方式 进行,比如能量计算。
具体地说,采用有效点数进行音量判断的算法是计算超过某一阈 值的采样点个数。在一个优选例子中,连续的两个幅值中,其中前一 个小于阈值,后一个大于阈值;或者前一个大于负的阈值,后一个小 于负的阈值,则有效点数增加l。判断有效点用的阈值在程序中需要 反复测试确定一个经验值。阈值可以通过在计算机上观察三路麦克采 集到的声音波形并反复测试而设定。
如图6所示,假设直线A标示了判断音量大小的阈值,曲线B是 一路麦克采集到的声音波形。曲线B上的每一个点表示一个声音采样 点幅值。那么,圃闺所标记的幅值点,其前一点低于直线A,即小于 阈值。这样,有效点数增加一。
通过这种判断方法,便得到表示一路麦克一段声音数据的有效点 数多少的数值,由此表明该路麦克该段声音数据的大小。
图7示意了音量判断中的多级搜索过程。由于外部声音是动态变 化的,有时强有时弱.为了正确检测出声音大小,音量判断用的阈值 应该是不同的。同时,外部噪声的存在也会影响阈值的设定。为此, 本发明提供了一个动态的音量搜索过程,搜索的级数例如可以多达三 级。
如图7所示,波形部分表示的是声音波形。初始的音量阈值设定 为例如150和-150.显然在进行第一级搜索时没有找到声音。然后, 阈值自动降低一个搜索分辨精度,例如50,变为IOO和-IOO进行笫二 级搜索。在这一级同样没有找到声音,阈值又自动调整了一个搜索分 辨精度50变为50和-50,重新对这段声音进行音量判断。
需要说明,上面的三次音量搜索过程中在哪一级发现有声音就会 停止继续向下搜索。搜索次数及每级搜索的分辨精度可以根据实际需 要进行调整,以达到最好的效果。
图8是音量判断处理的具体流程,
程序在步骤S800开始后,在步骤S802按照预先设定的波峰阈值 和波谷阈值(比如150、 -150 )计算第1个麦克的有效点(lag )数。 在步骤S804计算第2个麦克的有效点数。在步驟S806计算第3个麦 克的有效点数。波峰阈值和波谷阈值是分别针对声音波形的波峰和波 谷而设定的两个不同的值.
然后,在步骤S808确定能否定位主、副方向?方法是看三路麦克 是否有哪一或几路的有效点数够多,即可确定音源可定位主、副方向。
为了避免某一个突发声音对整个判断的影响,每一路的有效点数 大于某个阈值(通过测试调整)才认为有效。如该阈值设为90,则某 一路的有效点数为80,就会被认为此时该路麦克对应的方向是静音, 没有音源。
如果在步骤S808无法定位主、副方向,那么程序进入步骤S810, 搜索次数(search—time )加一,并且确定搜索次数是否未到三次?如 果是,则可以继续搜索,程序进入步骤S812。
在步骤S812,按照相同的幅度(例如45)调整波峰阈值(Th_a) 和波谷阈值(Th-b),即波峰阈值降低一定幅度,波谷阈值增加一定幅 度。然后,程序返回步骤S802,重新计算第l-3路麦克的有效点数,
如果在步骤S808确定可以定位主、副方向,那么程序进入步骤 S814。
在步骤S814,程序确定是否为副方向?如果某一路麦克的有效点 数与其它路麦克的有效点数非常接近,则可以认定音源的位置不在这 两路麦克上,而是它们之间的副方向,从而进入步骤S816,该副方向 计数。如果某一路麦克的有效点数超出其它两路的有效点数较多,超
过某一阈值(如15 ),则认定音源在有效点数较多的那一路(正方向) 上,即不是副方向,从而进入步骤S818,所述主方向计数。
程序在步骤S816和S818计数完毕,以及在步骤S810搜索次数达 到三次后,进入步碟S820,结束音量判断。
举例来说,第一路麦克的一段声音数据通过这种判断方法后得到 一个有效点数IOO,表示这路麦克在这一时段的音量为100。然后再使
用同样的算法判断同一时段内另外两路麦克音量。假设判断后为第二 路音量85和第三路音量95。此时基本就能确定音源靠近第一路麦克 比较近,可能离笫三路也比较近,离第二路比较远。
4.音源方向判断
图9是音源方向判断的处理流程图。系统在积累例如0. 75s的声 音数据并且对其进行音量判断之后,会对音源的方向做出一次判断。
这部分的算法是以经过例如10次(0. 75s)音量判断,3个主方向中 积累次数最多的方向来定位音源的主方向,以3个副方向上积累最多 的方向为副方向,按照副方向是否在主方向两侧,及主方向和副方向 的差别确定音源的具体方向。
如图9所示,程序在步骤S900开始后,在步骤S902寻找音源主 方向位置,即确定最大的主方向计数所在的主方向为主方向位置,然 后进入步骤S904寻找音源副方向位置,即最大副方向计数所在的副方 向为副方向位置。接下来,程序进入步骤S906,判断主方向和副方向 是否都不存在?如果都不存在,表明没有音源存在,则程序转入步骤 S922,设置静音标志,然后进入步骤S924,程序结束。
如果在步骤S906判断主方向位置和副方向位置存在,则程序进入 步骤S908。在步骤S908,判断副方向位置在主方向位置两侧吗?如果 否,表明存在音源但不能确定音源位置,则程序转入步骤S920。
如果判定副方向位置在主方向位置两侧,则进入步骤S910,判断 主方向位置与副方向位置存在音量差?如果主方向位置的音量大于副 方向位置,即主方向位置的计数次数大于副方向位置的计数次数,则 程序进入步骤S912,确定音源在主方向位置。如果主方向位置的音量 小于副方向位置,则程序进入步骤S914,确定音源在副方向位置。
在步骤S912和S914之后,程序均进入步骤S916。
在步骤S916,判断音源积累次数是否足够?所谓音源积累次数,
是指在一段(例如0.75s)声音中音源被定位在一个定位方向上的次
数.如果音源积累次数大于预定的阈值,则进入步骤S918,保存音源
方向,然后进入步骤S924。
如果在步骤S916判断音源积累次数不够,则进入步骤S920。 在步骤920,程序认定音源存在但不能确定音源位置,然后进入步
骤S924而结束。
图IO是音量分布结果示意图。假设对三路麦克的音量判断完后得 到的音量大小在6个方向上的分布如图10。那么,音源将被定位在6 次的方向上。假设6次的方向为主方向Dl。参看图9,执行步骤S902 寻找主方向时的结果就是D1 6次,执行步骤S904寻找副方向的结果 就是D2方向,3次。此时的主方向和副方向都存在。由于D2在D1的 右侧,接下来进入步骤S910,判断D1和D2大小。D1的数值大于D2, 则判断出音源在主方向Dl上。再判断一下Dl是否足够大,如Dl大于 3是否成立。否则,仍然认定为不能最终确定音源方向。
单片机根据音源方向判断的结果,输出控制信号给音源定位结果 显示部分,从而在静音时无输出,有声音时输出信号,点亮所确定音 源方向相应的二极管。或者,单片机也可以进行其它方式的控制,比 如发出转向的指令。
虽然上文结合单片机SPCE061A进行了描述,但是本发明也同样适 用于其它类型的单片机和处理器。
另外,本发明还可以用于确定音源在多个主方向上的定位,以及 音源在多个主方向和位于该多个主方向之间的数个副方向上的定位。
本发明以较低的成本实现了对音源进行较高精度且实时的方向定 位,可以适用于玩具等机械和电子产品中。
显而易见,在此描述的本发明可以有许多变化。比如,前文提到在 单片机中采用的内存(memory)和闪存结合的结构可以被单个的大内存 取代。这种变化不能认为偏离本发明的精神和范围。因此,所有对本领 域技术人员显而易见的改变,都包括在本权利要求书的涵盖范围之内。
权利要求
1. 音源定位方法,包括步骤接收来自不同指向的多个麦克的声音信号;对声音信号低通滤波、放大和AD转换;基于AD转换后的声音信号,进行在若干方向上的音量判断,所述若干方向包括多个麦克所指向的多个主方向;并且基于音量判断结果,确定音源方向为所述若干方向之一。
2. 如权利要求1所述的音源定位方法,其特征在于所述对声音 信号低通滤波、放大和AD转换的步骤包括对声音信号进行滤除直流分 量的处理。
3. 如权利要求1所述的音源定位方法,其特征在于所述方法包 括将接收到的声音信号存储到闪存中,并且在由单片机执行所述音量 判断步骤之前将闪存中的声音信号分段栽入内存中。
4. 如权利要求1所述的音源定位方法,其特征在于所述音量判 断步骤采用声音信号的有效点数来完成音量判断。
5. 如权利要求4所述的音源定位方法,其特征在于所述音量判 断的步骤包括若连续的两个幅值中,其中前一个小于第一阈值,后一 个大于第一阈值;或者前一个大于负的笫一阈值,后一个小于负的第 一阈值,则有效点数增加l。
6. 如权利要求5所述的音源定位方法,其特征在于所述音量判 断的步骤包括按搜索分辨精度调整所述第 一 阈值的步猓。
7. 如权利要求4所述的音源定位方法,其特征在于所述若千方 向包括位于多个主方向之间的数个副方向。
8. 如权利要求7所述的音源定位方法,其特征在于所述音量判 断的步骤包括如果所述多个主方向中的一个主方向有效点数比所述多 个主方向的其它主方向大且其差大于第二阈值,对所述一个主方向计 数,如果所述多个主方向中有两个主方向的有效点数较大且其差不大 于笫二阈值,则对该两个主方向之间的副方向计数,所述计数作为音 量判断结果。
9. 如权利要求8所述的音源定位方法,其特征在于所述确定音源方向的步驟包括基于所述若干方向上的计数,确定计数最大的主方 向和副方向分别为主方向位置和副方向位置,并且当副方向位置在主方向位置两側时,确定音源方向为主方向位置和副方向位置之一。
10. 音源定位系统,包括多个麦克;滤波放大电路,与多个麦克 相连,将来自多个麦克的声音信号滤波放大;AD转换器,将滤波放大 后的声音信号转换为数字信号;数据处理单元,基于AD转换后的声音 信号进行在若干方向上的音量判断,所述若干方向包括多个麦克所指 向的多个主方向;并且确定音源方向为所述若干方向之一。
11. 如权利要求10所述的音源定位系统,其特征在于所述滤波放大
12. 如权利要求10所述的音源定位系统,其特征在于所述数据处理 单元由单片机实现。
13. 如权利要求10所述的音源定位系统,其特征在于所述单片机包 括闪存和内存,闪存存储AD转换后的数字信号,并且在由单片机执行 音量判断之前将闪存中的声音信号分段栽入内存中。
14. 如权利要求10所述的音源定位系统,其特征在于所述数据处 理单元包括计算每个麦克声音信号的有效点数,并且基于所述有效点 数,进行所述若干方向上的计数的装置,所述计数作为相应方向的音 量判断结果。
15. 如权利要求14所述的音源定位系统,其特征在于所述若干方向 包括位于多个主方向之间的数个副方向。
16. 如权利要求15所述的音源定位系统,其特征在于所述进行若干 方向上计数的装置包括在所述多个主方向中的一个主方向有效点数比 所述多个主方向的其它主方向大且其差大于第二阈值的情况下,对所 述一个主方向计数的装置,和在所述多个主方向中有两个主方向的有 效点数较大且其差不大于第二阈值的情况下,对该两个主方向之间的 副方向计数的装置,所述计数作为音量判断结果。
17. 如权利要求15所述的音源定位系统,其特征在于所述数据处 理单元包括基于所述若干方向上的计数,确定计数最大的主方向和副 方向分别为主方向位置和副方向位置,并且当副方向位置在主方向位 置两侧时,确定音源方向为主方向位置和副方向位置之一的装置。
全文摘要
本发明提供音源定位方法和系统。所述方法包括步骤接收来自不同指向的多个麦克的声音信号;对声音信号低通滤波、放大和AD转换;对AD转换后的声音信号进行在若干方向上的音量判断,所述若干方向包括多个麦克所指向的多个主方向;并且基于音量判断结果,确定音源方向为所述若干方向之一。在一个优选方案中,所述若干方向还包括位于多个主方向之间的数个副方向。本发明以较低的成本实现了对音源进行较高精度且实时的方向定位。
文档编号G01H17/00GK101206139SQ20061016577
公开日2008年6月25日 申请日期2006年12月18日 优先权日2006年12月18日
发明者周金星, 昫 邵 申请人:大连三曦智能科技有限公司