class_docstr: Pitch shift the sound up or down without changing the tempo
docstr: :param min_semitones: Minimum semitones to shift. Negative number means shift down.
  :param max_semitones: Maximum semitones to shift. Positive number means shift up.
  :param p: The probability of applying this transform
docstr_tok: [":","param","min_semitones",":","Minimum","semitones","to","shift",".","Negative","number","means","shift","down",".",":","param","max_semitones",":","Maximum","semitones","to","shift",".","Positive","number","means","shift","up",".",":","param","p",":","The","probability","of","applying","this","transform"]
code: def __init__(
      self,
      min_semitones: float = -4.0,
      max_semitones: float = 4.0,
      p: float = 0.5,
  ):
      """
      :param min_semitones: Minimum semitones to shift. Negative number means shift down.
      :param max_semitones: Maximum semitones to shift. Positive number means shift up.
      :param p: The probability of applying this transform
      """
      super().__init__(p)
      assert min_semitones >= -12
      assert max_semitones <= 12
      assert min_semitones <= max_semitones
      self.min_semitones = min_semitones
      self.max_semitones = max_semitones
  
file_path: audiomentations/audiomentations/augmentations/pitch_shift.py
imports: import random
  import warnings
  import librosa
  import numpy
  from numpy.typing import NDArray
  from audiomentations.core.transforms_interface import BaseWaveformTransform
label_desc: Use image node_id 1 to create a new PitchShift object from inherited base classes: BaseWaveformTransform with example: obj = PitchShift(min_semitones, max_semitones, p)