class_docstr: This function is to calculate the Melspectrogram of the input signal.
  Input signal should be in either of the following shapes.
  
  1. ``(len_audio)``
  
  2. ``(num_audio, len_audio)``
  
  3. ``(num_audio, 1, len_audio)``
  
  The correct shape will be inferred automatically if the input follows these 3 shapes.
  Most of the arguments follow the convention from librosa.
  This class inherits from ``nn.Module``, therefore, the usage is same as ``nn.Module``.
  
  Parameters
  ----------
  sr : int
      The sampling rate for the input audio.
      It is used to calculate the correct ``fmin`` and ``fmax``.
      Setting the correct sampling rate is very important for calculating the correct frequency.
  
  n_fft : int
      The window size for the STFT. Default value is 2048
  
  win_length : int
      the size of window frame and STFT filter.
      Default: None (treated as equal to n_fft)
  
  n_mels : int
      The number of Mel filter banks. The filter banks maps the n_fft to mel bins.
      Default value is 128.
  
  hop_length : int
      The hop (or stride) size. Default value is 512.
  
  window : str
      The windowing function for STFT. It uses ``scipy.signal.get_window``, please refer to
      scipy documentation for possible windowing functions. The default value is 'hann'.
  
  center : bool
      Putting the STFT keneral at the center of the time-step or not. If ``False``,
      the time index is the beginning of the STFT kernel, if ``True``, the time index is the
      center of the STFT kernel. Default value if ``True``.
  
  pad_mode : str
      The padding method. Default value is 'reflect'.
  
  htk : bool
      When ``False`` is used, the Mel scale is quasi-logarithmic. When ``True`` is used, the
      Mel scale is logarithmic. The default value is ``False``.
  
  fmin : int
      The starting frequency for the lowest Mel filter bank.
  
  fmax : int
      The ending frequency for the highest Mel filter bank.
  
  norm :
      if 1, divide the triangular mel weights by the width of the mel band
      (area normalization, AKA 'slaney' default in librosa).
      Otherwise, leave all the triangles aiming for
      a peak value of 1.0
  
  trainable_mel : bool
      Determine if the Mel filter banks are trainable or not. If ``True``, the gradients for Mel
      filter banks will also be calculated and the Mel filter banks will be updated during model
      training. Default value is ``False``.
  
  trainable_STFT : bool
      Determine if the STFT kenrels are trainable or not. If ``True``, the gradients for STFT
      kernels will also be caluclated and the STFT kernels will be updated during model training.
      Default value is ``False``.
  
  verbose : bool
      If ``True``, it shows layer information. If ``False``, it suppresses all prints.
  
  Returns
  -------
  spectrogram : torch.tensor
      It returns a tensor of spectrograms.  shape = ``(num_samples, freq_bins,time_steps)``.
  
  Examples
  --------
  >>> spec_layer = Spectrogram.MelSpectrogram()
  >>> specs = spec_layer(x)
class_docstr_tok: ["This","function","is","to","calculate","the","Melspectrogram","of","the","input","signal",".","Input","signal","should","be","in","either","of","the","following","shapes",".","1",".","``","(","len_audio",")","``","2",".","``","(","num_audio",",","len_audio",")","``","3",".","``","(","num_audio",",","1",",","len_audio",")","``","The","correct","shape","will","be","inferred","automatically","if","the","input","follows","these","3","shapes",".","Most","of","the","arguments","follow","the","convention","from","librosa",".","This","class","inherits","from","``","nn.Module","``",",","therefore",",","the","usage","is","same","as","``","nn.Module","``",".","Parameters","--","--","--","--","--","sr",":","int","The","sampling","rate","for","the","input","audio",".","It","is","used","to","calculate","the","correct","``","fmin","``","and","``","fmax","``",".","Setting","the","correct","sampling","rate","is","very","important","for","calculating","the","correct","frequency",".","n_fft",":","int","The","window","size","for","the","STFT",".","Default","value","is","2048","win_length",":","int","the","size","of","window","frame","and","STFT","filter",".","Default",":","None","(","treated","as","equal","to","n_fft",")","n_mels",":","int","The","number","of","Mel","filter","banks",".","The","filter","banks","maps","the","n_fft","to","mel","bins",".","Default","value","is","128.","hop_length",":","int","The","hop","(","or","stride",")","size",".","Default","value","is","512.","window",":","str","The","windowing","function","for","STFT",".","It","uses","``","scipy.signal.get_window","``",",","please","refer","to","scipy","documentation","for","possible","windowing","functions",".","The","default","value","is","'hann","'",".","center",":","bool","Putting","the","STFT","keneral","at","the","center","of","the","time-step","or","not",".","If","``","False","``",",","the","time","index","is","the","beginning","of","the","STFT","kernel",",","if","``","True","``",",","the","time","index","is","the","center","of","the","STFT","kernel",".","Default","value","if","``","True","``",".","pad_mode",":","str","The","padding","method",".","Default","value","is","'reflect","'",".","htk",":","bool","When","``","False","``","is","used",",","the","Mel","scale","is","quasi-logarithmic",".","When","``","True","``","is","used",",","the","Mel","scale","is","logarithmic",".","The","default","value","is","``","False","``",".","fmin",":","int","The","starting","frequency","for","the","lowest","Mel","filter","bank",".","fmax",":","int","The","ending","frequency","for","the","highest","Mel","filter","bank",".","norm",":","if","1",",","divide","the","triangular","mel","weights","by","the","width","of","the","mel","band","(","area","normalization",",","AKA","'slaney","'","default","in","librosa",")",".","Otherwise",",","leave","all","the","triangles","aiming","for","a","peak","value","of","1.0","trainable_mel",":","bool","Determine","if","the","Mel","filter","banks","are","trainable","or","not",".","If","``","True","``",",","the","gradients","for","Mel","filter","banks","will","also","be","calculated","and","the","Mel","filter","banks","will","be","updated","during","model","training",".","Default","value","is","``","False","``",".","trainable_STFT",":","bool","Determine","if","the","STFT","kenrels","are","trainable","or","not",".","If","``","True","``",",","the","gradients","for","STFT","kernels","will","also","be","caluclated","and","the","STFT","kernels","will","be","updated","during","model","training",".","Default","value","is","``","False","``",".","verbose",":","bool","If","``","True","``",",","it","shows","layer","information",".","If","``","False","``",",","it","suppresses","all","prints",".","Returns","--","--","--","-","spectrogram",":","torch.tensor","It","returns","a","tensor","of","spectrograms",".","shape","=","``","(","num_samples",",","freq_bins",",","time_steps",")","``",".","Examples","--","--","--","--",">",">",">","spec_layer","=","Spectrogram.MelSpectrogram","(",")",">",">",">","specs","=","spec_layer","(","x",")"]
docstr: Convert a batch of waveforms to Mel spectrograms.
  
  Parameters
  ----------
  x : torch tensor
      Input signal should be in either of the following shapes.
  
      1. ``(len_audio)``
  
      2. ``(num_audio, len_audio)``
  
      3. ``(num_audio, 1, len_audio)``
      It will be automatically broadcast to the right shape
docstr_tok: ["Convert","a","batch","of","waveforms","to","Mel","spectrograms",".","Parameters","--","--","--","--","--","x",":","torch","tensor","Input","signal","should","be","in","either","of","the","following","shapes",".","1",".","``","(","len_audio",")","``","2",".","``","(","num_audio",",","len_audio",")","``","3",".","``","(","num_audio",",","1",",","len_audio",")","``","It","will","be","automatically","broadcast","to","the","right","shape"]
code: def forward(self, x):
      """
      Convert a batch of waveforms to Mel spectrograms.
  
      Parameters
      ----------
      x : torch tensor
          Input signal should be in either of the following shapes.\n
          1. ``(len_audio)``\n
          2. ``(num_audio, len_audio)``\n
          3. ``(num_audio, 1, len_audio)``
          It will be automatically broadcast to the right shape
      """
      x = broadcast_dim(x)
  
      spec = self.stft(x, output_format="Magnitude") ** self.power
  
      melspec = torch.matmul(self.mel_basis, spec)
      return melspec
  
file_path: nnAudio/Installation/nnAudio/features/mel.py
imports: import torch.nn
  import torch
  import numpy
  from time import time
  from ..utils import *
  from .stft import STFT
label_desc: Use image node_id 2 for calling the MelSpectrogram obj's underlying member method code with example usage: obj.forward(x) and returns: melspec