class_docstr: Speedy Speech duration predictor model.
  Predicts phoneme durations from encoder outputs.
  
  Note:
      Outputs interpreted as log(durations)
      To get actual durations, do exp transformation
  
  conv_BN_4x1 -> conv_BN_3x1 -> conv_BN_1x1 -> conv_1x1
  
  Args:
      hidden_channels (int): number of channels in the inner layers.
class_docstr_tok: ["Speedy","Speech","duration","predictor","model",".","Predicts","phoneme","durations","from","encoder","outputs",".","Note",":","Outputs","interpreted","as","log","(","durations",")","To","get","actual","durations",",","do","exp","transformation","conv_BN_4x1","-",">","conv_BN_3x1","-",">","conv_BN_1x1","-",">","conv_1x1","Args",":","hidden_channels","(","int",")",":","number","of","channels","in","the","inner","layers","."]
code: def __init__(self, hidden_channels):
      super().__init__()
  
      self.layers = nn.ModuleList(
          [
              Conv1dBN(hidden_channels, hidden_channels, 4, 1),
              Conv1dBN(hidden_channels, hidden_channels, 3, 1),
              Conv1dBN(hidden_channels, hidden_channels, 1, 1),
              nn.Conv1d(hidden_channels, 1, 1),
          ]
      )
  
imports: from torch import nn
  from TTS.tts.layers.generic.res_conv_bn import Conv1dBN
label_desc: Use image node_id 1 to create a new DurationPredictor object from inherited base classes: nn with example: obj = DurationPredictor(hidden_channels)