In [1]:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import mlab
from scipy.io import wavfile
from skimage import io
from IPython.display import Image

In [2]:
%matplotlib inline

In [3]:
!wget http://www.aphextwin.nu/visuals/hiddenfaces/equation9sec.wav


--2015-02-08 10:40:24--  http://www.aphextwin.nu/visuals/hiddenfaces/equation9sec.wav
Resolving www.aphextwin.nu (www.aphextwin.nu)... 89.221.250.27
Connecting to www.aphextwin.nu (www.aphextwin.nu)|89.221.250.27|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1622060 (1.5M) [audio/x-wav]
Saving to: ‘equation9sec.wav’

100%[======================================>] 1,622,060    415KB/s   in 3.8s   

2015-02-08 10:40:28 (415 KB/s) - ‘equation9sec.wav’ saved [1622060/1622060]


In [4]:
signal_rate_1, signal_1 = wavfile.read('equation9sec.wav')
signal_1 = np.mean(signal_1, axis=1)
spgram_1, freqs, time_bins = mlab.specgram(signal_1, NFFT=1024, Fs=signal_rate_1, 
                                           window=mlab.window_hanning, 
                                           noverlap=None, mode='magnitude')

In [5]:
fig = plt.figure(figsize=(10, 12))
fig.set_facecolor('white')

plt.pcolormesh(time_bins, freqs[3::], spgram_1[3::,:], cmap='YlOrBr_r')

y_log = np.log10(freqs[3::])

plt.yscale('log')
plt.xlim([time_bins.min(), time_bins.max()])
plt.ylim([10**y_log[0], 10**y_log[-1]])
plt.axis('off')
plt.show()



In [6]:
!wget https://pmcdeadline2.files.wordpress.com/2015/02/super-bowl-2015-tom-brady-2.jpg


--2015-02-08 10:40:55--  https://pmcdeadline2.files.wordpress.com/2015/02/super-bowl-2015-tom-brady-2.jpg
Resolving pmcdeadline2.files.wordpress.com (pmcdeadline2.files.wordpress.com)... 192.0.72.3, 192.0.72.2
Connecting to pmcdeadline2.files.wordpress.com (pmcdeadline2.files.wordpress.com)|192.0.72.3|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 180905 (177K) [image/jpeg]
Saving to: ‘super-bowl-2015-tom-brady-2.jpg’

100%[======================================>] 180,905     --.-K/s   in 0.09s   

2015-02-08 10:40:55 (1.99 MB/s) - ‘super-bowl-2015-tom-brady-2.jpg’ saved [180905/180905]


In [7]:
Image(filename='super-bowl-2015-tom-brady-2.jpg')


Out[7]:

In [8]:
img = io.imread('super-bowl-2015-tom-brady-2.jpg', as_grey=True)
h, w = img.shape

In [9]:
wav_data = np.fft.irfft(img).flatten()

In [10]:
wavfile.write('super-bowl-2015-tom-brady-2.wav', 44100, wav_data)

In [11]:
signal_rate_2, signal_2 = wavfile.read('super-bowl-2015-tom-brady-2.wav')

In [12]:
spgram_2, _, _ = mlab.specgram(signal_2, NFFT=2048, Fs=signal_rate_2,
                                         window=mlab.window_hanning, 
                                         noverlap=None, mode='magnitude')

In [13]:
fig = plt.figure(figsize=(12, 10))
fig.set_facecolor('white')
ax = plt.gca()

plt.imshow(spgram_2.T, cmap='YlOrBr_r')
r, c = spgram_2.shape
ar = r*h/w/c
ax.set_aspect(ar)

plt.axis('off')
plt.show()