class_docstr: CoMBD (Collaborative Multi-band Discriminator) module
  from from https://arxiv.org/abs/2206.13404
class_docstr_tok: ["CoMBD","(","Collaborative","Multi-band","Discriminator",")","module","from","from","https",":","\/\/arxiv.org\/abs\/2206.13404"]
docstr: Args:
      ys (List[Tensor]): List of ground truth signals of shape (B, 1, T).
      ys_hat (List[Tensor]): List of predicted signals of shape (B, 1, T).
  Returns:
      Tuple[List[Tensor], List[Tensor], List[List[Tensor]], List[List[Tensor]]]:
      Tuple containing the list of output tensors of shape (B, C_out, T_out)
      for real and fake, respectively, and the list of feature maps of shape
      (B, C, T) at each Conv1d layer for real and fake, respectively.
docstr_tok: ["Args",":","ys","(","List","[","Tensor","]",")",":","List","of","ground","truth","signals","of","shape","(","B",",","1",",","T",")",".","ys_hat","(","List","[","Tensor","]",")",":","List","of","predicted","signals","of","shape","(","B",",","1",",","T",")",".","Returns",":","Tuple","[","List","[","Tensor","]",",","List","[","Tensor","]",",","List","[","List","[","Tensor","]","]",",","List","[","List","[","Tensor","]","]","]",":","Tuple","containing","the","list","of","output","tensors","of","shape","(","B",",","C_out",",","T_out",")","for","real","and","fake",",","respectively",",","and","the","list","of","feature","maps","of","shape","(","B",",","C",",","T",")","at","each","Conv1d","layer","for","real","and","fake",",","respectively","."]
code: def forward(self, ys, ys_hat):
      """
      Args:
          ys (List[Tensor]): List of ground truth signals of shape (B, 1, T).
          ys_hat (List[Tensor]): List of predicted signals of shape (B, 1, T).
      Returns:
          Tuple[List[Tensor], List[Tensor], List[List[Tensor]], List[List[Tensor]]]:
          Tuple containing the list of output tensors of shape (B, C_out, T_out)
          for real and fake, respectively, and the list of feature maps of shape
          (B, C, T) at each Conv1d layer for real and fake, respectively.
      """
      (
          outs_real,
          outs_fake,
          f_maps_real,
          f_maps_fake,
      ) = self._pqmf_forward(ys, ys_hat)
      return outs_real, outs_fake, f_maps_real, f_maps_fake
  
imports: import logging
  from typing import Any, Dict, List, Optional
  import torch
  import torch.nn.functional
  from torch.nn import Conv1d
  from torch.nn.utils import spectral_norm, weight_norm
  from espnet2.gan_svs.visinger2.visinger2_vocoder import MultiFrequencyDiscriminator
  from espnet2.gan_tts.hifigan.residual_block import ResidualBlock
  from espnet2.gan_tts.melgan.pqmf import PQMF
label_desc: Use image node_id 4 for calling the CoMBD obj's underlying member method code with example usage: obj.forward(ys, ys_hat) and returns: outs_real,  outs_fake,  f_maps_real,  f_maps_fake