class_docstr: Upsampler for spectrograms with Transposed Conv
  Only the upsamling is done here, the layer-specific Conv can be found
  in residual bloack to map the mel bands into 2× residual channels
  
  Example
  -------
  >>> from speechbrain.lobes.models.DiffWave import SpectrogramUpsampler
  >>> spec_upsampler = SpectrogramUpsampler()
  >>> mel_input = torch.rand(3, 80, 100)
  >>> upsampled_mel = spec_upsampler(mel_input)
  >>> upsampled_mel.shape
  torch.Size([3, 80, 25600])
class_docstr_tok: ["Upsampler","for","spectrograms","with","Transposed","Conv","Only","the","upsamling","is","done","here",",","the","layer-specific","Conv","can","be","found","in","residual","bloack","to","map","the","mel","bands","into","2\u00d7","residual","channels","Example","--","--","--","-",">",">",">","from","speechbrain.lobes.models.DiffWave","import","SpectrogramUpsampler",">",">",">","spec_upsampler","=","SpectrogramUpsampler","(",")",">",">",">","mel_input","=","torch.rand","(","3",",","80",",","100",")",">",">",">","upsampled_mel","=","spec_upsampler","(","mel_input",")",">",">",">","upsampled_mel.shape","torch.Size","(","[","3",",","80",",","25600","]",")"]
docstr: Upsamples spectrograms 256 times to match the length of audios
  Hop length should be 256 when extracting mel spectrograms
  
  Arguments
  ---------
  x: torch.Tensor
      input mel spectrogram [bs, 80, mel_len]
  
  Returns
  -------
  upsampled spectrogram [bs, 80, mel_len*256]
docstr_tok: ["Upsamples","spectrograms","256","times","to","match","the","length","of","audios","Hop","length","should","be","256","when","extracting","mel","spectrograms","Arguments","--","--","--","--","-","x",":","torch.Tensor","input","mel","spectrogram","[","bs",",","80",",","mel_len","]","Returns","--","--","--","-","upsampled","spectrogram","[","bs",",","80",",","mel_len","*","256","]"]
code: def forward(self, x):
      """Upsamples spectrograms 256 times to match the length of audios
      Hop length should be 256 when extracting mel spectrograms
  
      Arguments
      ---------
      x: torch.Tensor
          input mel spectrogram [bs, 80, mel_len]
  
      Returns
      -------
      upsampled spectrogram [bs, 80, mel_len*256]
      """
      x = torch.unsqueeze(x, 1)
      x = self.conv1(x)
      x = F.leaky_relu(x, 0.4)
      x = self.conv2(x)
      x = F.leaky_relu(x, 0.4)
      x = torch.squeeze(x, 1)
      return x
  
imports: import torch
  import torch.nn
  import torch.nn.functional
  from speechbrain.nnet.CNN import Conv1d
  from speechbrain.nnet import linear
  from speechbrain.nnet.diffusion import DenoisingDiffusion
  from math import sqrt
  from torchaudio import transforms
label_desc: Use image node_id 2 for calling the SpectrogramUpsampler obj's underlying member method code with example usage: obj.forward(x) and returns: x