class_docstr: Spectrogram to waveform conversion module.
class_docstr_tok: ["Spectrogram","to","waveform","conversion","module","."]
docstr: Convert spectrogram to waveform.
  
  Args:
      spc: Log Mel filterbank (T_feats, n_mels)
          or linear spectrogram (T_feats, n_fft // 2 + 1).
  
  Returns:
      Tensor: Reconstructed waveform (T_wav,).
docstr_tok: ["Convert","spectrogram","to","waveform",".","Args",":","spc",":","Log","Mel","filterbank","(","T_feats",",","n_mels",")","or","linear","spectrogram","(","T_feats",",","n_fft","\/\/","2","+","1",")",".","Returns",":","Tensor",":","Reconstructed","waveform","(","T_wav",",",")","."]
code: def __call__(self, spc: torch.Tensor) -> torch.Tensor:
      """Convert spectrogram to waveform.
  
      Args:
          spc: Log Mel filterbank (T_feats, n_mels)
              or linear spectrogram (T_feats, n_fft // 2 + 1).
  
      Returns:
          Tensor: Reconstructed waveform (T_wav,).
  
      """
      device = spc.device
      dtype = spc.dtype
      spc = spc.cpu().numpy()
      if self.logmel2linear is not None:
          spc = self.logmel2linear(spc)
      wav = self.griffin_lim(spc)
      return torch.tensor(wav).to(device=device, dtype=dtype)
  
file_path: espnet/espnet2/utils/griffin_lim.py
imports: import logging
  from functools import partial
  from typing import Optional
  import librosa
  import numpy
  import torch
  from packaging.version import parse
  from typeguard import check_argument_types
label_desc: Use image node_id 3 for calling the Spectrogram2Waveform obj's underlying member method code with example usage: obj.__call__(spc) and returns: torch