我正在尝试开发一种能够识别动物声音片段的应用程序。我正在做的是我正在接受AMR记录并从中读取字节数组并通过FFT发送这些数据并相应地计算幅度。
AMR文件采样频率8 KHz(标准AMR为15秒)
输入8192值的FFT点数4096
然后我通过幅度计算幅度= 2 * FFT点值/ 8192
所以我现在的意图是在与最高振幅相关的频率上获得尖峰,问题在于最高度的尖峰对于同一动物的其他声音片段并不一致。对于另一个声音片段,与最高幅度相关的频率会发生变化。是否有一个原因?。任何帮助和指导将不胜感激。提前致谢。
答案 0 :(得分:1)
你的文件的采样频率为8KHz,但我认为人类听觉的平均频率是20KHz,所以你确定你的样本的nyquist频率(.wav文件的采样率通常是至少48KHz)?
奈奎斯特频率指出,如果您要对给定信号进行采样,则必须使用至少是给定信号最大频率两倍的采样频率。
此外,同一种动物可以并且会发出不同的声音,因此两种不同的样本的平均频率永远不会相同。您是否有一个容差阈值来计算不同的平均频率?