【问题标题】:Getting MFCC from a spectrogram time/ frequency series array从频谱图时间/频率序列数组中获取 MFCC
【发布时间】:2019-09-07 19:04:05
【问题描述】:

我有几个频谱仪时间/频率 [500,1024] 文件。

我需要计算这些文件的 MFCC。有很多用于在原始音频文件上计算 MFCC 的库,但我正在寻找一种在 python 中直接从 np.array 计算的方法。

【问题讨论】:

    标签: python signal-processing mfcc


    【解决方案1】:

    这可以通过 librosa 完成,因为它允许使用参数 S 传入频谱图而不是音频波形。

    我假设您有一个 STFT 幅度谱图(丢弃相位的线性谱图)。然后需要将其转换为经过梅尔滤波的频谱图,进行对数缩放,然后进行 DCT-2 和截断以获得 MFCC 系数。骨架代码如下:

    import librosa
    import numpy
    
    # TODO: you need to provide these
    sr = my_samplerate
    my_stft
    
    mels = librosa.feature.melspectrogram(S=my_stft, sr=sr, n_mels=64)
    log_mels = librosa.core.amplitude_to_db(mels, ref=numpy.max)
    mfcc = librosa.feature.mfcc(S=log_mels, sr=sr, n_mfcc=20)
    

    有关详细信息,请参阅librosa API reference

    【讨论】:

      猜你喜欢
      • 2021-03-25
      • 2012-10-18
      • 2017-03-29
      • 2017-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-25
      • 2019-07-21
      相关资源
      最近更新 更多