Skip to content

Instantly share code, notes, and snippets.

@ikumasa
Created July 14, 2017 07:42
Show Gist options
  • Save ikumasa/7fcdec89d9cda987fa4207fc10acabfa to your computer and use it in GitHub Desktop.
Save ikumasa/7fcdec89d9cda987fa4207fc10acabfa to your computer and use it in GitHub Desktop.
package org.gennai.audio_analyzer.analysis;
import java.io.IOException;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import org.gennai.audio_analyzer.analysis.AudioTest.Audio;
import org.gennai.audio_analyzer.analysis.audio.AudioSamples;
import org.gennai.audio_analyzer.analysis.config.FingerprintConfig;
import org.gennai.audio_analyzer.analysis.fft.SpectrumService;
import org.gennai.audio_analyzer.analysis.fft.SpectrumService.Mode;
public class SpectrogramSample {
public static void main(String[] args)
throws UnsupportedAudioFileException, IOException, LineUnavailableException {
FingerprintConfig fingerprintConfig = new FingerprintConfig();
SpectrumService spectrumService = new SpectrumService();
// WAVEファイル読み込み
Audio audio = AudioTest.readWave("../samples4/nom1.wav");
AudioSamples audioSamples = new AudioSamples(audio.getData(), audio.getOrigin(),
(int) audio.getFormat().getSampleRate());
// complex 算出
double[][] spectrogram = spectrumService.spectrogram(audioSamples, Mode.COMPLEX,
fingerprintConfig.getSpectrogramConfig());
System.out.println(spectrogram.length + " / " + spectrogram[0].length);
// Logarithmic Frequency Spectrum 算出
spectrogram = spectrumService.spectrogram(audioSamples, Mode.LOGARITHMIC,
fingerprintConfig.getSpectrogramConfig());
System.out.println(spectrogram.length + " / " + spectrogram[0].length);
// magnitude 算出
spectrogram = spectrumService.spectrogram(audioSamples, Mode.MAGNITUDE,
fingerprintConfig.getSpectrogramConfig());
System.out.println(spectrogram.length + " / " + spectrogram[0].length);
// Power spectral density 算出
spectrogram = spectrumService.spectrogram(audioSamples, Mode.PSD,
fingerprintConfig.getSpectrogramConfig());
System.out.println(spectrogram.length + " / " + spectrogram[0].length);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment