From 114994b205f192cb98ddfeea7a199443d729b7a7 Mon Sep 17 00:00:00 2001 From: keonlee9420 Date: Wed, 28 Apr 2021 23:38:29 +0900 Subject: [PATCH] [audio_zen, recipes] keep directory structure --- audio_zen/inferencer/base_inferencer.py | 11 +++++++++-- recipes/dns_interspeech_2020/dataset_inference.py | 5 ++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/audio_zen/inferencer/base_inferencer.py b/audio_zen/inferencer/base_inferencer.py index 888d07e..90bd460 100644 --- a/audio_zen/inferencer/base_inferencer.py +++ b/audio_zen/inferencer/base_inferencer.py @@ -126,7 +126,7 @@ def __call__(self): inference_args = self.inference_config["args"] - for noisy, name in tqdm(self.dataloader, desc="Inference"): + for noisy, name, noisy_file_path, dataset_dir in tqdm(self.dataloader, desc="Inference"): assert len(name) == 1, "The batch size of inference stage must 1." name = name[0] @@ -140,4 +140,11 @@ def __call__(self): # clnsp102_traffic_248091_3_snr0_tl-21_fileid_268 => clean_fileid_0 # name = "clean_" + "_".join(name.split("_")[-2:]) - sf.write(self.enhanced_dir / f"{name}.wav", enhanced, samplerate=self.acoustic_config["sr"]) \ No newline at end of file + if dataset_dir is not None: + noisy_file_path = noisy_file_path[0] + dataset_dir = dataset_dir[0] + out_path = Path(str(noisy_file_path).replace(str(dataset_dir), str(self.enhanced_dir))) + prepare_empty_dir([out_path.parents[0]]) + sf.write(out_path, enhanced, samplerate=self.acoustic_config["sr"]) + else: + sf.write(self.enhanced_dir / f"{name}.wav", enhanced, samplerate=self.acoustic_config["sr"]) \ No newline at end of file diff --git a/recipes/dns_interspeech_2020/dataset_inference.py b/recipes/dns_interspeech_2020/dataset_inference.py index 75691c4..e12f6da 100644 --- a/recipes/dns_interspeech_2020/dataset_inference.py +++ b/recipes/dns_interspeech_2020/dataset_inference.py @@ -25,6 +25,9 @@ def __init__(self, dataset_dir = Path(dataset_dir).expanduser().absolute() noisy_file_path_list += librosa.util.find_files(dataset_dir.as_posix()) # Sorted + self.dataset_dir = None + if len(dataset_dir_list) == 1: + self.dataset_dir = dataset_dir_list[0] self.noisy_file_path_list = noisy_file_path_list self.length = len(self.noisy_file_path_list) @@ -36,4 +39,4 @@ def __getitem__(self, item): noisy_y = librosa.load(noisy_file_path, sr=self.sr)[0] noisy_y = noisy_y.astype(np.float32) - return noisy_y, basename(noisy_file_path)[0] + return noisy_y, basename(noisy_file_path)[0], noisy_file_path, self.dataset_dir