code: def _get_strided(
      waveform: Tensor,
      window_size: int,
      window_shift: int,
      snip_edges: bool,
  ) -> Tensor:
      r"""Given a waveform (1D tensor of size ``num_samples``), it returns a 2D tensor (m, ``window_size``)
      representing how the window is shifted along the waveform. Each row is a frame.
  
      Args:
          waveform (Tensor): Tensor of size ``num_samples``
          window_size (int): Frame length
          window_shift (int): Frame shift
          snip_edges (bool): If True, end effects will be handled by outputting only frames that completely fit
              in the file, and the number of frames depends on the frame_length.  If False, the number of frames
              depends only on the frame_shift, and we reflect the data at the ends.
  
      Returns:
          Tensor: 2D tensor of size (m, ``window_size``) where each row is a frame
      """
      assert waveform.dim() == 1
      num_samples = waveform.size(0)
      strides = (window_shift * waveform.stride(0), waveform.stride(0))
  
      if snip_edges:
          if num_samples < window_size:
              return torch.empty(
                  (0, 0), dtype=waveform.dtype, device=waveform.device
              )
          else:
              m = 1 + (num_samples - window_size) // window_shift
      else:
          reversed_waveform = torch.flip(waveform, [0])
          m = (num_samples + (window_shift // 2)) // window_shift
          pad = window_size // 2 - window_shift // 2
          pad_right = reversed_waveform
          if pad > 0:
              # torch.nn.functional.pad returns [2,1,0,1,2] for 'reflect'
              # but we want [2, 1, 0, 0, 1, 2]
              pad_left = reversed_waveform[-pad:]
              waveform = torch.cat(
                  (pad_left, waveform, pad_right), dim=0
              )
          else:
              # pad is negative so we want to trim the waveform at the front
              waveform = torch.cat((waveform[-pad:], pad_right), dim=0)
  
      sizes = (m, window_size)
      return waveform.as_strided(sizes, strides)
  
imports: import math
  from typing import Tuple
  import torch
  import torchaudio
  from torch import Tensor
label_desc: Use image node_id 3 for calling a global function with example usage: _get_strided(waveform, window_size, window_shift, snip_edges) and returns: waveform, torch