是否有API允许我选择传递给MFCC算法的频段?
说我有2个不同的麦克风,每个都有不同的频率范围,一个0~12000Hz,另一个0~20000Hz 显然,即使在录制时节省声源,第一和第二结果的FFT也会非常不同。 例如,我们设置n_component 13,我们有一个低频源(10Hz)和一个中频源(6000Hz),第一个将有一个FFT,指示0和6的高光,第二个高光将位于0和3。MFCC的结果向量将具有它们不应具有的大的欧几里德距离。
如果我可以选择频率上限,计算FFT结果后可以切断10000Hz以上的频率。 然后MFCC向量更可能接近。
如果有办法或某些调整可以达到这个目的,请告诉我。 (低通滤波器在这种情况下不起作用)
非常感谢!
下面是频谱图显示的差异(相同的声源不同的麦克风)
答案 0 :(得分:1)
Brian在Google小组上回答了我的问题:https://groups.google.com/forum/#!topic/librosa/fR0Kf-la8YU
要解决此问题,只需将'fmax'参数传递给mfcc函数即可 这样:
mfcc(y=sig, sr=rate, n_mfcc=n_mfcc, fmax=fmax)