DOI: 10.5281/zenodo.10901443
title: Experiment resources for "Perceived Quality of Binaural Rendering From Baffled Microphone Arrays Evaluated Without an Explicit Reference"

description: This data set contains the following resources to reproduce the listening experiment and statistical analysis of the referenced manuscript:





The binaural room impulse responses (BRIRs) of all listening conditions presented in the perceptual experiment.

The tools to create the listening test infrastructure, including Pure Data (Pd) patches and configuration files for the SoundScape Renderer (SSR) and graphical user interface (GUI).

The raw response data as gathered from the experiment subjects.

The R and Stan scripts to perform the statistical analysis and generate the resulting plots and tables.





 

The archive contains the following components described below.

Directory "dependencies/":



Matlab, R, Stan, and Pd functions that are utilized in the code and experimental setup

Additional dependencies of available open-source projects may be required for certain code functions. If so, the source and setup process for the necessary dependencies are documented in the file header.





Directory "plots/4_Equalization/":



Plots of all available headphone equalization filters as generated by the following Matlab scripts.


Directory "plots/8_User_study/":



Plots of the raw and analyzed experimental results as generated by the following Matlab and R scripts.





Directory "resources/BRIR_auralization/":



Audio files with static binaural auralizations of all listening conditions presented in the perceptual experiment as generated by the following Matlab scripts.

The files in "Kemar_HRTF_sofa_N44_adjusted" do not include a headphone equalization.

The files in "Kemar_HRTF_sofa_N44_adjusted+Sennheiser_HD650_lin" include the equalization for the Sennheiser HD650 headphones employed in the listening experiment. The files are identical to the annotated listening examples published for the manuscript.


Directory "resources/BRIR_rendered/":



BRIRs and rendering parameters of all listening conditions presented in the perceptual experiment as generated from the associated data set and rendering code.

Scene configuration files for the SSR with all listening conditions presented in the perceptual experiment as generated from the following Matlab scripts.


Directory "resources/HPCF_KEMAR/":



Impulse responses of equalization filters for various headphones on the G.R.A.S KEMAR acoustic dummy head as measured for this experiment.


Directory "resources/User_study/":



Various resources for the listening experiment.

The files in "Exp1_analysis" include intermediate and final statistical analysis results as generated from the following R scripts.

"Exp1_config.json" contains the configuration of the study GUI with conditions presented in the listening experiment.

"Exp1_Introduction.pdf" contains the instructions presented to the subjects at the start of the listening experiment.

"Exp1_Part2_data_strings.xls" contains all subjects' raw perceptual response data gathered from the listening experiment.

"Questionnaire.pdf" contains the questionnaire given to the subjects at the end of the listening experiment.


Matlab script "x4_Gather_Headphone_Compensations.m":



Generate plots of measured headphone compensation filters. Furthermore, the generated minimum phase filters and filters to yield a linear phase response from the headphones are extracted as separate WAV files.





Matlab script "x6_Gather_SSR_Configurations.m":



Collect several specified pre-rendered binaural room impulse response sets into an ASD file. The SSR can load this scene to present all gathered configurations in direct comparison with head tracking.





Readme file "x6a_Normalize_SSR_Loudnesses.txt":










Ideally, the rendering script would implement a measure to provide a reliable estimation of the binaural loudness of the rendered configuration. This could be used to normalize all stimuli levels. However, such a measure is currently not available or implemented.

Therefore, tuning the stimuli loudness for the user study was performed beforehand by ear. The adjusted playback levels are set in a modified SSR configuration file for the listening experiment.





Matlab script "x6_Gather_SSR_Configurations.m":



Perform convolution of (rendered) binaural room impulse responses with a source audio signal. This is done for a specified selection of static head orientations and a continuous rotation over all horizontal head orientations.

The resulting auralizations are published as supplementary materials to the manuscript.


Shell script "x7_Start_Study_GUI.sh":



Initialize all required components to perform the perceptual user study, including:



SSR to perform the real-time rendering of the BRIRs with head tracking

SSR to extract head-tracking data (in case a Polhemus tracker is used)

Pd to extract head-tracking data (in case a Supperware tracker is used)

Pd to perform real-time convolution to apply headphone compensation

Pd to receive OSC messages from the study GUI

Pd to trigger audio file playback from received OSC messages

Pd to translate OSC messages into FUDI messages for the SSR

The GUI to be used by the participants and implement the study procedure



Some static configuration variables can be adjusted, whereas other parameters are chosen during script execution.


Matlab script "x8_Gather_Study_Data.m":



Transform the raw result data from the questionnaire (*.xls) and the study GUI (*.json) into a compact format (*.xls) that can be loaded to plot the raw data and imported by software for the subsequent statistical analysis.

Note that this contains the responses from all subjects, whereas responses from the investigators must be excluded from the statistical analysis (which is implemented in the analysis scripts).


Matlab script "x8a_Plot_Study_Data.m":



Generate a set of violin plots to visualize the initial distribution of the raw perceptual data. The data is split by specified attributes and plotted separately for visual inspection.

The data may also be transformed into ranks for a first distribution inspection. Note that implementing the ranking method, notably how ties are resolved, may differ from the technique employed in the statistical analysis.

Note that this contains the responses from all subjects, whereas responses from the investigators must be excluded from the statistical analysis (which is implemented in the analysis scripts).


R script "x8b_Analyze_Exp1_Data.R":



Perform the statistical analysis by transforming the observed subject ratings into a predicted distribution of ranks using a hierarchical generalized linear regression model.

Executing the statistical model may take some time due to the Bayesian framework employing Markov-chain Monte Carlo simulations.

Data is exported at various intermediate steps to be loaded and visualized by the following R script.


R markdown script "x8c_Plot_Exp1_Results.Rmd":



Generate various plots and data tables of the observed data and the predicted results to visualize the distribution and influence of different analysis parameters.

Some of the resulting plots were used in the manuscript.

"x8c_Plot_Exp1_Results.html" conveniently summarizes all plots and data tables generated by "knitting" the R markdown script.
description: This work was funded by Reality Labs by Meta.