Commit ade41b13 authored by Anika Treffehn's avatar Anika Treffehn
Browse files

Merge branch 'remove_loudness_adjustment_from_postprocessing' into 'main'

Remove loudness adjustment from postprocessing

See merge request !78
parents 889d2284 164c3799
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ 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

@@ -174,9 +175,15 @@ def main(args):
                "mp" if cfg.multiprocessing else None,
            )

        # remove preamble and split signals
        if hasattr(cfg, "preprocessing_2"):
            reverse_process_2(cfg, logger)

        # scale individual files
        if cfg.postprocessing.get("loudness", False):
            scale_resulting_files(cfg, logger)

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

+0 −21
Original line number Diff line number Diff line
@@ -212,7 +212,6 @@ def get_processing_chain(

    # get pre and post processing configurations
    pre_cfg = getattr(cfg, "preprocessing", {})
    pre2_cfg = getattr(cfg, "preprocessing_2", {})
    post_cfg = cfg.postprocessing

    # default to input values if preprocessing was not requested
@@ -243,18 +242,8 @@ def get_processing_chain(
                {
                    "in_fs": tmp_in_fs,
                    "in_fmt": tmp_in_fmt,
                    "out_fs": post_cfg.get("fs"),
                    "out_fmt": "MONO",
                    "out_cutoff": tmp_lp_cutoff,
                    "out_loudness": post_cfg.get("loudness"),
                    "out_loudness_fmt": post_cfg.get("loudness_fmt"),
                    "bin_dataset": post_cfg.get("bin_dataset"),
                    "bin_lfe_gain": post_cfg.get("bin_lfe_gain"),
                    "limit": post_cfg.get("limit", True),
                    "trajectory": post_cfg.get("trajectory"),
                    "multiprocessing": cfg.multiprocessing,
                    "mnru_q": tmp_mnru_q,
                    "esdru_alpha": tmp_esdru_alpha,
                },
                name="mono_dmx",
            )
@@ -421,14 +410,6 @@ def get_processing_chain(
        raise SystemExit(f"Unknown condition {condition}!")

    # add postprocessing step based on condition
    # if concatenation and splitting do loudness adjustment only on splitted files
    if pre2_cfg.get("concatenate_input", False):
        loudness_postprocessing = None
        loudness_fmt_postprocessing = None
    else:
        loudness_postprocessing = post_cfg.get("loudness")
        loudness_fmt_postprocessing = post_cfg.get("loudness_fmt", post_cfg.get("fmt"))

    chain["processes"].append(
        Postprocessing(
            {
@@ -437,8 +418,6 @@ def get_processing_chain(
                "out_fs": post_cfg.get("fs"),
                "out_fmt": post_cfg.get("fmt"),
                "out_cutoff": tmp_lp_cutoff,
                "out_loudness": loudness_postprocessing,
                "out_loudness_fmt": loudness_fmt_postprocessing,
                "bin_dataset": post_cfg.get("bin_dataset"),
                "bin_lfe_gain": post_cfg.get("bin_lfe_gain"),
                "limit": post_cfg.get("limit", True),
+37 −11
Original line number Diff line number Diff line
@@ -350,17 +350,8 @@ def reverse_process_2(cfg, logger):
        else:
            out_meta_splits = None

    # scale individual files
    if cfg.postprocessing.get("loudness", False):
        scale_files(
            out_paths_splits,
            cfg.postprocessing["fmt"],
            cfg.postprocessing["loudness"],
            cfg.postprocessing.get("loudness_fmt", cfg.postprocessing["fmt"]),
            cfg.postprocessing["fs"],
            out_meta_splits,
            logger,
        )
    cfg.pre2.out_paths_splits = out_paths_splits
    cfg.pre2.out_meta_splits = out_meta_splits
    return


@@ -583,3 +574,38 @@ 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 = []
        if isinstance(
            audio.fromtype(cfg.postprocessing["fmt"]), audio.ObjectBasedAudio
        ):
            out_meta_splits = []
        else:
            out_meta_splits = None
        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)
            if isinstance(
                audio.fromtype(cfg.postprocessing["fmt"]), audio.ObjectBasedAudio
            ):
                out_meta_splits.append(metadata_search(out_dir, item_names, num_obj))

    scale_files(
        out_paths_splits,
        cfg.postprocessing["fmt"],
        cfg.postprocessing["loudness"],
        cfg.postprocessing.get("loudness_fmt", None),
        cfg.postprocessing["fs"],
        out_meta_splits,
        logger,
    )