I have several audio files of a song, performed in various languages, with the same backing. I want to extract the vocals from one of the audio files. However, the obvious approach (getting sample values from all the files, selecting one with least binary value, then writing it into the output file, then subtracting values out of this new file out of the original file) produces a file filled with noise (probably because of desynchronization between them). Could somebody tell me if there is another way? (Solutions using programming in Python are preferred, as I could reuse them.)

  • 1
    1. Do you have the original song without vocals? 2. Are the files identical in length and with precise identical alignment of the backing music? Commented Aug 1, 2016 at 10:39
  • Duplicate question?
    – n00dles
    Commented Aug 3, 2016 at 3:57
  • 1
    @MarcW you're right it is pretty identical, only he wants the opposite - remove the vocals. I added an answer to that question, which may be interesting for you Danya02: sound.stackexchange.com/questions/38928/… Commented Aug 3, 2016 at 6:57
  • @MichaelHansenBuur Thanks for the answer, I actually had both questions in mind. Your method did work, but, since it isn't added as an answer here, I can't close the question.
    – Danya02
    Commented Aug 15, 2016 at 22:01
  • Well, since it is the opposite scenario I guess both questions has merit. I modified and added the answer here :-) Commented Aug 16, 2016 at 6:10

1 Answer 1


I don't think you'll find a method that completely removes the backing, but you may be able to reduce the volume enough for an acceptable result:

You simply put all the all the different versions on a track each in a multitrack program like Reaper, Cubase or Pro Tools. Make sure you precisely align the songs so the wave curves follow each other at sample level.

The outcome of this is that what is the same across the tracks, i.e. the music, is boosted and what differs, i.e. the vocals, is reduced. The more different versions you have the better.

Now you simply duplicate the track which you want to isolate the vocals from, and phase invert that and increase the gain to the point where the average music from the four other tracks cancels out the music in the fifth track.

You may need to route the four tracks to a group and reduce the volume of that instead of increasing the volume of the fifth as it may be hot already and cause clipping if you increase gain).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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