The `item_generation_scripts` module may be used to generate audio items for the P.800 listening test according to the scene description. All scenes must be fully described in the `SCENE.yml` file. The module takes monophonic audio
files from the specified input directory as the input and store the audio items in the requested format specification to the specified output directory. The module also generates the associated metadata files in case the target format requires so.
This module may be executed from the command-line with `python -m ivas_processing_scripts.generation item_gen_configs/SCENE.YML`.
# Listening test generation
The `ivas_processing_scripts` module helps to quickly setup listening tests with multiple (pre-)processing and post-processing options.
@@ -133,6 +140,11 @@ postprocessing:
# delete_tmp: true
### Master seed for random processes like bitstream error pattern generation; default = 0
# master_seed: 5
### Additional seed to specify number of preruns (used for background noise delay and FER bitstream processing); default = 0
# prerun_seed: 2
### flag for linux to use windows-built binaries with wine: default = false
### this requires the wine binary to be available and will be ignored on windows
# use_windows_codec_binaries: true
### Any relative paths will be interpreted relative to the working directory the script is called from!
### Usage of absolute paths is recommended.
@@ -163,6 +175,10 @@ output_path: "./tmp_output"
### searches for the specified substring in found filenames; default = null
# input_select:
# - "48kHz"
### Include the condition number in the item name; default = false
### for e.g. abcxyz.wav --> abcxyz.cXX.wav
# condition_in_output_filename: true
```
</details>
@@ -200,7 +216,7 @@ input:
### Target loudness in LKFS; default = null (no loudness change applied)
# loudness: -26
### Spatial audio format in which loudness is adjusted (only used if preprocessing loudness is not null);
### default = null (uses preprocessing fmt if possible)
### Option to use SBA format of lower or same order (planar also possible) for SBA input formats
# sba_fmt: "PLANARFOA"
```
</details>
@@ -470,6 +493,7 @@ This configuration has to match the channel configuration. If the provided list
For the encoding stage `cod` and the decoding stage `dec`, the path to the IVAS_cod and IVAS_dec binaries can be specified under the key `bin`.
Additionally some resampling can be applied by using the key `fs` followed by the desired sampling rate.
The general bitstream processing configuration can be locally overwritten for each EVS and IVAS condition with the key `tx`.
For IVAS and EVS conditions the `sba_fmt` key is available to specify a SBA format of lower or same order compared to the input for SBA input formats.
The additional key `evs_lfe_9k6bps_nb` is only available for EVS conditions and ensures a bitrate of 9.6kbps and narrow band processing of the LFE channel(s).
#### IVAS
The configuration of the IVAS condition is similar to the EVS condition. However, only one bitrate for all channels (and metadata) can be specified.
@@ -512,15 +536,16 @@ The following additional executables are needed for the different processing ste
| 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 | 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 |
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
@@ -661,6 +686,39 @@ ISM
---
# audiotools CLI for format conversion and rendering
# Audiotools CLI for format conversion and rendering
Please refer to [the notebook](./examples/audiotools.ipynb) for an overview.
# How to generate the configs and process items for the selection test experiments
The script `generate_test.py` is used to generate config files and process items for the selection test experiments:
Generate config files and process files for selecton experiments. Experiment names and lab ids must be given as comma-separated pairs (e.g. 'P800-5,b BS1534-4a,d ...')
positional arguments:
exp_lab_pairs The combinations of experiment/lab-id that you want to generate, separated by whitespace. Experiment and lab id need to be separated by a comma.
options:
-h, --help show this help message and exit
--no_parallel If given, configs will not be run in parallel
--create_cfg_only If given, only create the configs and folder structure without processing items
```
Before running the script, one needs to put the input files in the respective input folder (including the background noise files, see below). If input files are missing, the script will complain ad stop. For example, for processing tests P800-3 and BS1534-4a for labs b and d, respectively, command line would look like this (no whitespace between the commas!):
```
python3 generate_test.py P800-3,b BS1534-4a,d
```
Tests are processed separately per category and per lab (as some values in the configs are dependent on category and lab). For each experiment, a static base config is stored from which the actual configs are generated (identfied by the suffix `catX-lab_Y.yml`). For P800 tests, there are 6 categories each. The BS1534 experiments do not define categories, except for the MASA ones (BAS534-7a/b) - there one might mix FOA and HOA2 input material, so ther eare 2 categories for those in the scripts (category 1 for FOA, category 2 for HOA2). In `experiments/selection/` there is a folder structure prepared for all selection experiments, in which you have to put the input files for your test. For example, for P800-1:
```
experiments/selection/P800-1/
├── background_noise <--- put your background files in here and name them as background_noisecatX.wav. Not all experiments use background noise
├── config <--- contains base config, generated configs will be stored here, too
│ ├── P800-1.yml
├── proc_input
│ ├── catX <--- put your input files for cat X in here
└── proc_output <--- collect your output from here, example subfolder below
│ ├── catX-lab_Y <--- NOTE: this is only generated by the script and not checked in in the repository