class_docstr: Conformer Encoder class, consisting of feature projection and conformer modules.
  
  Args:
      feature_projection (nn.Module):
          Projects feature to encoder dimension.
      conformer (nn.ModuleList)
          List of Conformer layers.
docstr: Args:
      features (Tensor): Tensor of features of shape ``(B, T, D)``.
      lengths (Tensor or None, optional): Valid length of each input sample. shape: ``(B, )``.
  
  Returns:
      Tensor: result after applying conformer encoder to features.
docstr_tok: ["Args",":","features","(","Tensor",")",":","Tensor","of","features","of","shape","``","(","B",",","T",",","D",")","``",".","lengths","(","Tensor","or","None",",","optional",")",":","Valid","length","of","each","input","sample",".","shape",":","``","(","B",",",")","``",".","Returns",":","Tensor",":","result","after","applying","conformer","encoder","to","features","."]
code: def forward(
      self,
      features: Tensor,
      lengths: Optional[Tensor] = None,
  ) -> Tensor:
      """
      Args:
          features (Tensor): Tensor of features of shape ``(B, T, D)``.
          lengths (Tensor or None, optional): Valid length of each input sample. shape: ``(B, )``.
  
      Returns:
          Tensor: result after applying conformer encoder to features.
      """
      x, mask = self._preprocess(features, lengths)
      x = x.transpose(0, 1)
      for layer in self.conformer:
          x = layer(x, mask)
      return x.transpose(0, 1)
  
imports: from typing import List, Optional, Tuple, Union
  import torch
  from torch import nn, Tensor
  from torch.nn import Module, ModuleList
  from torchaudio.models import Wav2Vec2Model
  from torchaudio.models.conformer import ConformerLayer
  from torchaudio.models.rnnt import _TimeReduction
  from torchaudio.models.wav2vec2 import components
label_desc: Use image node_id 4 for calling the ConformerEncoder obj's underlying member method code with example usage: obj.forward(features, lengths) and returns: x