>我有一个 wav 文件,无法弄清楚如何从中提取我需要的数据以将其放入快速傅立叶变换 (FFT) 中进行进一步分析......
我已经做了很多谷歌搜索和搜索,但没有找到具体的东西......
The FFT algorithm code:
public class ShortTimeFourierTransform {
public static double[][] magnitudeSpectrum(double[] signal, int windowSize, int hopSize) { ... }
...}
为信号输入双 [],所以我假设我必须弄清楚如何解析 wav 文件并获得一个双 [t],其中"t"是时间,而 double[t] 将是时间 t 处 wav 文件的振幅。
我不知道该如何进行。大多数解决方案似乎将 wav 导出为字节,并且根据 (https://ccrma.stanford.edu/courses/422/projects/WaveFormat/) 手动解析 wav 文件似乎要复杂得多
非常感谢!
.wav格式只是音频编码的包装器格式。 您需要:
- 解析.wav文件,获取编码的音频 解码音频,
- 获取原始PCM音频字节(PCM也是一种编码,但易于使用)
- 将音频转换为您需要的任何格式。(一些双打?
没有真正的解决方法 - 除非您可以更改文件格式。
如果您可以更改文件格式,我建议使用程序(如Audacity)打开wav文件,并保存其原始PCM编码字节。 这将使您不必担心.wav格式。
一个好的第三方库可以帮助您解决这个问题。 不过我没有建议。