diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cbfc7d66b6d479f0cd18c2b9dffa863d46677f59..6ffbc26482e6c98b4174e4b1fd1d717476e64a15 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -81,7 +81,13 @@ experiments: script: - *print-common-info - *get-codec-binaries - - python3 -m pytest -n auto tests/test_experiments.py + - python3 -m pytest tests/test_experiments.py -n auto | tee log.txt + artifacts: + paths: + - experiments/selection/*/proc_output/*.log + - log.txt + when: on_failure + expire_in: 1 week # run some test configs for item creation test_processing: diff --git a/README.md b/README.md index 4319e5bc7897cfd070f5ff86c89e5ca24557923d..934940aee0edf62e7527f7364e1f728cfd8e40b4 100755 --- a/README.md +++ b/README.md @@ -545,7 +545,7 @@ The following additional executables are needed for the different processing ste | Filtering, Resampling | filter | https://www.3gpp.org/ftp/tsg_sa/WG4_CODEC/TSGS4_76/docs/S4-131277.zip | | Random offset/seed generation (necessary for background noise and FER bitstream processing) | random | https://www.3gpp.org/ftp/tsg_sa/WG4_CODEC/TSGS4_76/docs/S4-131277.zip | | JBM network simulator | networkSimulator_g192 | https://www.3gpp.org/ftp/tsg_sa/WG4_CODEC/TSGS4_76/docs/S4-131277.zip | -| MASA rendering (also used in loudness measurement of MASA items) | masaRenderer | https://www.3gpp.org/ftp/TSG_SA/WG4_CODEC/TSGS4_122_Athens/Docs/S4-230221.zip | +| MASA rendering (also used in loudness measurement of MASA items) | masaRenderer, masaAnalyzer | https://www.3gpp.org/ftp/TSG_SA/WG4_CODEC/TSGS4_122_Athens/Docs/S4-230221.zip | | EVS reference conditions | EVS_cod, EVS_dec | https://www.3gpp.org/ftp/Specs/archive/26_series/26.443/26443-h00.zip | The necessary binaries have to be either placed in the [ivas_processing_scripts/bin](./ivas_processing_scripts/bin) folder or the path has to be specified in diff --git a/create_items_p800.py b/create_items_p800.py index f9a1985bc1357bab21aa58433fc241ab941d69b3..dc4d747b0ebcd370a21a731cee3421fdfb53acdb 100644 --- a/create_items_p800.py +++ b/create_items_p800.py @@ -21,7 +21,7 @@ def create_items(testname): p800_cfgs = p800_path.joinpath("config").glob("P800*cat*.yml") args = [Arguments(str(cfg)) for cfg in p800_cfgs] - apply_func_parallel(generate_test, zip( args ), type="mp") + apply_func_parallel(generate_test, zip(args), type="mp") # if is necessary here so that multiprocessing does not crash diff --git a/examples/TEMPLATE.yml b/examples/TEMPLATE.yml index 498e0eddf48b0817d76bb7bfcd070a97288489a9..7439db3f11359f26fe6e3ea04eccd24ddb5cd368 100755 --- a/examples/TEMPLATE.yml +++ b/examples/TEMPLATE.yml @@ -287,7 +287,9 @@ conditions_to_generate: ### Post-processing step performed after core processing for all conditions ### Post-processing is required and can not be omitted postprocessing: - ### REQUIRED: Target format for output + ### REQUIRED: Target format for output, this can be a string as below, or a list, e.g. ["FOA", "BINAURAL"]. + ### Conversion will be applied in order and the last format is the final output forma. This was introduced to + ### accomodate for the MASA tests where masaRenderer is used as binaural renderer for all conditions. fmt: "BINAURAL" ### REQUIRED: Target sampling rate in Hz for resampling fs: 48000 diff --git a/experiments/selection/BS1534-7a/.gitkeep b/experiments/selection/BS1534-7a/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiments/selection/BS1534-7a/config/BS1534-7a.yml b/experiments/selection/BS1534-7a/config/BS1534-7a.yml new file mode 100644 index 0000000000000000000000000000000000000000..b92ae40514a986ce4f6a7a4dc678336d54a432e0 --- /dev/null +++ b/experiments/selection/BS1534-7a/config/BS1534-7a.yml @@ -0,0 +1,115 @@ +--- +################################################ +# General configuration +################################################ + +name: BS1534-7a +master_seed: 5 +prerun_seed: 2 + +input_path: "experiments/selection/BS1534-7a/proc_input" +output_path: "experiments/selection/BS1534-7a/proc_output" +use_windows_codec_binaries: true +condition_in_output_filename: true + +################################################ +### Input configuration +################################################ +input: + fmt: "FOA" + fs: 48000 + +################################################ +### Pre-processing on individual items +################################################ +preprocessing: + mask: "20KBP" + loudness: -26 + window: 100 + +################################################ +### Pre-processing on whole signal(s) +################################################ +preprocessing_2: + concatenate_input: true + # concatenation_order: [] + preamble: 10000 + preamble_noise: true + +################################################# +### Bitstream processing +################################################# + +################################################ +### Configuration for conditions under test +################################################ +conditions_to_generate: + ### Reference and anchor conditions ########################## + c01: + type: ref + c02: + type: lp7k + + ### EVS condition ################################ + c03: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + c04: + type: evs + bitrates: + - 24400 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c05: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + + ### IVAS condition ############################### + c06: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c07: + type: ivas + bitrates: + - 80000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c08: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + +################################################ +### Post-processing +################################################ +postprocessing: + fmt: ["MASA2", "BINAURAL"] + fs: 48000 + loudness: -26 diff --git a/experiments/selection/BS1534-7a/proc_input/.gitkeep b/experiments/selection/BS1534-7a/proc_input/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiments/selection/BS1534-7a/proc_output/.gitkeep b/experiments/selection/BS1534-7a/proc_output/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiments/selection/BS1534-7b/.gitkeep b/experiments/selection/BS1534-7b/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiments/selection/BS1534-7b/config/BS1534-7b.yml b/experiments/selection/BS1534-7b/config/BS1534-7b.yml new file mode 100644 index 0000000000000000000000000000000000000000..d4984f4df6a6aeceb1bdbaa1587c289d53bcb4ef --- /dev/null +++ b/experiments/selection/BS1534-7b/config/BS1534-7b.yml @@ -0,0 +1,130 @@ +--- +################################################ +# General configuration +################################################ + +name: BS1534-7b +master_seed: 5 +prerun_seed: 2 + +input_path: "experiments/selection/BS1534-7b/proc_input" +output_path: "experiments/selection/BS1534-7b/proc_output" +use_windows_codec_binaries: true +condition_in_output_filename: true + +################################################ +### Input configuration +################################################ +input: + fmt: "FOA" + fs: 48000 + +################################################ +### Pre-processing on individual items +################################################ +preprocessing: + mask: "20KBP" + loudness: -26 + window: 100 + +################################################ +### Pre-processing on whole signal(s) +################################################ +preprocessing_2: + concatenate_input: true + # concatenation_order: [] + preamble: 10000 + preamble_noise: true + +################################################# +### Bitstream processing +################################################# + +################################################ +### Configuration for conditions under test +################################################ +conditions_to_generate: + ### Reference and anchor conditions ########################## + c01: + type: ref + c02: + type: lp7k + + ### EVS condition ################################ + c03: + type: evs + bitrates: + - 48000 + cod: + opts: ["-max_band", "FB"] + dec: + c04: + type: evs + bitrates: + - 96000 + cod: + opts: ["-max_band", "FB"] + dec: + c05: + type: evs + bitrates: + - 48000 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c06: + type: evs + bitrates: + - 96000 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c07: + type: evs + bitrates: + - 32000 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + + ### IVAS condition ############################### + c08: + type: ivas + bitrates: + - 160000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c09: + type: ivas + bitrates: + - 256000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c10: + type: ivas + bitrates: + - 96000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + +################################################ +### Post-processing +################################################ +postprocessing: + fmt: ["MASA2", "BINAURAL"] + fs: 48000 + loudness: -26 diff --git a/experiments/selection/BS1534-7b/proc_input/.gitkeep b/experiments/selection/BS1534-7b/proc_input/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiments/selection/BS1534-7b/proc_output/.gitkeep b/experiments/selection/BS1534-7b/proc_output/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiments/selection/P800-8/config/P800-8-cat1.yml b/experiments/selection/P800-8/config/P800-8-cat1.yml new file mode 100644 index 0000000000000000000000000000000000000000..cf89a878a54f9fbf8d90fa3ac60be3562f789b75 --- /dev/null +++ b/experiments/selection/P800-8/config/P800-8-cat1.yml @@ -0,0 +1,365 @@ +--- +################################################ +# General configuration +################################################ + +name: P800-8 +master_seed: 5 +prerun_seed: 2 + +input_path: "experiments/selection/P800-8/proc_input/cat1" +output_path: "experiments/selection/P800-8/proc_output/cat1" +use_windows_codec_binaries: true +condition_in_output_filename: true + +################################################ +### Input configuration +################################################ +input: + fmt: "FOA" + fs: 48000 + +################################################ +### Pre-processing on individual items +################################################ +preprocessing: + mask: "HP50" + loudness: -26 + window: 100 + +################################################ +### Pre-processing on whole signal(s) +################################################ +preprocessing_2: + concatenate_input: true + # concatenation_order: [] + preamble: 10000 + preamble_noise: true + +################################################# +### Bitstream processing +################################################# + +################################################ +### Configuration for conditions under test +################################################ +conditions_to_generate: + ### Reference and anchor conditions ########################## + c01: + type: ref + c02: + type: mnru + q: 32 + c03: + type: mnru + q: 27 + c04: + type: mnru + q: 22 + c05: + type: mnru + q: 17 + c06: + type: esdru + alpha: 0.8 + c07: + type: esdru + alpha: 0.675 + c08: + type: esdru + alpha: 0.55 + + # ### EVS condition ################################ + c09: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + c10: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + c11: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + c12: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + c13: + type: evs + bitrates: + - 13200 + cod: + opts: ["-max_band", "FB"] + dec: + c14: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + c15: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + c16: + type: evs + bitrates: + - 7200 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c17: + type: evs + bitrates: + - 8000 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c18: + type: evs + bitrates: + - 9600 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c19: + type: evs + bitrates: + - 16400 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c20: + type: evs + bitrates: + - 24400 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c21: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + tx: + type: "FER" + error_rate: 5 + c22: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c23: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c24: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c25: + type: evs + bitrates: + - 13200 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c26: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c27: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + + ### IVAS condition ############################### + c28: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c29: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c30: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c31: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c32: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c33: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c34: + type: ivas + bitrates: + - 80000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c35: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c36: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c37: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c38: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c39: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c40: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + +################################################ +### Post-processing +################################################ +postprocessing: + fmt: ["MASA2", "BINAURAL"] + fs: 48000 + loudness: -26 diff --git a/experiments/selection/P800-8/config/P800-8-cat2.yml b/experiments/selection/P800-8/config/P800-8-cat2.yml new file mode 100644 index 0000000000000000000000000000000000000000..56d1df2343e3cd02bfac14548cc35b2ca59a2728 --- /dev/null +++ b/experiments/selection/P800-8/config/P800-8-cat2.yml @@ -0,0 +1,365 @@ +--- +################################################ +# General configuration +################################################ + +name: P800-8 +master_seed: 5 +prerun_seed: 2 + +input_path: "experiments/selection/P800-8/proc_input/cat2" +output_path: "experiments/selection/P800-8/proc_output/cat2" +use_windows_codec_binaries: true +condition_in_output_filename: true + +################################################ +### Input configuration +################################################ +input: + fmt: "FOA" + fs: 48000 + +################################################ +### Pre-processing on individual items +################################################ +preprocessing: + mask: "HP50" + loudness: -26 + window: 100 + +################################################ +### Pre-processing on whole signal(s) +################################################ +preprocessing_2: + concatenate_input: true + # concatenation_order: [] + preamble: 10000 + preamble_noise: true + +################################################# +### Bitstream processing +################################################# + +################################################ +### Configuration for conditions under test +################################################ +conditions_to_generate: + ### Reference and anchor conditions ########################## + c01: + type: ref + c02: + type: mnru + q: 32 + c03: + type: mnru + q: 27 + c04: + type: mnru + q: 22 + c05: + type: mnru + q: 17 + c06: + type: esdru + alpha: 0.8 + c07: + type: esdru + alpha: 0.675 + c08: + type: esdru + alpha: 0.55 + + # ### EVS condition ################################ + c09: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + c10: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + c11: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + c12: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + c13: + type: evs + bitrates: + - 13200 + cod: + opts: ["-max_band", "FB"] + dec: + c14: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + c15: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + c16: + type: evs + bitrates: + - 7200 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c17: + type: evs + bitrates: + - 8000 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c18: + type: evs + bitrates: + - 9600 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c19: + type: evs + bitrates: + - 16400 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c20: + type: evs + bitrates: + - 24400 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c21: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + tx: + type: "FER" + error_rate: 5 + c22: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c23: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c24: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c25: + type: evs + bitrates: + - 13200 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c26: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c27: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + + ### IVAS condition ############################### + c28: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c29: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c30: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c31: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c32: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c33: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c34: + type: ivas + bitrates: + - 80000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c35: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c36: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c37: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c38: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c39: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c40: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + +################################################ +### Post-processing +################################################ +postprocessing: + fmt: ["MASA2", "BINAURAL"] + fs: 48000 + loudness: -26 diff --git a/experiments/selection/P800-8/config/P800-8-cat3.yml b/experiments/selection/P800-8/config/P800-8-cat3.yml new file mode 100644 index 0000000000000000000000000000000000000000..068c3d2a7842dacc57c74163ef5e0a13094acd8a --- /dev/null +++ b/experiments/selection/P800-8/config/P800-8-cat3.yml @@ -0,0 +1,365 @@ +--- +################################################ +# General configuration +################################################ + +name: P800-8 +master_seed: 5 +prerun_seed: 2 + +input_path: "experiments/selection/P800-8/proc_input/cat3" +output_path: "experiments/selection/P800-8/proc_output/cat3" +use_windows_codec_binaries: true +condition_in_output_filename: true + +################################################ +### Input configuration +################################################ +input: + fmt: "FOA" + fs: 48000 + +################################################ +### Pre-processing on individual items +################################################ +preprocessing: + mask: "HP50" + loudness: -26 + window: 100 + +################################################ +### Pre-processing on whole signal(s) +################################################ +preprocessing_2: + concatenate_input: true + # concatenation_order: [] + preamble: 10000 + preamble_noise: true + +################################################# +### Bitstream processing +################################################# + +################################################ +### Configuration for conditions under test +################################################ +conditions_to_generate: + ### Reference and anchor conditions ########################## + c01: + type: ref + c02: + type: mnru + q: 32 + c03: + type: mnru + q: 27 + c04: + type: mnru + q: 22 + c05: + type: mnru + q: 17 + c06: + type: esdru + alpha: 0.8 + c07: + type: esdru + alpha: 0.675 + c08: + type: esdru + alpha: 0.55 + + # ### EVS condition ################################ + c09: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + c10: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + c11: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + c12: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + c13: + type: evs + bitrates: + - 13200 + cod: + opts: ["-max_band", "FB"] + dec: + c14: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + c15: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + c16: + type: evs + bitrates: + - 7200 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c17: + type: evs + bitrates: + - 8000 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c18: + type: evs + bitrates: + - 9600 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c19: + type: evs + bitrates: + - 16400 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c20: + type: evs + bitrates: + - 24400 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c21: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + tx: + type: "FER" + error_rate: 5 + c22: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c23: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c24: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c25: + type: evs + bitrates: + - 13200 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c26: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c27: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + + ### IVAS condition ############################### + c28: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c29: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c30: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c31: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c32: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c33: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c34: + type: ivas + bitrates: + - 80000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c35: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c36: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c37: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c38: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c39: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c40: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + +################################################ +### Post-processing +################################################ +postprocessing: + fmt: ["MASA2", "BINAURAL"] + fs: 48000 + loudness: -26 diff --git a/experiments/selection/P800-8/config/P800-8-cat4.yml b/experiments/selection/P800-8/config/P800-8-cat4.yml new file mode 100644 index 0000000000000000000000000000000000000000..4703581fdb61c63425fd0b5c7703bdb823555ef6 --- /dev/null +++ b/experiments/selection/P800-8/config/P800-8-cat4.yml @@ -0,0 +1,365 @@ +--- +################################################ +# General configuration +################################################ + +name: P800-8 +master_seed: 5 +prerun_seed: 2 + +input_path: "experiments/selection/P800-8/proc_input/cat4" +output_path: "experiments/selection/P800-8/proc_output/cat4" +use_windows_codec_binaries: true +condition_in_output_filename: true + +################################################ +### Input configuration +################################################ +input: + fmt: "FOA" + fs: 48000 + +################################################ +### Pre-processing on individual items +################################################ +preprocessing: + mask: "HP50" + loudness: -26 + window: 100 + +################################################ +### Pre-processing on whole signal(s) +################################################ +preprocessing_2: + concatenate_input: true + # concatenation_order: [] + preamble: 10000 + preamble_noise: true + +################################################# +### Bitstream processing +################################################# + +################################################ +### Configuration for conditions under test +################################################ +conditions_to_generate: + ### Reference and anchor conditions ########################## + c01: + type: ref + c02: + type: mnru + q: 32 + c03: + type: mnru + q: 27 + c04: + type: mnru + q: 22 + c05: + type: mnru + q: 17 + c06: + type: esdru + alpha: 0.8 + c07: + type: esdru + alpha: 0.675 + c08: + type: esdru + alpha: 0.55 + + # ### EVS condition ################################ + c09: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + c10: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + c11: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + c12: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + c13: + type: evs + bitrates: + - 13200 + cod: + opts: ["-max_band", "FB"] + dec: + c14: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + c15: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + c16: + type: evs + bitrates: + - 7200 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c17: + type: evs + bitrates: + - 8000 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c18: + type: evs + bitrates: + - 9600 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c19: + type: evs + bitrates: + - 16400 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c20: + type: evs + bitrates: + - 24400 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c21: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + tx: + type: "FER" + error_rate: 5 + c22: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c23: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c24: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c25: + type: evs + bitrates: + - 13200 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c26: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c27: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + + ### IVAS condition ############################### + c28: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c29: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c30: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c31: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c32: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c33: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c34: + type: ivas + bitrates: + - 80000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c35: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c36: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c37: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c38: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c39: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c40: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + +################################################ +### Post-processing +################################################ +postprocessing: + fmt: ["MASA2", "BINAURAL"] + fs: 48000 + loudness: -26 diff --git a/experiments/selection/P800-8/config/P800-8-cat5.yml b/experiments/selection/P800-8/config/P800-8-cat5.yml new file mode 100644 index 0000000000000000000000000000000000000000..bfebe93ee2a95658ac893f7fc03b1b2bd203b8e4 --- /dev/null +++ b/experiments/selection/P800-8/config/P800-8-cat5.yml @@ -0,0 +1,365 @@ +--- +################################################ +# General configuration +################################################ + +name: P800-8 +master_seed: 5 +prerun_seed: 2 + +input_path: "experiments/selection/P800-8/proc_input/cat5" +output_path: "experiments/selection/P800-8/proc_output/cat5" +use_windows_codec_binaries: true +condition_in_output_filename: true + +################################################ +### Input configuration +################################################ +input: + fmt: "FOA" + fs: 48000 + +################################################ +### Pre-processing on individual items +################################################ +preprocessing: + mask: "HP50" + loudness: -26 + window: 100 + +################################################ +### Pre-processing on whole signal(s) +################################################ +preprocessing_2: + concatenate_input: true + # concatenation_order: [] + preamble: 10000 + preamble_noise: true + +################################################# +### Bitstream processing +################################################# + +################################################ +### Configuration for conditions under test +################################################ +conditions_to_generate: + ### Reference and anchor conditions ########################## + c01: + type: ref + c02: + type: mnru + q: 32 + c03: + type: mnru + q: 27 + c04: + type: mnru + q: 22 + c05: + type: mnru + q: 17 + c06: + type: esdru + alpha: 0.8 + c07: + type: esdru + alpha: 0.675 + c08: + type: esdru + alpha: 0.55 + + # ### EVS condition ################################ + c09: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + c10: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + c11: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + c12: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + c13: + type: evs + bitrates: + - 13200 + cod: + opts: ["-max_band", "FB"] + dec: + c14: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + c15: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + c16: + type: evs + bitrates: + - 7200 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c17: + type: evs + bitrates: + - 8000 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c18: + type: evs + bitrates: + - 9600 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c19: + type: evs + bitrates: + - 16400 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c20: + type: evs + bitrates: + - 24400 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c21: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + tx: + type: "FER" + error_rate: 5 + c22: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c23: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c24: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c25: + type: evs + bitrates: + - 13200 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c26: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c27: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + + ### IVAS condition ############################### + c28: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c29: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c30: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c31: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c32: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c33: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c34: + type: ivas + bitrates: + - 80000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c35: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c36: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c37: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c38: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c39: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c40: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + +################################################ +### Post-processing +################################################ +postprocessing: + fmt: ["MASA2", "BINAURAL"] + fs: 48000 + loudness: -26 diff --git a/experiments/selection/P800-8/config/P800-8-cat6.yml b/experiments/selection/P800-8/config/P800-8-cat6.yml new file mode 100644 index 0000000000000000000000000000000000000000..641efed6dee5ddf95b1d7c9bbe3381796600048b --- /dev/null +++ b/experiments/selection/P800-8/config/P800-8-cat6.yml @@ -0,0 +1,365 @@ +--- +################################################ +# General configuration +################################################ + +name: P800-8 +master_seed: 5 +prerun_seed: 2 + +input_path: "experiments/selection/P800-8/proc_input/cat6" +output_path: "experiments/selection/P800-8/proc_output/cat6" +use_windows_codec_binaries: true +condition_in_output_filename: true + +################################################ +### Input configuration +################################################ +input: + fmt: "FOA" + fs: 48000 + +################################################ +### Pre-processing on individual items +################################################ +preprocessing: + mask: "HP50" + loudness: -26 + window: 100 + +################################################ +### Pre-processing on whole signal(s) +################################################ +preprocessing_2: + concatenate_input: true + # concatenation_order: [] + preamble: 10000 + preamble_noise: true + +################################################# +### Bitstream processing +################################################# + +################################################ +### Configuration for conditions under test +################################################ +conditions_to_generate: + ### Reference and anchor conditions ########################## + c01: + type: ref + c02: + type: mnru + q: 32 + c03: + type: mnru + q: 27 + c04: + type: mnru + q: 22 + c05: + type: mnru + q: 17 + c06: + type: esdru + alpha: 0.8 + c07: + type: esdru + alpha: 0.675 + c08: + type: esdru + alpha: 0.55 + + # ### EVS condition ################################ + c09: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + c10: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + c11: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + c12: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + c13: + type: evs + bitrates: + - 13200 + cod: + opts: ["-max_band", "FB"] + dec: + c14: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + c15: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + c16: + type: evs + bitrates: + - 7200 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c17: + type: evs + bitrates: + - 8000 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c18: + type: evs + bitrates: + - 9600 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c19: + type: evs + bitrates: + - 16400 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c20: + type: evs + bitrates: + - 24400 + cod: + fmt: "MASA2" + opts: ["-max_band", "FB"] + dec: + c21: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + tx: + type: "FER" + error_rate: 5 + c22: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c23: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c24: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c25: + type: evs + bitrates: + - 13200 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c26: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + c27: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + tx: + type: "FER" + error_rate: 5 + + ### IVAS condition ############################### + c28: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c29: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c30: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c31: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c32: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c33: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c34: + type: ivas + bitrates: + - 80000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c35: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c36: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c37: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c38: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c39: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + c40: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + tx: + type: "FER" + error_rate: 5 + +################################################ +### Post-processing +################################################ +postprocessing: + fmt: ["MASA2", "BINAURAL"] + fs: 48000 + loudness: -26 diff --git a/experiments/selection/P800-8/proc_input/cat1/.gitkeep b/experiments/selection/P800-8/proc_input/cat1/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiments/selection/P800-8/proc_input/cat2/.gitkeep b/experiments/selection/P800-8/proc_input/cat2/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiments/selection/P800-8/proc_input/cat3/.gitkeep b/experiments/selection/P800-8/proc_input/cat3/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiments/selection/P800-8/proc_input/cat4/.gitkeep b/experiments/selection/P800-8/proc_input/cat4/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiments/selection/P800-8/proc_input/cat5/.gitkeep b/experiments/selection/P800-8/proc_input/cat5/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiments/selection/P800-8/proc_input/cat6/.gitkeep b/experiments/selection/P800-8/proc_input/cat6/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiments/selection/P800-9/background_noise/.gitkeep b/experiments/selection/P800-9/background_noise/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiments/selection/P800-9/config/P800-9-cat1.yml b/experiments/selection/P800-9/config/P800-9-cat1.yml new file mode 100644 index 0000000000000000000000000000000000000000..b1b91db78e42a86234cf6008f09dc3dedfb178a0 --- /dev/null +++ b/experiments/selection/P800-9/config/P800-9-cat1.yml @@ -0,0 +1,307 @@ +--- +################################################ +# General configuration +################################################ + +name: P800-9 +master_seed: 5 +prerun_seed: 2 + +input_path: "experiments/selection/P800-9/proc_input/cat1" +output_path: "experiments/selection/P800-9/proc_output/cat1" +use_windows_codec_binaries: true +condition_in_output_filename: true + +################################################ +### Input configuration +################################################ +input: + fmt: "FOA" + fs: 48000 + +################################################ +### Pre-processing on individual items +################################################ +preprocessing: + mask: "HP50" + loudness: -26 + window: 100 + +################################################ +### Pre-processing on whole signal(s) +################################################ +preprocessing_2: + concatenate_input: true + # concatenation_order: [] + preamble: 10000 + preamble_noise: true + background_noise: + ### REQUIRED: SNR for background noise in dB + snr: 15 + ### REQUIRED: Path to background noise, must have same format and sampling rate as input signal(s) + background_noise_path: "experiments/selection/P800-9/background_noise/background_noise_cat1.wav" + +################################################# +### Bitstream processing +################################################# + +################################################ +### Configuration for conditions under test +################################################ +conditions_to_generate: + ### Reference and anchor conditions ########################## + c01: + type: ref + c02: + type: mnru + q: 32 + c03: + type: mnru + q: 27 + c04: + type: mnru + q: 22 + c05: + type: mnru + q: 17 + c06: + type: esdru + alpha: 0.8 + c07: + type: esdru + alpha: 0.675 + c08: + type: esdru + alpha: 0.55 + + # ### EVS condition ################################ + c09: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + c10: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + c11: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + c12: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + c13: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + c14: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + c15: + type: evs + bitrates: + - 7200 + cod: + fmt: "MASA2" + opts: ["-dtx", "-max_band", "FB"] + dec: + c16: + type: evs + bitrates: + - 9600 + cod: + fmt: "MASA2" + opts: ["-dtx", "-max_band", "FB"] + dec: + c17: + type: evs + bitrates: + - 16400 + cod: + fmt: "MASA2" + opts: ["-dtx", "-max_band", "FB"] + dec: + c18: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + c19: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + c20: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + c21: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + c22: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + c23: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + + ### IVAS condition ############################### + c24: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c25: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c26: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c27: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c28: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c29: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c30: + type: ivas + bitrates: + - 80000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c31: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c32: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c33: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c34: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c35: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c36: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + +################################################ +### Post-processing +################################################ +postprocessing: + fmt: ["MASA2", "BINAURAL"] + fs: 48000 + loudness: -26 diff --git a/experiments/selection/P800-9/config/P800-9-cat2.yml b/experiments/selection/P800-9/config/P800-9-cat2.yml new file mode 100644 index 0000000000000000000000000000000000000000..1ed2b89cb2a2bafc139daf781e4adf224217895a --- /dev/null +++ b/experiments/selection/P800-9/config/P800-9-cat2.yml @@ -0,0 +1,307 @@ +--- +################################################ +# General configuration +################################################ + +name: P800-9 +master_seed: 5 +prerun_seed: 2 + +input_path: "experiments/selection/P800-9/proc_input/cat2" +output_path: "experiments/selection/P800-9/proc_output/cat2" +use_windows_codec_binaries: true +condition_in_output_filename: true + +################################################ +### Input configuration +################################################ +input: + fmt: "FOA" + fs: 48000 + +################################################ +### Pre-processing on individual items +################################################ +preprocessing: + mask: "HP50" + loudness: -26 + window: 100 + +################################################ +### Pre-processing on whole signal(s) +################################################ +preprocessing_2: + concatenate_input: true + # concatenation_order: [] + preamble: 10000 + preamble_noise: true + background_noise: + ### REQUIRED: SNR for background noise in dB + snr: 15 + ### REQUIRED: Path to background noise, must have same format and sampling rate as input signal(s) + background_noise_path: "experiments/selection/P800-9/background_noise/background_noise_cat2.wav" + +################################################# +### Bitstream processing +################################################# + +################################################ +### Configuration for conditions under test +################################################ +conditions_to_generate: + ### Reference and anchor conditions ########################## + c01: + type: ref + c02: + type: mnru + q: 32 + c03: + type: mnru + q: 27 + c04: + type: mnru + q: 22 + c05: + type: mnru + q: 17 + c06: + type: esdru + alpha: 0.8 + c07: + type: esdru + alpha: 0.675 + c08: + type: esdru + alpha: 0.55 + + # ### EVS condition ################################ + c09: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + c10: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + c11: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + c12: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + c13: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + c14: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + c15: + type: evs + bitrates: + - 7200 + cod: + fmt: "MASA2" + opts: ["-dtx", "-max_band", "FB"] + dec: + c16: + type: evs + bitrates: + - 9600 + cod: + fmt: "MASA2" + opts: ["-dtx", "-max_band", "FB"] + dec: + c17: + type: evs + bitrates: + - 16400 + cod: + fmt: "MASA2" + opts: ["-dtx", "-max_band", "FB"] + dec: + c18: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + c19: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + c20: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + c21: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + c22: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + c23: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + + ### IVAS condition ############################### + c24: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c25: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c26: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c27: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c28: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c29: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c30: + type: ivas + bitrates: + - 80000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c31: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c32: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c33: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c34: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c35: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c36: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + +################################################ +### Post-processing +################################################ +postprocessing: + fmt: ["MASA2", "BINAURAL"] + fs: 48000 + loudness: -26 diff --git a/experiments/selection/P800-9/config/P800-9-cat3.yml b/experiments/selection/P800-9/config/P800-9-cat3.yml new file mode 100644 index 0000000000000000000000000000000000000000..6a3cd9c6d7b8ad45a6f0cd20b2a59e01b2056d9f --- /dev/null +++ b/experiments/selection/P800-9/config/P800-9-cat3.yml @@ -0,0 +1,307 @@ +--- +################################################ +# General configuration +################################################ + +name: P800-9 +master_seed: 5 +prerun_seed: 2 + +input_path: "experiments/selection/P800-9/proc_input/cat3" +output_path: "experiments/selection/P800-9/proc_output/cat3" +use_windows_codec_binaries: true +condition_in_output_filename: true + +################################################ +### Input configuration +################################################ +input: + fmt: "FOA" + fs: 48000 + +################################################ +### Pre-processing on individual items +################################################ +preprocessing: + mask: "HP50" + loudness: -26 + window: 100 + +################################################ +### Pre-processing on whole signal(s) +################################################ +preprocessing_2: + concatenate_input: true + # concatenation_order: [] + preamble: 10000 + preamble_noise: true + background_noise: + ### REQUIRED: SNR for background noise in dB + snr: 15 + ### REQUIRED: Path to background noise, must have same format and sampling rate as input signal(s) + background_noise_path: "experiments/selection/P800-9/background_noise/background_noise_cat3.wav" + +################################################# +### Bitstream processing +################################################# + +################################################ +### Configuration for conditions under test +################################################ +conditions_to_generate: + ### Reference and anchor conditions ########################## + c01: + type: ref + c02: + type: mnru + q: 32 + c03: + type: mnru + q: 27 + c04: + type: mnru + q: 22 + c05: + type: mnru + q: 17 + c06: + type: esdru + alpha: 0.8 + c07: + type: esdru + alpha: 0.675 + c08: + type: esdru + alpha: 0.55 + + # ### EVS condition ################################ + c09: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + c10: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + c11: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + c12: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + c13: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + c14: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + c15: + type: evs + bitrates: + - 7200 + cod: + fmt: "MASA2" + opts: ["-dtx", "-max_band", "FB"] + dec: + c16: + type: evs + bitrates: + - 9600 + cod: + fmt: "MASA2" + opts: ["-dtx", "-max_band", "FB"] + dec: + c17: + type: evs + bitrates: + - 16400 + cod: + fmt: "MASA2" + opts: ["-dtx", "-max_band", "FB"] + dec: + c18: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + c19: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + c20: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + c21: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + c22: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + c23: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + + ### IVAS condition ############################### + c24: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c25: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c26: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c27: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c28: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c29: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c30: + type: ivas + bitrates: + - 80000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c31: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c32: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c33: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c34: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c35: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c36: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + +################################################ +### Post-processing +################################################ +postprocessing: + fmt: ["MASA2", "BINAURAL"] + fs: 48000 + loudness: -26 diff --git a/experiments/selection/P800-9/config/P800-9-cat4.yml b/experiments/selection/P800-9/config/P800-9-cat4.yml new file mode 100644 index 0000000000000000000000000000000000000000..e10f73a9bad92f79123833827c05dcdfacb42469 --- /dev/null +++ b/experiments/selection/P800-9/config/P800-9-cat4.yml @@ -0,0 +1,307 @@ +--- +################################################ +# General configuration +################################################ + +name: P800-9 +master_seed: 5 +prerun_seed: 2 + +input_path: "experiments/selection/P800-9/proc_input/cat4" +output_path: "experiments/selection/P800-9/proc_output/cat4" +use_windows_codec_binaries: true +condition_in_output_filename: true + +################################################ +### Input configuration +################################################ +input: + fmt: "FOA" + fs: 48000 + +################################################ +### Pre-processing on individual items +################################################ +preprocessing: + mask: "HP50" + loudness: -26 + window: 100 + +################################################ +### Pre-processing on whole signal(s) +################################################ +preprocessing_2: + concatenate_input: true + # concatenation_order: [] + preamble: 10000 + preamble_noise: true + background_noise: + ### REQUIRED: SNR for background noise in dB + snr: 15 + ### REQUIRED: Path to background noise, must have same format and sampling rate as input signal(s) + background_noise_path: "experiments/selection/P800-9/background_noise/background_noise_cat4.wav" + +################################################# +### Bitstream processing +################################################# + +################################################ +### Configuration for conditions under test +################################################ +conditions_to_generate: + ### Reference and anchor conditions ########################## + c01: + type: ref + c02: + type: mnru + q: 32 + c03: + type: mnru + q: 27 + c04: + type: mnru + q: 22 + c05: + type: mnru + q: 17 + c06: + type: esdru + alpha: 0.8 + c07: + type: esdru + alpha: 0.675 + c08: + type: esdru + alpha: 0.55 + + # ### EVS condition ################################ + c09: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + c10: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + c11: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + c12: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + c13: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + c14: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + c15: + type: evs + bitrates: + - 7200 + cod: + fmt: "MASA2" + opts: ["-dtx", "-max_band", "FB"] + dec: + c16: + type: evs + bitrates: + - 9600 + cod: + fmt: "MASA2" + opts: ["-dtx", "-max_band", "FB"] + dec: + c17: + type: evs + bitrates: + - 16400 + cod: + fmt: "MASA2" + opts: ["-dtx", "-max_band", "FB"] + dec: + c18: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + c19: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + c20: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + c21: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + c22: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + c23: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + + ### IVAS condition ############################### + c24: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c25: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c26: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c27: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c28: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c29: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c30: + type: ivas + bitrates: + - 80000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c31: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c32: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c33: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c34: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c35: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c36: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + +################################################ +### Post-processing +################################################ +postprocessing: + fmt: ["MASA2", "BINAURAL"] + fs: 48000 + loudness: -26 diff --git a/experiments/selection/P800-9/config/P800-9-cat5.yml b/experiments/selection/P800-9/config/P800-9-cat5.yml new file mode 100644 index 0000000000000000000000000000000000000000..1c1930e63dc3f67142cb67bf5431cf0268eb4b3c --- /dev/null +++ b/experiments/selection/P800-9/config/P800-9-cat5.yml @@ -0,0 +1,307 @@ +--- +################################################ +# General configuration +################################################ + +name: P800-9 +master_seed: 5 +prerun_seed: 2 + +input_path: "experiments/selection/P800-9/proc_input/cat5" +output_path: "experiments/selection/P800-9/proc_output/cat5" +use_windows_codec_binaries: true +condition_in_output_filename: true + +################################################ +### Input configuration +################################################ +input: + fmt: "FOA" + fs: 48000 + +################################################ +### Pre-processing on individual items +################################################ +preprocessing: + mask: "HP50" + loudness: -26 + window: 100 + +################################################ +### Pre-processing on whole signal(s) +################################################ +preprocessing_2: + concatenate_input: true + # concatenation_order: [] + preamble: 10000 + preamble_noise: true + background_noise: + ### REQUIRED: SNR for background noise in dB + snr: 15 + ### REQUIRED: Path to background noise, must have same format and sampling rate as input signal(s) + background_noise_path: "experiments/selection/P800-9/background_noise/background_noise_cat5.wav" + +################################################# +### Bitstream processing +################################################# + +################################################ +### Configuration for conditions under test +################################################ +conditions_to_generate: + ### Reference and anchor conditions ########################## + c01: + type: ref + c02: + type: mnru + q: 32 + c03: + type: mnru + q: 27 + c04: + type: mnru + q: 22 + c05: + type: mnru + q: 17 + c06: + type: esdru + alpha: 0.8 + c07: + type: esdru + alpha: 0.675 + c08: + type: esdru + alpha: 0.55 + + # ### EVS condition ################################ + c09: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + c10: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + c11: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + c12: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + c13: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + c14: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + c15: + type: evs + bitrates: + - 7200 + cod: + fmt: "MASA2" + opts: ["-dtx", "-max_band", "FB"] + dec: + c16: + type: evs + bitrates: + - 9600 + cod: + fmt: "MASA2" + opts: ["-dtx", "-max_band", "FB"] + dec: + c17: + type: evs + bitrates: + - 16400 + cod: + fmt: "MASA2" + opts: ["-dtx", "-max_band", "FB"] + dec: + c18: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + c19: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + c20: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + c21: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + c22: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + c23: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + + ### IVAS condition ############################### + c24: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c25: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c26: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c27: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c28: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c29: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c30: + type: ivas + bitrates: + - 80000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c31: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c32: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c33: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c34: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c35: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c36: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + +################################################ +### Post-processing +################################################ +postprocessing: + fmt: ["MASA2", "BINAURAL"] + fs: 48000 + loudness: -26 diff --git a/experiments/selection/P800-9/config/P800-9-cat6.yml b/experiments/selection/P800-9/config/P800-9-cat6.yml new file mode 100644 index 0000000000000000000000000000000000000000..e6dcc3dc18ad33c6d784e57a52f3e658d9133d93 --- /dev/null +++ b/experiments/selection/P800-9/config/P800-9-cat6.yml @@ -0,0 +1,307 @@ +--- +################################################ +# General configuration +################################################ + +name: P800-9 +master_seed: 5 +prerun_seed: 2 + +input_path: "experiments/selection/P800-9/proc_input/cat6" +output_path: "experiments/selection/P800-9/proc_output/cat6" +use_windows_codec_binaries: true +condition_in_output_filename: true + +################################################ +### Input configuration +################################################ +input: + fmt: "FOA" + fs: 48000 + +################################################ +### Pre-processing on individual items +################################################ +preprocessing: + mask: "HP50" + loudness: -26 + window: 100 + +################################################ +### Pre-processing on whole signal(s) +################################################ +preprocessing_2: + concatenate_input: true + # concatenation_order: [] + preamble: 10000 + preamble_noise: true + background_noise: + ### REQUIRED: SNR for background noise in dB + snr: 15 + ### REQUIRED: Path to background noise, must have same format and sampling rate as input signal(s) + background_noise_path: "experiments/selection/P800-9/background_noise/background_noise_cat6.wav" + +################################################# +### Bitstream processing +################################################# + +################################################ +### Configuration for conditions under test +################################################ +conditions_to_generate: + ### Reference and anchor conditions ########################## + c01: + type: ref + c02: + type: mnru + q: 32 + c03: + type: mnru + q: 27 + c04: + type: mnru + q: 22 + c05: + type: mnru + q: 17 + c06: + type: esdru + alpha: 0.8 + c07: + type: esdru + alpha: 0.675 + c08: + type: esdru + alpha: 0.55 + + # ### EVS condition ################################ + c09: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + c10: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + c11: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + c12: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + c13: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + c14: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + c15: + type: evs + bitrates: + - 7200 + cod: + fmt: "MASA2" + opts: ["-dtx", "-max_band", "FB"] + dec: + c16: + type: evs + bitrates: + - 9600 + cod: + fmt: "MASA2" + opts: ["-dtx", "-max_band", "FB"] + dec: + c17: + type: evs + bitrates: + - 16400 + cod: + fmt: "MASA2" + opts: ["-dtx", "-max_band", "FB"] + dec: + c18: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + sba_format: "PLANARFOA" + c19: + type: evs + bitrates: + - 7200 + cod: + opts: ["-max_band", "FB"] + dec: + c20: + type: evs + bitrates: + - 8000 + cod: + opts: ["-max_band", "FB"] + dec: + c21: + type: evs + bitrates: + - 9600 + cod: + opts: ["-max_band", "FB"] + dec: + c22: + type: evs + bitrates: + - 16400 + cod: + opts: ["-max_band", "FB"] + dec: + c23: + type: evs + bitrates: + - 24400 + cod: + opts: ["-max_band", "FB"] + dec: + + ### IVAS condition ############################### + c24: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c25: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c26: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c27: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c28: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c29: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c30: + type: ivas + bitrates: + - 80000 + cod: + fmt: "MASA2" + dec: + fmt: "MASA2" + c31: + type: ivas + bitrates: + - 13200 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c32: + type: ivas + bitrates: + - 16400 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c33: + type: ivas + bitrates: + - 24400 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c34: + type: ivas + bitrates: + - 32000 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c35: + type: ivas + bitrates: + - 48000 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + c36: + type: ivas + bitrates: + - 64000 + cod: + fmt: "MASA2" + opts: ["-dtx"] + dec: + fmt: "MASA2" + +################################################ +### Post-processing +################################################ +postprocessing: + fmt: ["MASA2", "BINAURAL"] + fs: 48000 + loudness: -26 diff --git a/experiments/selection/P800-9/proc_input/cat1/.gitkeep b/experiments/selection/P800-9/proc_input/cat1/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiments/selection/P800-9/proc_input/cat2/.gitkeep b/experiments/selection/P800-9/proc_input/cat2/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiments/selection/P800-9/proc_input/cat3/.gitkeep b/experiments/selection/P800-9/proc_input/cat3/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiments/selection/P800-9/proc_input/cat4/.gitkeep b/experiments/selection/P800-9/proc_input/cat4/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiments/selection/P800-9/proc_input/cat5/.gitkeep b/experiments/selection/P800-9/proc_input/cat5/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/experiments/selection/P800-9/proc_input/cat6/.gitkeep b/experiments/selection/P800-9/proc_input/cat6/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/ivas_processing_scripts/audiotools/convert/__init__.py b/ivas_processing_scripts/audiotools/convert/__init__.py index 5234470502125ac37d5428fc000c73f173da96fb..adc6e6d00fbd4259df4aed7460fae8e66ad781b4 100755 --- a/ivas_processing_scripts/audiotools/convert/__init__.py +++ b/ivas_processing_scripts/audiotools/convert/__init__.py @@ -32,8 +32,11 @@ import logging from pathlib import Path, PurePath +from shutil import copyfile from typing import Optional, Union +from numpy import empty + from ivas_processing_scripts.audiotools import audio, audioarray, metadata from ivas_processing_scripts.audiotools.audiofile import write from ivas_processing_scripts.audiotools.convert.channelbased import convert_channelbased @@ -72,6 +75,10 @@ def convert_file( if not isinstance(in_fmt, PurePath) and in_fmt.startswith("META"): input = metadata.Metadata(in_file) else: + # first check prevents crash on custom_ls setup formats + if isinstance(in_fmt, str) and in_fmt.startswith("MASA") and in_meta is None: + # if no MD fileis provided, default to name (including .wav or .pcm!!!) + ".met" + in_meta = [in_file.parent / (in_file.name + ".met")] input = audio.fromfile(in_fmt, in_file, in_fs, in_meta) # try to set reasonable defaults if missing @@ -89,6 +96,14 @@ def convert_file( out_fmt = input.name output = audio.fromtype(out_fmt) + + if isinstance(output, audio.MetadataAssistedSpatialAudio): + # create dummy audio array to allow inference of MASA mode + num_tcs = int(output.name[-1]) + output.audio = empty((1, num_tcs)) + + # fabricate metadata file name + output.metadata_file = Path(out_file).parent / (Path(out_file).name + ".met") if isinstance(output, audio.ObjectBasedAudio): try: output.object_pos = input.object_pos @@ -123,6 +138,11 @@ def convert_file( write(out_file, output.audio, output.fs) if isinstance(output, audio.ObjectBasedAudio): write_ISM_metadata_in_file(output.object_pos, [out_file], automatic_naming=True) + elif isinstance(output, audio.MetadataAssistedSpatialAudio) and in_fmt == out_fmt: + # audio objects point to same MD file, create new one with default naming for output + out_md_name = out_file.parent / (out_file.name + ".met") + copyfile(output.metadata_file, out_md_name) + output.metadata_file = out_md_name def convert( @@ -291,8 +311,11 @@ def format_conversion( """Convert one audio format to another""" # validation - if isinstance(output, audio.MetadataAssistedSpatialAudio): - raise NotImplementedError("MASA is not supported as an output for rendering!") + if isinstance(output, audio.MetadataAssistedSpatialAudio) and not ( + isinstance(input, audio.SceneBasedAudio) + or isinstance(input, audio.MetadataAssistedSpatialAudio) + ): + raise NotImplementedError("Can only convert to MASA from SBA") if isinstance(output, audio.ObjectBasedAudio) and input.name != output.name: raise NotImplementedError( @@ -302,10 +325,14 @@ def format_conversion( if logger: logger.debug(f"Format conversion: {input.name} -> {output.name}") - if input.name == output.name or ( + if (fmt := input.name) == output.name or ( input.name.startswith("BINAURAL") and output.name.startswith("BINAURAL") ): output.audio = input.audio + if fmt.startswith("MASA"): + output.metadata_file = input.metadata_file + elif fmt.startswith("ISM"): + output.metadata_files = list(output.metadata_files) else: if isinstance(input, audio.BinauralAudio): raise NotImplementedError( diff --git a/ivas_processing_scripts/audiotools/convert/scenebased.py b/ivas_processing_scripts/audiotools/convert/scenebased.py index de8bc0cd8bf166d097894e044cd90c7176b601a4..7c44897d4f62aedf3d72b7d26d571f11a1dd8859 100755 --- a/ivas_processing_scripts/audiotools/convert/scenebased.py +++ b/ivas_processing_scripts/audiotools/convert/scenebased.py @@ -53,6 +53,7 @@ from ivas_processing_scripts.audiotools.convert.binaural import binaural_fftconv from ivas_processing_scripts.audiotools.EFAP import EFAP from ivas_processing_scripts.audiotools.rotation import Quat2RotMat, SHrotmatgen from ivas_processing_scripts.audiotools.wrappers.filter import resample_itu +from ivas_processing_scripts.audiotools.wrappers.masaAnalyzer import masaAnalyzer """ SceneBasedAudio functions """ @@ -75,6 +76,14 @@ def convert_scenebased( # SBA -> SBA elif isinstance(out, audio.SceneBasedAudio): render_sba_to_sba(sba, out) + + # SBA -> MASA + # NOTE: only allowed for 1st order ambisonics ("FOA" + "PLANARFOA") + elif isinstance(out, audio.MetadataAssistedSpatialAudio) and sba.name.endswith( + "FOA" + ): + render_sba_to_masa(sba, out) + else: raise NotImplementedError( f"Conversion from {sba.name} to {out.name} is unsupported!" @@ -183,6 +192,19 @@ def render_sba_to_sba( zero_vert_channels(sba_out) +def render_sba_to_masa( + sba_in: audio.SceneBasedAudio, + masa_out: audio.MetadataAssistedSpatialAudio, +) -> None: + # two dir only possible from HOA2, which is not yet implemented as conversion + num_dirs = 1 + num_tcs = masa_out.audio.shape[1] + md_out_path = masa_out.metadata_file + + masa = masaAnalyzer(sba_in, num_tcs, num_dirs, md_out_path) + masa_out.audio = masa.audio + + def rotate_sba( sba: audio.SceneBasedAudio, trajectory: str, diff --git a/ivas_processing_scripts/audiotools/wrappers/masaAnalyzer.py b/ivas_processing_scripts/audiotools/wrappers/masaAnalyzer.py new file mode 100644 index 0000000000000000000000000000000000000000..961c987ff12f74eb3f543a0d075d58dcb7552db7 --- /dev/null +++ b/ivas_processing_scripts/audiotools/wrappers/masaAnalyzer.py @@ -0,0 +1,108 @@ +#!/usr/bin/env python3 + +# +# (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., +# Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +# Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +# contributors to this repository. All Rights Reserved. +# +# This software is protected by copyright law and by international treaties. +# The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, +# Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +# Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +# Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +# contributors to this repository retain full ownership rights in their respective contributions in +# the software. This notice grants no license of any kind, including but not limited to patent +# license, nor is any license granted by implication, estoppel or otherwise. +# +# Contributors are required to enter into the IVAS codec Public Collaboration agreement before making +# contributions. +# +# This software is provided "AS IS", without any express or implied warranties. The software is in the +# development stage. It is intended exclusively for experts who have experience with such software and +# solely for the purpose of inspection. All implied warranties of non-infringement, merchantability +# and fitness for a particular purpose are hereby disclaimed and excluded. +# +# Any dispute, controversy or claim arising under or in relation to providing this software shall be +# submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in +# accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and +# the United Nations Convention on Contracts on the International Sales of Goods. +# +from pathlib import Path +from tempfile import TemporaryDirectory + +from ivas_processing_scripts.audiotools import audio +from ivas_processing_scripts.audiotools.audiofile import write +from ivas_processing_scripts.audiotools.wrappers.filter import resample_itu +from ivas_processing_scripts.constants import DEFAULT_CONFIG_BINARIES +from ivas_processing_scripts.utils import find_binary, run + + +def masaAnalyzer( + sba: audio.SceneBasedAudio, num_tcs: int, num_dirs: int, metadata_out_path: Path +) -> audio.MetadataAssistedSpatialAudio: + """ + Wrapper for masaAnalyzer (from MASA reference software) + + Parameters + ---------- + num_tcs: int + Number of MASA transport channels (1 - monoMASA, 2- stereoMASA) + num_dirs: int + Number of directions + metadata_out_path: + Path to output the Metadata file to + + Returns + ------- + masa: audio.MetadataAssistedSpatialAudio + generated MASA + """ + + if "masaAnalyzer" in DEFAULT_CONFIG_BINARIES["binary_paths"]: + binary = find_binary( + DEFAULT_CONFIG_BINARIES["binary_paths"]["masaAnalyzer"].name, + binary_path=DEFAULT_CONFIG_BINARIES["binary_paths"]["masaAnalyzer"].parent, + ) + else: + binary = find_binary("masaAnalyzer") + + if num_tcs not in [1, 2]: + raise ValueError(f"Only 1 or 2 TCs supported, but {num_tcs} was given.") + + if num_dirs not in [1, 2]: + raise ValueError(f"Only 1 or 2 directions supported, but {num_dirs} was given.") + + if sba.name not in ["PLANARFOA", "FOA", "HOA2"]: + raise ValueError(f"Only FOA or HOA2 suported, but {sba.name} was given.") + + cmd = [ + str(binary), + "-mono" if num_tcs == 1 else "-stereo", + f"-{num_dirs}dir", + "-foa" if sba.name.endswith("FOA") else "-hoa2", + "", # 4 -> inputPcm + "", # 5 -> outputPcm + "", # 6 -> output metadata file + ] + + with TemporaryDirectory() as tmp_dir: + tmp_dir = Path(tmp_dir) + tmp_in = tmp_dir.joinpath("tmp_masaAnaIn.pcm") + tmp_out_pcm = tmp_dir.joinpath("tmp_masaAnaOut.pcm") + + cmd[4] = str(tmp_in) + cmd[5] = str(tmp_out_pcm) + cmd[6] = str(metadata_out_path) + + tmp_audio = resample_itu(sba, 48000) + write(tmp_in, tmp_audio, 48000) + + # we need to run in the masaAnalyzer directory to use the .bin files it requires + run(cmd, cwd=binary.resolve().parent) + + fmt = f"MASA{num_tcs}" + masa = audio.fromfile(fmt, tmp_out_pcm, 48000, [metadata_out_path]) + + return masa diff --git a/ivas_processing_scripts/audiotools/wrappers/masaRenderer.py b/ivas_processing_scripts/audiotools/wrappers/masaRenderer.py index ed0c30137f7188e90dd4a6b6d679bf62fbda42e1..f04bb9aeadfedbcd2a9b864736a05ddcd3bb2612 100755 --- a/ivas_processing_scripts/audiotools/wrappers/masaRenderer.py +++ b/ivas_processing_scripts/audiotools/wrappers/masaRenderer.py @@ -87,7 +87,7 @@ def masaRenderer( str(binary), output_mode, "", # 2 -> inputPcm - str(masa.metadata_files.resolve()), + str(masa.metadata_file.resolve()), "", # 4 -> outputPcm ] diff --git a/ivas_processing_scripts/audiotools/wrappers/networkSimulator.py b/ivas_processing_scripts/audiotools/wrappers/networkSimulator.py index 4ea84db13a6debdfc164e653cc85dc76dc52a1f0..3c116979254fe056a384638962f80b1bb38ae495 100644 --- a/ivas_processing_scripts/audiotools/wrappers/networkSimulator.py +++ b/ivas_processing_scripts/audiotools/wrappers/networkSimulator.py @@ -31,7 +31,6 @@ # import logging -import os.path from pathlib import Path from typing import Optional, Union @@ -75,7 +74,7 @@ def validate_network_simulator( "The network simulator binary was not found! Please check the configuration." ) if error_pattern is not None: - if not os.path.exists(os.path.realpath(error_pattern)): + if not Path(error_pattern).exists(): raise FileNotFoundError( f"The network simulator error profile file {error_pattern} was not found! Please check the configuration." ) diff --git a/ivas_processing_scripts/processing/chains.py b/ivas_processing_scripts/processing/chains.py index 99dff56b337eedb4098928aae363b0c302b189b4..3371c87fe28932471898b12526614dde43bdb7a9 100755 --- a/ivas_processing_scripts/processing/chains.py +++ b/ivas_processing_scripts/processing/chains.py @@ -115,6 +115,9 @@ def get_preprocessing(cfg: TestConfig) -> dict: pre_cfg = cfg.preprocessing post_cfg = cfg.postprocessing + post_fmt = post_cfg["fmt"] + if isinstance(post_fmt, list): + post_fmt = post_fmt[-1] chain["processes"].append( Preprocessing( @@ -128,7 +131,7 @@ def get_preprocessing(cfg: TestConfig) -> dict: "in_delay": pre_cfg.get("delay"), "in_window": pre_cfg.get("window"), "in_loudness": pre_cfg.get("loudness"), - "in_loudness_fmt": pre_cfg.get("loudness_fmt", post_cfg.get("fmt")), + "in_loudness_fmt": pre_cfg.get("loudness_fmt", post_fmt), "in_mask": pre_cfg.get("mask", None), "multiprocessing": cfg.multiprocessing, } @@ -158,7 +161,6 @@ def get_preprocessing_2(cfg: TestConfig) -> dict: "low_level_noise": background_cfg.get("low_level_noise", False), "seed_delay": cfg.prerun_seed, "master_seed": cfg.master_seed, - "output_fmt": cfg.postprocessing["fmt"], "background_object": None, } else: @@ -168,13 +170,16 @@ def get_preprocessing_2(cfg: TestConfig) -> dict: pre_cfg = getattr(cfg, "preprocessing", {}) tmp_in_fs = pre_cfg.get("fs", cfg.input.get("fs")) tmp_in_fmt = pre_cfg.get("fmt", cfg.input["fmt"]) + out_fmt = cfg.postprocessing["fmt"] + if isinstance(out_fmt, list): + out_fmt = out_fmt[0] chain["processes"].append( Preprocessing2( { "in_fs": tmp_in_fs, "in_fmt": tmp_in_fmt, - "out_fmt": cfg.postprocessing["fmt"], + "out_fmt": out_fmt, "concatenate_input": pre2_cfg.get("concatenate_input", False), "concatenation_order": pre2_cfg.get("concatenation_order", None), "preamble": pre2_cfg.get("preamble", 0), @@ -219,6 +224,8 @@ def get_processing_chain( tmp_in_fs = pre_cfg.get("fs", cfg.input.get("fs")) tmp_in_fmt = pre_cfg.get("fmt", cfg.input["fmt"]) tmp_out_fmt = post_cfg.get("fmt") + if isinstance(tmp_out_fmt, list): + tmp_out_fmt = tmp_out_fmt[0] tmp_lp_cutoff = post_cfg.get("lp_cutoff") tmp_mnru_q = None @@ -297,6 +304,21 @@ def get_processing_chain( else: preamble = 0 + # if the encoding format differs from the format after the preprocessing, add format conversion stuff + if (cod_fmt := cod_cfg.get("fmt", tmp_in_fmt)) != tmp_in_fmt: + chain["processes"].append( + Preprocessing( + { + "in_fs": tmp_in_fs, + "in_fmt": tmp_in_fmt, + "out_fs": tmp_in_fs, + "out_fmt": cod_fmt, + "multiprocessing": cfg.multiprocessing, + } + ) + ) + tmp_in_fmt = cod_fmt + chain["processes"].append( EVS( { @@ -319,7 +341,7 @@ def get_processing_chain( ) # update values to reflect decoder output tmp_in_fs = dec_cfg.get("fs", tmp_in_fs) - tmp_in_fmt = cond_cfg.get("sba_fmt", cfg.input["fmt"]) + tmp_in_fmt = cond_cfg.get("sba_fmt", tmp_in_fmt) elif cond_cfg["type"] == "ivas": cod_cfg = cond_cfg["cod"] @@ -385,6 +407,21 @@ def get_processing_chain( else: preamble = 0 + # if the encoding format differs from the format after the preprocessing, add format conversion stuff + if (cod_fmt := cod_cfg.get("fmt", tmp_in_fmt)) != tmp_in_fmt: + chain["processes"].append( + Preprocessing( + { + "in_fs": tmp_in_fs, + "in_fmt": tmp_in_fmt, + "out_fs": tmp_in_fs, + "out_fmt": cod_fmt, + "multiprocessing": cfg.multiprocessing, + } + ) + ) + tmp_in_fmt = cod_fmt + chain["processes"].append( IVAS( { @@ -412,13 +449,33 @@ def get_processing_chain( raise SystemExit(f"Unknown condition {condition}!") # add postprocessing step based on condition + post_fmt = post_cfg.get("fmt") + if isinstance(post_fmt, list): + pre_fmts = post_fmt[:-1] + post_fmt = post_fmt[-1] + + # add Postprocessing with only format conversion for each format except the last + fmts = [tmp_in_fmt] + pre_fmts + for fmt_in, fmt_out in zip(fmts[:-1], fmts[1:]): + chain["processes"].append( + Postprocessing( + { + "in_fs": tmp_in_fs, + "in_fmt": fmt_in, + "out_fs": tmp_in_fs, + "out_fmt": fmt_out, + } + ) + ) + tmp_in_fmt = fmt_out + chain["processes"].append( Postprocessing( { "in_fs": tmp_in_fs, "in_fmt": tmp_in_fmt, "out_fs": post_cfg.get("fs"), - "out_fmt": post_cfg.get("fmt"), + "out_fmt": post_fmt, "out_cutoff": tmp_lp_cutoff, "bin_dataset": post_cfg.get("bin_dataset"), "bin_lfe_gain": post_cfg.get("bin_lfe_gain"), diff --git a/ivas_processing_scripts/processing/evs.py b/ivas_processing_scripts/processing/evs.py index d2e390ab56505c713e5ddc154c6dab525192d3b5..eb3cd929fe25c3d96ac3aa6d671563499afb8c95 100755 --- a/ivas_processing_scripts/processing/evs.py +++ b/ivas_processing_scripts/processing/evs.py @@ -251,6 +251,11 @@ class EVS(Processing): / f"{out_file.stem.split('.')[0]}.evs{out_file.suffix}.{idx}.csv" ) copyfile(in_meta[idx], out_file_meta) + # copy MASA metadata for MASA pass-through + if isinstance(condition_fmt, audio.MetadataAssistedSpatialAudio): + md_file_in = in_file.parent / (in_file.name + ".met") + md_file_out = out_file.parent / (out_file.name + ".met") + copyfile(md_file_in, md_file_out) elif out_file.suffix == ".txt": raise NotImplementedError(".txt file support is WIP") # output_wav = out_file.replace(output_ext, ".wav") diff --git a/ivas_processing_scripts/processing/ivas.py b/ivas_processing_scripts/processing/ivas.py index c89f2af4bab2abe5bd85af60e988d3ff3e601396..3580df082e123ea3cda9398b616d953c988cee8c 100755 --- a/ivas_processing_scripts/processing/ivas.py +++ b/ivas_processing_scripts/processing/ivas.py @@ -146,9 +146,10 @@ class IVAS(Processing): # Only resample and convert if wav, otherwise supposed pcm to be sampled at self.in_fs metadata_files = [] - # for MASA suppose that metadata file as same basename and location as input file + # for MASA suppose that metadata file has same basename and location as input file if isinstance(self.in_fmt, audio.MetadataAssistedSpatialAudio): - metadata_files.append(in_file.with_suffix(".met")) + md_file = in_file.parent / (in_file.name + ".met") + metadata_files.append(md_file) if isinstance(self.in_fmt, audio.ObjectBasedAudio): if in_meta is None: @@ -289,7 +290,7 @@ class IVAS(Processing): if self.dec_opts: cmd.extend(self.dec_opts) - if self.out_fmt.name.startswith("ISM"): + if self.out_fmt.name.startswith("ISM") or self.out_fmt.name.startswith("MASA"): output_format = "EXT" elif self.in_fmt.name == "MONO": if self.out_fmt.name == "MONO": diff --git a/ivas_processing_scripts/processing/processing.py b/ivas_processing_scripts/processing/processing.py index 0f74e71f3e8f14f40fae76a669b39504c774bcec..703bc381d06efd0ec7cd00468315dee67985d91a 100755 --- a/ivas_processing_scripts/processing/processing.py +++ b/ivas_processing_scripts/processing/processing.py @@ -177,6 +177,8 @@ def concat_teardown(cfg: TestConfig, logger: logging.Logger): raise ValueError("Splitting not possible without split marker") output_format = cfg.postprocessing["fmt"] + if isinstance(output_format, list): + output_format = output_format[-1] out_files = [] out_meta = [] @@ -327,6 +329,10 @@ def reverse_process_2(cfg, logger): if cfg.pre2.preamble or cfg.pre2.repeat_signal: remove_preamble(cfg, logger) + fmt = cfg.postprocessing["fmt"] + if isinstance(fmt, list): + fmt = fmt[-1] + # reverse concatenation if cfg.pre2.concatenate_input: # write out the splits, optionally remove file @@ -337,13 +343,13 @@ def reverse_process_2(cfg, logger): for out_dir in cfg.out_dirs: list_audio_dir = list_audio(out_dir) out_paths_splits.append(list_audio_dir) - if cfg.postprocessing["fmt"].startswith("ISM"): + if fmt.startswith("ISM"): out_meta_splits = [] for i, condition in enumerate(out_paths_splits): meta_condition = metadata_search( cfg.out_dirs[i], condition, - num_objects=int(cfg.postprocessing["fmt"][-1]), + num_objects=int(fmt[-1]), ) out_meta_splits.append(meta_condition) else: @@ -435,13 +441,17 @@ def process_item( def remove_preamble(cfg, logger): # get number of channels from output format - num_channels = audio.fromtype(cfg.postprocessing["fmt"]).num_channels + fmt = cfg.postprocessing["fmt"] + if isinstance(cfg.postprocessing["fmt"], list): + fmt = fmt[-1] + + num_channels = audio.fromtype(fmt).num_channels for odir in cfg.out_dirs: for item in cfg.items_list: path_input = odir / item.name # remove preamble for ISM metadata - if cfg.postprocessing["fmt"].startswith("ISM"): + if fmt.startswith("ISM"): # search for metadata meta_item = metadata_search( odir, [Path(item.name)], num_objects=num_channels @@ -611,9 +621,12 @@ def scale_resulting_files(cfg, logger): ): out_meta_splits.append(metadata_search(out_dir, item_names, num_obj)) + post_fmt = cfg.postprocessing["fmt"] + if isinstance(post_fmt, list): + post_fmt = post_fmt[-1] scale_files( out_paths_splits, - cfg.postprocessing["fmt"], + post_fmt, cfg.postprocessing["loudness"], cfg.postprocessing.get("loudness_fmt", None), cfg.postprocessing["fs"], diff --git a/tests/constants.py b/tests/constants.py index 6320d2dfeb1f0c96e91d7bd6d9c6a36f1b00f40e..971e38286f043bced9b34f2ac9a2b4718b9e6b36 100644 --- a/tests/constants.py +++ b/tests/constants.py @@ -215,8 +215,8 @@ INPUT_EXPERIMENT_NAMES = [ "BS1534-5b", "BS1534-6a", "BS1534-6b", - # "BS1534-7a", - # "BS1534-7b", + "BS1534-7a", + "BS1534-7b", "P800-1", # P800-2 is tested category-wise, see below "P800-3", @@ -224,8 +224,8 @@ INPUT_EXPERIMENT_NAMES = [ "P800-5", "P800-6", "P800-7", - # "P800-8", - # "P800-9", + "P800-8", + "P800-9", ] CREATE_CATEGORIES_TESTS = ["P800-2"] diff --git a/tests/test_binaries_present.py b/tests/test_binaries_present.py index 0ba0d4bb8a82584be68b7a58ec989ccf09e5d4d1..51e256fa55ca2fd7a107a9ce4dbb67c0dd5ca275 100755 --- a/tests/test_binaries_present.py +++ b/tests/test_binaries_present.py @@ -44,6 +44,7 @@ BINARIES = [ "random", "networkSimulator_g192", "masaRenderer", + "masaAnalyzer", ]