From fe4c0073d3dd4cc9a4db53274bff8bff43feb78c Mon Sep 17 00:00:00 2001 From: Dilan Boskan Date: Sat, 9 Jan 2021 20:40:12 +0100 Subject: [PATCH] Attempt at fix for #42 --- .gitignore | 5 +++-- inference_v2.py | 30 ++++++++++-------------------- inference_v4.py | 32 ++++++++++++-------------------- 3 files changed, 25 insertions(+), 42 deletions(-) diff --git a/.gitignore b/.gitignore index f9e4e05..fbc624f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ __pycache__ data.pkl -# Testing modules +# Testing models model_iter26_sr33075_hl384_w512.pth -baseline.pth \ No newline at end of file +baseline.pth +temp.wav \ No newline at end of file diff --git a/inference_v2.py b/inference_v2.py index 7ffb851..224af8a 100644 --- a/inference_v2.py +++ b/inference_v2.py @@ -143,18 +143,13 @@ def determineModelFolderName(): # -Instrumental- if os.path.isfile(data['instrumentalModel']): - modelFolderName += os.path.splitext(os.path.basename(data['instrumentalModel']))[0] + '-' + modelFolderName += os.path.splitext(os.path.basename(data['instrumentalModel']))[0] # -Vocal- elif os.path.isfile(data['vocalModel']): - modelFolderName += os.path.splitext(os.path.basename(data['vocalModel']))[0] + '-' + modelFolderName += os.path.splitext(os.path.basename(data['vocalModel']))[0] # -Stack- if os.path.isfile(data['stackModel']): - modelFolderName += os.path.splitext(os.path.basename(data['stackModel']))[0] - else: - modelFolderName = modelFolderName[:-1] - - if modelFolderName: - modelFolderName = '/' + modelFolderName + modelFolderName += '-' + os.path.splitext(os.path.basename(data['stackModel']))[0] return modelFolderName @@ -327,22 +322,17 @@ def main(window: tk.Wm, text_widget: tk.Text, button_widget: tk.Button, progress sf.write(f'temp.wav', wav_instrument.T, sr) - appendModelFolderName = modelFolderName.replace('/', '_') # -Save files- # Instrumental if instrumental_name is not None: - instrumental_path = '{save_path}/{file_name}.wav'.format( - save_path=save_path, - file_name=f'{os.path.basename(base_name)}_{instrumental_name}{appendModelFolderName}', - ) + instrumental_path = os.path.join(save_path, + f'{os.path.basename(base_name)}_{instrumental_name}_{modelFolderName}.wav') sf.write(instrumental_path, wav_instrument.T, sr) # Vocal if vocal_name is not None: - vocal_path = '{save_path}/{file_name}.wav'.format( - save_path=save_path, - file_name=f'{os.path.basename(base_name)}_{vocal_name}{appendModelFolderName}', - ) + vocal_path = os.path.join(save_path, + f'{os.path.basename(base_name)}_{vocal_name}_{modelFolderName}.wav') sf.write(vocal_path, wav_vocals.T, sr) @@ -376,7 +366,7 @@ def main(window: tk.Wm, text_widget: tk.Text, button_widget: tk.Button, progress models, devices = load_models() modelFolderName = determineModelFolderName() if modelFolderName: - folder_path = f'{data["export_path"]}{modelFolderName}' + folder_path = os.path.join(data["export_path"], modelFolderName) if not os.path.isdir(folder_path): os.mkdir(folder_path) @@ -388,7 +378,7 @@ def main(window: tk.Wm, text_widget: tk.Text, button_widget: tk.Button, progress for file_num, music_file in enumerate(data['input_paths'], start=1): try: # Determine File Name - base_name = f'{data["export_path"]}{modelFolderName}/{file_num}_{os.path.splitext(os.path.basename(music_file))[0]}' + base_name = os.path.join(folder_path, f'{file_num}_{os.path.splitext(os.path.basename(music_file))[0]}') for loop_num in range(total_loops): # -Determine which model will be used- @@ -483,4 +473,4 @@ def main(window: tk.Wm, text_widget: tk.Text, button_widget: tk.Button, progress text_widget.write(f'Conversion(s) Completed and Saving all Files!\n') # nopep8 Write Command Text text_widget.write(f'Time Elapsed: {time.strftime("%H:%M:%S", time.gmtime(int(time.perf_counter() - stime)))}') # nopep8 torch.cuda.empty_cache() - button_widget.configure(state=tk.NORMAL) # Enable Button \ No newline at end of file + button_widget.configure(state=tk.NORMAL) # Enable Button diff --git a/inference_v4.py b/inference_v4.py index ffe6539..7f1fc3f 100644 --- a/inference_v4.py +++ b/inference_v4.py @@ -168,6 +168,8 @@ data = { 'stackPasses': 0, 'stackOnly': False, 'saveAllStacked': False, + # Model Folder + 'modelFolder': False, # Constants 'sr': 44_100, 'hop_length': 1_024, @@ -261,18 +263,13 @@ def determineModelFolderName(): # -Instrumental- if os.path.isfile(data['instrumentalModel']): - modelFolderName += os.path.splitext(os.path.basename(data['instrumentalModel']))[0] + '-' + modelFolderName += os.path.splitext(os.path.basename(data['instrumentalModel']))[0] # -Vocal- elif os.path.isfile(data['vocalModel']): - modelFolderName += os.path.splitext(os.path.basename(data['vocalModel']))[0] + '-' + modelFolderName += os.path.splitext(os.path.basename(data['vocalModel']))[0] # -Stack- if os.path.isfile(data['stackModel']): - modelFolderName += os.path.splitext(os.path.basename(data['stackModel']))[0] - else: - modelFolderName = modelFolderName[:-1] - - if modelFolderName: - modelFolderName = '/' + modelFolderName + modelFolderName += '-' + os.path.splitext(os.path.basename(data['stackModel']))[0] return modelFolderName @@ -341,23 +338,18 @@ def main(window: tk.Wm, text_widget: tk.Text, button_widget: tk.Button, progress sf.write(f'temp.wav', wav_instrument.T, sr) - appendModelFolderName = modelFolderName.replace('/', '_') # -Save files- # Instrumental if instrumental_name is not None: - instrumental_path = '{save_path}/{file_name}.wav'.format( - save_path=save_path, - file_name=f'{os.path.basename(base_name)}_{instrumental_name}{appendModelFolderName}', - ) + instrumental_path = os.path.join(save_path, + f'{os.path.basename(base_name)}_{instrumental_name}_{modelFolderName}.wav') sf.write(instrumental_path, wav_instrument.T, sr) # Vocal if vocal_name is not None: - vocal_path = '{save_path}/{file_name}.wav'.format( - save_path=save_path, - file_name=f'{os.path.basename(base_name)}_{vocal_name}{appendModelFolderName}', - ) + vocal_path = os.path.join(save_path, + f'{os.path.basename(base_name)}_{vocal_name}_{modelFolderName}.wav') sf.write(vocal_path, wav_vocals.T, sr) @@ -381,7 +373,7 @@ def main(window: tk.Wm, text_widget: tk.Text, button_widget: tk.Button, progress vocal_remover = VocalRemover(data, text_widget) modelFolderName = determineModelFolderName() if modelFolderName: - folder_path = f'{data["export_path"]}{modelFolderName}' + folder_path = os.path.join(data["export_path"], modelFolderName) if not os.path.isdir(folder_path): os.mkdir(folder_path) @@ -392,7 +384,7 @@ def main(window: tk.Wm, text_widget: tk.Text, button_widget: tk.Button, progress for file_num, music_file in enumerate(data['input_paths'], start=1): try: # Determine File Name - base_name = f'{data["export_path"]}{modelFolderName}/{file_num}_{os.path.splitext(os.path.basename(music_file))[0]}' + base_name = os.path.join(folder_path, f'{file_num}_{os.path.splitext(os.path.basename(music_file))[0]}') # --Seperate Music Files-- for loop_num in range(total_loops): @@ -519,4 +511,4 @@ def main(window: tk.Wm, text_widget: tk.Text, button_widget: tk.Button, progress text_widget.write(f'Conversion(s) Completed and Saving all Files!\n') text_widget.write(f'Time Elapsed: {time.strftime("%H:%M:%S", time.gmtime(int(time.perf_counter() - stime)))}') # nopep8 torch.cuda.empty_cache() - button_widget.configure(state=tk.NORMAL) # Enable Button \ No newline at end of file + button_widget.configure(state=tk.NORMAL) # Enable Button