A spectrogram is a visual representation of the spectrum of frequencies in a sound sample.
more info: wikipedia spectrogram
Spectrogram code in Python, using Matplotlib: (source on GitHub)
"""Generate a Spectrogram image for a given WAV audio sample.
A spectrogram, or sonogram, is a visual representation of the spectrum
of frequencies in a sound. Horizontal axis represents time, Vertical axis
represents frequency, and color represents amplitude.
"""
import os
import wave
import pylab
def graph_spectrogram(wav_file):
sound_info, frame_rate = get_wav_info(wav_file)
pylab.figure(num=None, figsize=(19, 12))
pylab.subplot(111)
pylab.title('spectrogram of %r' % wav_file)
pylab.specgram(sound_info, Fs=frame_rate)
pylab.savefig('spectrogram.png')
def get_wav_info(wav_file):
wav = wave.open(wav_file, 'r')
frames = wav.readframes(-1)
sound_info = pylab.fromstring(frames, 'Int16')
frame_rate = wav.getframerate()
wav.close()
return sound_info, frame_rate
if __name__ == '__main__':
wav_file = 'sample.wav'
graph_spectrogram(wav_file)
Spectrogram code in Python, using timeside:
(source on GitHub)
"""Generate a Spectrogram image for a given audio sample.
Compatible with several audio formats: wav, flac, mp3, etc.
Requires: https://code.google.com/p/timeside/
A spectrogram, or sonogram, is a visual representation of the spectrum
of frequencies in a sound. Horizontal axis represents time, Vertical axis
represents frequency, and color represents amplitude.
"""
import timeside
audio_file = 'sample.wav'
decoder = timeside.decoder.FileDecoder(audio_file)
grapher = timeside.grapher.Spectrogram(width=1920, height=1080)
(decoder | grapher).run()
grapher.render('spectrogram.png')
happy audio hacking.