我正处于将语音转换为文本的任务的开始,并且已经通过我到目前为止所读的内容开发了这段代码。
AudioFormat format = new AudioFormat(44100, 16, 1, true, true);
TargetDataLine microphone;
float timeOut = 100000;
try {
microphone = AudioSystem.getTargetDataLine(format);
DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);
microphone = (TargetDataLine) AudioSystem.getLine(info);
microphone.open(format);
microphone.start();
ByteArrayOutputStream out = new ByteArrayOutputStream();
int numBytesRead;
byte[] data = new byte[microphone.getBufferSize() / 5];
int bytesRead = 0;
try {
while (bytesRead < timeOut) {
numBytesRead = microphone.read(data, 0, 1024);
bytesRead = bytesRead + numBytesRead;
out.write(data, 0, numBytesRead);
}
} catch (Exception e) {
e.printStackTrace();
}
byte audioData[] = out.toByteArray();
for(byte bytes: audioData) {
System.out.println(bytes);
}
microphone.close();
} catch (LineUnavailableException e) {
e.printStackTrace();
}
代码运行时,字节数组将填充[0,0,0,-1,52,-1,97 ...]之类的数字。我想知道是否有人可以解释输出以及'0'和'-1'的含义。