async _extract_fbank_features(waveform, mel_filters, max_length = null) {
        // NOTE: We don't pad/truncate since that is passed in as `max_num_frames`
        return spectrogram(
            waveform,
            this.window, // window
            this.config.fft_window_size, // frame_length
            this.config.hop_length, // hop_length
            {
                power: 2.0,
                mel_filters,
                log_mel: 'dB',

                // Custom
                max_num_frames: max_length,
                do_pad: false,
                transpose: true,
            }
        )
    }
Compute the log-mel spectrogram of the provided `waveform` using the Hann window.
In CLAP, two different filter banks are used depending on the truncation pattern:
 - `self.mel_filters`: they correspond to the default parameters of `torchaudio` which can be obtained from
   calling `torchaudio.transforms.MelSpectrogram().mel_scale.fb`. These filters are used when `truncation`
   is set to `"fusion"`.
 - `self.mel_filteres_slaney` : they correspond to the default parameters of `librosa` which used
   `librosa.filters.mel` when computing the mel spectrogram. These filters were only used in the original
   implementation when the truncation mode is not `"fusion"`.

@param {Float32Array|Float64Array} waveform The audio waveform to process.
@param {number[][]} mel_filters The mel filters to use.
@param {number} [max_length=null] The maximum number of frames to return.
@returns {Promise<Tensor>} An object containing the log-Mel spectrogram data as a Float32Array and its dimensions as an array of numbers.