class_docstr: Wavenet blocks.
  
  Note: After each block dilation resets to 1 and it increases in each block
      along the dilation rate.
  
  Args:
      in_channels (int): number of input channels.
      hidden_channes (int): number of hidden channels.
      kernel_size (int): filter kernel size for the first conv layer.
      dilation_rate (int): dilations rate to increase dilation per layer.
          If it is 2, dilations are 1, 2, 4, 8 for the next 4 layers.
      num_blocks (int): number of wavenet blocks.
      num_layers (int): number of wavenet layers.
      c_in_channels (int): number of channels of conditioning input.
      dropout_p (float): dropout rate.
      weight_norm (bool): enable/disable weight norm for convolution layers.
code: def forward(self, x, x_mask, g=None):
      o = x
      for layer in self.wn_blocks:
          o = layer(o, x_mask, g)
      return o
  
file_path: TTS/TTS/tts/layers/generic/wavenet.py
imports: import torch
  from torch import nn
label_desc: Use image node_id 2 for calling the WNBlocks obj's underlying member method code with example usage: obj.forward(x, x_mask, g) and returns: o