DSPRelated.com
Forums

wav file splitter

Started by cetintozkoparan July 9, 2008
Hi all,

I have a mixed wav file is consist of different voices. For example, a
person is speaking and at the same time, there is playing a song on
the background of speaker. I want to split this two different voices
from this wav file and i want to have either song voice or speaker
voice as different wav files. I tried lot's of ways like fft, low and
high pass filters and so on, but i was not successful. Any one can
help me?
Hello,

> I have a mixed wav file is consist of different voices. For example, a
> person is speaking and at the same time, there is playing a song on
> the background of speaker. I want to split this two different voices
> from this wav file and i want to have either song voice or speaker
> voice as different wav files. I tried lot's of ways like fft, low and
> high pass filters and so on, but i was not successful. Any one can
> help me?

If you have one of the voices "isolated" on another wav (it doesn't matter
if it has the same signal level of that on the "mixed" wav), you can
*adaptively* remove it.

One popular adaptive filtering algorithm is LMS (least mean squares). As an
example of its application, the most common one is eco cancellation on
hands-free telephones (to remove your own voice's echo when using the
speaker).

Regards,
Mercedes.
cetintozkoparan wrote:

> I have a mixed wav file is consist of different voices. For example, a
> person is speaking and at the same time, there is playing a song on
> the background of speaker. I want to split this two different voices
> from this wav file and i want to have either song voice or speaker
> voice as different wav files. I tried lot's of ways like fft, low and
> high pass filters and so on, but i was not successful. Any one can
> help me?

What you are trying to do is called Blind Source Separation. With highly
contrived test cases it is, to a certain extent, possible, but for the
general case it is not.

Erik
--
-----------------------------
Erik de Castro Lopo
-----------------------------
"Linux everywhere pretty much eliminates the need for Java everywhere"
-- Bruce Ide in letter to LWN editors
Thank you for your replies. Firstly, i want to do this: I can do fast fourier transform but, how can i compute this fft frequency? i am not doing good. For example, Is there a silence in a wav file in first 10 second. If there
is silence, magnitude is low, I want to print "in ten
seconds, there is no noise".After, if i want, i crop this
silence. Or somebody is talking between 10. and 20. seconds.
I want to print "There is noise between 10. and 20. seconds"

In conclusion, i want to do this. I want to progress gradually.
Have you any idea and sample about processing fft?