import timbre.AudioInput; import timbre.AudioOutput; import timbre.AudioStream; import timbre.AudioFormat; import timbre.AudioProcessingException; public class AudioStreamProcessingExample { public static void main(String[] args) { try { AudioInput input = new AudioInput("input.wav"); AudioOutput output = new AudioOutput("output.wav"); AudioFormat format = input.getFormat(); AudioStream stream = new AudioStream(input, output); stream.setProcessor(new AudioProcessor()); stream.start(); stream.join(); input.close(); output.close(); } catch (Exception e) { e.printStackTrace(); } } public static class AudioProcessor implements AudioStream.Processor { @Override public void process(AudioInput input, AudioOutput output) throws AudioProcessingException { byte[] buffer = new byte[4096]; int bytesRead = input.read(buffer); while (bytesRead != -1) { for (int i = 0; i < bytesRead; i++) { } output.write(buffer, 0, bytesRead); bytesRead = input.read(buffer); } } } } import timbre.AudioInput; import timbre.AudioStream; import timbre.AudioFormat; import timbre.analysis.fft.FFT; public class AudioStreamAnalysisExample { public static void main(String[] args) { try { AudioInput input = new AudioInput("input.wav"); AudioFormat format = input.getFormat(); AudioStream stream = new AudioStream(input); FFT fft = new FFT(format.getSampleRate(), format.getFrameSize()); byte[] buffer = new byte[4096]; int bytesRead = input.read(buffer); while (bytesRead != -1) { float[] samples = format.bytesToSamples(buffer); float[] spectrum = fft.computeSpectrum(samples); for (float s : spectrum) { System.out.println(s); } bytesRead = input.read(buffer); } input.close(); } catch (Exception e) { e.printStackTrace(); } } }


上一篇:
下一篇:
切换中文