File size: 1,359 Bytes
cf2f35c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import argparse
import os
import shutil
import subprocess
from audio_separator.separator import Separator


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--audio_file_path", type=str)
    parser.add_argument("--saved_vocal_path", type=str)
    parser.add_argument("--audio_separator_model_file", type=str)
    args = parser.parse_args()
    audio_file_path = args.audio_file_path
    audio_separator_model_file = args.audio_separator_model_file
    saved_vocal_path = args.saved_vocal_path
    cache_dir = os.path.join(os.path.dirname(audio_file_path), "vocals")
    os.makedirs(cache_dir, exist_ok=True)
    audio_separator = Separator(
        output_dir=cache_dir,
        output_single_stem="vocals",
        model_file_dir=os.path.dirname(audio_separator_model_file),
    )
    audio_separator.load_model(os.path.basename(audio_separator_model_file))
    assert audio_separator.model_instance is not None, "Fail to load audio separate model."
    outputs = audio_separator.separate(audio_file_path)
    subfolder_path = os.path.dirname(audio_file_path)
    vocal_audio_file = os.path.join(audio_separator.output_dir, outputs[0])
    destination_file = os.path.join(subfolder_path, "vocal.wav")
    shutil.copy(vocal_audio_file, destination_file)
    os.remove(vocal_audio_file)