语音领域的波束形成Beamforming小结

article/2025/8/22 3:22:00

关注、点赞、收藏是对我最大的支持,谢谢^v^

目录

1. 背景介绍

2. 多通道信号的公式描述

3. 传统波束形成(delay-and-sum和filter-and-sum)

4. MVDR

4.1 传统MVDR

4.2 融入深度学习的MVDR

5. GEV(Generalized eigenvalue) beamformer

6. GSC(Generalized sidelobe canceler)


1. 背景介绍

        波束形成是个很有意思的方向,应用从雷达领域到5G领域,近几年在语音识别领域也大放光彩。本文主要聚焦于波束形成在语音领域的应用。

        对于单麦克风来说,没有波束的概念;波束形成主要针对多麦克风阵列,融合多个通道的数据,对噪声和干扰方向进行抑制,增强目标方向的信号。

        一种方式是找到目标信号的方向,一般用导向矢量(steering vector)进行表示,基于此增强目标信号;一种方式是找到干扰信号的方向,进行抑制,剩下的就是目标信号。

2. 多通道信号的公式描述

             图1:M个麦克组成的线性阵列

观察信号的数学表达(频域形式)如下,这里的

表示信号传到两个麦克之间的时间差,如果声音入射角是theta,还需要乘以cos \theta,某频率的波传递了多少个周期,再乘以该波的频率

表示连续两个麦克风之间的相位差

      其实用2\pi \delta cos\theta /\lambda表示相位差更容易理解,其中\lambda =c/f 表示频率f的波长

3. 传统波束形成(delay-and-sum和filter-and-sum)

        delay-and-sum: 传统的波束形成可以描述为一个空间滤波器,用该滤波器构建一个特定的波束方向图;可以分解为两步:时间对其和加权求和。时间对齐的物理意义在于,某一固定方向信号,传递到麦克风阵列时,不同麦克之间存在相位差,将信号理解为波,让波对齐,再加权求和就起到了增加信号的作用。时间对齐控制着波束方向,加权求和控制着主瓣的波束宽度和旁瓣的特性。

        filter-and-sum: 它是上述delay-and-sum的扩展,将简单的delay操作用滤波filter操作代替,更具扩展性。

4. MVDR

4.1 传统MVDR

阵列采集信号:X(\omega)=d(\theta)X_s(\omega)+v(\omega)

目标:得到信号源X_s(\omega )的无偏、最小方差估计

无畸变约束保证语音不失真,最小输出功率保证干扰噪声被最小化。

转换成带经典约束条件的凸优化问题:

min {w^{H}R_{xx}w}

w^{H}d(\theta)=1

最优解

需要计算出导向矢量d(\theta)和协方差矩阵。

MVDR是一种自适应波束形成器, 而Delay-and-Sum是固定波束形成器。当各个通道的噪声互不相关, 并且具有相同功率的时候, MVDR退化成Delay-and-Sum。如果噪声是一个点声源, MVDR会自适应地在噪声方向形成一个零点。

4.2 融入深度学习的MVDR

        引入深度学习的目的:更好的估计目标信号或噪声信号的协方差矩阵。

Ø 四步走 NN 估计频谱 mask -->  计算空间协方差矩阵(也就是互功率谱) -->计算导向矢量-->  计算波束形成权重

5. GEV(Generalized eigenvalue) beamformer

        GEV同MVDR极为相似,不同之处在于目标准则,MVDR为最小化输出功率(在无畸变的约束下),GEV为最大化SNR。

w_f ^{GEV} = argmax \frac{w_f^H R_f ^{speech}w_f}{w_f^H R_f ^{noise}w_f}

该问题转换为广义特征值问题(generalized eigenvalue problem)

R_f ^{speech}w_f = \lambda R_f ^{noise}w_f

最优波束系数为广义主成分。

不同于MVDR,GEV波束形成器会引入语音失真。需要增加后置滤波(post-filter)。

6. GSC(Generalized sidelobe canceler)

Griffiths and Jim (1982)提出将MVDR分解为两个正交的波束形成器GSC,一个用于满足无畸变响应约束,另一个用于噪声功率最小化。

        固定波束形成器w_0^H

        阻塞矩阵B^H:为产生只包含噪声的信号

        自适应噪声相消器g^H:用于消除固定波束形成中的噪声信号

参考资料

[1] Fundamentals of Signal Enhancement and Array Signal Processing

[2] 麦克风阵列信号处理

[3] NEURAL NETWORK BASED SPECTRAL MASK ESTIMATION FOR ACOUSTIC BEAMFORMING

[4] Audio source separation and speech enhancement

关注、点赞、收藏是对我最大的支持,谢谢^v^


http://chatgpt.dhexx.cn/article/sYJQqX9T.shtml

相关文章

空间谱专题02:波束形成(Beamforming)

作者:桂。 时间:2017-08-22 10:56:45 链接:http://www.cnblogs.com/xingshansi/p/7410846.html 前言 本文主要记录常见的波束形成问题,可以说空间谱估计是波束形成基础上发展而来,在系统论述空间谱之前,有…

UE4 插件 简单全景播放器

UE4 插件 1分钟完成全景展示项目(Simple panorama player and video player) 全景图、全景视频播放器,附带列表和热点模板。另附带一个视频播放器。全景播放器可以使用本地资源或Web URL。 完全由蓝图实现,易于扩展和修改。 具有…

Android VR Player(全景视频播放器) [10]: VR全景视频渲染播放的实现(exoplayer,glsurfaceview,opengl es)

前言 此博客的大部分内容来自我的毕业设计论文,因此语言上会偏正式一点,如果您有任何问题或建议,欢迎留言。在此感谢实验室的聂师兄,全景视频render部分的代码设计主要参考了他所编写的代码来完成,他对视频渲染过程的…

VR+全景播放器+头控讲解-07

VR全景播放器头控讲解-01-知识储备VR全景播放器头控讲解-02-创建球体VR全景播放器头控讲解-03-渲染视频VR全景播放器头控讲解-04-滑动手势VR全景播放器头控讲解-05-伸缩画面VR全景播放器头控讲解-06-头控实现VR全景播放器头控讲解-07-分屏技术 学习目标 如何实现分屏 实现思路 …

[OpenGL]从零开始写一个Android平台下的全景视频播放器——目录

Github项目地址 为了方便没有准备好梯子的同学,我把项目在CSDN上打包下载,不过不会继续更新(保留在初始版本) 先放一张效果图: Youtube 优酷 前言 Android平台下的全景视频(360,Panoram…

VR+全景播放器+头控讲解-06

VR全景播放器头控讲解-01-知识储备VR全景播放器头控讲解-02-创建球体VR全景播放器头控讲解-03-渲染视频VR全景播放器头控讲解-04-滑动手势VR全景播放器头控讲解-05-伸缩画面VR全景播放器头控讲解-06-头控实现VR全景播放器头控讲解-07-分屏技术 学习目标 掌握头控部分布局 如何检…

mxreality.js 免费开源的全景图/全景视频/VR 直播播放器介绍

[2018-10-20 重要更新]支持VR直播功能支持全景视频poster支持全景图和视频和场景之间随意切换全景模式切换回默认主视角播放列表 优点: 1、全景图支持全景模式和VR模式 2、支持网页端全景图补天功能,有效去除顶部和底部拼接留下的痕迹、做出真正完美的…

Unity3D制作极简版VR全景视频播放器

自从Unity5.6.4还是2017的版本开始,官方提供了兼容移动端和Windows端的视频播放器控件——Video Player,下面介绍如何使用这个控件,制作VR播放器。 1、新建空白场景,新建球体Sphere,Camera放置球心位置; …

基于threejs,完成一个简单的全景图播放器

直接上代码 CameraControls.js相机控制器 import * as THREE from three;function CameraControls(object, domElement, cb, update) {this.object object;this.domElement domElement ! undefined ? domElement : document;this.enabled true;this.lookSpeed 0.1;this.…

使用SceneKit编写VR全景播放器

最近用SceneKit做了全景看房的功能,现总结下如何实现的。 先看下最终的效果: gif1.gif VR图片全景播放器有以下功能: 360度手势滑动,缩放陀螺仪分屏(VR眼镜)热点hotpot头控/eyepick 手势滑动,缩放&#…

AVProVideo☀️五、播放全景视频

🎊 商务合作:https://skode.cn/file/businesscard/wechat.jpg 🎥 本文由 星河造梦坊公司官方 原创! 🏅 如果你有技术问题或项目开发,都可以加上方的联系方式,和我聊一聊你的故事🧡 文章目录 🟥 360球形全景视频🟧 360立方体全景视频🟨 360天空盒全景视频🟩…

[OpenGL]从零开始写一个Android平台下的全景视频播放器——3.1 全景视频是如何实现的

Github项目地址 为了方便没有准备好梯子的同学,我把项目在CSDN上打包下载,不过更新会慢一些 回到目录 恭喜Martin同学获得由CSDN颁发的“更新慢慢慢”荣誉称号 全景视频有很多种类,例如Sphere全景,Skybox(Cubemap&…

VR全景播放器 AvPro Video

最近项目需要,使用Unity开发VR全景播放器,包括PC端和VR一体机端(Android)。Unity5.6开始支持VideoPlayer,使用自带的VideoPlayer,很顺利把播放器完成了,使用了很长时间,一直没什么性…

FFmpeg 开发(07):FFmpeg + OpenGLES 实现 3D 全景播放器

该文章首发于微信公众号:字节流动 FFmpeg 开发系列连载: FFmpeg 开发(01):FFmpeg 编译和集成 FFmpeg 开发(02):FFmpeg + ANativeWindow 实现视频解码播放 FFmpeg 开发(03):FFmpeg + OpenSLES 实现音频解码播放 FFmpeg 开发(04):FFmpeg + OpenGLES 实现音频可视化播放 FFm…

html全景直播播放器,Insta360 Player(全景视频播放器) V2.3.6 官方版

Insta360 Player是一款性能强劲且专业的全景视频播放器,它支持播放Insta360全景相机拍摄的全景视频和图片,并且支持本地视频的播放,操作非常的简单,有需要的用户可以下载来使用,此软件支持播放 Insta360全景相机产生的…

全景播放器,免安装支持全景视频

全景图片播放器,同时支持全景视频,可直接拖入页面查看。免安装全景播放器,文件不要大于20M Hpano 3D全景播放器是一款免安装可以720度互动浏览的全景图片查看器,通过拖球形全景图片或视频文件进行预览,720度的全方位图片查看器让你…

android 简单的exoplayer全景播放器

全景播放器网上一搜也是一堆一堆的,还有google推出的vrsdk,所以也没啥好说的,就简单记录一下 实现全景主要用到的还是opengles,只要用的开源播放器有setSurface(Surface surface)这个函数,就可以不改播放器源码实现 …

全景播放器

在github上发现的,绿色免安装,完全免费,只有一个界面三个按键,超级简单。里面带来几个全景视频和图片的demo,想体验全景的可以直接打开看看。想换片的时候按键盘的空格键既可以返回主界面。视角查看用鼠标左键点击拖动…

OpenGL ES_手把手教你打造VR全景播放器

OpenGL ES _ 入门_01OpenGL ES _ 入门_02OpenGL ES _ 入门_03OpenGL ES _ 入门_04OpenGL ES _ 入门_05OpenGL ES _ 入门练习_01OpenGL ES _ 入门练习_02OpenGL ES _ 入门练习_03OpenGL ES _ 入门练习_04OpenGL ES _ 入门练习_05OpenGL ES _ 入门练习_06OpenGL ES _ 着色器 _ 介…

播放全景视频【一】:用unity Video Player视频播放器来播放360全景视频

先上图为敬 本文测试环境: Win10 Unity 2020.3.40 Pico G2 4k VR一体机 一、使用Video Player心理负担比较小 使用Unity自带的【视频播放器(Video Player)】来播放360全景视频的【好处】: 1、控制逻辑与2D视频相同&#xff0c…