class_docstr: This class drops portions of the input signal. The difference with
  DropChunk is that in this case we pre-compute the dropping masks in the
  first time the forward function is called. For all the other calls, we only
  shuffle and apply them. This makes the code faster and more suitable for
  data augmentation of large batches.
  
  It can be used only for fixed-length sequences.
  
  Arguments
  ---------
  drop_length_low : int
      The low end of lengths for which to set the
      signal to zero, in samples.
  drop_length_high : int
      The high end of lengths for which to set the
      signal to zero, in samples.
  drop_count_low : int
      The low end of number of times that the signal
      can be dropped to zero.
  drop_count_high : int
      The high end of number of times that the signal
      can be dropped to zero.
  drop_start : int
      The first index for which dropping will be allowed.
  drop_end : int
      The last index for which dropping will be allowed.
  n_masks : int
      The number of precomputed masks.
  
  Example
  -------
  >>> from speechbrain.dataio.dataio import read_audio
  >>> dropper = FastDropChunk(drop_start=100, drop_end=200)
  >>> signal = torch.rand(10, 250, 22)
  >>> dropped_signal = dropper(signal)
class_docstr_tok: ["This","class","drops","portions","of","the","input","signal",".","The","difference","with","DropChunk","is","that","in","this","case","we","pre-compute","the","dropping","masks","in","the","first","time","the","forward","function","is","called",".","For","all","the","other","calls",",","we","only","shuffle","and","apply","them",".","This","makes","the","code","faster","and","more","suitable","for","data","augmentation","of","large","batches",".","It","can","be","used","only","for","fixed-length","sequences",".","Arguments","--","--","--","--","-","drop_length_low",":","int","The","low","end","of","lengths","for","which","to","set","the","signal","to","zero",",","in","samples",".","drop_length_high",":","int","The","high","end","of","lengths","for","which","to","set","the","signal","to","zero",",","in","samples",".","drop_count_low",":","int","The","low","end","of","number","of","times","that","the","signal","can","be","dropped","to","zero",".","drop_count_high",":","int","The","high","end","of","number","of","times","that","the","signal","can","be","dropped","to","zero",".","drop_start",":","int","The","first","index","for","which","dropping","will","be","allowed",".","drop_end",":","int","The","last","index","for","which","dropping","will","be","allowed",".","n_masks",":","int","The","number","of","precomputed","masks",".","Example","--","--","--","-",">",">",">","from","speechbrain.dataio.dataio","import","read_audio",">",">",">","dropper","=","FastDropChunk","(","drop_start=100",",","drop_end=200",")",">",">",">","signal","=","torch.rand","(","10",",","250",",","22",")",">",">",">","dropped_signal","=","dropper","(","signal",")"]
code: def __init__(
      self,
      drop_length_low=100,
      drop_length_high=1000,
      drop_count_low=1,
      drop_count_high=10,
      drop_start=0,
      drop_end=None,
      n_masks=1000,
  ):
      super().__init__()
      self.drop_length_low = drop_length_low
      self.drop_length_high = drop_length_high
      self.drop_count_low = drop_count_low
      self.drop_count_high = drop_count_high
      self.drop_start = drop_start
      self.drop_end = drop_end
      self.n_masks = n_masks
      self.first = True
  
      # Validate low < high
      if drop_length_low > drop_length_high:
          raise ValueError("Low limit must not be more than high limit")
      if drop_count_low > drop_count_high:
          raise ValueError("Low limit must not be more than high limit")
  
      # Make sure the length doesn't exceed end - start
      if drop_end is not None and drop_end >= 0:
          if drop_start > drop_end:
              raise ValueError(
                  "Low limit must not be more than high limit"
              )
          drop_range = drop_end - drop_start
          self.drop_length_low = min(drop_length_low, drop_range)
          self.drop_length_high = min(drop_length_high, drop_range)
  
imports: import math
  import random
  import torch
  import torch.nn.functional
  from speechbrain.dataio.legacy import ExtendedCSVDataset
  from speechbrain.dataio.dataloader import make_dataloader
  from speechbrain.processing.signal_processing import compute_amplitude, dB_to_amplitude, convolve1d, notch_filter, reverberate
label_desc: Use image node_id 1 to create a new FastDropChunk object from inherited base classes: torch.nn with example: obj = FastDropChunk(drop_length_low, drop_length_high, drop_count_low, drop_count_high, drop_start, drop_end, n_masks)