1

我一直在学习声音分析,并且在其中遇到了术语 mfcc。所以当我执行时, librosa.feature.mfcc(y=X, sr=sample_rate, n_mfcc=40) 我得到了形状为 40 x 216 的 numpy 数组。所以我知道我已经在 216 帧中提取了 40 个特征。但是在这里,帧的确切含义是什么,它类似于采样率以及我们在加载音频文件时定义它的位置。

4

1 回答 1

1

mfcc 文档中没有立即明显看出的是它在内部调用librosa.feature.melspectrogram。并且melspectrogram有参数win_length/n_ffthop_length,它们定义了一个frame。您也可以将这些参数传递给mfcc.

那么什么是框架?基本上,它是处理一堆原始样本的结果:假设窗口长度为 2048 个样本(这是默认值)和 512 的跳跃长度(也是默认值),每个返回的帧mfcc对应于 2048 个原始样本并且是512 个样本比其前身“在音频中更进一步”。换句话说,帧之间有很大的重叠。

例如,要为您的音频创建 mfcc,将帧定义为 1024 个样本和 512 跳长度,您可以调用:

librosa.feature.mfcc(y=X, sr=sample_rate, n_mfcc=40, hop_length=512, n_fft=1024)

同样,如果您没有明确传递这些参数,则使用melspectrogram的默认值。

于 2020-04-20T09:47:07.310 回答