class_docstr: Convert waveform to Mel Spectrogram
  
  Args:
      - sample_rate (`int`):
          Sample rate of audio signal.
      - window_length (`int`):
          Window & FFT size.
      - hop_length (`int`):
          Length of hop between STFT windows.
      - f_min (`int`):
          Minimum frequency.
      - f_max (`int`):
          Maximum frequency.
      - n_mels (`int`):
          Number of mel filterbanks.
      - naf_mode (`bool`):
          The flag to control other parameters of mel spectrogram transform
      - mel_log (`str`):
          The torch log type in ['log', 'log10']
      - spec_norm (`str`):
          The normalization type (max normalization for 'max').
code: def forward(self, x):
      # normalize volume
      p = 1e999 if self.spec_norm == "max" else 2
      x = torch.nn.functional.normalize(x, p=p, dim=-1)
  
      if self.naf_mode:
          x = self.mel(x) + 0.06
      else:
          x = self.mel(x) + 1e-8
  
      if self.mel_log == "log10":
          x = torch.log10(x)
      elif self.mel_log == "log":
          x = torch.log(x)
  
      if self.spec_norm == "max":
          x = x - torch.amax(x, dim=(-2, -1), keepdim=True)
      return x
  
file_path: towhee/towhee/models/utils/audio_preprocess.py
imports: import numpy
  import torch
  import torchaudio
  from towhee.utils.log import models_log
label_desc: Use image node_id 2 for calling the MelSpec obj's underlying member method code with example usage: obj.forward(x) and returns: x