In [14]:
import numpy as np
import scipy.spatial as sp
import wave
In [35]:
def load_wav(filename):
with wave.open(filename, mode='rb') as w:
return np.fromstring(w.readframes(w.getnframes()), dtype=np.uint16)
siren_1 = load_wav('data/siren.wav') # http://soundbible.com/1233-Siren.html
siren_2 = load_wav('data/police-siren-2.wav') # http://soundbible.com/580-Police-Siren-2.html
honk_1 = load_wav('data/honk-1.wav') # http://soundbible.com/60-Car-Horn-Honk-1.html
In [50]:
def similarity(u, v):
min_size = min(u.size, v.size)
_u = np.resize(u, min_size)
_v = np.resize(v, min_size)
return sp.distance.cosine(_u, _v)
In [53]:
print(similarity(siren_1, siren_2))
print(similarity(siren_1, honk_1))
print(similarity(siren_2, honk_1))