我一直在学习声音分析,在其中遇到了术语mfcc。所以当我执行librosa.feature.mfcc(y=X, sr=sample_rate, n_mfcc=40)
我得到了形状为40乘216的numpy数组。所以我得到了在216帧中提取了40个特征。但在这里,帧的确切含义是什么,它与采样率相似吗?以及我们在加载音频文件时对它的定义。
从mfcc文档中不明显的是,它在内部调用librosa.feature.melsspectrogram。并且melspectrogram
具有参数win_length
/n_fft
和hop_length
,它们定义了帧。您也可以将这些参数传递给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中的默认值。