LCAV/pyroomacoustics

Pyroomacoustics is a package for audio signal processing for indoor applications. It was developed as a fast prototyping platform for beamforming algorithms in indoor scenarios.

What it solves

Pyroomacoustics provides a way to rapidly develop and test audio array processing algorithms without needing to record in real-world physical environments. It allows users to simulate how sound propagates in 2D and 3D rooms, creating authentic acoustic environments (like cathedrals or small rooms) to generate synthetic data for algorithm evaluation.

How it works

The package uses an object-oriented Python interface to define simulation scenarios. Users create a Room object and add sound sources and microphone arrays to it. The core simulation engine is implemented in C++ for performance, utilizing the image source model and ray tracing to calculate Room Impulse Responses (RIRs) for convex and non-convex polyhedral rooms.

Who it’s for

It is designed for researchers and developers working on audio signal processing, specifically those focusing on microphone array processing, source separation, and acoustic simulation.

Highlights

  • Comprehensive Simulation: Supports 2D and 3D simulations of sound propagation in various room shapes.
  • Reference Implementations: Includes built-in algorithms for beamforming, direction of arrival (DOA) finding, adaptive filtering, blind source separation, and single-channel denoising.
  • C++ Acceleration: Core modules are written in C++ to ensure efficient generation of room impulse responses.
  • Dataset Wrappers: Provides easy loading for popular speech corpora such as CMU ARCTIC, TIMIT, and Google Speech Commands.

Related

  • Project
  • Project
  • Project
  • Project
  • Project