繁体   English   中英

提取Wav文件的Time Domain double []以输入FFT - Java

[英]Extract Time Domain double[] of Wav file for input into FFT - Java

我有一个wav文件,无法弄清楚如何从中提取我需要的数据,将其放入快速傅里叶变换(FFT)进行进一步分析......

我做了大量的谷歌搜索和搜索,但没有找到具体的东西......

The FFT algorithm code:

    public class ShortTimeFourierTransform {
        public static double[][] magnitudeSpectrum(double[] signal, int windowSize, int hopSize) { ... }  
...}

对信号采用double [],所以我假设我必须弄清楚如何解析wav文件并获得double [t],其中“t”是时间,double [t]将是wav文件在时间t。

我不知道该怎么办。 大多数解决方案似乎都将wav导出为字节,并且根据( https://ccrma.stanford.edu/courses/422/projects/WaveFormat/ ),按字节解析wav文件似乎要复杂得多。

非常感谢!

.wav格式只是围绕音频编码的包装格式。 你需要:

  • 解析.wav文件,获取编码音频
  • 解码音频,获取原始PCM音频字节(PCM也是一种编码,但易于使用)
  • 将音频转换为您需要的任何格式。 (有些双打吗?)

除非您可以更改文件的格式,否则没有真正的方法。

如果您可以更改文件格式,我建议使用程序(如Audacity)打开wav文件,并保存其原始PCM编码字节。 这将使您不必担心.wav格式。

一个好的第三方图书馆可以帮助你。 我没有建议。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM