nnAudio.librosa_functions.get_mel

nnAudio.librosa_functions.get_mel(sr, n_fft, n_mels=128, fmin=0.0, fmax=None, htk=False, norm=1, dtype=<class 'numpy.float32'>)

This function is cloned from librosa 0.7. Please refer to the original documentation for more info. Create a Filterbank matrix to combine FFT bins into Mel-frequency bins

Parameters
  • sr (number > 0 [scalar]) – sampling rate of the incoming signal

  • n_fft (int > 0 [scalar]) – number of FFT components

  • n_mels (int > 0 [scalar]) – number of Mel bands to generate

  • fmin (float >= 0 [scalar]) – lowest frequency (in Hz)

  • fmax (float >= 0 [scalar]) – highest frequency (in Hz). If None, use fmax = sr / 2.0

  • htk (bool [scalar]) – use HTK formula instead of Slaney

  • norm ({None, 1, np.inf} [scalar]) – if 1, divide the triangular mel weights by the width of the mel band (area normalization). Otherwise, leave all the triangles aiming for a peak value of 1.0

  • dtype (np.dtype) – The data type of the output basis. By default, uses 32-bit (single-precision) floating point.

Returns

M – Mel transform matrix

Return type

np.ndarray [shape=(n_mels, 1 + n_fft/2)]

Notes

This function caches at level 10.

Examples

>>> melfb = librosa.filters.mel(22050, 2048)
>>> melfb
array([[ 0.   ,  0.016, ...,  0.   ,  0.   ],
       [ 0.   ,  0.   , ...,  0.   ,  0.   ],
       ...,
       [ 0.   ,  0.   , ...,  0.   ,  0.   ],
       [ 0.   ,  0.   , ...,  0.   ,  0.   ]])
Clip the maximum frequency to 8KHz
>>> librosa.filters.mel(22050, 2048, fmax=8000)
array([[ 0.  ,  0.02, ...,  0.  ,  0.  ],
       [ 0.  ,  0.  , ...,  0.  ,  0.  ],
       ...,
       [ 0.  ,  0.  , ...,  0.  ,  0.  ],
       [ 0.  ,  0.  , ...,  0.  ,  0.  ]])
>>> import matplotlib.pyplot as plt
>>> plt.figure()
>>> librosa.display.specshow(melfb, x_axis='linear')
>>> plt.ylabel('Mel filter')
>>> plt.title('Mel filter bank')
>>> plt.colorbar()
>>> plt.tight_layout()
>>> plt.show()