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

2

10

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.

Decasyllabic answered 26/2, 2010 at 19:8 Comment(2)
Noise, by its random nature, is inherently a difficult thing to remove from audio or any other signal. While you can remove the apparent noise in a recording, it will affect the signal in unpredictable ways. Consider all the archivists and recording engineers and their constant battle with noise.Gumbotil
Have you been able to reduce background noise while recording?if so please give some ideas.Massey
M
8

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.

Monoicous answered 26/2, 2010 at 20:49 Comment(2)
R-->can you provide me any codes for implementing the adaptive filter algorithm?Massey
@Warrior: adaptive filters are non-trivial to implement - I suggest you read a good book on the subject, e.g . amazon.com/Adaptive-Filter-Theory-Simon-Haykin/dp/0130901261 or failing that at least Google for LMS etc and learn some of the theory before trying an implementationMonoicous
P
2

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.

Plymouth answered 14/4, 2010 at 16:27 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.