class_docstr: Univnet discriminator wrapping MPD and MSD.
class_docstr_tok: ["Univnet","discriminator","wrapping","MPD","and","MSD","."]
docstr: Args:
      x (Tensor): input waveform.
  
  Returns:
      List[Tensor]: discriminator scores.
      List[List[Tensor]]: list of list of features from each layers of each discriminator.
docstr_tok: ["Args",":","x","(","Tensor",")",":","input","waveform",".","Returns",":","List","[","Tensor","]",":","discriminator","scores",".","List","[","List","[","Tensor","]","]",":","list","of","list","of","features","from","each","layers","of","each","discriminator","."]
code: def forward(self, x):
      """
      Args:
          x (Tensor): input waveform.
  
      Returns:
          List[Tensor]: discriminator scores.
          List[List[Tensor]]: list of list of features from each layers of each discriminator.
      """
      scores, feats = self.mpd(x)
      scores_, feats_ = self.msd(x)
      return scores + scores_, feats + feats_
  
file_path: TTS/TTS/vocoder/models/univnet_discriminator.py
imports: import torch
  import torch.nn.functional
  from torch import nn
  from torch.nn.utils import spectral_norm
  from torch.nn.utils.parametrizations import weight_norm
  from TTS.utils.audio.torch_transforms import TorchSTFT
  from TTS.vocoder.models.hifigan_discriminator import MultiPeriodDiscriminator
label_desc: Use image node_id 2 for calling the UnivnetDiscriminator obj's underlying member method code with example usage: obj.forward(x) and returns: unknown,  unknown