class_docstr: Implements psychoacoustic model of Lin and Abdulla (2015) following Qin et al. (2019) simplifications.
  
  | Paper link: Lin and Abdulla (2015), https://www.springer.com/gp/book/9783319079738
  | Paper link: Qin et al. (2019), http://proceedings.mlr.press/v97/qin19a.html
docstr: :return: Absolute threshold of hearing (ATH) for discrete fourier transform sample frequencies.
code: def absolute_threshold_hearing(self) -> np.ndarray:
      """
      :return: Absolute threshold of hearing (ATH) for discrete fourier transform sample frequencies.
      """
      if self._absolute_threshold_hearing is None:
          # ATH applies only to frequency range 20Hz<=f<=20kHz
          # note: deviates from Qin et al. implementation by using the Hz range as valid domain
          valid_domain = np.logical_and(
              20 <= self.fft_frequencies, self.fft_frequencies <= 2e4
          )
          freq = self.fft_frequencies[valid_domain] * 0.001
  
          # outside valid ATH domain, set values to -np.inf
          # note: This ensures that every possible masker in the bins <=20Hz is valid. As a consequence, the global
          # masking threshold formula will always return a value different to np.inf
          self._absolute_threshold_hearing = (
              np.ones(valid_domain.shape) * -np.inf
          )
  
          self._absolute_threshold_hearing[valid_domain] = (
              3.64 * pow(freq, -0.8)
              - 6.5 * np.exp(-0.6 * np.square(freq - 3.3))
              + 0.001 * pow(freq, 4)
              - 12
          )
      return self._absolute_threshold_hearing
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  from typing import TYPE_CHECKING, Optional, Tuple, Union
  import numpy
  import scipy.signal
  from art.attacks.attack import EvasionAttack
  from art.estimators.estimator import BaseEstimator, LossGradientsMixin, NeuralNetworkMixin
  from art.estimators.pytorch import PyTorchEstimator
  from art.estimators.speech_recognition.speech_recognizer import SpeechRecognizerMixin
  from art.estimators.tensorflow import TensorFlowV2Estimator
  from art.utils import pad_sequence_input
label_desc: Use image node_id 8 for calling the PsychoacousticMasker obj's underlying member method code with example usage: obj.absolute_threshold_hearing() and returns: self