Files changed (1) hide show
  1. app.py +29 -17
app.py CHANGED
@@ -2,25 +2,37 @@ import os
2
  import gradio as gr
3
  from scipy.io.wavfile import write
4
 
5
-
6
  def inference(audio):
7
- os.makedirs("out", exist_ok=True)
8
- write('test.wav', audio[0], audio[1])
9
- os.system("python3 -m demucs.separate -n mdx_extra_q -d cpu test.wav -o out")
10
- return "./out/mdx_extra_q/test/vocals.wav","./out/mdx_extra_q/test/bass.wav",\
11
- "./out/mdx_extra_q/test/drums.wav","./out/mdx_extra_q/test/other.wav"
12
-
 
 
13
  title = "Demucs"
14
  description = "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."
15
  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>"
16
 
17
- examples=[['test.mp3']]
18
- gr.Interface(
19
- inference,
20
- gr.inputs.Audio(type="numpy", label="Input"),
21
- [gr.outputs.Audio(type="filepath", label="Vocals"),gr.outputs.Audio(type="filepath", label="Bass"),gr.outputs.Audio(type="filepath", label="Drums"),gr.outputs.Audio(type="filepath", label="Other")],
22
- title=title,
23
- description=description,
24
- article=article,
25
- examples=examples
26
- ).launch(enable_queue=True)
 
 
 
 
 
 
 
 
 
 
 
 
2
  import gradio as gr
3
  from scipy.io.wavfile import write
4
 
 
5
  def inference(audio):
6
+ os.makedirs("out", exist_ok=True)
7
+ write('test.wav', audio[0], audio[1])
8
+ os.system("python3 -m demucs.separate -n mdx_extra_q -d cpu test.wav -o out")
9
+ return "./out/mdx_extra_q/test/vocals.wav", \
10
+ "./out/mdx_extra_q/test/bass.wav", \
11
+ "./out/mdx_extra_q/test/drums.wav", \
12
+ "./out/mdx_extra_q/test/other.wav"
13
+
14
  title = "Demucs"
15
  description = "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."
16
  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>"
17
 
18
+ examples = [['test.mp3']]
19
+
20
+ with gr.Blocks() as demo:
21
+ gr.Markdown(f"## {title}")
22
+ gr.Markdown(description)
23
+ gr.Markdown(article)
24
+
25
+ with gr.Row():
26
+ with gr.Column():
27
+ audio_input = gr.Audio(label="Input Audio", type="numpy")
28
+ example_input = gr.Examples(examples=examples, inputs=audio_input)
29
+ submit_btn = gr.Button("Separate")
30
+ with gr.Column():
31
+ vocals_output = gr.Audio(label="Vocals")
32
+ bass_output = gr.Audio(label="Bass")
33
+ drums_output = gr.Audio(label="Drums")
34
+ other_output = gr.Audio(label="Other")
35
+
36
+ submit_btn.click(inference, inputs=audio_input, outputs=[vocals_output, bass_output, drums_output, other_output])
37
+
38
+ demo.launch()