class_docstr: Residual Convolutional Encoder as in the original Speedy Speech paper
  
  TODO: Integrate speaker conditioning vector.
  
  Args:
      in_channels (int): number of input channels.
      out_channels (int): number of output channels.
      hidden_channels (int): number of hidden channels
      params (dict): dictionary for residual convolutional blocks.
code: def __init__(
      self, in_channels, out_channels, hidden_channels, params
  ):
      super().__init__()
      self.prenet = nn.Sequential(
          nn.Conv1d(in_channels, hidden_channels, 1), nn.ReLU()
      )
      self.res_conv_block = ResidualConv1dBNBlock(
          hidden_channels, hidden_channels, hidden_channels, **params
      )
  
      self.postnet = nn.Sequential(
          *[
              nn.Conv1d(hidden_channels, hidden_channels, 1),
              nn.ReLU(),
              nn.BatchNorm1d(hidden_channels),
              nn.Conv1d(hidden_channels, out_channels, 1),
          ]
      )
  
file_path: TTS/TTS/tts/layers/feed_forward/encoder.py
imports: from torch import nn
  from TTS.tts.layers.generic.res_conv_bn import ResidualConv1dBNBlock
  from TTS.tts.layers.generic.transformer import FFTransformerBlock
  from TTS.tts.layers.glow_tts.transformer import RelativePositionTransformer
label_desc: Use image node_id 1 to create a new ResidualConv1dBNEncoder object from inherited base classes: nn with example: obj = ResidualConv1dBNEncoder(in_channels, out_channels, hidden_channels, params)