Pyroomacoustics: A Python Package for Audio Room Simulation and Array Processing Algorithms

We present pyroomacoustics, a software package aimed at the rapid development and testing of audio array processing algorithms. The content of the package can be divided into three main components: an intuitive Python object-oriented interface to quickly construct different simulation scenarios involving multiple sound sources and microphones in 2D and 3D rooms; a fast C implementation of the image source model for general polyhedral rooms to efficiently generate room impulse responses and simulate the propagation between sources and receivers; and finally, reference implementations of popular algorithms for beamforming, direction finding, and adaptive filtering. Together, they form a package with the potential to speed up the time to market of new algorithms by significantly reducing the implementation overhead in the performance evaluation step.

[1]  Ivan Dokmanic,et al.  Raking the Cocktail Party , 2015, IEEE Journal of Selected Topics in Signal Processing.

[2]  Martin Vetterli,et al.  Acoustic echoes reveal room shape , 2013, Proceedings of the National Academy of Sciences.

[3]  R. O. Schmidt,et al.  Multiple emitter location and signal Parameter estimation , 1986 .

[4]  James H. McClellan,et al.  TOPS: new DOA estimator for wideband signals , 2006, IEEE Transactions on Signal Processing.

[5]  Travis E. Oliphant,et al.  Python for Scientific Computing , 2007, Computing in Science & Engineering.

[6]  J. Capon High-resolution frequency-wavenumber spectrum analysis , 1969 .

[7]  Walter Kellermann,et al.  TRINICON: a versatile framework for multichannel blind signal processing , 2004, 2004 IEEE International Conference on Acoustics, Speech, and Signal Processing.

[8]  Gaël Varoquaux,et al.  Scikit-learn: Machine Learning in Python , 2011, J. Mach. Learn. Res..

[9]  Hong Wang,et al.  Coherent signal-subspace processing for the detection and estimation of angles of arrival of multiple wide-band sources , 1985, IEEE Trans. Acoust. Speech Signal Process..

[10]  Greg Lindstrom,et al.  Programming with Python , 2005, IT Professional.

[11]  Jont B. Allen,et al.  Image method for efficiently simulating small‐room acoustics , 1976 .

[12]  Mark Lutz,et al.  Programming Python , 1996 .

[13]  Joseph H. DiBiase A High-Accuracy, Low-Latency Technique for Talker Localization in Reverberant Environments Using Microphone Arrays , 2000 .

[14]  J. Borish Extension of the image model to arbitrary polyhedra , 1984 .

[15]  S. Haykin,et al.  Adaptive Filter Theory , 1986 .

[16]  Steven G. Johnson,et al.  The Design and Implementation of FFTW3 , 2005, Proceedings of the IEEE.

[17]  Raffaele Parisi,et al.  WAVES: weighted average of signal subspaces for robust wideband direction finding , 2001, IEEE Trans. Signal Process..