Files
audioSeparator/audioSeparator.py

42 lines
1.2 KiB
Python

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()
log_step('start', 100, {
"audioFile": args.audio,
"outputFolder": args.folder,
"model": args.model,
})
# 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))