由于太忙,实在没时间整理,今天抽出空整理一点,日后会继续跟上,学会总结是进步的关键。下面几乎是干货,不会太详细,还望见谅。

什么是麦克风阵列:
所谓麦克风阵列其实就是一个声音采集的系统,该系统使用多个麦克风采集来自于不同空间方向的声音。
为什么使用麦克风阵列:
麦克风按照指定要求排列后,加上相应的算法(排列+算法)就可以解决很多房间声学问题,比如声源定位、去混响、语音增强、盲源分离等。
【注】:在深入理解概念之前,我们先理解一下麦克风的知识
什么是麦克风的指向性(方向性):
麦克风的方向性是指麦克风可以接收到语音的方向。声音可以从不同的方向传达到麦克风,麦克风的前面/后面/侧面,麦克风将会根据自身的指向性来获取声音。
一个麦克风可以以很高的灵敏度接收来自于前方的声音,而不管后方和侧面的声音,另一个麦克风还可以接收来自于前面和后面的声音,而不管侧面的,有很多种组合。
什么是指向性麦克风:
所谓指向性麦克风是指麦克风要么接收来自于指定方向的声音,要么接收所有角度传来的声音,这取决于麦克风的自身指向属性。
常用的指向性麦克风:
  • 全向麦克风
有些麦克风接收来自于任何方向的声音,这种麦克风叫做全向麦克风( omnidirectional microphones)。不管说话的人在哪里对着麦克风说话,前后左右,从0°到360°,所有的这些声音都会以相同的灵敏度被拾取。
  • 单向麦克风
其他的一些麦克风是单向的( unidirectional),他们仅仅接收从指定方向来的声音。当人们对着单向麦克风说话时,要慎重选择对着麦克风的方向。我们必须要对着“接收方向”说话来获得更好的声音增益,任何不同于此方向的声音都会被削弱接收,这也就意味着增益很小。
  • 双向麦克风
另外一种麦克风叫做双向麦克风(bidirectional microphone),这种麦克风可以很好的接收来自于前向和后向的声音,但是两侧的声音增益很小。他在隔膜的相对两侧拾取具有相等灵敏度的声波,与隔膜成直角的指向null。
  • 心型麦克风
另外一种是心型麦克风( cardioid microphone),它可以接收来自于前方和两侧的声音,但是后面的声音的增益很小。事实上,他们名字来源于他们的声音拾取方向,非常的像一个心。
注意:这里没有任何一种麦克风可以说比别的怎么怎么好,不同种类的麦克风在不同的使用环境下有各自的优缺点。从上面看起来,全向麦克风比其他的要好,因为它可以接收来自于所有方向的声音而不是仅仅一个方向,但是试想如果在一个比较嘈杂的环境下,全向麦克风是一个比较low的选择,因为除了我们所需要的声音外,他还录了周围的噪音。在这种环境下,指向性(非全指向性麦克风)麦克风可能会更好,因为他在获取我们所需要方向的声音外,对其他方向的声音进行了压制,使得噪声的增益非常少。所以,这些麦克风的好坏取决于用的环境。
麦克风的排列及原理:
麦克风不同的排列对应不同的算法,那么最简单的排列就是线性排列了,也就是麦克风排列成一排。在远场(指说话人距离麦克风很远)的情况下,我们一般认为人说话的波形是平面波,如下:
那么每个麦克风接收到的信号在同一时刻都不会相同,因为有时延,你可能会问什么是时延,那么下面给出具体的统一线性麦克风阵列模型图:
这个模型具体参数此处不做讲解,很简单直白。那么从这里我们可以看出来,每个麦克风接收到的数据ym(k)与之前的麦克风接收到的数据之前存在延迟。其公式如下:
时间延迟如下(c是声速340m/s):
一般我们都是转化到频域去处理,所以将上述傅里叶变换后得到(别问我傅里叶变换是什么):
切记,这里都是原式子的傅里叶变换后的形式。
好了,理论模型推理到这里,那么开始看我们手头有什么数据,说白了,方程中有哪些参数我们是已知的,ym(k)是已知的,这就是我们的麦克风接收到的数据呀,术语观测数据。这时候不要脑袋一热就开始根据模型往回带数据,模型仅仅是为我们提供参考思路(即使想带回去也不行,vm根本就未知)。
得知观测数据的我们,需要从观测数据中抽离我们想要的内容,那么很自然的想到滤波器。我们称这种滤波器叫做:波束形成滤波器(因为它增强了我们想要的内容,削弱了我们不想要的内容,跟前面的指向性麦克风联系起来,是不是感觉世界很奇妙):
其中:
而这个得到的Z,就是我们所要求的。
问题到了这里变得很清晰,如何估计这个滤波器。波束增强有很多种算法,有很多种估计滤波器的方式,从简单到复杂,从效果差到效果好,各有不同。那么我们这里说一下基于我们上面模型的最简单的delay-and-sum(DS)滤波器,他的效果用一句话概括就是:我们仅仅把各个麦克风接收到的信号补偿他们的时延,然后求一个均值,没有考虑混响等实际场景可能发生的情况。那么,我们的Z如下:
从而我们用最简单的办法得到了我们所要的信号,其性能评估等后续说明。

麦克风阵列入门(一)相关推荐

  1. 音视频开发(33)----麦克风阵列入门(一)

    麦克风阵列入门(一) 什么是麦克风阵列: 所谓麦克风阵列其实就是一个声音采集的系统,该系统使用多个麦克风采集来自于不同空间方向的声音. 为什么使用麦克风阵列: 麦克风按照指定要求排列后,加上相应的算法 ...

  2. 关于麦克风阵列入门要读的书

    2019独角兽企业重金招聘Python工程师标准>>> 镇楼http://www.edu.cn/ruxuanzhe_10934/20101124/t20101124_543940.s ...

  3. 音视频开发(38)---麦克风阵列仿真环境的搭建

    麦克风阵列仿真环境的搭建 1. 引言   之前,我在语音增强一文中,提到了有关麦克风阵列语音增强的介绍,当然,麦克风阵列能做的东西远远不只是在语音降噪上的应用,它还可以用来做声源定位.声源估计.波束形 ...

  4. 麦克风阵列仿真环境的搭建

    1. 引言   之前,我在语音增强一文中,提到了有关麦克风阵列语音增强的介绍,当然,麦克风阵列能做的东西远远不只是在语音降噪上的应用,它还可以用来做声源定位.声源估计.波束形成.回声抑制等.个人认为, ...

  5. 麦克风阵列降噪_黄鹂智声降噪耳机E100u,与喧嚣说再见

    科技的突飞猛进让与人们日常生活息息相关的智能产品也得到了一个质的飞跃.如手机越来越智能且性能也越来越强大外,耳机做为与人们也最常接触的数码产品更好的音质与降噪也是人们所追求的.今天笔者就为大家介绍一款 ...

  6. 【声源定位】 球面散乱数据插值方法/似然估计hybrid spherical interpolation/maximum likelihood (SI/ML) 麦克风阵列声源定位

    1.软件版本 MATLAB2021a 2.本算法理论知识点 球面散乱数据插值方法/似然估计SI/ML 麦克风阵列声源定位 3.算法具体理论 这个部分的程序如下所示: 这个部分理论如下所示: 本文最后的 ...

  7. 多麦克风做拾音的波束_麦克风阵列是什么 有哪些关键技术?

    麦克风阵列是什么 有哪些关键技术? 亚马逊Echo和谷歌Home争奇斗艳,除了云端服务,他们在硬件上到底有哪些差异?我们先将Echo和Home两款音箱拆开来看,区别最大的还是麦克风阵列技术.Amazo ...

  8. 传递函数_使用python计算麦克风阵列信号的传递函数

    使用python写了一个测试麦克风阵列传递函数的demo,有需要的自取.该代码使用了第三方库ThinkDSP. 1. 传递函数 首先解释下什么是传递函数: 把具有线性特性的对象的输入与输出间的关系,用 ...

  9. 麦克风阵列盲源分离技术

    麦克风阵列盲源分离技术 盲源分离技术仅根据观察到的每一路混叠信号估计原始多路信号,独立成分分析(independent component analysis)卷积混合情况的盲源分离技术.第一部分麦克风 ...

  10. 麦克风阵列声源定位 GCC-PHAT

    麦克风阵列声源定位 GCC-PHAT 麦克风阵列声源定位(一) 利用麦克风阵列可以实现声源到达方向估计(direction-of-arrival (DOA) estimation),DOA估计的其中一 ...

最新文章

  1. find命令详解(原创)
  2. 百度2019暑期实习计算机视觉岗位笔试题
  3. java 广播地址,根据ip地址跟子网掩码获取广播地址的java实现
  4. java js关键字_JavaScript关键字和保留字
  5. c# 无法将类型隐式转换_C#中的隐式类型数组
  6. Minor GC和Full GC
  7. 物联网架构-Nginx负载均衡
  8. centos 查看版本(转)
  9. 《Python核心编程》18.多线程编程(二)
  10. 接unityads_[蛮牛教程]unity接入unity Ads详细流程
  11. php商城拍卖逻辑,thinkphp商城购物车逻辑思路
  12. 有关嵌入式的 github
  13. JAVA 生成随机数两种方式
  14. 微信小程序注册流程图文详解
  15. 2020年下半年网络工程师下午真题及答案
  16. python安装 错误 “User installations are disabled via policy on the machine”
  17. ros驱动insta360 oneR运动相机遇到的坑
  18. 同时安装 TensorflowPytorch
  19. 大学计算机李凤霞课本百度云,北京理工大学李凤霞老师个人资料
  20. java怎样实现换肤功能_JavaScript实现换肤功能

热门文章

  1. Win10安装注册机出错?
  2. Python文本处理之按行处理大文件
  3. 免安装版的Mysql安装与配置——详细教程
  4. oracle 简版客户端instantclient使用 oledb ODAC组件使用
  5. scara机器人动荷载_揭密SCARA机器人
  6. FPGA编程入门:Quartus II 设计1位全加器
  7. 编写一个加密程序,要求从键盘输入一个字符串,然后输出加密后的字符串。加密规则是对每个字母转换为下一个字母表示,原来是a转换为b,原来是B转换为C。小写的z转换为小写的a,大写的Z转换为大写的A。
  8. jenkins下载及安装
  9. Linux命令:查看服务器IP地址
  10. java Socket IO流关闭问题(java.net.SocketException: Socket is closed)