I want to separate 2 or more voices from one audio file,
is there any software to this ?

I have done some googling and seen that the answer is NO in most cases.

But I think at least there should be a way to see different frequencies (just like waveforms) and edit those manually ?

I use audacity for editing audio occasionally but don't know if it can do this ?

migrated from avp.stackexchange.com Jan 24 '14 at 12:01

This question came from our site for engineers, producers, editors, and enthusiasts spanning the fields of video, and media creation.

  • 1
    Well, Google is not lying. If you'd like to see if your particular case could be a YES, perhaps you could post an example (via Soundcloud) in your question. – JoshP Dec 4 '12 at 15:38
  • You could use an unsupervised machine learning algorithm. I am going to try this, I'll let you know how it goes. – Valentine Bondar Oct 3 '16 at 9:03

Yes, it is possible, but it isn't easy.

There are a number of free tools for editing audio in the frequency domain. I haven't had much luck isolating specific sounds with them, but I have been able to do some sonic manipulation that wasn't possible with traiditional audio editors.

The latest version of Melodyne is supposed to be able to pick out individual instruments and notes from chords. I haven't used it myself, and it is fairly expensive. But professionals who have used it seem to swear by it.

  • 2
    +1 for Melodyne (and its DNA technology), although it doesn't work so well with voices as with instruments. Worth a shot though. – Ken Fyrstenberg Dec 4 '12 at 20:21
  • That makes sense. Spectrally complex sounds are much harder to isolate than spectrally compact sounds. – ObscureRobot Dec 4 '12 at 21:29
  • 2
    +1 for Melodyne. I have used this on a number of classical recordings and it works very well - you can pick out individual instruments at individual pitches and then manipulate the pitch of those isolated notes. It's indispensable. – Mark Dec 1 '16 at 9:34

Take "no" for an answer. (-:

If the voices occupy distinct frequency ranges you might be able to use bandpass filters to separate them. But this is highly unlikely, as most voices have most of their ranges in common.

Switch Audacity to FFT view to see where the voices fall in the audio spectrum.


NO. There is no practical way of doing this with technology that is currently known.

If there were, Hollywood wouldn't be spending millions of dollars (and weeks of expensive actor time) dubbing dialog tracks for movies.


To sum up : in 90-95% it is not possible, but in situations where the song has also an instrumental (identical to the song - by identical, i mean the actual song parts without voices), then, all you have to do is, subtract the instrumental from the song (you may have to do it in segments). This is home some acapellas are made, if I am not mistaken.

After writing this I found a few things that might be of interest: http://www.crazypellas.net/forum-support-and-feedback-86/tutorial-how-to-make-diy-acapellas-6175/ (THE PHASE CANCELLATION METHOD is mentioned by me, above)


Deep learning solves the cocktail problem. https://www.technologyreview.com/s/537101/deep-learning-machine-solves-the-cocktail-party-problem/

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

  • Could you please add some details as to how the link answers the question? As it is now, if the link goes dead, this will no longer be an answer. – AJ Henderson Sep 29 '17 at 22:25

Using machine learning unsupervised algorithms, cocktail problem can be solve. Unsupervised algorithms takes different feature of the input into account and cluster into various meaningful group. This technique can be used to separated mixed voices into different group. Below is the code that can be used in matlab to separate mixed audio into separate audio files. [W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');

You can also implement K-Means algorithm in python or R to get this work done. However, you need to check how to convert audio files into matrix of bits that can be given as input to this algorithm.

Your Answer

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