An auditory model for simulating human sound localisation

PyPI version Python versions EUPL 1.2 license DOI CircleCI

bayesian_listener is a Python package for simulating and fitting a Bayesian model of human sound localisation. Given an individual’s head-related transfer functions (HRTFs) and a binaural sound, it predicts full response distributions over all source directions (accounting for spectral, binaural, and motor-noise uncertainties). Listener-specific noise parameters can be estimated from measured pointing data via maximum-likelihood optimisation.

Where to start

Get Started

Install the package and run your first localization simulation in under five minutes. Start here if you are new to bayesian_listener.

Getting Started
Guides

Task-oriented walkthroughs: simulate localization responses, fit the model to your own HRTF, and compare interpolation methods.

Guides
API Reference

Complete documentation of every public class, method, and function. Jump here if you know what you need and want parameter details.

API Reference
Background

The statistical framework, likelihood equations, noise-parameter table, and known limitations. Start here if you are reading the paper.

Model and Statistical Framework

Citing this work

If you use bayesian_listener in your research, please cite the original model paper and its statistical validation:

@article{barumerli2026,
   author  = {R. Barumerli and F. Brinkmann and E. Zanoni and A. Hoyer
               and L. Picinali and M. Geronazzo},
   title   = {Statistical validation and full-sphere extension of a {Bayesian}
               model for human static sound localisation},
   journal = {Submitted to Acta Acustica},
   year    = {2026},
   url = {https://arxiv.org/abs/2606.24367}
}

@article{barumerli2023,
  author  = {Barumerli, Roberto and Majdak, Piotr and Geronazzo, Michele
             and Meijer, Demi and Avanzini, Federico and Baumgartner, Robert},
  title   = {A {Bayesian} model for human directional localization of
             broadband static sound sources},
  journal = {Acta Acustica},
  volume  = {7},
  pages   = {12},
  year    = {2023},
  doi     = {10.1051/aacus/2023006},
}