class_docstr: 1D Convolutional downsampling with a learned convolution
  
  Arguments
  ---------
  downsampling_factor : int
      Factor of downsampling (i.e. ratio (length before ds / length after ds))
  kernel_size : int
      Kernel size of the 1D filter (must be an odd integer)
  Example
  -------
  >>> sd = Conv1DDownsampler(3,161)
  >>> a = torch.rand([8,33000])
  >>> a = sd(a)
  >>> print(a.shape)
  torch.Size([8, 10947])
code: def __init__(self, downsampling_factor, kernel_size):
      super().__init__()
      self.kernel_size = kernel_size
      self.downsampling_factor = downsampling_factor
      self.downsampler = Conv1d(
          stride=self.downsampling_factor,
          padding="valid",
          kernel_size=self.kernel_size,
          out_channels=1,
          input_shape=[None, None],
      )
  
file_path: speechbrain/speechbrain/lobes/downsampling.py
imports: import torch
  import torchaudio.transforms
  from speechbrain.nnet.CNN import Conv1d
  from speechbrain.nnet.pooling import Pooling1d
label_desc: Use image node_id 1 to create a new Conv1DDownsampler object from inherited base classes: Downsampler with example: obj = Conv1DDownsampler(downsampling_factor, kernel_size)