如何使用java openal处理音频(wav)

如何使用java openal处理音频(wav),java,openal,audio-processing,Java,Openal,Audio Processing,我正在尝试从.wav获取更多信息 例如,使用分贝或RMS将.wav切碎。 或者提高.wav的分贝 如果我也能得到频率信息那就太好了。 .wav是单声道的 我可以用它来播放我的.wav。由Uri创建。 我要查看OpenAL文档吗? 或者我应该找另一个音频库吗? 我更喜欢Java而不是C。我不擅长C。首先使用一些库打开WAV文件,并用PCM格式的原始音频波形填充阵列。。。看见WAV格式很简单,因此您可以编写自己的代码来解析WAV文件,并查看44字节的头文件和PCM音频有效负载。请参见下面的WAV规范

我正在尝试从.wav获取更多信息 例如,使用分贝或RMS将.wav切碎。 或者提高.wav的分贝 如果我也能得到频率信息那就太好了。 .wav是单声道的

我可以用它来播放我的.wav。由Uri创建。 我要查看OpenAL文档吗? 或者我应该找另一个音频库吗?
我更喜欢Java而不是C。我不擅长C。

首先使用一些库打开WAV文件,并用PCM格式的原始音频波形填充阵列。。。看见WAV格式很简单,因此您可以编写自己的代码来解析WAV文件,并查看44字节的头文件和PCM音频有效负载。请参见下面的WAV规范链接

一旦你有了整数数组,我建议你只需打印到控制台。。。根据您发送整数数组的位置,您可能需要首先将其转换为浮点数。。。通常,整数从0到2的某个幂变化,如2^16-1。。。通常,您只对这些整数的一小部分感兴趣,而不是对整个文件感兴趣。。。这称为采样窗口,其中每个整数是源音频的一个样本,该音频已从其模拟源(例如从麦克风)数字化为离散整数,以表示音频曲线在某一时刻的高度

通常,为了获得频率,您将数组或数组的一段发送到FFT调用中。。。这将把信号从时域转换到频域。。。它在转换过程中既不释放也不获取信息。。。一旦进入频域,你就可以将其发送到相反的位置,即进行逆变换,以获得原始的时域信号

请注意,您可以使用命令行工具FFMEG执行大量的音频(和视频)操作。。。它还作为一个库提供,您可以从代码中调用它(使用各种语言)

OpenAL是一个很好的库,用于渲染音频或从麦克风捕获音频

祝你好运,欢迎来到DSP世界

下面是一些WAV规范的详细信息


# craig@ccrma.stanford.edu