How can you filter out a person's voice from a group of people talking?

We have a sample of each person's voice from the group, and the sample of the entire group talking at once. Both samples are uploaded into matlab for analysis.

Is there a way to single out any one person's voice?

  • 2
    $\begingroup$ This seems more like a major graduate research project than a stack exchange question. $\endgroup$ – hotpaw2 Apr 18 '14 at 3:25


Using several microphones (at least 2 like our ears) may help. There will be some constant delay in the time-domain between the recordings from different microphones. This will help you to amplify voice of a single person, because no 2 persons can occupy the same space :-)

To detect this time-domain delay, you have to sample at very high (as high as needed, high sampling rate helps on correct output) rates. You have to (sort of) scan your surround. Then you have to amplify the voice from one person and treat others as background noise. You may have to do some trial/error phase for this. Then you have to repeat this process for each individual...

Hope this helps, I have not implemented such a system, but thinking of doing so...

  • 2
    $\begingroup$ May be the term microphone array is applicable here. If so, it can help searching for existing researchs. $\endgroup$ – werediver Apr 18 '14 at 9:07

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.