code: def _create_triangular_filterbank(
      all_freqs: Tensor,
      f_pts: Tensor,
  ) -> Tensor:
      """Create a triangular filter bank.
  
      Args:
          all_freqs (Tensor): STFT freq points of size (`n_freqs`).
          f_pts (Tensor): Filter mid points of size (`n_filter`).
  
      Returns:
          fb (Tensor): The filter bank of size (`n_freqs`, `n_filter`).
      """
      # Adopted from Librosa
      # calculate the difference between each filter mid point and each stft freq point in hertz
      f_diff = f_pts[1:] - f_pts[:-1]  # (n_filter + 1)
      slopes = f_pts.unsqueeze(0) - all_freqs.unsqueeze(
          1
      )  # (n_freqs, n_filter + 2)
      # create overlapping triangles
      zero = torch.zeros(1)
      down_slopes = (-1.0 * slopes[:, :-2]) / f_diff[
          :-1
      ]  # (n_freqs, n_filter)
      up_slopes = slopes[:, 2:] / f_diff[1:]  # (n_freqs, n_filter)
      fb = torch.max(zero, torch.min(down_slopes, up_slopes))
  
      return fb
  
imports: import math
  import tempfile
  import warnings
  from collections.abc import Sequence
  from typing import List, Optional, Tuple, Union
  import torch
  import torchaudio
  from torch import Tensor
  from torchaudio._internal.module_utils import deprecated
  from .filtering import highpass_biquad, treble_biquad
label_desc: Use image node_id 10 for calling a global function with example usage: _create_triangular_filterbank(all_freqs, f_pts) and returns: fb