1

是否有允许我选择传递给 MFCC 算法的频段的 API?

假设我有 2 个不同的麦克风,每个都有不同的频率范围,一个 0~12000Hz,另一个 0~20000Hz 显然,第一个和第二个结果的 FFT 会非常不同,即使他们正在录制以保存声源。例如,我们设置 n_component 13,我们有一个低频源(10Hz)和一个中频源(6000Hz),第一个将有一个 FFT,高光在索引 0 和 6,第二个的高光将位于 0 和3.

MFCC 的结果向量将具有它们不应该具有的大欧几里得距离。

如果我可以选择频率上限,则可以在计算 FFT 结果后切断 10000Hz 以上的频率。那么 MFCC 向量将更有可能接近。

如果有办法或一些调整可以实现这一点,请告诉我。(低通滤波器不适用于这种情况)

非常感谢!

以下是频谱图显示的差异(相同声源不同麦克风)

差异

4

1 回答 1

2

布赖恩在 Google 群组上回答了我的问题:https ://groups.google.com/forum/#!topic/librosa/fR0Kf-la8YU

要解决这个问题,只需将“fmax”参数传递给 mfcc 函数,如下所示:

mfcc(y=sig, sr=rate, n_mfcc=n_mfcc, fmax=fmax)
于 2015-02-13T05:02:03.690 回答