class_docstr: SISNR loss.
  
  Input should be [B, C, T], output is scalar.
  
  ..Warning:: This function returns the opposite of the SI-SNR (e.g. `-1 * regular_SI_SNR`).
      Consequently, lower scores are better in terms of reconstruction quality,
      in particular, it should be negative if training goes well. This done this way so
      that this module can also be used as a loss function for training model.
  
  Args:
      sample_rate (int): Sample rate.
      segment (float or None): Evaluate on chunks of that many seconds. If None, evaluate on
          entire audio only.
      overlap (float): Overlap between chunks, i.e. 0.5 = 50 % overlap.
      epsilon (float): Epsilon value for numerical stability.
code: def __init__(
      self,
      sample_rate: int = 16000,
      segment: tp.Optional[float] = 20,
      overlap: float = 0.5,
      epsilon: float = torch.finfo(torch.float32).eps,
  ):
      super().__init__()
      self.sample_rate = sample_rate
      self.segment = segment
      self.overlap = overlap
      self.epsilon = epsilon
  
file_path: audiocraft/audiocraft/losses/sisnr.py
imports: import math
  import typing
  import torch
  from torch import nn
  from torch.nn import functional
label_desc: Use image node_id 1 to create a new SISNR object from inherited base classes: nn with example: obj = SISNR(sample_rate, segment, overlap, epsilon)