docstr: Shapes:
      x: :math: `[B, T, C]`
docstr_tok: ["Shapes",":","x",":",":","math",":","`","[","B",",","T",",","C","]","`"]
code: def forward(self, x: torch.Tensor) -> torch.Tensor:
      """
      Shapes:
          x: :math: `[B, T, C]`
      """
      x = self.ln_1(x)
      x = x.permute(0, 2, 1)
      x = self.conv_1(x)
      x = self.conv_act(x)
      x = self.depthwise(x)
      x = self.ln_2(x)
      x = self.activation(x)
      x = self.conv_2(x)
      x = x.permute(0, 2, 1)
      x = self.dropout(x)
      return x
  
imports: import math
  from typing import Tuple
  import torch
  import torch.nn
  import torch.nn.functional
  from TTS.tts.layers.delightful_tts.conv_layers import Conv1dGLU, DepthWiseConv1d, PointwiseConv1d
  from TTS.tts.layers.delightful_tts.networks import GLUActivation
label_desc: Use image node_id 2 for calling the ConformerConvModule obj's underlying member method code with example usage: obj.forward(x) and returns: x