Commit 561ef35b authored by Anika Treffehn's avatar Anika Treffehn
Browse files

should also work for ISM now

parent caefe6ce
Loading
Loading
Loading
Loading
+3 −23
Original line number Diff line number Diff line
@@ -51,9 +51,9 @@ from ivas_processing_scripts.processing.processing import (
    rename_generated_conditions,
    reorder_items_list,
    reverse_process_2,
    scale_resulting_files,
)
from ivas_processing_scripts.utils import DirManager, apply_func_parallel
from ivas_processing_scripts.audiotools.wrappers.bs1770 import scale_files


def logging_init(args, cfg):
@@ -180,30 +180,10 @@ def main(args):
            reverse_process_2(cfg, logger)

        # scale individual files
        # TODO: create new function for that part
        if cfg.postprocessing.get("loudness", False):
            if hasattr(cfg, "preprocessing_2"):
                out_paths_splits = cfg.pre2.out_paths_splits
                out_meta_splits = cfg.pre2.out_meta_splits
            else:
                out_paths_splits = []
                for out_dir in cfg.out_dirs:
                    condition_list = []
                    for item in cfg.items_list:
                        condition_list.append(out_dir.joinpath(item.name))
                    out_paths_splits.append(condition_list)

            # TODO: get out_meta_splits and use
            scale_files(
                out_paths_splits,
                cfg.postprocessing["fmt"],
                cfg.postprocessing["loudness"],
                cfg.postprocessing.get("loudness_fmt", None),
                cfg.postprocessing["fs"],
                None,
                logger,
            )
            scale_resulting_files(cfg, logger)

        # rename output with condition name
        if cfg.condition_in_output_filename:
            rename_generated_conditions(cfg.output_path)

+29 −0
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ from ivas_processing_scripts.audiotools.metadata import (
from ivas_processing_scripts.constants import LOGGER_DATEFMT, LOGGER_FORMAT
from ivas_processing_scripts.processing.config import TestConfig
from ivas_processing_scripts.utils import apply_func_parallel, list_audio, pairwise
from ivas_processing_scripts.audiotools.wrappers.bs1770 import scale_files


class Processing(ABC):
@@ -573,3 +574,31 @@ def rename_generated_conditions(output_path: Path):
            for file_path in subdirectory.iterdir():
                new_filename = f"{file_path.stem}.{subdirectory.name}{file_path.suffix}"
                file_path.rename(subdirectory / new_filename)


def scale_resulting_files(cfg, logger):
    if hasattr(cfg, "preprocessing_2"):
        out_paths_splits = cfg.pre2.out_paths_splits
        out_meta_splits = cfg.pre2.out_meta_splits
    else:
        num_obj = audio.fromtype(cfg.postprocessing["fmt"]).num_channels
        out_paths_splits = []
        out_meta_splits = []
        item_names = [Path(i.name) for i in cfg.items_list]
        for out_dir in cfg.out_dirs:
            condition_list = []
            for item in item_names:
                condition_list.append(out_dir.joinpath(item))
            out_paths_splits.append(condition_list)
            a = metadata_search(out_dir, item_names, num_obj)
            out_meta_splits.append(a)

    scale_files(
        out_paths_splits,
        cfg.postprocessing["fmt"],
        cfg.postprocessing["loudness"],
        cfg.postprocessing.get("loudness_fmt", None),
        cfg.postprocessing["fs"],
        out_meta_splits,
        logger,
    )
 No newline at end of file