2025-04-21 13:41:19 +02:00
|
|
|
import demucs.separate
|
|
|
|
|
import shutil
|
|
|
|
|
import argparse
|
|
|
|
|
import shutil
|
|
|
|
|
from log import log_step
|
|
|
|
|
from genericpath import exists
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
# Create the parser
|
|
|
|
|
parser = argparse.ArgumentParser(description="dubstudio audio separator tool (v1.0) - V. BOULANGER - 2025")
|
|
|
|
|
|
|
|
|
|
# Options definition
|
|
|
|
|
parser.add_argument('-a', '--audio', help='Audio file to process', default='audio.wav')
|
|
|
|
|
parser.add_argument('-f', '--folder', help="Output folder name where the WAV audio files will be stored", default='artifacts')
|
|
|
|
|
parser.add_argument('-m', '--model', help="Separation model to use for processing the audio", default='htdemucs')
|
|
|
|
|
|
|
|
|
|
# Options analyzing
|
|
|
|
|
args = parser.parse_args()
|
|
|
|
|
|
2025-05-04 16:33:16 +02:00
|
|
|
log_step('start', 100, {
|
2025-04-21 13:41:19 +02:00
|
|
|
"audioFile": args.audio,
|
|
|
|
|
"outputFolder": args.folder,
|
|
|
|
|
"model": args.model,
|
2025-04-22 18:59:12 +02:00
|
|
|
})
|
2025-04-21 13:41:19 +02:00
|
|
|
|
|
|
|
|
# Separate vocals with progress
|
|
|
|
|
demucs.separate.main([
|
|
|
|
|
"--two-stems", "vocals",
|
|
|
|
|
"--filename", "{stem}.wav",
|
|
|
|
|
"-n", args.model,
|
|
|
|
|
"--float32",
|
|
|
|
|
"--out", args.folder,
|
|
|
|
|
args.audio
|
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
except KeyboardInterrupt:
|
|
|
|
|
# Delete the output folder
|
|
|
|
|
log_step("exit", 100, "program exit")
|
|
|
|
|
|
|
|
|
|
except Exception as e:
|
|
|
|
|
log_step("error", 100, str(e))
|
|
|
|
|
|