Clojure/Java: Java libraries for spectrum analysis

2019-03-11 06:14发布

问题:

I am looking for a library that can accept a chunk of audio data and return the average amplitude over time within a given frequency band.

I've already asked this question over at comp.dsp, but it's clear to me that acquiring the know-how to build this on my own using a basic FFT library is going to require more time and energy than I have at present. Here is my original question with more detai: http://groups.google.com/group/comp.dsp/browse_thread/thread/e04f78d439e9e2bd

I've found lots of nice libraries for playing with sound (I used JSyn in the past), but none of these seem to be set up to return quick and dirty spectral information about a sound sample.

Any pointers would be much appreciated.

回答1:

This Blog shows a java implementation of the FFT algorithm which is very concise and reads audio files and calculates the frequency spectrum.

You could also check Jtranforms open source FFT library

Unfortunately the blog is gone, here are some other resources on FFT.

  • http://web.archive.org/web/20160301081621/http://www.wikijava.org/wiki/The_Fast_Fourier_Transform_in_Java_(part_1)
  • http://www.royvanrijn.com/blog/2010/06/creating-shazam-in-java/
  • Not java but added for the explanation: https://jakevdp.github.io/blog/2013/08/28/understanding-the-fft/


回答2:

have a look at the jAudio package in jMir, there is probably much more than what you need ...



回答3:

Have you taken a look at this:

http://download.oracle.com/javase/tutorial/sound/TOC.html

I have also used the Java Media Framework for video processing but I believe that they provide a good API for sound processing too. You should also look into that.