diff --git a/ivas_processing_scripts/audiotools/audiofile.py b/ivas_processing_scripts/audiotools/audiofile.py index f8fad48f4e2e0e899e815a3cda65544ef84bef39..a3c84e7eb98adae913f33e4201d96c1ff3020bf8 100755 --- a/ivas_processing_scripts/audiotools/audiofile.py +++ b/ivas_processing_scripts/audiotools/audiofile.py @@ -153,6 +153,7 @@ def concat( silence_pre: int, silence_post: int, in_fs: Optional[int] = 48000, + num_channels: Optional[int] = None, pad_noise: Optional[bool] = False, preamble: Optional[int] = None, pad_noise_preamble: Optional[bool] = False, @@ -189,7 +190,7 @@ def concat( # Read input files for in_file in in_filenames: - x, fs = read(in_file, fs=in_fs) + x, fs = read(in_file, fs=in_fs, nchannels=num_channels) if fs_compare and fs_compare != fs: raise ValueError("Sampling rates of files to concatenate don't match") else: diff --git a/ivas_processing_scripts/processing/processing.py b/ivas_processing_scripts/processing/processing.py index 76e25fe7cb70d7f061c53e3a888b208c3a36fe6f..e755a325e515668db576f4548c8554f2f1c32d16 100755 --- a/ivas_processing_scripts/processing/processing.py +++ b/ivas_processing_scripts/processing/processing.py @@ -38,6 +38,7 @@ from shutil import copyfile from typing import Iterable, Union from warnings import warn +from ivas_processing_scripts.audiotools import audio from ivas_processing_scripts.audiotools.audiofile import concat, split from ivas_processing_scripts.audiotools.metadata import ( concat_meta_from_file, @@ -108,12 +109,21 @@ def concat_setup(cfg: TestConfig, logger: logging.Logger): f"{cfg.input_path.name}_concatenated.wav" ) + # determine number of channels for pcm and raw files + if hasattr(cfg, "preprocessing"): + tmp_in_fmt = cfg.preprocessing.get("fmt", cfg.input["fmt"]) + else: + tmp_in_fmt = cfg.input["fmt"] + tmp_audio = audio.fromtype(tmp_in_fmt) + tmp_num_chans = tmp_audio.num_channels + cfg.splits = concat( cfg.items_list, cfg.concat_file, cfg.concat_silence.get("pre", 0), cfg.concat_silence.get("post", 0), - cfg.input.get("fs", 48000), + in_fs=cfg.input.get("fs", 48000), + num_channels=tmp_num_chans, preamble=cfg.preamble, pad_noise_preamble=cfg.pad_noise_preamble, ) diff --git a/ivas_processing_scripts/utils.py b/ivas_processing_scripts/utils.py index f28dd79f5f91362c5ca7254400d9301519645714..f271ec76170c67f86fe9e926dba7cd9aa17f273f 100755 --- a/ivas_processing_scripts/utils.py +++ b/ivas_processing_scripts/utils.py @@ -41,7 +41,7 @@ from pathlib import Path from shutil import which from typing import Callable, Iterable, Optional, Union -ALLOWED_INPUT_EXT = (".wav", ".pcm", ".txt") +ALLOWED_INPUT_EXT = (".wav", ".pcm", ".txt", ".raw") BIN_DIR = Path(__file__).parent.joinpath("bin")