class_docstr: VITS discriminator wrapping one Scale Discriminator and a stack of Period Discriminator.
  
  ::
      waveform -> ScaleDiscriminator() -> scores_sd, feats_sd --> append() -> scores, feats
             |--> MultiPeriodDiscriminator() -> scores_mpd, feats_mpd ^
  
  Args:
      use_spectral_norm (bool): if `True` swith to spectral norm instead of weight norm.
code: def __init__(self, periods=(2, 3, 5, 7, 11), use_spectral_norm=False):
      super().__init__()
      self.nets = nn.ModuleList()
      self.nets.append(
          DiscriminatorS(use_spectral_norm=use_spectral_norm)
      )
      self.nets.extend(
          [
              DiscriminatorP(i, use_spectral_norm=use_spectral_norm)
              for i in periods
          ]
      )
  
file_path: TTS/TTS/tts/layers/vits/discriminator.py
imports: import torch
  from torch import nn
  from torch.nn.modules.conv import Conv1d
  from TTS.vocoder.models.hifigan_discriminator import DiscriminatorP, MultiPeriodDiscriminator
label_desc: Use image node_id 1 to create a new VitsDiscriminator object from inherited base classes: nn with example: obj = VitsDiscriminator(periods, use_spectral_norm)