I am planning to compare two audio files. I have recorded two voices and compared them using cross correlation. Since the presence on background noise while recording the resulting correlation value is always near 0.5. If i give any recorded waves from internet, i am able to get the correct value. So how can i reduce the background noise from the recorded .wav file. If i come to know how to do it, then i will try to implement technically. Any basic ideas will be helpful for me to learn and apply it. Thanks.
|
|
I recommend you look at the software package Audacity. It's free open-source software, and it has a noise reducing algorithm/plugin. I wouldn't expect you could copy it straight from the source, but it might give you some ideas on how it's done. |
|||
|
|
|
Noise usually creeps up at various specific frequencies in audio, these frequencies change depending on the environment. Option 1 Option 2 |
|||
|
|
|
If by "background noise", you mean noise that has a wide bandwidth and is relatively stationary, then spectral subtraction should work quite well for you. This is the general technique that Audacity/Cool Edit use when they say "Noise Reduction". Spectral subtraction is a very google-friendly term if you're interested in more research. You take a sample of sound where there is no signal, and you create an FFT noise template from that. Then, you subtract that FFT noise template from the FFT of your signal + noise. Some algorithms get fancy and smooth the resulting frequency domain waveform before doing the inverse FFT. You have to be careful about how "strong" the reduction is, or you get these "underwater musical echoes". Sometimes it's better to do two "weak" passes than one "strong" pass. However if there's e.g. cars moving in the background this won't work. In such a case, you might want to look at crazier stuff like Wiener filters. |
|||
|
|