# Acoustic measure of a specific room

I would like to make an acoustic measure of one room, so I can compare it with a acoustic measure of some other room. Then compare these data. So when I take an acoustic measure of the first room again, I could recognize that i am in the first room again. Next downside is that I would try to use my iPhone's microphone and the build speakers for that task. Is this even remotely possible?

Can please someone point me in the right direction.

• You could try estimating some acoustic room parameters, but probably not without making quite some noise first. Then again, a simple impulse response measurement will only get you so far, because it strongly depends on your position in the room. There are some invariants, like the band averaged frequency dependent decay times though. I think your question requires more details regarding the intended application. Nov 20, 2013 at 14:54
• I would use this application to determine in what room I'm located in that moment. By comparing to the previously collected data of all my rooms. Nov 20, 2013 at 15:51
• I've understood that much. But what are the constraints for that detection? Can you produce noise? Is the device held in a hand or will it rest in a pocket? Does it have to work all the time, or only on demand? How accurate does it have to be? How fast does it have to be? Does it have to work in noisy rooms too? Etc Nov 20, 2013 at 16:01

It sounds like you want your iPhone to be able to determine what room you are in by emitting some audio signal and listening to the response. You would like to train your iPhone by performing this "training" once in each room. After that, your phone will be able to periodically check which room it is in by comparing the current acoustic response with the list of known room responses.

I don't think that this is going to work. Hilmar's answer contains a great explanation of some of the nuances that you will run into. In general, I think there are only a few conditions under which you might expect results from such a system:

• In any given room, the phone must be in the same position and orientation as when it was trained on that room. Also, the room must be in a very similar state (doors/windows open vs. closed, etc.). I don't imagine that this is a practical solution if you are casually moving from room to room, and you want your phone to "know" what room you are in at any given time.
• Your phone is given an accurate acoustical model of the room such that it can identify the room at many locations. This approach is prohibitively difficult to train and calibrate, and may also prove to be computational impractical. Your probability of error will depend to a great degree on the acoustical similarities between the rooms. If you are trying to distinguish between two bedrooms of roughly the same size and shape, you may never achieve the result you are after.
• If each of the rooms is sufficiently different, you could hone in on certain parameters such as reverb time and reflection density. However, this is still much easier said than done unless we can also assume that the phone is in roughly the same position and orientation as when it was "trained" on that room.
• In summary, I don't think that you have posed an impossible problem, but it is most likely an impractical one for what you are trying to achieve.

Tricky problem. Any speaker to mic path in a room is actually a linear time invariant system so they can be fully described by impulse response or transfer function. However the transfer functions are very complicated (1000s of degrees of freedom) and vary tremendously with position in the room. The room is also a very effective de-correlator. Signals from the same speaker recorded at two different location will seem mostly uncorrelated.

You could try to use some statistical room acoustical properties: diffuse field power, reverb time, early decay time, reflection density, mean free path lengths etc. However, these are difficult to determine and not that much different between most rooms in the same house.

So unless you can deploy some significant constraints (control the excitation, control location of source and microphone), this will be very hard to do.