Microphone arrays have been used for many audio signal processing tasks such as source localization and speech enhancement. In an ideal cenario, these microphones are fully synchronized, arriving at the same time at a processing unit which is able to gather and the signals. In practical cenarios, the microphones may be connected using different networks (WiFi versus Ethernet, for example). Furthermore, these devices may have different sampling rates.
This project extends the functionality of the pyroomacoustics package to simulate such asynchronous microphone networks. It allows microphones to have:
- Different latencies with respect to the fusion centre (10ms and 100ms, for example)
- Sampling rate offsets (16.000Hz vs 16.001Hz, for example)
Another important addition is the option to use measured impulse responses instead of simulating them using the image source model.
pip install --extra-index-url https://test.pypi.org/simple/ pyroomasync
- Optional: Set up and activate a virtual environment such as virtualenvwrapper
- Install the requirements using
pip install -r requirements.txt
(Linux and Mac) orpy -m pip install requirements.txt
(Windows)
After installing, you can run experiments by running the command python -m pyroomasync path/to/experiment_config/ output_dir
or py -m pyroomasync path/to/experiment_config/ output_dir
The examples
directory contains examples on running simulations using the command line interface, as well as a Notebook showing the programming interface. Please see the README file located in that directory for more information.
A part of this code is covered using unit tests. In order to run them, run make pytest
or pytest tests
(Linux or Mac) or py -m pytest tests
(Windows).
This project has received funding from the European Union’s Horizon 2020 research and innovation programme under the Marie Skłodowska-Curie grant agreement No 956369
Speech samples used were taken from the VCTK dataset created at the University of Edinburgh.
Room impulse responses were taken from the Ace Challenge Corpus