Microphone-sound-source-localization

授权协议 Readme
开发语言
所属分类 应用工具、 科研计算工具
软件类型 开源软件
地区 不详
投 递 者 汲涵育
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

麦克风声源定位

当前项目基本上实现了基于麦克风阵列的TDOA-SRP的声源定位功能仿真,整体代码基于Matlab进行开发,能够较好地进行定向,但是在定距方面尚有不足。

目录

介绍

首先,需要说明的是当前的代码仅实现了功能仿真,对算法原理的理解有一定的帮助。由于在实际中缺少麦克风阵列传感器,因此本例所使用的原始数据是利用手机录音得到的。同时考虑到即便使用多个手机也无法实现绝对地同步录制,因此这里直接利用一路语音信号的时延和加噪来代替其它通道的信号,这样便得到了仿真中使用的原始数据。

TDOA-SRP算法主要由以下两个步骤实现:

  • 首先,利用GCC-PHAT估计出各个通道之间的时延。
  • 然后,利用SRP-PHAT进行声源位置的估计定位。

其中在第二步的过程中,本例使用到了空域收缩的方法,即使用球坐标进行搜索并且逐渐缩小搜索的范围(指角度),通过计算每个角度方向上的SRP总和来衡量该方向是否应该被收缩域囊括。但是对于距离的判定出现了较大的误差,因此当前只能实现测角。对于距离定位,还需要对几何以及SRP的原理进行系统的分析才可以完成。

除此之外,本例也使用了一些基本的数值计算方法来尝试进行求解,结果也是能够实现角度定位,但是难以实现距离定位。更加精确的定位还需要进行算法层面上的进一步改进。

使用说明

  1. 当前代码由matlab运行。

  2. 这里TDOA_method.m为主程序,直接运行即可。

  3. mat文件为四路麦克风采集到的语音信号,如果想要使用自己的数据可以参照mat内文件的存储名称,相应的改为自己的语音文件。如果想使用多路麦克风的模型(如6路)则较为困难,需要将所有代码中涉及到四路处理的内容全部修改。

  4. 麦克风阵列模型的坐标在主程序中以完成初始化,必须时可以自行修改。

  5. 这里调用了几种不同的进行声源定位的子函数,其中主要的方法只有两种:SRP-PHAT以及数值计算法。

许可

MIT © Richard McRichface

其它

如有疑问,请与我联系。

 相关资料
  • The sound component defines the entity as a source of sound or audio. The sound component is positional and is thus affected by the components-position. Example <

  • 标签 描述 bgmopt 设定背景音乐的属性 playbgm 播放背景音乐 pausebgm 暂停播放背景音乐 stopbgm 停止播放背景音乐 resumebgm 重新播放暂停的背景音乐 fadeinbgm fadeoutbgm fadebgm 淡入背景音乐 淡出背景音乐 淡化xchgbgm背景音乐 wb wl 等待音乐淡入淡出 等待音乐停止播放 fadepausebgm 淡出暂停背景音乐 xc

  • The sound primitive wraps the sound component. Example <a-scene> <a-sound src="src: url(click.mp3)" autoplay="true" position="0 2 5"></a-sound></a-scene> Attributes Attribute Component Mapping Defaul

  • 循环播放背景音乐时,还可以同时播放其他声音。背景音乐关掉时,声音是慢慢隐去直至消失,而不是突然关掉声音。 [Code4App.com]

  • 实现录音功能。用户点击“Rec”按钮开始录音,点击“Stop”按钮之后停止录音,点击“Play”按钮之后回放录音。 [Code4App.com]

  • Sound Converter 是一个简单的声音转换程序,工作在 GNOME 环境下。可以读取任何 GStreamer 可以读取的文件格式并转为 WAV, FLAC, MP3, and Ogg Vorbis 等格式.