class_docstr: Compose applies the given sequence of transforms when called,
  optionally shuffling the sequence for every call.
  
  Usage example:
  
  ```
  augment = Compose([
      AddGaussianNoise(min_amplitude=0.001, max_amplitude=0.015, p=0.5),
      TimeStretch(min_rate=0.8, max_rate=1.25, p=0.5),
      PitchShift(min_semitones=-4, max_semitones=4, p=0.5),
      Shift(min_shift=-0.5, max_shift=0.5, p=0.5),
  ])
  
  # Generate 2 seconds of dummy audio for the sake of example
  samples = np.random.uniform(low=-0.2, high=0.2, size=(32000,)).astype(np.float32)
  
  # Augment/transform/perturb the audio data
  augmented_samples = augment(samples=samples, sample_rate=16000)
  ```
class_docstr_tok: ["Compose","applies","the","given","sequence","of","transforms","when","called",",","optionally","shuffling","the","sequence","for","every","call",".","Usage","example",":","``","`","augment","=","Compose","(","[","AddGaussianNoise","(","min_amplitude=0.001",",","max_amplitude=0.015",",","p=0.5",")",",","TimeStretch","(","min_rate=0.8",",","max_rate=1.25",",","p=0.5",")",",","PitchShift","(","min_semitones=-4",",","max_semitones=4",",","p=0.5",")",",","Shift","(","min_shift=-0.5",",","max_shift=0.5",",","p=0.5",")",",","]",")","#","Generate","2","seconds","of","dummy","audio","for","the","sake","of","example","samples","=","np.random.uniform","(","low=-0.2",",","high=0.2",",","size=","(","32000",",",")",")",".astype","(","np.float32",")","#","Augment\/transform\/perturb","the","audio","data","augmented_samples","=","augment","(","samples=samples",",","sample_rate=16000",")","``","`"]
code: def __call__(self, samples: NDArray[np.float32], sample_rate: int):
      transforms = self.transforms.copy()
      should_apply = random.random() < self.p
      # TODO: Adhere to self.are_parameters_frozen
      # https://github.com/iver56/audiomentations/issues/135
      if should_apply:
          if self.shuffle:
              random.shuffle(transforms)
          for transform in transforms:
              samples = transform(samples, sample_rate)
  
      return samples
  
imports: import random
  import numpy
  from numpy.typing import NDArray
  from audiomentations.core.transforms_interface import BaseSpectrogramTransform
label_desc: Use image node_id 2 for calling the Compose obj's underlying member method code with example usage: obj.__call__(samples, sample_rate) and returns: samples