code: def split_fixed_chunks(
      x: torch.Tensor, chunk_size: int, dim: int = -1
  ) -> List[torch.Tensor]:
      """Split an input tensor `x` into a list of chunk tensors of size
      `chunk_size` alongside dimension `dim`.
      Useful for splitting up sequences with chunks of fixed sizes.
  
      If dimension `dim` cannot be evenly split by `chunk_size`, then the last
      chunk will be smaller than `chunk_size`.
  
      Arguments
      ---------
      x : torch.Tensor
          The tensor to split into chunks, typically a sequence or audio signal.
  
      chunk_size : int
          The size of each chunk, i.e. the max size of each chunk on dimension
          `dim`.
  
      dim : int
          Dimension to split alongside of, typically the time dimension.
  
      Returns
      -------
      List[torch.Tensor]
          A chunk list of tensors, see description and example.
          Guarantees `.size(dim) <= chunk_size`.
  
      Example
      -------
      >>> import torch
      >>> from speechbrain.utils.streaming import split_fixed_chunks
      >>> x = torch.zeros((16, 10000, 80))
      >>> chunks = split_fixed_chunks(x, 128, dim=1)
      >>> len(chunks)
      79
      >>> chunks[0].shape
      torch.Size([16, 128, 80])
      >>> chunks[-1].shape
      torch.Size([16, 16, 80])
      """
  
      num_chunks = math.ceil(x.size(dim) / chunk_size)
      split_at_indices = [
          (i + 1) * chunk_size for i in range(num_chunks - 1)
      ]
      return torch.tensor_split(x, split_at_indices, dim=1)
  
imports: import math
  import torch
  from typing import Callable, List
label_desc: Use image node_id 1 for calling a global function with example usage: split_fixed_chunks(x, chunk_size, dim) and returns: torch