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.
https://pyroomacoustics.readthedocs.io
MIT License
1.47k stars 433 forks source link

Equal beamforming outputs despite the different shapes of the rooms #323

Open Borknab opened 1 year ago

Borknab commented 1 year ago

Hello!

Thanks for your amazing work with the package! I am new to it, and I am currently trying to compute an output of a delay-and-sum beamformer in different rooms. Here are the two outputs I get for two different types of rooms (I made sure to make 2 isolated runs to avoid having a duplicate output for a different room type):

image

image

As can be noticed, beamformer's output is the same despite the different room structures. Is it to be expected? I would expect the room structure to influence the sound and its reflections, hence changing the output of the beamformer. Why is it not the case? Am I missing something?

fakufaku commented 1 year ago

Hi @Borknab , this looks correct.

The delay-and-sum beamformer depends only on the microphones and source relative locations, not on the room. The beampatterns will be the same. The sound, however, should be different.

Borknab commented 1 year ago

@fakufaku thanks a lot for your response, clear! Is it possible then to use some other kind of beamformer or DOA algorithm within the package that depend on the room geometry?

fakufaku commented 1 year ago

You could try rake_max_sinr_weights but to be honest this part of the package is not really maintained, so your mileage may vary... https://github.com/LCAV/pyroomacoustics/blob/master/pyroomacoustics/beamforming.py#L1077

You could also refer to examples/beamforming_time_domain.py for some time domain beamformers.