Source code of the papers Time-of-arrival estimation and phase unwrapping of head-related transfer functions with integer linear programming (AES Convention 156) and Arbitrarily sampled signal reconstruction using relative difference features (GSP Workshop 2024).
Please install the required packages by running the following command. You'll need to have Python >=3.11 installed on your system.
pip install -r requirements.txt
Given a single HRTF sofa file, preprocess.py
will compute its TOAs using 36 different configurations we stated in the paper and store the results into a folder.
python preprocess.py input.sofa output_folder --toa-weight 0.1 --oversampling 10
Here, --toa-weight
controls the value of {edgeslist/ilp/l2}_toa_{True/False}_cross_{True/False}_{angle/dot/none}.npz
.
They corresponds to the terms in the paper as follows:
Name | Name in ther paper |
---|---|
edgeslist | EDGY |
ilp | SIMP |
l2 | LS |
toa_True | w/ Min. |
toa_False | w/o Min. |
cross_True | w/ Cross |
cross_False | w/o Cross |
angle | EXP |
dot | CORR |
none | NONE |
Please create a folder named processed
and put the preprocessed directories in it.
Then, execute the notebook eval to evaluate the estimated TOAs.
Please execute the notebook noise-robust to see the results. The notebook includes the code to generate Figure 2 in the paper. Changing the sofa file to the one you want to test will generate the results for the given HRTF.
Please execute the notebook phase-unwrapping to see the results. The notebook includes the code to generate Figure 4 and 5 in the paper. The notebook uses kamui for ILP-based unwrapping.
If you use our work in your research, please cite it with the following BibTex entry:
@misc{ycy2024hrtf,
title={Time-of-arrival Estimation and Phase Unwrapping of Head-related Transfer Functions With Integer Linear Programming},
author={Chin-Yun Yu and Johan Pauwels and György Fazekas},
year={2024},
eprint={2405.06804},
archivePrefix={arXiv},
primaryClass={cs.SD}
}