Loading ivas_processing_scripts/__init__.py +2 −1 Original line number Diff line number Diff line Loading @@ -149,7 +149,8 @@ def main(args): out_paths_splits, out_meta_splits = concat_teardown(cfg, logger) # scale individual files if cfg.postprocessing.get("loudness", False): scale_files(out_paths_splits, cfg.postprocessing["fmt"], cfg.postprocessing["loudness"], out_meta_splits) # TODO: take care of samplingrate scale_files(out_paths_splits, cfg.postprocessing["fmt"], cfg.postprocessing["loudness"], cfg.postprocessing.get("fs", None), out_meta_splits) # copy configuration to output directory with open(cfg.output_path.joinpath(f"{cfg.name}.yml"), "w") as f: Loading ivas_processing_scripts/audiotools/metadata.py +4 −1 Original line number Diff line number Diff line Loading @@ -400,6 +400,7 @@ def split_meta_in_file( split_old = 0 for idx, split in enumerate(splits): out_paths_obj = [] for obj in range(audio_object.num_channels): out_file = ( Path(out_folder) Loading @@ -407,7 +408,7 @@ def split_meta_in_file( ) # add the path to our list out_paths.append(out_file) out_paths_obj.append(out_file) # remove preamble if preamble: Loading @@ -424,6 +425,8 @@ def split_meta_in_file( # write file write_ISM_metadata_in_file([y], [out_file]) out_paths.append(out_paths_obj) split_old = split return out_paths Loading ivas_processing_scripts/audiotools/wrappers/bs1770.py +38 −13 Original line number Diff line number Diff line #!/usr/bin/env python3 import copy # # (C) 2022-2023 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, # Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., Loading Loading @@ -236,22 +236,47 @@ def loudness_norm( def scale_files( file_list: list[Union[Path, str]], out_fmt: str, file_list: list[list[Union[Path, str]]], fmt: str, loudness: float, fs: Optional[int] = 48000, in_meta: Optional[list] = None, ): if in_meta is None: np.repeat(None) ) -> None: """ Scales audio files to desired loudness for file, meta in zip(file_list, in_meta): Parameters ---------- file_list : list[list[Union[Path, str]]] List of file paths in a list of the condition folders fmt: str Audio format of files in list loudness: float Desired loudness level in LKFS/dBov fs: Optional[int] Sampling rate in_meta: Optional[list] Metadata for ISM with same structure as file_list but one layer more for the list of metadata for one file """ if fmt.startswith("ISM") and in_meta: meta_bool = True else: in_meta = copy.copy(file_list) meta_bool = False for folder, meta_folder in zip(file_list, in_meta): for file, meta in zip(folder, meta_folder): # create audio object audio_obj = audio.fromfile(out_fmt, file, fs, meta) # TODO: handle metadata if meta_bool: audio_obj = audio.fromfile(fmt, file, fs, meta) else: audio_obj = audio.fromfile(fmt, file, fs) # adjust loudness scaled_audio = loudness_norm(audio_obj, loudness, out_fmt) scaled_audio = loudness_norm(audio_obj, loudness) # write into file write(file, scaled_audio, audio_obj.fs) ivas_processing_scripts/processing/processing.py +7 −4 Original line number Diff line number Diff line Loading @@ -136,6 +136,9 @@ def concat_teardown(cfg: TestConfig, logger: logging.Logger): output_format = cfg.postprocessing["fmt"] out_files = [] out_meta = [] if num_splits <= 1: logger.info( f"No splitting of output file necessary since only one signal used." Loading @@ -152,22 +155,22 @@ def concat_teardown(cfg: TestConfig, logger: logging.Logger): logger.debug( f"Resulting split files condition {odir.name}: {', '.join([str(op) for op in out_paths])}" ) out_files.append(out_paths) # split ISM metadata if output_format.startswith("ISM"): for odir in cfg.out_dirs: path_input = odir / cfg.items_list[0].name out_meta = split_meta_in_file( out_meta_paths = split_meta_in_file( path_input, odir, cfg.split_names, cfg.splits, output_format, preamble=cfg.preamble ) else: out_meta = None out_meta.append(out_meta_paths) # remove concatenated file if cfg.delete_tmp: cfg.concat_file.unlink(missing_ok=True) return out_paths, out_meta # TODO: append paths for each odir return out_files, out_meta def preprocess(cfg, in_meta, logger): Loading Loading
ivas_processing_scripts/__init__.py +2 −1 Original line number Diff line number Diff line Loading @@ -149,7 +149,8 @@ def main(args): out_paths_splits, out_meta_splits = concat_teardown(cfg, logger) # scale individual files if cfg.postprocessing.get("loudness", False): scale_files(out_paths_splits, cfg.postprocessing["fmt"], cfg.postprocessing["loudness"], out_meta_splits) # TODO: take care of samplingrate scale_files(out_paths_splits, cfg.postprocessing["fmt"], cfg.postprocessing["loudness"], cfg.postprocessing.get("fs", None), out_meta_splits) # copy configuration to output directory with open(cfg.output_path.joinpath(f"{cfg.name}.yml"), "w") as f: Loading
ivas_processing_scripts/audiotools/metadata.py +4 −1 Original line number Diff line number Diff line Loading @@ -400,6 +400,7 @@ def split_meta_in_file( split_old = 0 for idx, split in enumerate(splits): out_paths_obj = [] for obj in range(audio_object.num_channels): out_file = ( Path(out_folder) Loading @@ -407,7 +408,7 @@ def split_meta_in_file( ) # add the path to our list out_paths.append(out_file) out_paths_obj.append(out_file) # remove preamble if preamble: Loading @@ -424,6 +425,8 @@ def split_meta_in_file( # write file write_ISM_metadata_in_file([y], [out_file]) out_paths.append(out_paths_obj) split_old = split return out_paths Loading
ivas_processing_scripts/audiotools/wrappers/bs1770.py +38 −13 Original line number Diff line number Diff line #!/usr/bin/env python3 import copy # # (C) 2022-2023 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, # Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., Loading Loading @@ -236,22 +236,47 @@ def loudness_norm( def scale_files( file_list: list[Union[Path, str]], out_fmt: str, file_list: list[list[Union[Path, str]]], fmt: str, loudness: float, fs: Optional[int] = 48000, in_meta: Optional[list] = None, ): if in_meta is None: np.repeat(None) ) -> None: """ Scales audio files to desired loudness for file, meta in zip(file_list, in_meta): Parameters ---------- file_list : list[list[Union[Path, str]]] List of file paths in a list of the condition folders fmt: str Audio format of files in list loudness: float Desired loudness level in LKFS/dBov fs: Optional[int] Sampling rate in_meta: Optional[list] Metadata for ISM with same structure as file_list but one layer more for the list of metadata for one file """ if fmt.startswith("ISM") and in_meta: meta_bool = True else: in_meta = copy.copy(file_list) meta_bool = False for folder, meta_folder in zip(file_list, in_meta): for file, meta in zip(folder, meta_folder): # create audio object audio_obj = audio.fromfile(out_fmt, file, fs, meta) # TODO: handle metadata if meta_bool: audio_obj = audio.fromfile(fmt, file, fs, meta) else: audio_obj = audio.fromfile(fmt, file, fs) # adjust loudness scaled_audio = loudness_norm(audio_obj, loudness, out_fmt) scaled_audio = loudness_norm(audio_obj, loudness) # write into file write(file, scaled_audio, audio_obj.fs)
ivas_processing_scripts/processing/processing.py +7 −4 Original line number Diff line number Diff line Loading @@ -136,6 +136,9 @@ def concat_teardown(cfg: TestConfig, logger: logging.Logger): output_format = cfg.postprocessing["fmt"] out_files = [] out_meta = [] if num_splits <= 1: logger.info( f"No splitting of output file necessary since only one signal used." Loading @@ -152,22 +155,22 @@ def concat_teardown(cfg: TestConfig, logger: logging.Logger): logger.debug( f"Resulting split files condition {odir.name}: {', '.join([str(op) for op in out_paths])}" ) out_files.append(out_paths) # split ISM metadata if output_format.startswith("ISM"): for odir in cfg.out_dirs: path_input = odir / cfg.items_list[0].name out_meta = split_meta_in_file( out_meta_paths = split_meta_in_file( path_input, odir, cfg.split_names, cfg.splits, output_format, preamble=cfg.preamble ) else: out_meta = None out_meta.append(out_meta_paths) # remove concatenated file if cfg.delete_tmp: cfg.concat_file.unlink(missing_ok=True) return out_paths, out_meta # TODO: append paths for each odir return out_files, out_meta def preprocess(cfg, in_meta, logger): Loading