我一直在学习声音分析,并且在其中遇到了术语 mfcc。所以当我执行时,
librosa.feature.mfcc(y=X, sr=sample_rate, n_mfcc=40)
我得到了形状为 40 x 216 的 numpy 数组。所以我知道我已经在 216 帧中提取了 40 个特征。但是在这里,帧的确切含义是什么,它类似于采样率以及我们在加载音频文件时定义它的位置。
问问题
93 次
1 回答
1
从mfcc 文档中没有立即明显看出的是它在内部调用librosa.feature.melspectrogram。并且melspectrogram
有参数win_length
/n_fft
和hop_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 回答