在java中实时处理麦克风数据
我使用以下说明获取麦克风的信号音频:在java中实时处理麦克风数据,java,real-time,signal-processing,microphone,Java,Real Time,Signal Processing,Microphone,我使用以下说明获取麦克风的信号音频: while(!stopCapture){ int cnt = targetDataLine.read(tempBuffer, 0, tempBuffer.length); if(cnt > 0){ byteArrayOutputStream.write(tempBuffer, 0, cnt); } }
while(!stopCapture){
int cnt = targetDataLine.read(tempBuffer, 0, tempBuffer.length);
if(cnt > 0){
byteArrayOutputStream.write(tempBuffer, 0, cnt);
}
}
byteArrayOutputStream.close();
byte audio[] = byteArrayOutputStream.toByteArray();
InputStream input = new ByteArrayInputStream(audio);
AudioInputStream ais = new AudioInputStream(input, audioFormat, audio.length / audioFormat.getFrameSize());
但这些指令需要等待整个信号,然后才能对其进行详细说明。
我需要实时详细说明…可能吗
我怎么做
谢谢用tearrayoutputstream.write(tempBuffer,0,cnt)在
前面的一行中进行“细化”(无论这意味着什么)代码>。我需要得到信号的振幅。我能直接用tempbuffer得到它们吗?你说的“振幅”是什么意思?声波的瞬时大小可以从帧的字节中获得,但这和声音的音量不同。体积计算需要一组帧。获取振幅取决于样本缓冲区的长度和振幅测量所需的频率响应。