Loading ivas_processing_scripts/processing/chains.py +3 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,8 @@ def get_preprocessing_2(cfg: TestConfig) -> dict: "concatenation_order": pre2_cfg.get("concatenation_order", None), "preamble": pre2_cfg.get("preamble", 0), "pad_noise_preamble": pre2_cfg.get("preamble_noise", False), "postamble": pre2_cfg.get("postamble", 0), "pad_noise_postamble": pre2_cfg.get("preamble_noise", False), "background_noise": background, "in_mask": pre2_cfg.get("mask", None), "multiprocessing": cfg.multiprocessing, Loading Loading @@ -495,6 +497,7 @@ def get_processing_chain( "out_fmt": post_fmt, # no rendering here "concatenate_input": pre2_cfg.get("concatenate_input", False), "preamble": pre2_cfg.get("preamble", 0), "postamble": pre2_cfg.get("postamble", 0), "repeat_signal": pre2_cfg.get("repeat_signal", False), "loudness": post_cfg.get("loudness", None), "loudness_fmt": post_cfg.get("loudness_fmt", None), Loading ivas_processing_scripts/processing/preprocessing_2.py +12 −2 Original line number Diff line number Diff line Loading @@ -85,9 +85,9 @@ class Preprocessing2(Processing): audio_object.metadata_files = meta_files audio_object.obect_pos = metadata if self.preamble: # add preamble if self.preamble > 0: logger.debug(f"Add preamble of length {self.preamble}ms") # add preamble to actual signal audio_object.audio = trim( audio_object.audio, audio_object.fs, Loading @@ -111,6 +111,16 @@ class Preprocessing2(Processing): (audio_object.audio, audio_object.audio), axis=0 ) # add postamble - do ater signal repetition as this is just for ensuring equal lengths between in- and output signals if self.postamble > 0: logger.debug(f"Add postamble of length {self.postamble}ms") audio_object.audio = trim( audio_object.audio, audio_object.fs, (0, -self.postamble), self.pad_noise_postamble, ) # save file write(out_file, audio_object.audio, fs=audio_object.fs) Loading ivas_processing_scripts/processing/processing.py +20 −14 Original line number Diff line number Diff line Loading @@ -161,7 +161,7 @@ def concat_setup(cfg: TestConfig, chain, logger: logging.Logger): logger.info(f"Splits written to file {splits_info_file}") def concat_teardown(x, splits, out_fmt, fs, in_fs, meta, logger: logging.Logger): def concat_teardown(x, splits, out_fmt, fs, in_fs, meta, len_postamble_ms, logger: logging.Logger): if not splits: raise ValueError("Splitting not possible without split marker") Loading @@ -182,9 +182,12 @@ def concat_teardown(x, splits, out_fmt, fs, in_fs, meta, logger: logging.Logger) raise ValueError( f"Last split index {splits[-1]} is larger than the signal length {len(x)}" ) elif splits[-1] < len(x): elif splits[-1] < len(x) - (postamble_len_samples := (len_postamble_ms * fs_old) // 1000): msg_file_len = len(x) if len_postamble_ms > 0: msg_file_len = f"(minus postamble length of {postamble_len_samples}): {len(x) - postamble_len_samples}" warn( f"Last split index {splits[-1]} is smaller that the signal length {len(x)}" f"Last split index {splits[-1]} is smaller than the signal length {msg_file_len}" ) split_old = 0 Loading Loading @@ -397,7 +400,7 @@ def process_item( copyfile(ppm, out_meta[idx]) def remove_preamble(x, out_fmt, fs, repeat_signal, preamble, meta, logger): def remove_preamble(x, out_fmt, fs, repeat_signal, preamble_len_ms, postamble_len_ms, meta, logger): # remove preamble for ISM metadata if out_fmt.startswith("ISM"): # cut first half of the metadata Loading @@ -405,20 +408,23 @@ def remove_preamble(x, out_fmt, fs, repeat_signal, preamble, meta, logger): meta = [m[int(len(m) / 2) :, :] for m in meta] # remove preamble if preamble: meta = add_remove_preamble(meta, preamble, add=False) if preamble_len_ms > 0: meta = add_remove_preamble(meta, preamble_len_ms, add=False) # remove first half of signal # get number of samples to cut from start trim_len_samples = (preamble_len_ms * fs) // 1000 if repeat_signal: if logger: logger.debug("Remove first half of signal") x = x[int(len(x) / 2) :, :] # remove preamble if preamble: if logger: # need to subtract the postamble length before getting half of signal length - it was added after concatenation postamble_len_samples = (postamble_len_ms * fs) // 1000 trim_len_samples += (len(x) - postamble_len_samples) // 2 if trim_len_samples > 0 and logger: logger.debug("Remove preamble") x = trim(x, fs, (preamble, 0)) x = trim(x, fs, (trim_len_samples, 0), samples=True) return x, meta Loading ivas_processing_scripts/processing/processing_splitting_scaling.py +2 −1 Original line number Diff line number Diff line Loading @@ -198,6 +198,7 @@ class Processing_splitting_scaling(Processing): self.fs, self.repeat_signal, self.preamble, self.postamble, in_meta, logger, ) Loading @@ -214,7 +215,7 @@ class Processing_splitting_scaling(Processing): # split file file_splits, meta_splits = concat_teardown( x, splits, self.out_fmt, fs, split_fs, in_meta, logger x, splits, self.out_fmt, fs, split_fs, in_meta, self.postamble, logger ) # set new out_files Loading Loading
ivas_processing_scripts/processing/chains.py +3 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,8 @@ def get_preprocessing_2(cfg: TestConfig) -> dict: "concatenation_order": pre2_cfg.get("concatenation_order", None), "preamble": pre2_cfg.get("preamble", 0), "pad_noise_preamble": pre2_cfg.get("preamble_noise", False), "postamble": pre2_cfg.get("postamble", 0), "pad_noise_postamble": pre2_cfg.get("preamble_noise", False), "background_noise": background, "in_mask": pre2_cfg.get("mask", None), "multiprocessing": cfg.multiprocessing, Loading Loading @@ -495,6 +497,7 @@ def get_processing_chain( "out_fmt": post_fmt, # no rendering here "concatenate_input": pre2_cfg.get("concatenate_input", False), "preamble": pre2_cfg.get("preamble", 0), "postamble": pre2_cfg.get("postamble", 0), "repeat_signal": pre2_cfg.get("repeat_signal", False), "loudness": post_cfg.get("loudness", None), "loudness_fmt": post_cfg.get("loudness_fmt", None), Loading
ivas_processing_scripts/processing/preprocessing_2.py +12 −2 Original line number Diff line number Diff line Loading @@ -85,9 +85,9 @@ class Preprocessing2(Processing): audio_object.metadata_files = meta_files audio_object.obect_pos = metadata if self.preamble: # add preamble if self.preamble > 0: logger.debug(f"Add preamble of length {self.preamble}ms") # add preamble to actual signal audio_object.audio = trim( audio_object.audio, audio_object.fs, Loading @@ -111,6 +111,16 @@ class Preprocessing2(Processing): (audio_object.audio, audio_object.audio), axis=0 ) # add postamble - do ater signal repetition as this is just for ensuring equal lengths between in- and output signals if self.postamble > 0: logger.debug(f"Add postamble of length {self.postamble}ms") audio_object.audio = trim( audio_object.audio, audio_object.fs, (0, -self.postamble), self.pad_noise_postamble, ) # save file write(out_file, audio_object.audio, fs=audio_object.fs) Loading
ivas_processing_scripts/processing/processing.py +20 −14 Original line number Diff line number Diff line Loading @@ -161,7 +161,7 @@ def concat_setup(cfg: TestConfig, chain, logger: logging.Logger): logger.info(f"Splits written to file {splits_info_file}") def concat_teardown(x, splits, out_fmt, fs, in_fs, meta, logger: logging.Logger): def concat_teardown(x, splits, out_fmt, fs, in_fs, meta, len_postamble_ms, logger: logging.Logger): if not splits: raise ValueError("Splitting not possible without split marker") Loading @@ -182,9 +182,12 @@ def concat_teardown(x, splits, out_fmt, fs, in_fs, meta, logger: logging.Logger) raise ValueError( f"Last split index {splits[-1]} is larger than the signal length {len(x)}" ) elif splits[-1] < len(x): elif splits[-1] < len(x) - (postamble_len_samples := (len_postamble_ms * fs_old) // 1000): msg_file_len = len(x) if len_postamble_ms > 0: msg_file_len = f"(minus postamble length of {postamble_len_samples}): {len(x) - postamble_len_samples}" warn( f"Last split index {splits[-1]} is smaller that the signal length {len(x)}" f"Last split index {splits[-1]} is smaller than the signal length {msg_file_len}" ) split_old = 0 Loading Loading @@ -397,7 +400,7 @@ def process_item( copyfile(ppm, out_meta[idx]) def remove_preamble(x, out_fmt, fs, repeat_signal, preamble, meta, logger): def remove_preamble(x, out_fmt, fs, repeat_signal, preamble_len_ms, postamble_len_ms, meta, logger): # remove preamble for ISM metadata if out_fmt.startswith("ISM"): # cut first half of the metadata Loading @@ -405,20 +408,23 @@ def remove_preamble(x, out_fmt, fs, repeat_signal, preamble, meta, logger): meta = [m[int(len(m) / 2) :, :] for m in meta] # remove preamble if preamble: meta = add_remove_preamble(meta, preamble, add=False) if preamble_len_ms > 0: meta = add_remove_preamble(meta, preamble_len_ms, add=False) # remove first half of signal # get number of samples to cut from start trim_len_samples = (preamble_len_ms * fs) // 1000 if repeat_signal: if logger: logger.debug("Remove first half of signal") x = x[int(len(x) / 2) :, :] # remove preamble if preamble: if logger: # need to subtract the postamble length before getting half of signal length - it was added after concatenation postamble_len_samples = (postamble_len_ms * fs) // 1000 trim_len_samples += (len(x) - postamble_len_samples) // 2 if trim_len_samples > 0 and logger: logger.debug("Remove preamble") x = trim(x, fs, (preamble, 0)) x = trim(x, fs, (trim_len_samples, 0), samples=True) return x, meta Loading
ivas_processing_scripts/processing/processing_splitting_scaling.py +2 −1 Original line number Diff line number Diff line Loading @@ -198,6 +198,7 @@ class Processing_splitting_scaling(Processing): self.fs, self.repeat_signal, self.preamble, self.postamble, in_meta, logger, ) Loading @@ -214,7 +215,7 @@ class Processing_splitting_scaling(Processing): # split file file_splits, meta_splits = concat_teardown( x, splits, self.out_fmt, fs, split_fs, in_meta, logger x, splits, self.out_fmt, fs, split_fs, in_meta, self.postamble, logger ) # set new out_files Loading