I would like to build a sound level meter/microphone that can detect low sound levels. My motive: I've got a noisy neighbor, which keeps talking (or shouting) continuously at night, often till 7am. In my mind there are 2 possible scenarios: A) I'm overly sensitive for this sound, and I'm just BS'ing about it. B) the apartment I'm living in is very noisy (even though it's only 15 years old with modern concrete construction), and I need data to convince my land lord to do something about the noise isolation (be it at the neighbour, the walls/windows/floors/etc.).
My intuition says scenario B is more likely, since I've heard some neighbors stories about this person, however, they don't want to deal with it any further. I also can't find much common ground to reason on with this neighbor. Unfortunately, authorities have a hard time detecting the problem, since the noise is very intermittent. Also at the end of the day, the police can't forbid someone to talk at night (shouting is something else, of course).. That brings me back to quantifying the actual sound level, and if it's too high, I could bounce the ball back to my house lord to do something about it.
The noise regulations in my area set a maximum sound level of 40dBA peak and 25dBA long-term average, both indoors. The 25dBA is a figure I'm targeting to measure for a long period of time. This seems far below the noise floor of mobile phones or a studio mic (I've a Blue Snowball), probably the audio ADC's FS + dynamic range (16-bit / 96dB) can't even represent levels as low as 20 or 25dBA.
I've had a look for COTS sound level meters, and most affordable meters have a minimum of 30dBA which they can measure. The units I found that go down to 20dBA cost far upwards of 1k$. I could also consult a company to do sound measurements.. but considering the prolonged night time and intermittency (they could setup their sound equipment for the night, and then it so happens the neighbor is quiet that night).. I think that would be very expensive.
In case my regular options of dealing with the noise are exhausted, I'm looking if I can measure sound levels myself. If possible I would also like to record the sound so I can 'show' what kind of noise I'm talking about. My plan would be to 'calibrate' the DIY mic with a COTS sound level meter. For example, put them close together pointing at the same sound source, and then note down how much -xx dBFS equates to yy dBA on the COTS sound level meter. I assume the scaling should be fairly linear, assuming neither sensors are operated close to their noise floor, of course.
To build something quickly I'm intuitively drawn to digital MEMS microphones and interface them with e.g. a STM32F4 discovery, since that board has USB microphone code examples readily available. I found the
S2GOMEMSMICIM69DTOBO1 evaluation board from Infineon, which outputs I2S so should be an almost "drop in" replacement to the onboard MEMS mic of the F4 Discovery.
That eval board has 2x IM69D130 MEMS mics plus a PDM to I2S converter. The mics should have a SNR of 69dB @ 1kHz. If I'm correct, assuming I can get the mic to operate at this spec, that should put the noise floor right at 25dBA. I imagine that if I would get 2 of these boards on 2 I2s inputs, average all 4 mics together to a single sound stream, I could increase the SNR by 3dB, putting the noise floor at 22dBA.
I must confess I'm quite ignorant on audio gear quality, therefore I'm not very confident when the noisefloor is good enough. 22dBA noise floor to detect 25dBA noise seems a bit sketchy at best. I could average out more mics,
as demonstrated in this old Appnote from Analog Devices (note: not interested in the beamforming/constant group delay circuit of that appnote). However, going up to 16 digital mics is getting a tad silly.. In that case I would be better off with (multiple) analog condenser/MEMS mic and an I2S ADC. E.g. the ICS-40730 should have a 74dB SNR. If I get 4 of those averaged (similarly done as the appnote shows), that should put the sound noisefloor at 17dBA.. assuming a noise-free amplifier stage (which doesn't exist, and a NF of 3dB seems also very low for one).
Either way, perhaps the next problem is also how to power the circuit. PCs are noisy.. USB is noisy.. MCUs are noisy. So I assume I won't achieve the promised SNR figures on those noisy power rails. I suppose operating on battery power instead of USB is needed (just like the Analog appnote), perhaps even 2 battery banks for analog and digital parts. However without USB I would need to log audio data to a WAV file on a SD card instead (24-bit mono @ 48kHz = 141kiB/s of data, which would fit 12+ hrs of data on a 8GB SD card).
Another problem I foresee is the accuracy of the calibration. I'm sure that the dBFS <--> dBA mapping would stay fairly linear with a specific calibration sound or tone, however, I'm unsure how much error is introduced for other sound profiles due to the A-weighting. I assume the mic output data is proportional to SPL, and that the A-weighting needs to be applied in order to output a meaningful dBA measurement. At least, this is the qualitative reasoning I'm currently at, however I haven't found much quantitative work on this concept (e.g. design examples/books/articles) that actually showcase the A-weighting and dBA measurement in action. Does anyone happen to know where this is showcased?
Can anyone fault my reasoning or have additional/better ideas? Or perhaps other meters I haven't stumbled upon that do the job but don't break the bank..