Loading ci/delay_measurement_test.py +113 −86 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ from tkinter import W import numpy as np import sys import re PYAUDIO3DTOOLS_PATH = "./scripts/" sys.path.append(PYAUDIO3DTOOLS_PATH) from pyaudio3dtools import audioarray, audiofile Loading Loading @@ -49,36 +50,57 @@ FORMATS = [ "7_1_4", "SBA", "MASA1TC", "MASA2TC" "MASA2TC", ] TEST_FILE = "./delay_test_file_{}.pcm" CFG = "ci/delay_test_linux.json" def get_modes(format: str) -> list: modes_cmd = ["python3", "./scripts/runIvasCodec.py", "-l"] modes_proc = subprocess.run(modes_cmd, capture_output=True) search_str = format # TODO: exclude dtx, rate switching if format in ["5_1", "5_1_2", "5_1_4", "7_1", "7_1_4"]: search_str = "MC_" + format + "_b" modes_list = [ m for m in modes_proc.stdout.decode("utf8").split("\n") if m.startswith(search_str) and not "_ball_" in m and not "b_rs" in m and not "dtx" in m and not "amr" in m ] return modes_list def main(): formats = list(OC_TO_NCHANNELS.keys()) # for testing FORMATS = ["mono"] form = FORMATS[0] for form in FORMATS[:-2]: print(form) # generate test signal test_file = TEST_FILE.format(form) gen_cmd = ["python3", "./ci/generate_delay_measurement_signal.py", form, test_file] subprocess.call(gen_cmd) # collect modes modes_cmd = [ gen_form = form if form == "SBA": gen_form = "HOA3" gen_cmd = [ "python3", "./scripts/runIvasCodec.py", "-l" "./ci/generate_delay_measurement_signal.py", gen_form, test_file, ] modes_proc = subprocess.run(modes_cmd, capture_output=True) search_str = form if form in ["5_1", "5_1_2", "5_1_4", "7_1", "7_1_4"]: search_str = "MC_" + form modes_list = [m for m in modes_proc.stdout.decode("utf8").split("\n") if form in m] subprocess.call(gen_cmd) modes_list = get_modes(form) print(modes_list) # run format outfolder_delaycmp = "out_delay_cmp" Loading @@ -92,38 +114,43 @@ def main(): "-I", test_file, "-o", outfolder_delaycmp outfolder_delaycmp, ] subprocess.call(run_cmd) outfolder_nodelaycmp = "out_no_delay_cmp" run_cmd_nodelaycmp = list(run_cmd) run_cmd_nodelaycmp[-1] = outfolder_nodelaycmp run_cmd_nodelaycmp.extend([ "-D=-NO_DELAY_CMP", "-E=-NO_DELAY_CMP" ]) run_cmd_nodelaycmp.extend(["-D=-NO_DELAY_CMP", "-E=-NO_DELAY_CMP"]) subprocess.call(run_cmd_nodelaycmp) get_delay_for_folders(outfolder_delaycmp, outfolder_nodelaycmp) def get_delay_for_folders(folder_delay_cmp: str, folder_no_delay_cmp: str): folder_path_delay_cmp = pathlib.Path(folder_delay_cmp) files_delay_cmp = sorted([ f.name for f in folder_path_delay_cmp.joinpath("dec").iterdir() ]) files_delay_cmp = sorted( [ f.name for f in folder_path_delay_cmp.joinpath("dec").iterdir() if f.name.endswith(".wav") ] ) folder_path_no_delay_cmp = pathlib.Path(folder_no_delay_cmp) files_no_delay_cmp = sorted([ f.name for f in folder_path_no_delay_cmp.joinpath("dec").iterdir() ]) files_no_delay_cmp = sorted( [ f.name for f in folder_path_no_delay_cmp.joinpath("dec").iterdir() if f.name.endswith(".wav") ] ) assert(files_delay_cmp == files_no_delay_cmp) assert files_delay_cmp == files_no_delay_cmp delays_for_samplerates = dict() for f in files_delay_cmp: # for testing only if "dtx" in f or "amr" in f or "_rs" in f: continue f_cmp = folder_path_delay_cmp.joinpath("dec", f) f_no_cmp = folder_path_no_delay_cmp.joinpath("dec", f) Loading ci/generate_delay_measurement_signal.py +1 −1 Original line number Diff line number Diff line Loading @@ -51,7 +51,7 @@ def gen_signal(channels:int) -> np.ndarray: if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("outformat", type=str, choices=list(OC_TO_NCHANNELS.keys()), help="output format to generate for") parser.add_argument("outformat", type=str.upper, choices=list(OC_TO_NCHANNELS.keys()), help="output format to generate for") parser.add_argument("outfile", help="output .pcm file with measurement signal") args = parser.parse_args() Loading Loading
ci/delay_measurement_test.py +113 −86 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ from tkinter import W import numpy as np import sys import re PYAUDIO3DTOOLS_PATH = "./scripts/" sys.path.append(PYAUDIO3DTOOLS_PATH) from pyaudio3dtools import audioarray, audiofile Loading Loading @@ -49,36 +50,57 @@ FORMATS = [ "7_1_4", "SBA", "MASA1TC", "MASA2TC" "MASA2TC", ] TEST_FILE = "./delay_test_file_{}.pcm" CFG = "ci/delay_test_linux.json" def get_modes(format: str) -> list: modes_cmd = ["python3", "./scripts/runIvasCodec.py", "-l"] modes_proc = subprocess.run(modes_cmd, capture_output=True) search_str = format # TODO: exclude dtx, rate switching if format in ["5_1", "5_1_2", "5_1_4", "7_1", "7_1_4"]: search_str = "MC_" + format + "_b" modes_list = [ m for m in modes_proc.stdout.decode("utf8").split("\n") if m.startswith(search_str) and not "_ball_" in m and not "b_rs" in m and not "dtx" in m and not "amr" in m ] return modes_list def main(): formats = list(OC_TO_NCHANNELS.keys()) # for testing FORMATS = ["mono"] form = FORMATS[0] for form in FORMATS[:-2]: print(form) # generate test signal test_file = TEST_FILE.format(form) gen_cmd = ["python3", "./ci/generate_delay_measurement_signal.py", form, test_file] subprocess.call(gen_cmd) # collect modes modes_cmd = [ gen_form = form if form == "SBA": gen_form = "HOA3" gen_cmd = [ "python3", "./scripts/runIvasCodec.py", "-l" "./ci/generate_delay_measurement_signal.py", gen_form, test_file, ] modes_proc = subprocess.run(modes_cmd, capture_output=True) search_str = form if form in ["5_1", "5_1_2", "5_1_4", "7_1", "7_1_4"]: search_str = "MC_" + form modes_list = [m for m in modes_proc.stdout.decode("utf8").split("\n") if form in m] subprocess.call(gen_cmd) modes_list = get_modes(form) print(modes_list) # run format outfolder_delaycmp = "out_delay_cmp" Loading @@ -92,38 +114,43 @@ def main(): "-I", test_file, "-o", outfolder_delaycmp outfolder_delaycmp, ] subprocess.call(run_cmd) outfolder_nodelaycmp = "out_no_delay_cmp" run_cmd_nodelaycmp = list(run_cmd) run_cmd_nodelaycmp[-1] = outfolder_nodelaycmp run_cmd_nodelaycmp.extend([ "-D=-NO_DELAY_CMP", "-E=-NO_DELAY_CMP" ]) run_cmd_nodelaycmp.extend(["-D=-NO_DELAY_CMP", "-E=-NO_DELAY_CMP"]) subprocess.call(run_cmd_nodelaycmp) get_delay_for_folders(outfolder_delaycmp, outfolder_nodelaycmp) def get_delay_for_folders(folder_delay_cmp: str, folder_no_delay_cmp: str): folder_path_delay_cmp = pathlib.Path(folder_delay_cmp) files_delay_cmp = sorted([ f.name for f in folder_path_delay_cmp.joinpath("dec").iterdir() ]) files_delay_cmp = sorted( [ f.name for f in folder_path_delay_cmp.joinpath("dec").iterdir() if f.name.endswith(".wav") ] ) folder_path_no_delay_cmp = pathlib.Path(folder_no_delay_cmp) files_no_delay_cmp = sorted([ f.name for f in folder_path_no_delay_cmp.joinpath("dec").iterdir() ]) files_no_delay_cmp = sorted( [ f.name for f in folder_path_no_delay_cmp.joinpath("dec").iterdir() if f.name.endswith(".wav") ] ) assert(files_delay_cmp == files_no_delay_cmp) assert files_delay_cmp == files_no_delay_cmp delays_for_samplerates = dict() for f in files_delay_cmp: # for testing only if "dtx" in f or "amr" in f or "_rs" in f: continue f_cmp = folder_path_delay_cmp.joinpath("dec", f) f_no_cmp = folder_path_no_delay_cmp.joinpath("dec", f) Loading
ci/generate_delay_measurement_signal.py +1 −1 Original line number Diff line number Diff line Loading @@ -51,7 +51,7 @@ def gen_signal(channels:int) -> np.ndarray: if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("outformat", type=str, choices=list(OC_TO_NCHANNELS.keys()), help="output format to generate for") parser.add_argument("outformat", type=str.upper, choices=list(OC_TO_NCHANNELS.keys()), help="output format to generate for") parser.add_argument("outfile", help="output .pcm file with measurement signal") args = parser.parse_args() Loading