class_docstr: Residual Convolutional Decoder as in the original Speedy Speech paper
  
  TODO: Integrate speaker conditioning vector.
  
  Note:
      Default params
              params = {
                  "kernel_size": 4,
                  "dilations": 4 * [1, 2, 4, 8] + [1],
                  "num_conv_blocks": 2,
                  "num_res_blocks": 17
              }
  
  Args:
      in_channels (int): number of input channels.
      out_channels (int): number of output channels.
      hidden_channels (int): number of hidden channels including ResidualConv1dBNBlock layers.
      params (dict): dictionary for residual convolutional blocks.
class_docstr_tok: ["Residual","Convolutional","Decoder","as","in","the","original","Speedy","Speech","paper","TODO",":","Integrate","speaker","conditioning","vector",".","Note",":","Default","params","params","=","{","``","kernel_size","''",":","4",",","``","dilations","''",":","4","*","[","1",",","2",",","4",",","8","]","+","[","1","]",",","``","num_conv_blocks","''",":","2",",","``","num_res_blocks","''",":","17","}","Args",":","in_channels","(","int",")",":","number","of","input","channels",".","out_channels","(","int",")",":","number","of","output","channels",".","hidden_channels","(","int",")",":","number","of","hidden","channels","including","ResidualConv1dBNBlock","layers",".","params","(","dict",")",":","dictionary","for","residual","convolutional","blocks","."]
code: def __init__(
      self, in_channels, out_channels, hidden_channels, params
  ):
      super().__init__()
      self.res_conv_block = ResidualConv1dBNBlock(
          in_channels, hidden_channels, hidden_channels, **params
      )
      self.post_conv = nn.Conv1d(hidden_channels, hidden_channels, 1)
      self.postnet = nn.Sequential(
          Conv1dBNBlock(
              hidden_channels,
              hidden_channels,
              hidden_channels,
              params["kernel_size"],
              1,
              num_conv_blocks=2,
          ),
          nn.Conv1d(hidden_channels, out_channels, 1),
      )
  
imports: import torch
  from torch import nn
  from TTS.tts.layers.generic.res_conv_bn import Conv1dBN, Conv1dBNBlock, ResidualConv1dBNBlock
  from TTS.tts.layers.generic.transformer import FFTransformerBlock
  from TTS.tts.layers.generic.wavenet import WNBlocks
  from TTS.tts.layers.glow_tts.transformer import RelativePositionTransformer
label_desc: Use image node_id 1 to create a new ResidualConv1dBNDecoder object from inherited base classes: nn with example: obj = ResidualConv1dBNDecoder(in_channels, out_channels, hidden_channels, params)