summaryrefslogtreecommitdiff
path: root/python/spectrum.py
blob: 514092b0e90bfcd14493f083a05eedae8f48bb3f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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):
    fs, x = scipy.io.wavfile.read(filename)
    S = librosa.stft(numpy.transpose(x)[0], 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)