首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

房间脉冲响应小结

概述

因为最近的工作涉及到了房间脉冲响应(Room Impulse Response, RIR),所以特地搜索了下和RIR相关的论文以及开源数据集,然后写下该文章作为一个小结。本文主要包括如下几个部分:RIR的基本介绍生成RIR的开源工具以及RIR数据集介绍。

RIR基本介绍

RIR在训练和语音相关任务模型的时候常常作为一种数据增强的手段,用于提高模型的泛化性能。常见的RIR生成方法主要分为如下三类:

基于波动方程方法:主要包括有限元、边界元以及有限时域差分方法等。

基于光线方法:主要包括Image以及光线追踪,其中Image使用最为广泛。

基于统计方法:主要包括统计能量分析方法。

生成的RIR一般由三个部分构成:直达声、早期混响以及晚期混响。而早期混响在一定程度上能够提高听感,因此在语音增强或者去混响任务中,常常将(直达声+早期混响)与纯净语音进行卷积得到的语音作为网络学习的目标。然后主要去除的是晚期混响。

而生成上述RIR的常见方法就是Image方法,有关该方法的详细介绍可以参考文献[1], 在此只是对Image方法做一个简单的介绍。

在上图中表示声源,表示接收器如麦克风。只考虑一次镜面反射的前提下,将会形成5个镜像声源,其中由于声源和的连线没有穿过平面,因此是一次无效的镜面反射,所以有效的镜像声源为,根据线段之间的关系可以很方便的计算镜像声源和之间的距离,然后计算相应的脉冲响应IR。从上述过程中可以看到,Image方法可能不断生成无效的反射路径,然后验证路径的有效性并拒绝无效路径,由此产生了巨大的计算量。另外Image方法只考虑了镜面反射,但是在实际中漫反射更为常见。镜面反射和漫反射示例如下:

为了解决更复杂的声学场景,如遮蔽以及上面的漫反射等场景,文献[2]提出了方法用于RIR的生成,该方法主要基于方法即随机生成反射路径。能够更好适应镜面反射,漫反射以及遮蔽等复杂的声学场景,关于该方法更详细的介绍请移步文献[2]

开源的RIR生成工具

在该部分主要介绍一些开源的RIR生成工具,主要如下

rir_generator

rir_generator是一个比较经典的RIR生成工具,该工具主要基于Image方法生成RIR,有matlab和pyhon版本。

python版本地址:https://github.com/audiolabs/rir-generator

matlab版本地址:https://github.com/ehabets/RIR-Generator

具体的使用可以github上的Readme文档。

pyroomacoustic

pyroomacoustics是另外一个可以生成RIR的工具,除了生成RIR外,该开源工具还包括自适应滤波(Adaptive Filtering)、盲源分离(Blind Source Separation)、波达方向估计(Direction of Arrival)以及单通道降噪(Single-Channel Denoising)等模块。

github地址:https://github.com/LCAV/pyroomacoustics

说明文档地址:https://pyroomacoustics.readthedocs.io/en/pypi-release/

使用该工具生成RIR的示例可以参考

pyroomacoustic使用示例

TingweiSpeak,公众号:TingweiSpeakpyroomacoustics生成RIR

gpuRIR

gpuRIR是一个能够通过CUDA进行加速计算的开源工具,同样是基于Image方法。相比于通过CPU计算RIR,经过CUDA加速后其RIR生成速度比CPU快将近100倍。

github地址:https://github.com/DavidDiazGuerra/gpuRIR

gpuRIR的使用示例可以参考

gpuRIR使用示例

ctwgL,公众号:音频探险记gpuRIR--房间脉冲响应的加速计算

FRA-RIR

虽然gpuRIR能够大幅减少RIR生成所需要的时间,但是需要GPU的支持。而使用CPU生成RIR又是一件很耗时的事情。因此训练网络时,常常是提前生成一批RIR数据,然后在进行网络的训练。为了加快RIR的生成以便于实现网络训练过程中数据的在线增强,在文献[3]中,罗老师通过对Image生成RIR中的相关参数计算进行了近似,如镜像声源和麦克风之间的距离,房间相关的参数计算以及声源的反射次数,以此来得到加快RIR计算的目的。除此之外,相比于RIR-generator, pyroomacoustic以及gpuRIR而言,经过FRA-RIR生成的RIR更接近于真实环境下的RIR,由此带来了降噪和去混响性能的提升。

GAS

由于Image方法只涉及到了简单声学环境下的镜面反射场景,无法覆盖到漫反射以及遮蔽等复杂的场景,因此衍生出了GAS方法,能够对遮蔽,镜面反射,漫反射等场景进行建模,相比于Image方法生成的RIR而言,GAS生成的RIR和实际环境下的RIR更为接近。

github地址:https://github.com/GAMMA-UMD/pygsound

Fast-RIR

该方法主要采用GAN网络来生成真实的RIR,通过将声源三维坐标,麦克风三维坐标,房间大小的三维坐标以及T60构成10维向量输入到GAN网络中,从而得到真实的RIR。模型的整体结果如下

关于该方法更详细的介绍可以参考文献[4]

github地址:https://github.com/anton-jeran/FAST-RIR

TS_RIR

另外一个比较有意思的工作就是TS_RIR, 该方法同样是使用GAN网络来生成真实的RIR,与Fast-RIR不同的是,TS_RIR的输入是仿真生成的RIR,然后输出真实的RIR。所使用的网络结构如下:

关于该方法更详细的介绍可以参考文献[5]。

github地址:https://github.com/GAMMA-UMD/TS-RIR

RIR数据集

本部分主要列举一下RIR数据集,除了仿真生成的RIR数据之外,下面介绍的RIR数据集更偏向于实采的RIR数据。

ACE Challenge

该数据集采集了7个不同房间的RIR,采集设备包括:

Single-channel ( based on cruciform channel)

2-channel laptop

3-channel mobile

5-channel cruciform

8-channel linear

32-channel spherical(EM32 array)

网址:http://www.ee.ic.ac.uk/naylor/ACEweb/index.html

But Speech@fit Reverb Database

主要采集了9个房间的RIR数据,房间尺寸如下

网址:https://speech.fit.vutbr.cz/software

Arni

在以下环境采集的共132037条RIR数据。

数据地址:https://zenodo.org/record/6985104#.Y7WerexBxqs

SLR 28

包含合成的和实采的RIR数据

网址:https://openslr.org/28/

SLR 26

仿真生成的RIR数据

网址:https://openslr.org/26/

参考文献

[1] Room Impulse Response Generator

[2] IMPROVING REVERBERANT SPEECH TRAINING USING DIFFUSE ACOUSTIC SIMULATION

[3] FRA-RIR: Fast Random Approximation of the Image-source Method

[4] FAST-RIR: FAST NEURAL DIFFUSE ROOM IMPULSE RESPONSE GENERATOR

[5] TS-RIR: TRANSLATED SYNTHETIC ROOM IMPULSE RESPONSES FOR SPEECH AUGMENTATION

​​

​​

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230105A00V9100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券