麦克风阵列入门

news2024/10/7 20:36:37

文章引注:

http://t.csdnimg.cn/QP7uC

一、麦克风阵列的定义

所谓麦克风阵列其实就是一个声音采集的系统,该系统使用多个麦克风采集来自于不同空间方向的声音。麦克风按照指定要求排列后,加上相应的算法(排列+算法)就可以解决很多房间声学问题,比如声源定位、去混响、语音增强、盲源分离等。

二、麦克风指向性

麦克风的方向性是指麦克风可以接收到语音的方向。声音可以从不同的方向传达到麦克风,麦克风的前面/后面/侧面,麦克风将会根据自身的指向性来获取声音。一个麦克风可以以很高的灵敏度接收来自于前方的声音,而不管后方和侧面的声音,另一个麦克风还可以接收来自于前面和后面的声音,而不管侧面的,有很多种组合。

所谓指向性麦克风是指麦克风要么接收来自于指定方向的声音,要么接收所有角度传来的声音,这取决于麦克风的自身指向属性。

常用的指向性麦克风:
在这里插入图片描述

(1)全向麦克风

有些麦克风接收来自于任何方向的声音,这种麦克风叫做全向麦克风( omnidirectional microphones)。不管说话的人在哪里对着麦克风说话,前后左右,从0°到360°,所有的这些声音都会以相同的灵敏度被拾取。

(2)心形麦克风

心型指向:心型指向对于来自麦克风前方的声音有最佳的收音效果,而来自其他方向的声音则会被衰减。
超心型指向:相比于心型指向,超心型指向抵消了更多来自麦克风侧面方向的声音。比较多用在室内乐的多轨录音中,减少来自附近其他乐器的声音。

(3)枪型麦克风

枪型指向:枪型指向麦克风是一类极限最求单一方向指向的麦克风。其最佳收音角度为正前方的小范围锥形区域,主要用于户外收音,如户外新闻采访和影视外景拍摄的收音。其较好的指向性使得麦克风能比较有效的减少周边环境噪音的收入。

(4)双指向麦克风

双指向式(或者8字型):双指向式可接受来自麦克风前方和后方的声音,抵消了大部分来自90度侧面的声音。由于双指向式麦克风侧面的灵敏度极低,在室内多轨录音中使用也能够有效减少来自附近其他乐器的声音。

三、麦克风的排列及原理

(1)简介

麦克风不同的排列对应不同的算法,那么最简单的排列就是线性排列了,也就是麦克风排列成一排。在远场(指说话人距离麦克风很远)的情况下,我们一般认为人说话的波形是平面波,如下:
在这里插入图片描述
那么每个麦克风接收到的信号在同一时刻都不会相同,因为有时延,你可能会问什么是时延,那么下面给出具体的统一线性麦克风阵列模型图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)原理

麦克风阵列,是一组位于空间不同位置的全向麦克风按一定的形状规则布置形成的阵列,是对空间传播声音信号进行空间采样的一种装置,采集到的信号包含了其空间位置信息。根据声源和麦克风阵列之间距离的远近,可将阵列分为近场模型和远场模型。根据麦克风阵列的拓扑结构,则可分为线性阵列、平面阵列、体阵列等。

(1) 近场模型和远场模型

声波是纵波,即媒质中质点沿传播方向运动的波。声波是一种振动波,声源发声振动后,声源四周的媒质跟着振动,声波随着媒质向四周扩散,所以是球面波。

根据声源和麦克风阵列距离的远近,可将声场模型分为两种:近场模型和远场模型。近场模型将声波看成球面波,它考虑麦克风阵元接收信号间的幅度差;远场模型则将声波看成平面波,它忽略各阵元接收信号间的幅度差,近似认为各接收信号之间是简单的时延关系。显然远场模型是对实际模型的简化,极大地简化了处理难度。一般语音增强方法就是基于远场模型。

近场模型和远场模型的划分没有绝对的标准,一般认为声源离麦克风阵列中心参考点的距离远大于信号波长时为远场;反之,则为近场。设均匀线性阵列相邻阵元之间的距离(又称阵列孔径)为d,声源最高频率语音的波长(即声源的最小波长)为λmin,如果声源到阵列中心的距离大于2d2/λmin,则为远场模型,否则为近场模型,如图1所示。
在这里插入图片描述

(2) 麦克风阵列拓扑结构

按麦克风阵列的维数,可分为一维、二维和三维麦克风阵列。这里只讨论有一定形状规则的麦克风阵列。

一维麦克风阵列,即线性麦克风阵列,其阵元中心位于同一条直线上。根据相邻阵元间距是否相同,又可分为均匀线性阵列(Uniform Linear Array,ULA)和嵌套线性阵列,如图2所示。均匀线性阵列是最简单的阵列拓扑结构,其阵元之间距离相等、相位及灵敏度一直。嵌套线性阵列则可看成几组均匀线性阵列的叠加,是一类特殊的非均匀阵。线性阵列只能得到信号的水平方向角信息。

在这里插入图片描述
图2 线性阵列拓扑结构

二维麦克风阵列,即平面麦克风阵列,其阵元中心分布在一个平面上。根据阵列的几何形状可分为等边三角形阵、T型阵、均匀圆阵、均匀方阵、同轴圆阵、圆形或矩形面阵等,如图3所示。平面阵列可以得到信号的水平方位角和垂直方位角信息。
在这里插入图片描述
图3 平面阵列拓扑结构

三维麦克风阵列,即立体麦克风阵列,其阵元中心分布在立体空间中。根据阵列的立体形状可分为四面体阵、正方体阵、长方体阵、球型阵等,如图4所示。立体阵列可以得到信号的水平方位角、垂直方位角和声源与麦克风阵列参考点距离这三维信息。
在这里插入图片描述
图4 立体阵列拓扑结构

(3)波束形成

在这里插入图片描述

(4)时延补偿

在这里插入图片描述

四、麦克风阵列语音增强

1. 时域GSC自适应波束形成算法(Griffiths-Jim)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(1)语音干扰情况

在这里插入图片描述

(2)点噪声源干扰情况

在这里插入图片描述

(3)散漫噪声源干扰情况

在这里插入图片描述

2.概况

语音增强,英文名:Speech Enhancement,其本质就是语音降噪,换句话说,日常生活中,麦克风采集的语音通常是带有不同噪声的“污染”语音,语音增强的主要目的就是从这些被“污染”的带噪语音中恢复出我们想要的干净语音。

语音增强涉及的应用领域十分广泛,包括语音通话、电话会议、场景录音、军事窃听、助听器设备和语音识别设备等,并成为许多语音编码和识别系统的预处理模块。举几个简单的例子,在手机的语音助手中,例如苹果的Siri、微软的小娜属于这其中的佼佼者,他们在近距离(一般工作距离小于1米)、无噪声的环境中进行语音识别,有着较高的语音识别准确率,但是如果我们的声学场景变得更加复杂,比如展会,街道等场景中,噪声的影响会大大降低他们的语音识别准确率,因此进行语音识别的前端降噪显得十分重要。此外,在一些助听器设备中,语音增强技术也有其应用。通常的助听器,只是实现一个语音的基本放大,复杂一些的会进行声压级压缩以实现对患者听觉范围的补偿,但是如果听觉场景比较复杂,患者听到的语音中不仅包含了放大后的语音也包含了很多噪声,时间一长势必会对患者的听觉系统造成二次损害,因此高端的数字助听器设备中,语音降噪也成为了他们不容忽视的一个重要方面。

语音增强作为数字信号处理的一个分支,已经有了50多年的历史。虽然语音增强技术看似只是一个简单的纯净语音恢复过程,但是其中涉及的知识和算法是广泛而又多样的。在学术界,该领域的研究可以说是“百花齐放,百家争鸣”,既有传统的数字信号处理的方法,又有近几年刚刚兴起的深度学习的方法。经过几十年的发展,学术界也涌现出来了不少大牛,像Rainer Martin、Yariv Ephraim、Israel Cohen、Phillip Loizou以及Sharon Gannot等,这几位前辈在数字信号处理领域的语音增强方法中,起到的十分重要的推动作用。然而,在语音增强的另一个新兴领域:深度学习语音增强,虽然是后起之秀,但是伴随着硬件技术的升级,该技术在工程界得以落地,也使其在语音增强领域站住了脚跟。当然,该技术的发展与“深度学习之父”​Geoffrey Hinton在神经网络结构上取得的重大成果是分不开的。在当今学术界,如果说在该领域,真正占有一席之地的,我个人认为,当属俄亥俄州立大学的汪德亮教授,他的实验室和学生,对深度学习语音增强这一方法的发展起到了十分重要的推动作用。

3.分类

在这里插入图片描述
对于语音增强方法的分类,可以按照其运用方法的不同进行分类,于是便可以分成如下两大类:数字信号处理的语音增强方法和基于机器学习的语音增强方法。 其中,数字信号处理的语音增强方法是主流方法,历史悠久,且拥有很深的技术奠基,是目前工程界进行语音降噪的主要思路。而在传统的数字信号处理的方法中,按照其通道数目的不同,又可以进一步划分为:单通道语音增强方法和麦克风阵列的语音增强方法。

在传统的单通道语音增强方法中,对数字信号处理的知识运用较多,时域和频域的方法都有,以频域处理为主,其中基于短时谱估计的语音增强方法是目前应用最为广泛的语音增强方法,具体的算法可以分为以下三大类:谱减法、维纳滤波法和基于统计模型的方法。除了上述提到的短时谱方法,在单通道的语音增强领域还有一种自适应滤波的方法,但是其需要事先知道噪声或者纯净语音,然后利用随机梯度下降的方式进行最优解的逼近,而在大多数情况下,噪声或者纯净语音等先验知识是无法获得的,因此大大限制了自适应滤波方法的应用,但是该方法在手机通话中的降噪应用比较广泛,通常手机中都会专门用一个降噪麦克风来收取环境中的噪音,以此作为参考输入来实现降噪。此外,在单通道的方法之中,还有一种基于子空间的方法也备受关注,但由于其运算度相对较高,所以在工程中的应用并不算广泛。近些年以来,小波变换的方法发展迅猛,它克服了短时傅里叶变换固定分辨率的缺点,可以获得信号在不同分别率上的信息,在近几年里得到了广泛的应用。

而在麦克风阵列的语音增强方法中,由于利用了更多的麦克风,考虑了信号的空间信息,因此在抑制特定方向的干扰、进行语音分离等方面,比单通道的语音增强更有优势。麦克风阵列的语音增强方法目前在智能音箱、机器人等领域应用较多,利用其多麦克风的优势,这类产品可以实现在远场和更复杂的声学环境中进行语音增强。主流的麦克风阵列方法有:固定波束形成的方法和自适应波束形成的方法。固定波束形成的应用环境十分受限,但运算复杂度较低,所以一般应用于声学场景固定不变的环境中;而自适应波束形成的方法则表现出更好的鲁棒性,当然这也是以牺牲运算复杂度为代价,目前自适应波束形成方法主要有两大阵营:LCMV结构和GSC结构,如今的麦克风阵列语音增强算法基本上都是基于这两种结构进行地改进和优化。

基于机器学习的语音增强方法算是奇巧之技,不同于传统的数字信号处理方法,它借鉴机器学习的思路,通过有监督的训练实现语音增强。该领域的算法算是刚刚起步,满打满算也没有二十年的历史,但是“存在即合理”,它之所以能够在语音增强领域占有一席之地,也有其优势所在,例如,在数字信号处理领域的一些比较棘手的问题,比如瞬时噪声的消除,这类方法另辟蹊径,可以较容易地将其解决,因此,这类算法也许会成为未来人工智能时代的语音增强主流方向。如今,运用机器学习的语音增强方法不多,大致梳理一下,可以分成以下几类:基于隐马尔科夫模型的语音增强、基于非负矩阵分解的语音增强、基于浅层神经网络的语音增强和基于深层神经网络的语音增强。其中,基于深度神经网络的语音增强方法,也就是深度学习语音增强,利用深度神经网络结构强大的非线性映射能力,通过大量数据的训练,训练出一个非线性模型进行语音增强,取得了十分不错的效果。

4.语音增强入门

语音增强的方向较多,各方向领域的大牛不同,涉及的知识也不太一样,因此分别给出了不同的语音增强研究方向的大牛和书籍。

传统单通道的语音增强方法:
Yariv Ephraim 主页:http://ece.gmu.edu/~yephraim/
Rainer Martin 主页:http://www.ruhr-uni-bochum.de/ika/mitarbeiter/martin_publik.htm#2017
Isreal Cohen 主页:http://webee.technion.ac.il/people/IsraelCohen/
Philip Loizou 主页:http://ecs.utdallas.edu/loizou/
推荐书籍:《语音增强理论与实践》(Loizou)

麦克风阵列的语音增强方法:
Sharon Gannot 主页:http://www.eng.biu.ac.il/gannot/
Jacob Benesty 主页:http://externe.emt.inrs.ca/users/benesty/
推荐书籍:《Wideband Beamforming Concepts and Techniques》(Wei Liu)

基于深度学习的语音增强方法:
汪德亮主页:http://web.cse.ohio-state.edu/~wang.77/index.html
推荐学习:吴恩达深度学习在线课程:http://mooc.study.163.com/smartSpec/detail/1001319001.htm
博士论文:《基于深层神经网络的语音增强方法研究》(徐勇 2015)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1226887.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2 Redis的高级数据结构

1、Bitmaps 首先,最经典的应用场景就是用户日活的统计,比如说签到等。 字段串:“dbydc”,根据对应的ASCII表,最后可以得到对应的二进制,如图所示 一个字符占8位(bit),…

【GCN】GCN学习笔记一

谱域图卷积 卷积 卷积定义离散空间的卷积 图卷积简介 卷积定理谱域图卷积实现思路如何定义图上的傅里叶变换拉普拉斯矩阵 (Laplacian Matrix)拉普拉斯矩阵的性质拉普拉斯矩阵的谱分解拉普拉斯矩阵与拉普拉斯算子 图傅里叶变换 图上的信号表示经典傅里叶变…

常见Web安全

一.Web安全概述 以下是百度百科对于web安全的解释: Web安全,计算机术语,随着Web2.0、社交网络、微博等等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广泛,企业信息化的过程中各种应用都架设在Web平台…

性格懦弱怎么办?如何改变懦弱的性格?

性格懦弱是一个比较常见的话题了,懦弱带来的苦恼和困扰,深深影响着我们的生活,人际关系,以及事业的发展。然后如何摆脱懦弱,却并非易事,尤其是对于成年人来说,这种懦弱的性格特征,已…

关于缓存和数据库一致性问题的深入研究

如何保证缓存和数据库一致性,这是一个老生常谈的话题了。 但很多人对这个问题,依旧有很多疑惑: 到底是更新缓存还是删缓存?到底选择先更新数据库,再删除缓存,还是先删除缓存,再更新数据库&…

算法设计与分析复习--贪心(一)

文章目录 上一篇贪心的性质活动安排问题贪心背包问题最优装载哈夫曼编码下一篇 上一篇 算法设计与分析复习–动态规划 贪心的性质 贪心和动态规划都要求问题具有最优子结构; 可用贪心方法时,动态规划可能不适用 可用动态规划方法时,贪心方法…

C/C++关于main函数参数问题

文章目录 前言不带参数的main带参数的main为什么会有带参数的main总结 前言 每次写C/C程序,基本上就是一个int main(){return 0;}。但是后来在linux里面涉及到很多带参数的main函数,我一直不太理解,这里就写篇博客记录一下。 不带参数的main…

10、背景分离 —— 大津算法

上一节学习了通过一些传统计算机视觉算法,比如Canny算法来完成一个图片的边缘检测,从而可以区分出图像的边缘。 今天再看一个视觉中更常见的应用,那就是把图片的前景和背景的分离。 前景和背景 先看看什么是前景什么是背景。 在图像处理和计算机视觉中,"前景"…

SpringCloudAlibaba系列之Nacos服务注册与发现

目录 说明 认识注册中心 Nacos架构图 Nacos服务注册与发现实现原理总览 SpringCloud服务注册规范 服务注册 心跳机制与健康检查 服务发现 主流服务注册中心对比 小小收获 说明 本篇文章主要目的是从头到尾比较粗粒度的分析Nacos作为注册中心的一些实现,很…

AcWing 3. 完全背包问题 学习笔记

有 N� 种物品和一个容量是 V� 的背包,每种物品都有无限件可用。 第 i� 种物品的体积是 vi��,价值是 wi��。 求解将哪些物品装入背包,可使这些物品的总体积不…

Elasticsearch中的语义检索

一、传统检索的背景痛点 和传统的基于关键词的匹配方式不同,语义检索,利用大模型,将文本内容映射到神经网络空间,最终记忆token做检索。 例如想要搜索中国首都,例如数据集中,只有一篇文章在描述北京&#x…

Zabbix实现故障自愈

一、简介 Zabbix agent 可以运行被动检查和主动检查。 在被动检查模式中 agent 应答数据请求。Zabbix server(或 proxy)询求数据,例如 CPU load,然后 Zabbix agent 返还结果。 主动检查处理过程将相对复杂。Agent 必须首先从 Z…

优卡特脸爱云一脸通智慧管理平台权限绕过漏洞复现(CVE-2023-6099)

0x01 产品简介 脸爱云一脸通智慧管理平台是一套功能强大,运行稳定,操作简单方便,用户界面美观,轻松统计数据的一脸通系统。无需安装,只需在后台配置即可在浏览器登录。 功能包括:系统管理中心、人员信息管理…

[qemu逃逸] XNUCA2019-vexx

前言 这题没有去符合, 题目本身不算难. 用户名: root 密码: goodluck 设备逆向 题目没有去符合, 所以其实没啥好讲了, 就列一些笔者认为关键的地方 这里的定义了两块 mmio 内存区. 然后看下设备实例结构体: 可以看到 QEMUTimer, 所以多半就是劫持 dma_timer 了. 漏洞点在…

使用Qt实现多人聊天工作室

目录 1、项目背景 2、技术分析 3、架构设计 3、1 服务器架构 3.1.1 模块划分 3.1.2 模块之间的交互 3、2 客户端架构 3.2.1 模块划分 3.2.2 模块之间交互 4、实现过程 4、1 功能实现 4.1.1 用户登录注册功能​编辑 4.1.2 用户主界面功能 4、2 设计实现 4.2.1 登录…

代码随想录算法训练营|五十六天

回文子串 647. 回文子串 - 力扣(LeetCode) dp含义:表示区间内[i,j]是否有回文子串,有true,没有false。 递推公式:当s[i]和s[j]不相等,false;相等时,情况一,…

Springboot框架中使用 Redis + Lua 脚本进行限流功能

Springboot框架中使用 Redis Lua 脚本进行限流功能 限流是一种用于控制系统资源利用率或确保服务质量的策略。在Web应用中,限流通常用于控制接口请求的频率,防止过多的请求导致系统负载过大或者防止恶意攻击。 什么是限流? 限流是一种通过…

Go——一、Go语言安装及介绍

Go 一、Windows下安装Go1、下载Go2、配置环境变量3、下载Jetbrain下的GoLang4、编写hello world5、编译和执行 二、Go语言介绍1、开发文档2、Go语言核心开发团队3、为什么要创建Go4、Go语言发展史5、Go语言特点6、Golang执行过程6.1 执行过程分析6.2 编译是什么 7、开发注意事项…