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
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
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()