一个简单的python室内声学和音频处理框架。
pyroomacoustics的Python项目详细描述
摘要
热声学是一个旨在快速发展的软件包。 以及音频阵列处理算法的测试。包裹的内容 可分为三个主要部分:
- 直观的python面向对象界面,可快速构建不同的模拟场景,包括二维和三维房间中的多个声源和麦克风;
- 快速实现通用多面体房间的图像源模型,有效地生成房间脉冲响应并模拟源与接收器之间的传播;
- stft、波束形成、测向、自适应滤波、信源分离和单信道去噪等常用算法的参考实现。 < > >
- 凸面和非凸面房间
- 二维/三维房间
这些组件一起形成一个包,有可能加快上市时间 通过显著减少 绩效评估步骤。请参阅本笔记本 用于演示此软件包的不同组件。
室内声学模拟
考虑以下情况。
< Buff行情>例如,假设你想制作一部犯罪广播剧 碰巧,根据编剧的说法,故事情节必须达到高潮 在一个恶魔般的群体中,很快就堕落成一场激烈的枪战,所有的一切都发生了 就在牛津高混响声环境的圣坛周围 基督教堂大教堂。为了确保它听起来是真实的,你问 基督教堂请求允许在教堂内记录最后一幕,但是 不知怎的,他不相信你作品的艺术价值,就拒绝了 给你许可。但在传统的录音室里录下来,这一幕听起来很平淡。 那你怎么办?
-施努普、内尔肯和金,《听觉神经科学》,2010年。
面对这种困难情况, 热声学 可以通过模拟节省时间 基督教堂的环境!
包装的核心是一个房间脉冲响应(RIR)发生器,基于 可以处理的图像源模型
纯python实现和c加速器都包含在 速度和兼容性。
这个包的哲学是抽象出 使用面向对象编程方法的实验。每一个元素 使用类表示,并且可以通过组合 这些元素就像在真正的实验中一样。
假设我们要模拟一个使用线性的延迟和和波束形成器 在一个只有一个鞋盒形状的房间内设置四个麦克风的阵列 音源。首先,我们创建一个房间对象,在其中添加一个麦克风 数组对象和声源对象。然后,room对象有方法 计算源和接收器之间的RIR。波束形成器CT随后延伸 麦克风阵列类,有不同的方法计算权重, 示例延迟和和权重。请参见下面的示例了解 代码看起来像。
room 类还允许处理源发出的声音样本, 有效地模拟声源和麦克风之间的声音传播。 在构成波束形成器的麦克风的输入端,一个stft(短时间 fourier transform)引擎允许通过 波束形成器并评估输出。