def mel_filters(n_mels: int) -> mx.array:
    """
    Load the mel filterbank matrix for projecting STFT into a Mel spectrogram. Allows decoupling librosa
    dependency; saved using:

    np.savez_compressed(     "mel_filters.npz",     mel_80=librosa.filters.mel(sr=16000, n_fft=400,
    n_mels=80),     mel_128=librosa.filters.mel(sr=16000, n_fft=400, n_mels=128), )
    """
    assert n_mels in {80, 128}, f"Unsupported n_mels: {n_mels}"

    filename = os.path.join(os.path.dirname(__file__), "../assets", "mel_filters.npz")
    return mx.load(filename)[f"mel_{n_mels}"]

    Load the mel filterbank matrix for projecting STFT into a Mel spectrogram. Allows decoupling librosa
    dependency; saved using:

    np.savez_compressed(     "mel_filters.npz",     mel_80=librosa.filters.mel(sr=16000, n_fft=400,
    n_mels=80),     mel_128=librosa.filters.mel(sr=16000, n_fft=400, n_mels=128), )
    
whisperplus/pipelines/mlx_whisper/audio.py