clarity.evaluator.msbg.cochlea module¶
Gammatone filterbank simulation of the Cochlea.
- class clarity.evaluator.msbg.cochlea.Cochlea(audiogram: Audiogram, catch_up_level: float = 105.0, fs: float = 44100.0)[source]¶
Bases:
object
Simulate the cochlea.
Includes simulation of effects of bandwidth broadening (smearing) and recruitment. Implements 3 different degrees of impairment which affect the degree of smearing. Recruitment currently always with x2 broadening.
Degree of hearing impairment used to control the following filterbank variables: BROADEN, SPACING, NGAMMA, Fs, N_Chans, ERBn_CentFrq, GTn_CentFrq, GTnDelays, GTn_denoms, GTn_nums, Start2PoleHP, HP_FCorner, HP_denoms, HP_nums, HP_Delays, Recombination_dB
- class clarity.evaluator.msbg.cochlea.FilterBank(nums: ndarray, denoms: ndarray)[source]¶
Bases:
object
Holds the numerators and denominators of an IIR filter bank.
- denoms: ndarray¶
- nums: ndarray¶
- clarity.evaluator.msbg.cochlea.compute_envelope(coch_sig: ndarray, erbn_cf: ndarray, fs: float) ndarray [source]¶
Obtain signal envelope.
Envelope computed using full-wave rectification and low-pass filter
- Parameters:
coch_sig (ndarray) – input signal
erbn_cf (ndarray) – ERB centre frequencies
fs (float) – sampling frequency
- Returns:
signal envelope
- Return type:
ndarray
- clarity.evaluator.msbg.cochlea.compute_recruitment_parameters(gtn_cf: ndarray, audiogram: Audiogram, catch_up: float) tuple[ndarray, ndarray] [source]¶
Compute parameters to be used in recruitment model.
Computes expansion ratios for each gammatone filterbank channel and the equal loudness catch up level per channel (currently this is a fixed value per channel)
- Parameters:
gtn_cf (ndarray) – gammatone filterbank centre frequencies
audiogram (Audiogram) – the audiogram to employ
catch_up (float) – level in dB at which catches up with NH
- Returns:
expansion ratio for each gammatone filterbank channel
- Return type:
ndarray
- clarity.evaluator.msbg.cochlea.gammatone_filterbank(x: ndarray, ngamma: int, gtn_filters: FilterBank, gtn_delays: ndarray, start2poleHP: int, hp_filters: FilterBank) ndarray [source]¶
Pass signal through gammatone filterbank.
- Parameters:
x (ndarray) – input signal
ngamma (int) – 4, gammatone order
gtn_filters (FilterBank) – set of gammatone filters
gtn_delays (ndarray) – gammatone filter delays
start2poleHP (int) – parameter value from gtfbank_file
hp_filter (FilterBarker) – set of highpass filters
- Returns:
cochleagram with gtn_denoms.shape[0] channels of len(x)
- Return type:
ndarray
- clarity.evaluator.msbg.cochlea.recruitment(coch_sig: ndarray, envelope: ndarray, SPL_equiv_0dB: int | float, expansion_ratios: ndarray, eq_loud_db: ndarray) ndarray [source]¶
Simulate loudness recruitment.
- Parameters:
coch_sig (ndarray) – input signal
envelope (ndarray) – signal envelope
SPL_equiv_0dB (float) – equivalent level in dB SPL of 0 dB Full Scale
expansion_ratios (ndarray) – expansion ratios for expanding channel signals
eq_loud_db (ndarray) – loudness catch-up level in dB
- Returns:
cochlear output signal
- Return type:
ndarray