获得Java中的音频文件的波形(Obtain wave pattern of a audio fil

2019-07-01 21:20发布

我想知道我怎么可以获取音乐信息,如一个音频文件的幅度?

假设我们有一个原始音频文件,我想从它让我产生的曲线,如文件中提取数据什么http://www1.icsi.berkeley.edu/Speech/mr/nearfar.html 。 一旦我获得此曲线,我将执行FFT等

我一直在试图寻找在Java声音解决方案,但我只知道到目前为止,我可以倒数据到byte[]使用AudioInputStream 。 但我怎么把这一byte[]double[]关于声音包含的实际信息? 在这种情况下,在数值double[]表示振幅。

任何人都可以请提供一个解决方案来解决在Java中这个问题呢?

Answer 1:

典型的wav文件是16位的小端,这样你就可以把每两个连续的字节,B1和B2,并获得幅度如下:

(double) (b2 << 8 | b1 & 0xFF) / 32767.0;

如果输入是立体声的,前两个字节将左声道,然后右声道两个字节。



文章来源: Obtain wave pattern of a audio file in Java