| import os |
| import gradio as gr |
| from scipy.io.wavfile import write |
|
|
|
|
| def inference(audio): |
| os.makedirs("out", exist_ok=True) |
| write('test.wav', audio[0], audio[1]) |
| os.system("python3 -m demucs.separate -n htdemucs_6s -d cpu test.wav -o out") |
| return "./out/htdemucs_6s/test/vocals.wav","./out/htdemucs_6s/test/guitar.wav","./out/htdemucs_6s/test/bass.wav",\ |
| "./out/htdemucs_6s/test/drums.wav","./out/htdemucs_6s/test/piano.wav","./out/htdemucs_6s/test/other.wav" |
| |
| title = "Demucs" |
| description = "Forked from here https://huggingface.co/spaces/akhaliq/demucs/ then updated demucs source to bleeding edge and switched model to demucs_6s for more tracks. | Gradio demo for Demucs: Music Source Separation in the Waveform Domain. To use it, simply upload your audio, or click one of the examples to load them. Read more at the links below." |
| article = "<p style='text-align: center'><a href='https://arxiv.org/abs/1911.13254' target='_blank'>Music Source Separation in the Waveform Domain</a> | <a href='https://github.com/facebookresearch/demucs' target='_blank'>Github Repo</a></p>" |
|
|
| examples=[['test.mp3']] |
| gr.Interface( |
| inference, |
| gr.inputs.Audio(type="numpy", label="Input"), |
| [gr.outputs.Audio(type="file", label="Vocals"),gr.outputs.Audio(type="file", label="Guitar"),gr.outputs.Audio(type="file", label="Bass"),gr.outputs.Audio(type="file", label="Drums"),gr.outputs.Audio(type="file", label="Piano"),gr.outputs.Audio(type="file", label="Other")], |
| title=title, |
| description=description, |
| article=article, |
| examples=examples |
| ).launch(enable_queue=True) |