一个简单的python室内声学和音频处理框架。

pyroomacoustics的Python项目详细描述


摘要

热声学是一个旨在快速发展的软件包。 以及音频阵列处理算法的测试。包裹的内容 可分为三个主要部分:

  1. 直观的python面向对象界面,可快速构建不同的模拟场景,包括二维和三维房间中的多个声源和麦克风;
  2. 快速实现通用多面体房间的图像源模型,有效地生成房间脉冲响应并模拟源与接收器之间的传播;
  3. stft、波束形成、测向、自适应滤波、信源分离和单信道去噪等常用算法的参考实现。
  4. < > >

    这些组件一起形成一个包,有可能加快上市时间 通过显著减少 绩效评估步骤。请参阅本笔记本 用于演示此软件包的不同组件。

    室内声学模拟

    考虑以下情况。

    < Buff行情>

    例如,假设你想制作一部犯罪广播剧 碰巧,根据编剧的说法,故事情节必须达到高潮 在一个恶魔般的群体中,很快就堕落成一场激烈的枪战,所有的一切都发生了 就在牛津高混响声环境的圣坛周围 基督教堂大教堂。为了确保它听起来是真实的,你问 基督教堂请求允许在教堂内记录最后一幕,但是 不知怎的,他不相信你作品的艺术价值,就拒绝了 给你许可。但在传统的录音室里录下来,这一幕听起来很平淡。 那你怎么办?

    -施努普、内尔肯和金,《听觉神经科学》,2010年。

    面对这种困难情况, 热声学 可以通过模拟节省时间 基督教堂的环境!

    包装的核心是一个房间脉冲响应(RIR)发生器,基于 可以处理的图像源模型

    • 凸面和非凸面房间
    • 二维/三维房间

    纯python实现和c加速器都包含在 速度和兼容性。

    这个包的哲学是抽象出 使用面向对象编程方法的实验。每一个元素 使用类表示,并且可以通过组合 这些元素就像在真正的实验中一样。

    假设我们要模拟一个使用线性的延迟和和波束形成器 在一个只有一个鞋盒形状的房间内设置四个麦克风的阵列 音源。首先,我们创建一个房间对象,在其中添加一个麦克风 数组对象和声源对象。然后,room对象有方法 计算源和接收器之间的RIR。波束形成器CT随后延伸 麦克风阵列类,有不同的方法计算权重, 示例延迟和和权重。请参见下面的示例了解 代码看起来像。

    room 类还允许处理源发出的声音样本, 有效地模拟声源和麦克风之间的声音传播。 在构成波束形成器的麦克风的输入端,一个stft(短时间 fourier transform)引擎允许通过 波束形成器并评估输出。

    参考实施

    除了核心图像源模型模拟之外, 热声学 还包含一些流行音频处理的参考实现 用于

    我们使用面向对象的方法来抽象 特定的算法,使它们易于比较。每个算法都可以通过可选参数进行调整。我们试图 为调整参数预先设置值,以便使用默认值运行 通常会产生合理的结果。

    数据集

    为了简化数据集的使用,我们提供了一些包装器 允许快速加载和排序一些流行的语音语料库。在 一旦我们支持以下内容。

    有关详细信息,请参见 文档

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何刷新gradle任务的目标   java JavaFX折线图在高值时显示为空   如何在java中使用http put请求向云组织发送本地文件?   java如何将Spring Security BadCredentialsException映射到HTTP 401代码   java JasperReports:UTF8中的一些符号在导出为PDF后丢失   java使用正则表达式替换不在括号中的逗号   使用Jackson库编辑JsonArray   在Java中解析逗号分隔的文本   java寻求正确的代码   action Java如何在actionperform中调用paint   java Hibernate分离条件和   java Spring:如何针对多个数据源测试同一个类?   java onAccessibilityEvent操作\u单击不工作   找不到java Android WebView程序包R/程序包Android。支持v7。应用程序   java在自定义ArrayList中仅添加一次项   Java多部分RSA解密   java当使用生成器模式时,我们如何添加额外的构造函数