librosa的MFCC函数使用的梅尔滤波器数量是多少,是否支持自定义?
librosa.feature.mfcc自定义梅尔滤波器数量方法
首先给出函数定义:
librosa.feature.mfcc(y=None, sr=22050, S=None, n_mfcc=20, dct_type=2, norm='ortho', lifter=0, **kwargs)
你完全可以自定义梅尔滤波器的使用数量,不需要受默认值限制,具体逻辑和用法如下:
- 当你没有向
mfcc函数传入预计算的梅尔频谱(即参数S为空)时,函数内部会自动调用librosa.feature.melspectrogram生成梅尔频谱,你传入的n_mels参数会通过函数定义里的**kwargs透传给底层的librosa.filters.mel,直接覆盖默认值即可。 - 示例用法:如果你需要使用64个梅尔滤波器,直接在调用
mfcc时传入n_mels参数即可:mfcc_features = librosa.feature.mfcc(y=audio_data, sr=sampling_rate, n_mfcc=20, n_mels=64) - 当你已经提前预计算好梅尔频谱,直接传入
S参数使用时,只需要在预计算阶段(调用librosa.feature.melspectrogram或librosa.filters.mel时)自行指定n_mels的数值即可,mfcc函数会直接使用你传入的频谱数据,不会触发默认的滤波器生成逻辑。
如果未主动指定n_mels参数,mfcc函数默认确实会使用librosa.filters.mel的默认值n_mels=128。
内容的提问来源于stack exchange,提问作者Rasula
相关产品推荐
相关产品推荐

