class_docstr: Sliding Window.
  
  Provides a sliding window over a batched continuous raw audio tensor.
  Optionally, provides padding (Currently not implemented).
  Combine this module with a pre-encoder compatible with raw audio data,
  for example Sinc convolutions.
  
  Known issues:
  Output length is calculated incorrectly if audio shorter than win_length.
  WARNING: trailing values are discarded - padding not implemented yet.
  There is currently no additional window function applied to input values.
docstr: Apply a sliding window on the input.
  
  Args:
      input: Input (B, T, C*D) or (B, T*C*D), with D=C=1.
      input_lengths: Input lengths within batch.
  
  Returns:
      Tensor: Output with dimensions (B, T, C, D), with D=win_length.
      Tensor: Output lengths within batch.
code: def forward(
      self, input: torch.Tensor, input_lengths: torch.Tensor
  ) -> Tuple[torch.Tensor, torch.Tensor]:
      """Apply a sliding window on the input.
  
      Args:
          input: Input (B, T, C*D) or (B, T*C*D), with D=C=1.
          input_lengths: Input lengths within batch.
  
      Returns:
          Tensor: Output with dimensions (B, T, C, D), with D=win_length.
          Tensor: Output lengths within batch.
      """
      input_size = input.size()
      B = input_size[0]
      T = input_size[1]
      C = self.channels
      D = self.win_length
      # (B, T, C) --> (T, B, C)
      continuous = input.view(B, T, C).permute(1, 0, 2)
      windowed = continuous.unfold(0, D, self.hop_length)
      # (T, B, C, D) --> (B, T, C, D)
      output = windowed.permute(1, 0, 2, 3).contiguous()
      # After unfold(), windowed lengths change:
      output_lengths = (
          torch.div(
              input_lengths - self.win_length,
              self.hop_length,
              rounding_mode="trunc",
          )
          + 1
      )
      return output, output_lengths
  
file_path: espnet/espnet2/asr/frontend/windowing.py
imports: from typing import Tuple
  import torch
  from typeguard import check_argument_types
  from espnet2.asr.frontend.abs_frontend import AbsFrontend
label_desc: Use image node_id 2 for calling the SlidingWindow obj's underlying member method code with example usage: obj.forward(input, input_lengths) and returns: output,  output_lengths