1

我想写一个语音压力分析工具。我正在打开音频流以供阅读:

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];

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

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

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

4

1 回答 1

2

您需要将字节转换为幅度并绘制它们。看到这个关于如何打点的问题:Obtain wave pattern of a audio file in Java

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

于 2012-11-03T16:49:05.430 回答