从频谱图时间/频率序列数组中获取MFCC

时间:2019-05-31 19:05:47

标签: python signal-processing mfcc

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

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

1 个答案:

答案 0 :(得分:0)

可以使用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