from librosa.feature import mfcc
from librosa.core import load
def extract_mfcc(sound):
data, frame = load(sound)
return mfcc(data, frame)
mfcc = extract_mfcc("sound.wav")
我想获取以下 sound.wav 文件的MFCC,该文件的长度为 48秒。
我了解到data * frame = length of audio.
但是当我如上所述计算MFCC并得到其形状时,结果如下:(20, 2086)
这些数字代表什么? 如何仅通过MFCC来计算音频的时间?
我正在尝试计算每毫秒音频的平均MFCC。
感谢您的帮助!谢谢:)
答案 0 :(得分:1)
这是因为mel-frequency cepstral coefficients是在一个窗口上计算的,即样本数。声音是波动的,无法通过获取单个样本(数字)来获得任何特征,因此无法获得窗口。
为了计算MFCC,使用了快速傅里叶变换(FFT),而这恰恰需要提供窗口的长度。如果检查librosa文档中的mfcc,则不会发现它是显式参数。那是因为它是隐式的,特别是:
它们作为**kwargs
传递并定义为here。
如果现在考虑音频的采样频率和这些数字。您将获得所提供的最终结果。
由于librosa的默认采样率为22050,音频长度为48s,窗口等于512,因此,如下所示:
该数字不完全是2086
,如下: