Spaces:
Running
Running
| import argparse | |
| from pathlib import Path | |
| import warnings | |
| from pydub import AudioSegment | |
| from app.service.vocal_remover.runner import load_model, separate | |
| from app.service.demucs_runner import separator | |
| warnings.simplefilter("ignore", UserWarning) | |
| warnings.simplefilter("ignore", FutureWarning) | |
| warnings.filterwarnings("ignore", module="streamlit") | |
| def convert_to_mp3(input_file, output_file): | |
| audio = AudioSegment.from_file(input_file) | |
| audio.export(output_file, format="mp3") | |
| def main(): | |
| p = argparse.ArgumentParser() | |
| p.add_argument("--gpu", "-g", type=int, default=-1) | |
| p.add_argument("--pretrained_model", "-P", type=str, default="baseline.pth") | |
| p.add_argument("--input", "-i", required=True) | |
| p.add_argument("--output_dir", "-o", type=str, default="") | |
| p.add_argument("--full_mode", "-n", default=False) | |
| args = p.parse_args() | |
| print(args) | |
| input_file = args.input | |
| full_mode = bool(args.full_mode) | |
| model, device = load_model(pretrained_model=args.pretrained_model) | |
| if full_mode: | |
| separate( | |
| input=input_file, | |
| model=model, | |
| device=device, | |
| output_dir=args.output_dir, | |
| ) | |
| for stem, model_name in [("vocals", "htdemucs"), (None, "htdemucs"), (None, "htdemucs_6s")]: | |
| separator( | |
| tracks=[Path(input_file)], | |
| out=Path(args.output_dir), | |
| model=model_name, | |
| shifts=1, | |
| overlap=0.5, | |
| stem=stem, | |
| int24=False, | |
| float32=False, | |
| clip_mode="rescale", | |
| mp3=True, | |
| mp3_bitrate=320, | |
| verbose=False, | |
| ) | |
| else: | |
| separate( | |
| input=input_file, | |
| model=model, | |
| device=device, | |
| output_dir=args.output_dir, | |
| only_no_vocals=True, | |
| ) | |
| convert_to_mp3(input_file, input_file) | |
| if __name__ == "__main__": | |
| main() | |