Rtop0726 commited on
Commit
38c19f8
·
verified ·
1 Parent(s): 54a2540

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -8
app.py CHANGED
@@ -7,7 +7,7 @@ import tempfile
7
  from demucs.pretrained import get_model
8
  from demucs.apply import apply_model
9
 
10
- # Load the Demucs model
11
  model = get_model("htdemucs")
12
  model.cpu()
13
  model.eval()
@@ -18,14 +18,14 @@ def remove_vocals(audio_file):
18
  if y.ndim == 1:
19
  y = np.expand_dims(y, axis=0)
20
 
21
- audio_tensor = torch.tensor(y).unsqueeze(0) # shape (1, channels, samples)
22
 
23
  with torch.no_grad():
24
- sources = apply_model(model, audio_tensor) # Demucs returns 5 sources: [drums, bass, other, vocals, remix]
 
25
 
26
- # Sources indices for htdemucs: 0-drums, 1-bass, 2-other, 3-vocals, 4-mix
27
- # We want music + expression (everything except clean vocals)
28
- music_expression = sources[0][[0,1,2]].sum(dim=0) # drums+bass+other
29
 
30
  # Save output
31
  out_path = tempfile.NamedTemporaryFile(delete=False, suffix=".wav").name
@@ -37,8 +37,8 @@ def remove_vocals(audio_file):
37
  interface = gr.Interface(
38
  fn=remove_vocals,
39
  inputs=gr.Audio(type="filepath", label="Upload Audio"),
40
- outputs=gr.Audio(label="Background Music + Expressions"),
41
- title="Vocal Remover (Keep Music + Expressions)"
42
  )
43
 
44
  interface.launch()
 
7
  from demucs.pretrained import get_model
8
  from demucs.apply import apply_model
9
 
10
+ # Load Demucs model (htdemucs is good for vocals removal)
11
  model = get_model("htdemucs")
12
  model.cpu()
13
  model.eval()
 
18
  if y.ndim == 1:
19
  y = np.expand_dims(y, axis=0)
20
 
21
+ audio_tensor = torch.tensor(y).unsqueeze(0) # shape: (1, channels, samples)
22
 
23
  with torch.no_grad():
24
+ # Demucs separates: [drums, bass, other, vocals, remix]
25
+ sources = apply_model(model, audio_tensor)
26
 
27
+ # Keep music + expression sounds (everything except clean vocals)
28
+ music_expression = sources[0][[0,1,2]].sum(dim=0) # drums + bass + other
 
29
 
30
  # Save output
31
  out_path = tempfile.NamedTemporaryFile(delete=False, suffix=".wav").name
 
37
  interface = gr.Interface(
38
  fn=remove_vocals,
39
  inputs=gr.Audio(type="filepath", label="Upload Audio"),
40
+ outputs=gr.Audio(label="Music + Expression Sounds"),
41
+ title="Vocal Remover: Keep Music + Expression Sounds"
42
  )
43
 
44
  interface.launch()