使用RIR

编程入门 行业动态 更新时间:2024-10-11 23:18:55

使用<a href=https://www.elefans.com/category/jswz/34/1682545.html style=RIR"/>

使用RIR

这里介绍一种使用近场的干净的音频生成(模拟)远场音频的方法。GitHub项目地址:RIR_Generator。

只介绍方法,要了解原理的请参考项目里的rir_generator.pdf文档。
平台:linux matlab

  • 首先把这个项目git clone到本地。
git clone .git
cd RIR-Generator
  • 将cpp文件编译成matlab可执行的文件
    由于算法的底层是用cpp实现的,不能直接用matlab调用,要先编译成可执行文件才行。幸运的是作者已经将编译matlab的代码准备好了。
    方法是,在终端打开matlab,直接输入,或者直接自己在linux里打开matlab软件:
matlab
  • 在matlab中cd到RIR-Generator/目录下(如果按照以上操作,当前目录就是),在matlab命令行输入以下代码并回车
mex rir_generator.cpp

即可得到rir_generator.mexa64文件,在matlab中可以直接调用这个文件。

(参考这里)

工具已经准备好了,现在来试一试这个工具的效果如何。

  • 从近场音频产生远场音频
    以example_1.m为例产生远场音频。

example_1.m的代码为

c = 340;                    % Sound velocity (m/s)
fs = 16000;                 % Sample frequency (samples/s)
r = [2 1.5 2];              % Receiver position [x y z] (m)
s = [2 3.5 2];              % Source position [x y z] (m)
L = [5 4 6];                % Room dimensions [x y z] (m)
beta = 0.4;                 % Reverberation time (s)
n = 4096;                   % Number of samplesh = rir_generator(c, fs, r, s, L, beta, n);

参数的解读请参考rir_generator.pdf文档的p11

修改一下代码,将干净的近场音频close_clean.wav生成远场音频。

c = 340;                    % Sound velocity (m/s)
fs = 16000;                 % Sample frequency (samples/s)
r = [2 1.5 2];              % Receiver position [x y z] (m)
s = [2 3.5 2];              % Source position [x y z] (m)
L = [5 4 6];                % Room dimensions [x y z] (m)
beta = 0.4;                 % Reverberation time (s)
n = 4096;                   % Number of samplesh = rir_generator(c, fs, r, s, L, beta, n);			% 计算转换矩阵
close_clean_wav = audioread('close_clean.wav');		% 读取近场干净音频
far_field_wav = fftfilt(h, close_clean_wav); 		% 产生远场音频
audiowrite('far_field.wav', far_field_wav, 16000);	% 保存为.wav文件
  • 效果
    近场音频:close_clean.wav

  产生的远场音频:far_field.wav


  为了对比,我将原近场音频进行复制压缩,和生成的远场音频进行对比。
  原始音频幅值压缩后:


  从频谱上看,用耳朵直接听,都可以感受到声音是远场的,包含了混响成分。
  当训练数据不够多时,可以用这种方法进行数据增广,或者当训练样本为近场,测试样本包含远场的时候,也可以这样扩增远场训练集。

致谢
  非常感谢原作者提供的宝贵资料,分享给更多人。原文链接为:

更多推荐

使用RIR

本文发布于:2024-02-11 18:20:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1682543.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:RIR

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!