如何理解和操作通过TargetDataLine读取的字节

时间:2019-07-17 23:12:06

标签: java user-input audio-recording

我正处于将语音转换为文本的任务的开始,并且已经通过我到目前为止所读的内容开发了这段代码。

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'的含义。

0 个答案:

没有答案