use*_*408 6 java audio fft javasound
我想知道如何从音频文件中获取振幅等音乐信息?
假设我们有一个原始音频文件,我想从文件中提取数据,这允许我生成一个曲线,如http://www1.icsi.berkeley.edu/Speech/mr/nearfar.html.获得此曲线后,我将执行FFT等.

我一直在尝试在Java Sound中搜索解决方案,但到目前为止我只知道我可以将数据倒入byte[]使用中AudioInputStream.但是如何将其byte[]转换为double[]包含声音实际信息的?在这种情况下,double[]表示幅度中的值.
有谁能提供解决方案来解决Java中的这个问题?
典型的wav文件是16位小端,因此你可以取两个连续的字节b1和b2,并得到如下的幅度:
(double) (b2 << 8 | b1 & 0xFF) / 32767.0;
Run Code Online (Sandbox Code Playgroud)
如果输入是立体声,则前两个字节将是左声道,然后是右声道的两个字节.
| 归档时间: |
|
| 查看次数: |
2760 次 |
| 最近记录: |