The original mixture is divided into 2 segments:
Here's the mixture audio.
from audio_embed import utilities
utilities.apply_style()
mix = AudioSignal('audio/mix.wav')
utilities.audio(mix)
from nussl import AlgorithmSwitcher, AudioSignal, RepetSim, Melodia, Projet
separated = {'bg':{}, 'fg':{}}
def separate(mix, approach):
if approach.__name__ == 'Projet':
s = approach(mix, num_sources=2, num_iterations=100)
separated['projet'] = s.run()
else:
s = approach(mix)
s.high_pass_cutoff = 0
s.run()
separated['bg'][approach.__name__], separated['fg'][approach.__name__] = s.make_audio_signals()
approaches = [Melodia, RepetSim, Projet]
for a in approaches:
separate(mix, a)
* The published MELODIA is a predominant pitch tracker, not a source separation algorithm, but we use it to build a harmonic mask to separate out the vocals based on the pitch track.
print 'PROJET estimate'
utilities.audio(separated['projet'][1])
print 'REPET-SIM estimate'
utilities.audio(separated['fg']['RepetSim'])
print 'MELODIA estimate'
utilities.audio(separated['fg']['Melodia'])