(C) 2022-2025 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.,
@@ -47,6 +47,111 @@
---
# Running characterization experiments
For an overview of the experiments, see [characterization_tests.md](characterization_tests.md)
## Prerequisites
- A working python environment (minimum version >= 3.9) with the required packages installed.
- The required additional binaries from ITU STL or the respective 3GPP contributions:
- The binaries must be placed in ivas_processing_scripts/bin OR
- a path specified in [binary_paths.yml](ivas_processing_scripts/binary_paths.yml) configuration file (please read the instructions carefully if using).
- Please note the required patch for networkSimulator_g192 that must be manually applied.
- EVS fixed point binaries
- These should be placed in the bin folder and named EVS_cod_fx and EVS_dec_fx
- Compiled versions of the codec from the BASOP repository:
- Binaries compiled with ivas_float_update should be placed in the bin folder and named IVAS_cod_flt_ref and IVAS_dec_flt_ref
- Binaries compiled with main (BASOP) should be placed in the bin folder and named IVAS_cod_fx and IVAS_dec_fx
- IVAS_rend from the floating-point repository:
- This should be placed in the bin folder and named named IVAS_rend
- A local clone of this repository
## Setup
- Ensure you are on the latest version of the main branch of the processing scripts repo (`git pull`)
- Navigate to the box.com folder “Inbox_selected” for the experiment you wish to run.
- Download the experiment folder, e.g., “Inbox_selected/P.800/P.800-1”
- Copy/move the downloaded items into the corresponding folder in experiments/characterization in your copy of the processing scripts repo.
Repeat the above step for all configuration files to process all categories and levels.
Notes:
- The python module does NOT accept a list of configs; they must be run individually.
- This can be somewhat worked around with a shell loop, but please note this can make finding an error more difficult:
```sh
for config in$(ls experiments/characterization/P800-1/config/*.yml);do python3 -m ivas_processing_scripts $config;done
```
## Follow up tasks
After the processing is finished, the outputs will be present in the respective `proc_output` directories.
- For P.800 tests, these outputs need to be collected according to the test plan to assemble the final outputs required for P.800 test software.
- For MUSHRA tests, the outputs may be used directly, or in case of multi-input format experiments again need to be manually assembled.
At this point of time there is no script to automatically perform this.
## Directory structure
### P.800 experiments
```bash
.
└── P800-1
├── background_noise
│ └── <background noise files.wav>
├── config
│ └── <configurations from git.yaml>
├── proc_input
│ ├── cat1
│ │ ├── <item_name.wav>
│ │ ├── <item_name.wav.{0,1,2,3}.csv> for ISM metadata
│ │ └── <item_name.wav.met> for MASA metadata
│ ├── cat2...
│ └── ...cat6
└── proc_output
├── cat1
│ ├── out_-16LKFS
│ │ ├── c01
│ │ │ └── <item_name.c01.wav>
│ │ ├── c02...
│ │ └── ...cXX
│ ├── out_-26LKFS
│ └── out_-36LKFS
├── cat2...
└── ...cat6
```
### BS.1534 experiments
```bash
.
└── BS1534-1
├── config
│ └── <configurations from git.yaml>
├── proc_input[_FMT] # for multiple input formats, suffix is present
│ ├── <item_name.wav>
│ ├── <item_name.wav.{0,1,2,3}.csv> for ISM metadata
│ └── <item_name.wav.met> for MASA metadata
└── proc_output[_FMT] # for multiple input formats, suffix is present
├── c01
│ └── <item_name.c01.wav>
├── c02...
└── ...cXX
```
# Quick guide: How to set up a listening test
This section describes step by step how to set up a listening test according to the Processing Plan (IVAS-7) and Test Plan (IVAS-8).
@@ -86,7 +191,7 @@ Start by running a single scene to verify settings. Output includes both audio a
The addition of custom background noise at specific level is supported for the STEREO and SBA formats only. For ISMs it's not applicable. For OMASA and OSBA formats, it is expected that the backround noise is provided in the FOA/HOA2/HOA3 format as the first item in the `input` list.
### Item processing
### Item processing (selection)
The input has to be in the folder `experiments/selection/P800-{X}/proc_input_{l}`. If item generation is performed previous to this step, the corresponding files are already in the right folder.
If this step is performed independently of the previous one the input files have to be copied to the respective folder sorted by category.
@@ -104,7 +209,7 @@ For more information about this processing step see
The set up for the MUSHRA test only consists of the item processing.
### Item processing
### Item processing (Selection)
To process a BS1534-{X}{x} (X = 1, 2, ...7, x = a, b) listening test, the input files have to be placed in the folder `experiments/selection/BS1534-{X}{x}/proc_input_{l}` and the command
`python generate_test.py BS1534-{X}{x},{l}` has to be run from the root of the repository. 'l' stands for the listening lab designator: a (Force Technology), b (HEAD acoustics), c (MQ University), d (Mesaqin.com).
@@ -626,21 +731,7 @@ The processing chain is as follows:
## Additional Executables
The following additional executables are needed for the different processing steps:
| Error pattern generation | gen-patt | <https://www.itu.int/rec/T-REC-G.191-201003-S/en> (Note: Version in <https://github.com/openitu/STL> is buggy!) |
| 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> |
| 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> |
Additional executables are needed for the different processing steps, please see the dedicated [README](ivas_processing_scripts/bin/README.md).
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