Moibe's picture
Fix
7f07865
import os
import gradio as gr
from scipy.io.wavfile import write
import spaces
import demucs.separate
@spaces.GPU()
def inference(audio):
os.makedirs("out", exist_ok=True)
write('test.wav', audio[0], audio[1])
demucs.separate.main(["-n", "htdemucs", "--two-stems=vocals", "test.wav", "-o", "out"])
return "./out/htdemucs/test/vocals.wav", "./out/htdemucs/test/no_vocals.wav"
title = "Demucs Music Source Separation (v4)"
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> | <a href='https://www.thafx.com' target='_blank'>//THAFX</a></p>"
with gr.Blocks(title=title) as demo:
gr.Markdown(f"# {title}")
with gr.Row():
audio_input = gr.Audio(type="numpy", label="Input")
with gr.Row():
vocals_output = gr.Audio(type="filepath", label="Vocals")
no_vocals_output = gr.Audio(type="filepath", label="No Vocals / Instrumental")
with gr.Row():
submit_btn = gr.Button("Submit", variant="primary")
clear_btn = gr.ClearButton([audio_input, vocals_output, no_vocals_output])
submit_btn.click(fn=inference, inputs=audio_input, outputs=[vocals_output, no_vocals_output], api_name="predict")
gr.HTML(article)
demo.queue().launch()