Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iPhone SDK: How to record voices with ambient noise suppression?

Can anyone point me in the right direction on how I would minimize ambient noise while recording someone speaking using the iPhone SDK Core Audio? I'm guessing a band-pass filter that eliminates any frequencies above and below the human vocal range might work. I have no idea how I would implement band filters on audio in the SDK though. The optimum solution would be one that eliminates the noise from the stream before it is written to memory/disk.

like image 660
memmons Avatar asked Feb 26 '10 19:02

memmons


2 Answers

You would need to implement an adaptive filter and a voice activity detector. In periods where there is no speech you would collect ambient noise and use this to drive the adaptive filter.

like image 121
Paul R Avatar answered Sep 19 '22 17:09

Paul R


Have a search for "spectral subtraction" which a technique of analyzing a sample of what you're calling background noise, and then subtracting it from the the regular signal. Yes, you will always get some artifacts. It's a tradeoff.

like image 30
Alex Avatar answered Sep 19 '22 17:09

Alex