首页 > 解决方案 > 从麦克风 Java 中检测特定频率

问题描述

我正在尝试捕获来自麦克风的音频,并且我想检查声音的频率。如果我得到一个更大的频率,那么假设:1316.8 那么我将开始录制 1 分钟。

我正在努力将字节数据转换为频率。

我曾经Javax.sound捕获来自麦克风的音频,并且我也完成了录制部分。

  AudioFormat format = new AudioFormat(44100, 16, 2, true, true);

    DataLine.Info targetInfo = new DataLine.Info(TargetDataLine.class, format);
    DataLine.Info sourceInfo = new DataLine.Info(SourceDataLine.class, format);

    try {
        TargetDataLine targetLine = (TargetDataLine) AudioSystem.getLine(targetInfo);
        targetLine.open(format);
        targetLine.start();

        SourceDataLine sourceLine = (SourceDataLine) AudioSystem.getLine(sourceInfo);
        sourceLine.open(format);
        sourceLine.start();

        int numBytesRead;
        byte[] targetData = new byte[targetLine.getBufferSize() / 5];

我希望输出类似于来自麦克风的每个声音的频率。

标签: javaaudio

解决方案


推荐阅读