如何解释音频字节?

时间:2012-11-03 16:02:32

标签: java audio-analysis

我想写一个语音压力分析工具。我打开音频流进行阅读:

TargetDataLine line;
AudioFormat format = new AudioFormat((float) 44100, 16, 1, true, false);
DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);
line = (TargetDataLine) AudioSystem.getLine(info);
line.open(format);
// Begin audio capture.
line.start();

然后循环:

// Read the next chunk of data from the TargetDataLine.
numBytesRead = line.read(externalData, 0, externalData.length);

我得到一个带字节的数组,因为externalData的定义如下:

public static byte[] externalData = new byte[1024];

我想知道的是如何解释这些数据?我试图用字节值绘制它,但我想这是错误的。 Plotted bytes

X轴是时间,Y轴是字节值。

PS:我在哪里可以找到有关McQuiston-Ford算法的更多信息?

1 个答案:

答案 0 :(得分:2)

您需要将字节转换为幅度并绘制它们。请参阅此问题,了解如何点缀它:Obtain wave pattern of a audio file in Java

至于算法,维基百科说它的pseudescience,我怀疑它在公共领域会有很多。