提取Wav文件的时域双[]以输入FFT-Java
我有一个wav文件,不知道如何从中提取数据,将其转换为快速傅立叶变换(FFT)进行进一步分析 我做了很多谷歌搜索,但没有找到具体的东西提取Wav文件的时域双[]以输入FFT-Java,java,audio,fft,wav,Java,Audio,Fft,Wav,我有一个wav文件,不知道如何从中提取数据,将其转换为快速傅立叶变换(FFT)进行进一步分析 我做了很多谷歌搜索,但没有找到具体的东西 The FFT algorithm code: public class ShortTimeFourierTransform { public static double[][] magnitudeSpectrum(double[] signal, int windowSize, int hopSize) { ... } ...}
The FFT algorithm code:
public class ShortTimeFourierTransform {
public static double[][] magnitudeSpectrum(double[] signal, int windowSize, int hopSize) { ... }
...}
接收信号的double[],因此我假设我必须找出如何解析wav文件并得到double[t],其中“t”是时间,double[t]是时间t时wav文件的振幅
我不知道如何进行。大多数解决方案似乎将wav导出为字节,根据()手动解析wav文件似乎要复杂得多
非常感谢你 wav格式只是围绕音频编码的包装格式。您需要:
- 解析.wav文件,获取编码音频
- 解码音频,获取原始PCM音频字节(PCM也是一种编码,但易于使用)
- 将音频转换为您需要的任何格式。(一些双人的?)
一个好的第三方库可以帮助您做到这一点。不过我没有任何建议。我今天也有同样的问题。该死的。。。