File size: 1,685 Bytes
2f0083d
0b93855
2f0083d
0b93855
2f0083d
 
0b93855
 
2f0083d
0b93855
 
 
 
 
 
 
 
2f0083d
0b93855
 
 
 
 
 
 
 
 
 
2f0083d
0b93855
 
 
 
 
2f0083d
0b93855
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import os
import gradio as gr
from scipy.io.wavfile import write
import subprocess 

def inference(audio):
    os.makedirs("out", exist_ok=True)
    write('test.wav', audio[0], audio[1])

    command = "python3 -m demucs.separate -n htdemucs_ft -d cpu test.wav -o out"
    process = subprocess.run(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    print("Demucs script output:", process.stdout.decode())
  
    os.makedirs("out", exist_ok=True)
    write('test.wav', audio[0], audio[1])
    result = os.system("python3 -m demucs.separate -n htdemucs_ft -d cpu test.wav -o out")
    print(f"Demucs script result: {result}")

    # Check if files exist before returning
    files = ["./out/htdemucs_ft/test/vocals.wav",
             "./out/htdemucs_ft/test/bass.wav",
             "./out/htdemucs_ft/test/drums.wav",
             "./out/htdemucs_ft/test/other.wav"]
    for file in files:
        if not os.path.isfile(file):
            print(f"File not found: {file}")
        else:
            print(f"File exists: {file}")

    return files
  
title = "Demucs Very Slow"
description = ""
article = "<p style='text-align: center'><a href='' target='_blank'>Music Separation Very Slow</a> <a href='' target='_blank'></a></p>"

examples=[['test.mp3']]
gr.Interface(
    inference, 
    gr.components.Audio(type="numpy", label="Input"), 
    [gr.components.Audio(type="filepath", label="Vocals"),
     gr.components.Audio(type="filepath", label="Bass"),
     gr.components.Audio(type="filepath", label="Drums"),
     gr.components.Audio(type="filepath", label="Other")],
    title=title,
    description=description,
    article=article
).launch(enable_queue=True)