class_docstr: Shifts the input tensor by a random amount, allowing for either a time
  or frequency (or channel) shift depending on the specified axis.
  It is crucial to calibrate the minimum and maximum shifts according to the
  requirements of your specific task.
  We recommend using small shifts to preserve information integrity.
  Using large shifts may result in the loss of significant data and could
  potentially lead to misalignments with corresponding labels.
  
  Arguments
  ---------
  min_shift : int
      The mininum channel shift.
  max_shift : int
      The maximum channel shift.
  dim: int
      The dimension to shift.
  
  Example
  -------
  >>> # time shift
  >>> signal = torch.zeros(4, 100, 80)
  >>> signal[0,50,:] = 1
  >>> rand_shift =  RandomShift(dim=1, min_shift=-10, max_shift=10)
  >>> lenghts = torch.tensor([0.2, 0.8, 0.9,1.0])
  >>> output_signal, lenghts = rand_shift(signal,lenghts)
  
  >>> # frequency shift
  >>> signal = torch.zeros(4, 100, 80)
  >>> signal[0,:,40] = 1
  >>> rand_shift =  RandomShift(dim=2, min_shift=-10, max_shift=10)
  >>> lenghts = torch.tensor([0.2, 0.8, 0.9,1.0])
  >>> output_signal, lenghts = rand_shift(signal,lenghts)
code: def __init__(self, min_shift=0, max_shift=0, dim=1):
      super().__init__()
      self.min_shift = min_shift
      self.max_shift = max_shift
      self.dim = dim
  
      # Check arguments
      if self.max_shift < self.min_shift:
          raise ValueError("max_shift must be  >= min_shift")
  
file_path: speechbrain/speechbrain/augment/freq_domain.py
imports: import torch
  import random
label_desc: Use image node_id 1 to create a new RandomShift object from inherited base classes: torch.nn with example: obj = RandomShift(min_shift, max_shift, dim)