I would like to know how to determine (using any programming language) whether a given audio file contains noise, such as of people talking in background, how to remove the noise, and how to subsequently compare the cleaned file with the original file.

The input to the program will be a sound file containing a conversation between two people and the program should be able to remove the noise from that file and should output only the conversation between the two people.

  • $\begingroup$ What kind of noise? $\endgroup$ – geometrikal Feb 20 '13 at 6:33
  • $\begingroup$ @geometrikal, I am supposed to write a program which will remove all kind of noise. I have updated my question to give more information. $\endgroup$ – Shekhar Feb 20 '13 at 6:39
  • $\begingroup$ In DSP, usually 'to remove noise' means removing AWGN, or maybe spurious tones - so for your application, you just want to be able to segment out a users main voice, from other voices, is that correct? You dont care about AWGN at all? $\endgroup$ – Spacey Feb 20 '13 at 13:38
  • $\begingroup$ @Mohammad, sorry for my lack of knowledge as I am new into DSP. I do not know much about AWGN but I think I have to remove AWGN also in order to get clear speech output. $\endgroup$ – Shekhar Feb 21 '13 at 5:22
  • 1
    $\begingroup$ You might start by researching the Wiener filter. $\endgroup$ – user2718 Feb 21 '13 at 15:32

I think what you're attempting to do is a case of blind source separation (check Wikipedia). There are many techniques to solve this kind of problem, maybe you could check those on the Wikipedia and use the one that fits your needs best.

Particularly, last year one of my teachers showed us a demo of the ICA algorithm, and we got to play round with it in MATLAB. It seemed really effective, and there's a research group that even created this MATLAB toolbox for the ICA algorithm. Here you can check a simple demo (called cocktail party problem) of how ICA works and how effective it is.

Since you say you're new to DSP, I'm not sure if ICA or the other techniques would be too advanced for you, but maybe this will put you in the right direction. Good luck.

| improve this answer | |
  • $\begingroup$ I believe ICA requires independent recordings of the two sources, with different mixes in each. There's no mention of this in the question. $\endgroup$ – endolith Mar 4 '13 at 21:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.