import sys import librosa import numpy import scipy import matplotlib.pyplot as plt if len(sys.argv) < 2: print "python spectrum.py file.wav" sys.exit() FILENAME = sys.argv[1] N_FFT = 2048 def read_audio_spectum(filename): x, fs = librosa.load(filename, 44100) S = librosa.stft(x, N_FFT) S = numpy.log1p(numpy.abs(S)) return S, fs a_spectrum, fs = read_audio_spectum(FILENAME) a_spectrum = numpy.flipud(a_spectrum) print a_spectrum.shape fig = plt.figure(figsize=(5, int(len(a_spectrum[0])/100))) img = plt.imshow(a_spectrum) img.set_cmap('hot') plt.set_cmap('hot') plt.axis('off') plt.savefig(FILENAME + '.png', transparent=True, bbox_inches='tight', pad_inches=0)