# How is it possible to Filter out a person's voice out of 100 of other voices?

So, I've just learned that the human voice is not a single sine wave its a bunch of unlimited Sine waves each having a different frequencies,

According to Wikipedia,

The voice consists of sound made by a human being using the vocal folds for talking, singing, laughing, crying, screaming, etc. Its frequency ranges from about 60 to 7000 Hz.

So if the human voice is a composite signals, it contains various frequencies ranges between 60Hz to 7KHz.

Suppose if there is a group of people singing the same song all together, each person has its own ranges of voice frequencies,

For example,

If a person A has the following frequencies, 100Hz , 250HZ 6KHz, 10Hz, 87Hz, 52Hz, 2KHz.......

and a Person B has the following, 217Hz1, 11Hz, 12Hz, 2323Hz, 839Hz, 4KHz, 100Hz, 10Hz.....

there must be so many frequencies which are similar in both the person A & B, like in above example the frequencies 100Hz and 10Hz are common between two persons.

I was watching a TV Show name "Fringe" where they filter out the particular Man's voice from an audio file while there were other people voice present there too.

So how does exactly they filter someone's voice out of the voice of 100s of people if there are so many frequencies common among all of them does it have to do something with the amplitudes of person's frequencies ?

• There are multiple ways this could be accomplished. You'll have to give more details of what method they used in the TV show. Oct 26, 2012 at 3:17
• TV shows make up lots of special effects. This was likely another one. Humans think they can do this, but it turns out that a lot of unconscious guessing is usually involved in that perception. Oct 26, 2012 at 5:06
• researcher.watson.ibm.com/researcher/view_project.php?id=2819 Oct 26, 2012 at 8:46

If the signal is recorded using just one microphone, you can use methods such as spectral subtraction. This method is more suitable for "constant" noise, like the noise from a fan or an idle engine. Other methods rely on statistics and perceptual models of speech. If the signal is recorded with several microphones, you can use blind source separation for separating the (speech) signals. As it stands today, you won't get perfect results. The typical end-result is always a trade off between "noise" and clarity of the speech signal of interest. More "noise" suppression --> more degradation of the signal of interest.

• Welcome to dsp.se :) I'd like to offer some friendly advice and encouragement: your first answer is good, congratulations, not everybody offers good answers on their first go. If you want to participate here more, let me give you some tips on how to make good answers great: they usually include links and references and/or a sentence or two of explanations on the proposed methods (and why they're a good fit for the problem). Great answers also make the most use of the formatting: there's lists and bullets, paragraphs and citations, and if it looks nice, it's easier to read. Have fun here! Oct 26, 2012 at 12:30
• what my concern is , everyone has some similar frequency how would we know then which frequency belongs to whom ? what is the general idea behind it ? Oct 26, 2012 at 13:44
• If you have two speakers talking at the same time, you wouldn't KNOW - but you could make a guess. When you do frequency analysis you will see that frequencies all across the spectrum getting hit, and you can't just take out a certain set of frequencies and say this is speaker1 and another set of frequencies, and say this is speaker2. If you want to decide who is speaking when, you will have to implement some code that makes that decision. Most likely it will be based on a model of the speakers (i.e. the people talking). Oct 26, 2012 at 16:01
• You can then use the decision to mute audio and/or do some clever filtering when other people (than the one you're interested in) are talking.. Oct 26, 2012 at 16:04
• so do you mean it is not possible to do so ? Oct 27, 2012 at 12:38

okay, lets say we have a sound file of two people talking.. if they were not talking in unison, it would be possible to separate the tonal element of their speech. it might be trickier to separate the noise elements of their speech (ssss or fffff sounds), but again if they were not speaking in unison it might be possible. this would be much easier to do if we could perform spectral analysis on sound without losing the phase information.

basically, spectral analysis takes a waveform (sound as single wave or line) and separates all the individual tones so you can see them from low to high and left to right in time. when doing this, most of the information showing the rise and fall of the single waveform is lost. if we could preserve the phase information, this would be much easier because all individual component frequencies of one voice would be harmonically related to each other, thus their phase would line up.

at present, i don't know of any algorithm that achieves this, but i believe it to be theoretically possible. i remember reading some article about melodyne's creater peter neubäcker working on a way to do this, so that two singers singing together could be separated, but i don't know how i would find this article again