Audio toolbox: using acousticLoudness() in reverse for "normalizing" audio signal

7 views (last 30 days)
Edited for clarity.
I have a set of speech signals that were peak normalized. I want to adjust the gain of each signal so they have an equal loudness (same idea as replay gain).
I am calling the function :
The signal I'm passing to the function is the original recording.
First I wanted to use the ISO 532-2 method, since the sound presentation will be done with headphones, but my signal is time-varying (speech signal), so I must use the ISO 532-1 method instead. How would I compensate for the non-linearity of the headphones and the fact that the sound will not be presented in a free field? I thought of just building a filter to pre-process the signal before feeding it to acousticLoudness() but I'm not sure where to start.
The headphones used are Sennheiser HDA300 (spec sheet).
One I have a "replay gain" value for each signal based on an arbitrary reference, I will calibrate the amplifier by measuring the dBSPL output of a 1kHz signal.
Thank you!

Accepted Answer

Jimmy Lapierre
Jimmy Lapierre on 28 Apr 2021
If you want average perceived loudness, consider omitting the time-varying option even though the signal isn't stationary.
Otherwise, one way to apply a frequency response (besides the obvious filtering of the signal) would be to compute octave SPL first (see the example in the acousticLoudness doc) and compensate for the headphone response in each band using the table you provided before giving those SPL values to acousticLoudness.

Sign in to comment.

More Answers (0)


Find more on Measurements and Spatial Audio in Help Center and File Exchange




Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!