温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
特定
算法
低成本
声源
定位
方法
互动
装置
中的
应用
陈珏
人工智能本栏目责任编辑:唐一东Computer Knowledge and Technology电脑知识与技术第18卷第36期(2022年12月)第18卷第36期(2022年12月)E-mail:http:/Tel:+86-551-65690963 65690964ISSN 1009-3044Computer Knowledge and Technology电脑知识与技术Vol.18,No.36,December2022基于特定算法的低成本声源定位方法在互动装置中的应用陈珏(苏州工艺美术职业技术学院,江苏 苏州 215104)摘要:本研究是为互动装置作品中针对人声的互动反馈,设计一个低成本单一声源定位系统。系统中使用了2个麦克风模块作为声音采集设备,使用Arduino UNO微处理器运算控制,反馈使用舵机转向对准音源方向。应用的理论来源于直接交叉相关算法的波束成形理论,通过该算法计算出声源方向。区域为半径1米5米,20160的扇形区域。精度受A/D采样率所限,目前可以达到20以内。通过理论和实验数据的对比,验证了该定位技术可以达到预期目标。关键词:声源定位;交叉相关;互动装置中图分类号:TP18文献标识码:A文章编号:1009-3044(2022)36-0023-03开放科学(资源服务)标识码(OSID):1 概述人的双耳可以分辨从三维空间中的各个方向传来声音的位置,专业领域已经有很多基于人耳定位原理的研究成果。斯达克(Starkey)是全球定制机式助听器最大的研发和制造商,Starkey 的 Cetera 技术使助听器在大脑中“隐形”。Cetera消除了声音和大脑处理信号的能力之间的障碍。Cetera算法是一种声音定位算法,它忠实地再现了立体声耳机的三维定位,虽然最初是为使用助听器而设计的。如果戴上立体声耳机,听一些样本音轨(最著名的样本是一个理发店里的立体声效果),三维定位的准确无误会令人吃惊。但实际应用中情况较为复杂,涉及头部产生的遮挡和外耳边缘造成的反射。在本研究中仅仅通过使用2组麦克风来模拟完整的听觉系统,虽然定位精度不够高,但低成本、低技术(Low-Cost&Low-Tech)方式对学生制作互动装置原型有实际应用的意义。这个研究的目的是用2组麦克风模拟人类在二维区域的听觉系统。该研究将解决一类实体互动的I/O系统,例如:一个基于传入声音方向的转向系统(如:动态雕塑中的舵机阵列)。使用低成本的微控制器(Arduino)作为系统的处理中心,目前该微控制器及配套传感器的价格都很便宜,并且在市场上也很容易买到。当然用2组麦克风,只能在二维空间检测到传入的声音,而无法区分声音是来自系统的前面还是后面,但对互动作品的原型演示已经够用了。定位传入声音方向的方法是基于同一音源的声波到达两个麦克风的时间差,这需要应用交叉相关法和位置估计技术。这套实时定位(方向)算法是由微控制器Arduino实现。Arduino是一套开源硬件系统,在数字媒体互动设计方向已经被普遍使用,它的低成本和易开发以及模块化设计已经让很多缺乏专业技术的艺术设计者受益匪浅,本文的实现硬件系统即为Arduino UNO。2 交叉相关算法与位置估算2.1 交叉相关算法理论研究的第 1 步是对最简单的时延估计算法:直接交叉相关算法(Cross-Correlation)的波束成形理论进行测试。图1 交叉相关收稿日期:2022-09-30作者简介:陈珏(1972),男,江苏苏州人,讲师/工程师,本科,研究方向为互动展示设计。23DOI:10.14004/ki.ckt.2022.2257本栏目责任编辑:唐一东人工智能Computer Knowledge and Technology电脑知识与技术第18卷第36期(2022年12月)第18卷第36期(2022年12月)交叉相关的定义为:时间序列x(t)和y(t)中,两个变量之间同时或非同时的一种重合关系1。这里 x和y 可以代表在不同地点测得的同一个变量,或代表在同一地点不同时间测得的单一变量。也可以理解为对两个波形之间相似性的检测,是应用于其中一个波形的时间滞后的函数。图 1 是一个交叉相关的例子,用于测量相关信号源之间的滞后时间。找到两个相似信号的延迟时间的表达式由下面的公式给出。R()=n=0N-1()x n yn-其中x(t)是传感器x收到的信号,y(t)是传感器y收到的信号,是2个信号之间的延迟时间2。交叉相关结果的峰值所在点显示了两个信号的延迟时间,如图1所示。有两种方法可以对信号进行关联。第一种是周期法。如果信号是正弦波或矩形波这样的连续周期信号,或者说采样信号只代表信号整体形式的某些部分,则采用这种方法。之所以说它是周期,是因为当数据指标(幅值)超出范围时,它还可以被转换到范围内,例如:x(N+)=x()。第二种是非周期法(没有周期重复信号出现)。可以认为信号是不连续的,或者说采样的信号代表了信号的整个形式。在目前的项目中互动方式大都为单一声源的随机触发,所以采用第二种方式较多。2.2 声源角度计算方法一旦进行了交叉关联,计算出了信号的延迟时间,那就可以在限定条件下预测或估算传入声音的方向,先简化建模做如下定义:限定条件:已有当前空气声速数据;声源离传声器较远(测量值过小对精度影响较大);假设环境较理想(没有回声和发射效应等)。图2 声源角度计算方法位置估计的几何原理如图 2,声音传入角度可以通过简单的三角函数计算得到。是声源的方向(角度);c是空气中的实际声速(测量值);d是2组麦克风模块的间距;ij是声源信号达到2个麦克风的延迟时间(由交叉关联计算得出)。此时根据 2 组麦克风模块的几何关系,得到:ij=dcosc,进而可以求出,声源相对麦克风阵列的角度:=arccoscijd。3 系统设计3.1 系统硬件架构图 3 是一套完整的互动装置系统架构,包含了输入-处理-输出整流程。声源放在输入传感器前面的任何地方(可感应范围设定为20160)。将由2 组麦克风接收传入的声音信号,然后在系统中进行处理。在实验装置中有2个输出,1个是输出到电脑(与 Unity 进行串口通信)实现 UI 响应,另一个是输出到舵机,使摄像头转向音源位置。图3 系统硬件架构前级采集信号使用了DFRobot SKU:DFR0034模拟声音传感器,这款MIC声音传感器是一款低成本高灵敏度的声音传感器,可用来检测环境中声音的强度,并内置了放大器(300倍),输出模拟信号能使用3.3V和5V为基准AD采集,可以用来实现根据声音大小进行互动的效果3。工作电压:5V,工作电流:10mA,最长响应时间:220ms,麦克风灵敏度在50dB。采集的信号为模拟量,不能直接转成分贝数值,中间的信号处理会非常的复杂,增益自动调节、频率计权、积分电路、时间计权,这些是需要硬件电路来实现的,因此不能单靠单片机的程序来实现,商家推荐直接使用现成的分贝计模块,但费用高昂且接口兼容性差。3.2 系统优化基于成本的考虑,解决方案中的后级处理选用了 DFRobot SKU_DFR00126 频谱分析模块。这是一款音频信号分析模块,此模块选用了音频频谱分析仪芯片MSGEQ7,并有了2.0改进版。通过接收音频信息,可运算分析出 63 Hz、160 Hz、400 Hz、1,000Hz、2,500 Hz七个频段的振幅4。使用该模块和麦克风传感器(DFR0034)配套使用,完成与 Arduino 的音频采集。24人工智能本栏目责任编辑:唐一东Computer Knowledge and Technology电脑知识与技术第18卷第36期(2022年12月)第18卷第36期(2022年12月)图4 人声的频段因为在互动装置作品中对声音的定位需求是感应人声,传感器不必采集到全声域。正常人耳能听见的频率范围是 20Hz 到 20000Hz(图 4)。频率1000Hz4000Hz是人耳能感受到的频率中最敏感的范 围。据 测 定,标 准 普 通 话 语 音 频 率 在 5003000Hz,声强在 10dB50dB 之间5。所以,通过滤波器保留 400Hz,1KHz,2.5kHz 频段的幅值,并根据不同的展览环境设定不同的阈值。依靠双耳的听觉。从某方位发送的声音到达两耳时,由于声源与两耳的距离不同,其间距与声源的方位密切相关,因此有时间(或相位)差,声强也不同。低频定位主要依据双耳在相同瞬间接收声音的时间差,而高频定位则依据强度差,而耳郭的聚声效应又有利于高频定位6。完全模拟人耳较为困难,因此实验中使用了单一不连续的声源进行了测试。所有交叉关联和位置估计技术的计算都由Arduino UNO(ATmega328p微处理器)程序实现。4 测试4.1 声速数值测定通过在搭建的硬件原型上做了多次实验,获得了有价值的实测数据。声源是通过喇叭播放一个人声样本声音,并且以喇叭至麦克风中心垂直位置的距离作为半径,在圆弧上各个角度进行测试。位置估计技术第一步是先确定空气中的声音传播速度。空气中的声速在不同的地方是不同的,这取决于环境因素。因此,应该先进行一个实验来测量实际测试环境中的声速。空气中的平均声速为c=317m/s。但这个值会和实际值有较大偏差,空气中的音速在 1 个标准大气压条件下的传播速度是:空气(15)340m/s,空气(25)346m/s。表1是测声速的实验数据,实验测试环境下的平均声速c337.55m/s。表1 测试空气中声速(C)的实验结果距离cm50100150200延时s1495292344825912当前环境中的声速m/s335.12342.11334.67338.304.2 误差校正第二步是获取测试系统的误差校正值,这应该是本次研究中最容易忽略的环节。2个信号到达麦克风的延迟时间受到了很多因素的影响,例如:相同元件存在的公差,单片机 A/D 多路复用造成的 2个通道的延时,这些都将导致信号的相位偏差。因为数字媒体艺术专业的学生偏艺术,普遍存在技术不够精通的问题,他们不了解也不可能使用专业领域中的校准方式。所以,时间延迟校准只能通过比较实际和理论计算之间的差异值来计算误差。实际获得误差值的方式是:假设声源方向是两个麦克风相对水平(0或180)的位置,麦克风之间的距离是D,在检测程序中使用交叉相关技术计算的实际延迟是42。查阅了Arduino UNO板微处理器Atmel 芯片数据手册,ATMega328p 的内部 A/D 转换器的复用延迟是每通道100s,使用了2个通道,采样的延迟时间为200s。推演出以下公式用来计算到达2个麦克风的声音的延迟时间的理论值:t=Dc(1)s=D-t200s(2)通过将公式(1)代入公式(2),并设置D=50厘米和C=338米/秒,那么:s=42.604。因此,校准值s=42.604-42=0.604。在这个实验中,最终在数据校正时,结果都会向下取整后再对比。4.3 实验结果表2 位置估计的结果角度203040506070理论值50COS(*/180)/33813.912.8111.339.517.45.06校准值=理论值-0.60413.2912.210.728.96.794.45取整(向下)131210864实测值131110864结果一致错误一致一致一致一致声源被放置在不同的位置,测试结果记录在表中,上面的表格显示了位置估计实验的结果。例如,声源被放置在与系统有关的60处(见表2)。延迟时间的理论值是7.4。接下来,理论值减去校准值(0.604采样)结果是6.79,最后得到理论值是6。这个理论值与实验数据获得的数据 6 一致,多次实验的结果都验证了这套解决方案是正确的。5 结束语由于 A/D 采样频率不够高,方向估算的准确性还有待提高。通过替换高精度高采样率的A/D转换器,以及提高主板控制器的配置,可以有效提高信(下转第28页)25本栏目责任编辑:唐一东人工智能Computer Knowledge and Technology电脑知识与技术第18卷第36期(2022年12月)第18卷第36期(2022年12月)智能小区电子通信信号调制识