class_docstr: Asteroid Filterbank Frontend.
  
  Provides a Sinc-convolutional-based audio feature extractor. The same
  function can be achieved by using `sliding_winodw frontend +
  sinc preencoder`.
  
  NOTE(jiatong): this function is used in sentence-level classification
  tasks (e.g., spk). Other usages are not fully investigated.
  
  NOTE(jeeweon): this function implements the parameterized analytic
  filterbank layer in M. Pariente, S. Cornell, A. Deleforge and E. Vincent,
  "Filterbank design for end-to-end speech separation," in Proc. ICASSP, 2020
docstr: Apply the Asteroid filterbank frontend to the input.
  
  Args:
      input: Input (B, T).
      input_length: Input length (B,).
  
  Returns:
      Tensor: Frame-wise output (B, T', D).
code: def forward(
      self, input: torch.Tensor, input_length: torch.Tensor
  ) -> Tuple[torch.Tensor, torch.Tensor]:
      """Apply the Asteroid filterbank frontend to the input.
  
      Args:
          input: Input (B, T).
          input_length: Input length (B,).
  
      Returns:
          Tensor: Frame-wise output (B, T', D).
      """
      # input check
      assert (
          len(input.size()) == 2
      ), "The number of dimensions of input tensor must be 2!"
  
      with torch.cuda.amp.autocast(enabled=False):
          # reflect padding to match lengths of in/out
          x = input.unsqueeze(1)
          x = F.pad(x, (1, 0), "reflect")
  
          # apply preemphasis
          x = F.conv1d(x, self.flipped_filter)
  
          # apply norm
          x = self.norm(x)
  
          # apply frame feature extraction
          x = torch.log(torch.abs(self.conv(x)) + self.log_term)
  
      input_length = (
          input_length - self.sinc_kernel_size
      ) // self.sinc_stride + 1
      x = x - torch.mean(x, dim=-1, keepdim=True)
  
      return x.permute(0, 2, 1), input_length
  
file_path: espnet/espnet2/asr/frontend/asteroid_frontend.py
imports: from typing import Tuple
  import torch
  import torch.nn
  import torch.nn.functional
  from asteroid_filterbanks import Encoder, ParamSincFB
  from typeguard import check_argument_types
  from espnet2.asr.frontend.abs_frontend import AbsFrontend
label_desc: Use image node_id 2 for calling the AsteroidFrontend obj's underlying member method code with example usage: obj.forward(input, input_length) and returns: x,  input_length