class_docstr: Extract features from log-mel spectrogram input. Consists of linear layer and time reduction layer.
  
  Args:
      input_dim (int): The feature dimension of log-mel spectrogram feature.
      output_dim (int): The feature dimension after linear layer.
      use_bias (bool): If ``True``, enable bias parameter in the linear layer.
      stride (int): Number of frames to merge for the output frame.
class_docstr_tok: ["Extract","features","from","log-mel","spectrogram","input",".","Consists","of","linear","layer","and","time","reduction","layer",".","Args",":","input_dim","(","int",")",":","The","feature","dimension","of","log-mel","spectrogram","feature",".","output_dim","(","int",")",":","The","feature","dimension","after","linear","layer",".","use_bias","(","bool",")",":","If","``","True","``",",","enable","bias","parameter","in","the","linear","layer",".","stride","(","int",")",":","Number","of","frames","to","merge","for","the","output","frame","."]
code: def __init__(
      self, input_dim: int, output_dim: int, use_bias: bool, stride: int
  ):
      super().__init__()
      self.linear = torch.nn.Linear(
          input_dim, output_dim, bias=use_bias
      )
      self.time_reduction = _TimeReduction(stride)
  
file_path: audio/src/torchaudio/prototype/models/_emformer_hubert.py
imports: from typing import List, Optional, Tuple
  import torch
  from torchaudio.models import Wav2Vec2Model
  from torchaudio.models.emformer import Emformer
  from torchaudio.models.rnnt import _TimeReduction
label_desc: Use image node_id 1 to create a new FeatureEncoder object from inherited base classes: torch.nn with example: obj = FeatureEncoder(input_dim, output_dim, use_bias, stride)