Page 1 of 1

Control dynamic compression

Posted: Fri Jan 03, 2020 10:52 am
by pflos
I am currently working with openMHA to adapt normal speech stimuli to patients with hearing loss. So far, this is working quite well.
I use the cfg-file from the example of the starting guide and mhacontrol for reading the audiogram. There I also select the hearing aid algorithm (e.g. NALRP). Then I load my stimulus, apply mha and save the output stimulus. So far so good. However, when I listen to the stimulus through my headphones, the frequency-specific amplification of the stimulus seems too low. I suspect that openMHA wants to know the presentation level of the stimulus in order to be able to choose the correct weighting for the amplification. However, I am not sure at which points I need to change my cfg file. Is it enough to calibrate openMHA via "mha.calib_in.peaklevel" or do I have to do more?

Thanks in advance!

Re: Control dynamic compression

Posted: Mon Jan 06, 2020 3:04 pm
by tobiasherzke
Hi, I am trying to understand what you did:
I use the cfg-file from the example of the starting guide
I suspect you are working through chapter 5 of that guide and are using configuration file dynamiccompression_live.cfg
There I also select the hearing aid algorithm (e.g. NALRP).
We call NAL-RP a "fitting rule", or "prescription formula", or similar. You use a fitting rule to compute a gain table for the dynamic compressor from an audiogram. NAL-RP is a linear fitting rule, which means it should apply the same gains regardless of input level. NAL-RP gains only depending on the frequency band.

You can check this after applying NAL-RP by checking what gain table data was uploaded to mha in matlab/octave:

Code: Select all

mha_get(struct,'mha.overlapadd.mhachain.dc.gtdata') % for MHA running on localhost with the assumed config file.
The values of the returned matrix should vary only across rows (=bands here), not across columns (=input levels) for NAL-RP.
Then I load my stimulus, apply mha and save the output stimulus.
Please give more details. How exactly have you done this?