5
我正在使用Java AudioInputStream读取.wav音频文件。音频文件是16位PCM签名的,samplerate = 44100,framesize = 2,framelength = 114048.我设法获取音频数据以字节数组的形式存在,但我不确定我应该给这个字节数组分配多少大小,以便我可以将它转换为浮点数。 我正在做一些使用Goertzel算法的音频处理,它采用浮点数组的输入,例如“float [] x”。以下是我正在使用的一些代码片段。提前致谢。将wav音频格式字节数组转换为浮点数
try {
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(fileIn);
}
while (numBytesRead != -1) {
numBytesRead = audioInputStream.read(audioBytes);
// Logic goes here
floatValue = byteArrayToFloat(audioBytes);
}
我改正你的示例代码假设AudioInputStream是小端?如果你不能依赖这个假设,是否可以安全地调用.getFormat()。isBigEndian(),如果它返回true,则传入ByteOrder.BIG_ENDIAN? – rlkw1024 2013-01-09 20:14:16