Yil*_*ang 3 python audio signal-processing mfcc tensorflow
我正在测试tensorflow.signal 实现中的MFCC 功能。根据示例(https://www.tensorflow.org/api_docs/python/tf/signal/mfccs_from_log_mel_spectrograms),它正在计算所有 80 个 mfcc,然后取前 13 个。
我已经尝试了上面的方法和“直接计算前 13 个”方法,结果非常不同:
为什么会有这么大的差异?如果我将其作为特征传递给 CNN 或 RNN,我应该使用哪一个?
这是由 MFCC 的性质决定的。lower_edge_hertz请记住,这些系数是在您通过upper_edge_hertz链接代码提供的梅尔标度的频率范围内计算的。
这在实践中意味着什么:
“直接计算13个系数”:取频率范围[80.0, 7600.0]并将其分为13个区间。最终,你会得到13个反映相应频谱幅度的系数(参见MFCC算法)
“先全部 80 个,然后取前 13 个”:获取频率范围[80.0, 7600.0]并将其分为 80 个 bin。现在,仅取前 13 个系数。实际上,这意味着您正在研究非常狭窄和细粒度的频谱,在本例中大致在人类语音频率范围[80, 400]Hz 内(粗略地说,是包络计算的后面)。如果您热衷于人类语音识别,这是有道理的,因为您可以专注于更微妙的变化,而忽略更高的频谱(从我们的听觉系统的角度来看,这不太有趣)。
| 归档时间: |
|
| 查看次数: |
2922 次 |
| 最近记录: |