class_docstr: Peaking filter transform. Applies a peaking filter at a specific center frequency in hertz
  of a specific gain in dB (note: can be positive or negative!), and a quality factor
  parameter. Filter coefficients are taken from the W3 Audio EQ Cookbook:
  https://www.w3.org/TR/audio-eq-cookbook/
code: def apply(self, samples: NDArray[np.float32], sample_rate: int):
      assert samples.dtype == np.float32
  
      sos = self._get_biquad_coefficients_from_input_parameters(
          self.parameters["center_freq"],
          self.parameters["gain_db"],
          self.parameters["q_factor"],
          sample_rate,
      )
  
      # The processing takes place here
      zi = sosfilt_zi(sos)
      if len(samples.shape) == 1:
          processed_samples, _ = sosfilt(
              sos, samples, zi=zi * samples[0]
          )
          processed_samples = processed_samples.astype(np.float32)
      else:
          processed_samples = np.zeros_like(samples, dtype=np.float32)
          for chn_idx in range(samples.shape[0]):
              processed_samples[chn_idx, :], _ = sosfilt(
                  sos, samples[chn_idx, :], zi=zi * samples[chn_idx, 0]
              )
  
      return processed_samples
  
file_path: audiomentations/audiomentations/augmentations/peaking_filter.py
imports: import random
  import numpy
  from numpy.typing import NDArray
  from scipy.signal import sosfilt, sosfilt_zi
  from audiomentations.core.transforms_interface import BaseWaveformTransform
  from audiomentations.core.utils import convert_frequency_to_mel, convert_mel_to_frequency
label_desc: Use image node_id 4 for calling the PeakingFilter obj's underlying member method code with example usage: obj.apply(samples, sample_rate) and returns: processed_samples