class_docstr: Apply a Lowpass-like filterbank with variable octave attenuation that simulates attenuation of
  higher frequencies due to air absorption. This transform is parametrized by temperature,
  humidity, and the distance between audio source and microphone.
  
  This is not a scientifically accurate transform but basically applies a uniform
  filterbank with attenuations given by:
  
  att = exp(- distance * absorption_coefficient)
  
  where distance is the microphone-source assumed distance in meters and `absorption_coefficient`
  is adapted from a lookup table by pyroomacoustics [1]. It can also be seen as a lowpass filter
  with variable octave attenuation.
  
  Note: This only "simulates" the dampening of high frequencies, and does not
  attenuate according to the distance law. Gain augmentation needs to be done separately.
  
  [1] https://github.com/LCAV/pyroomacoustics
code: def randomize_parameters(
      self, samples: NDArray[np.float32], sample_rate: int
  ):
      super().randomize_parameters(samples, sample_rate)
      self.parameters["temperature"] = 10 * np.random.randint(
          int(self.min_temperature) // 10,
          int(self.max_temperature) // 10 + 1,
      )
      self.parameters["humidity"] = np.random.randint(
          self.min_humidity, self.max_humidity + 1
      )
      self.parameters["distance"] = np.random.uniform(
          self.min_distance, self.max_distance
      )
  
file_path: audiomentations/audiomentations/augmentations/air_absorption.py
imports: import librosa
  import numpy
  from numpy.typing import NDArray
  from audiomentations.core.transforms_interface import BaseWaveformTransform
label_desc: Use image node_id 2 for calling the AirAbsorption obj's underlying member method code with example usage: obj.randomize_parameters(samples, sample_rate) without return types