Rezuwan commited on
Commit
22eb159
·
verified ·
1 Parent(s): 85f9ccb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -20
app.py CHANGED
@@ -1,39 +1,40 @@
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
  from spleeter.separator import Separator
3
  from spleeter.audio.adapter import AudioAdapter
4
  import tempfile
5
- import os
6
 
7
  MODEL_PATH = "pretrained_models/2stems"
8
-
9
  separator = Separator(MODEL_PATH)
10
  audio_loader = AudioAdapter.default()
11
 
12
- def separate_audio(audio_file):
13
- if audio_file is None:
14
- return None, None, "Upload an audio file."
15
 
 
16
  waveform, sample_rate = audio_loader.load(audio_file)
17
- prediction = separator.separate(waveform)
 
 
 
 
18
 
19
- tmpdir = tempfile.mkdtemp()
20
- vocals_path = os.path.join(tmpdir, "vocals.wav")
21
- instr_path = os.path.join(tmpdir, "instrumental.wav")
22
 
23
- audio_loader.save(vocals_path, prediction["vocals"], sample_rate)
24
- audio_loader.save(instr_path, prediction["accompaniment"], sample_rate)
25
 
26
- return vocals_path, instr_path, "Done!"
27
 
28
  iface = gr.Interface(
29
- fn=separate_audio,
30
- inputs=gr.Audio(type="filepath", label="Upload Audio"),
31
- outputs=[
32
- gr.Audio(label="Vocals"),
33
- gr.Audio(label="Instrumental"),
34
- gr.Textbox(label="Status")
35
- ],
36
- title="🎵 Spleeter Vocal/Instrumental Separator"
37
  )
38
 
39
  iface.launch()
 
1
+ import os
2
+
3
+ # Install Spleeter manually if missing
4
+ if not os.path.exists("/home/user/.spleeter_installed"):
5
+ import install_spleeter
6
+ open("/home/user/.spleeter_installed", "w").close()
7
+
8
+ # Now import all normal modules
9
  import gradio as gr
10
  from spleeter.separator import Separator
11
  from spleeter.audio.adapter import AudioAdapter
12
  import tempfile
 
13
 
14
  MODEL_PATH = "pretrained_models/2stems"
 
15
  separator = Separator(MODEL_PATH)
16
  audio_loader = AudioAdapter.default()
17
 
 
 
 
18
 
19
+ def separate_audio(audio_file):
20
  waveform, sample_rate = audio_loader.load(audio_file)
21
+ pred = separator.separate(waveform)
22
+
23
+ tmp = tempfile.mkdtemp()
24
+ vocals = f"{tmp}/vocals.wav"
25
+ instr = f"{tmp}/instrumental.wav"
26
 
27
+ audio_loader.save(vocals, pred["vocals"], sample_rate)
28
+ audio_loader.save(instr, pred["accompaniment"], sample_rate)
 
29
 
30
+ return vocals, instr, "Done!"
 
31
 
 
32
 
33
  iface = gr.Interface(
34
+ separate_audio,
35
+ inputs=gr.Audio(type="filepath"),
36
+ outputs=[gr.Audio(), gr.Audio(), gr.Textbox()],
37
+ title="Spleeter Vocal/Instrumental Separator"
 
 
 
 
38
  )
39
 
40
  iface.launch()