Example #1
0
from matplotlib import pyplot as plt
import numpy as np

from datasets import clean_digits
import features

(X_train, y_train), (X_test, y_test) = clean_digits.load_data()

x = X_train[0]
plt.figure()
plt.plot(x, 'k')
plt.axis('tight')

plt.xticks(np.arange(0, len(x), 8000 / 10), np.arange(0, len(x) / 8000.0, 0.1))
plt.xlabel('time (s)')
plt.ylabel('amplitude')

plt.savefig('report/waveform.png')

sg = features.spectrogram(x, 256, 32)
plt.figure()
plt.pcolormesh(sg, cmap='gray')
plt.axis('tight')

frames_per_second = 8000 / 32.0
plt.xlabel('time (s)')
plt.xticks(np.arange(0, sg.shape[1], frames_per_second / 10),
           np.arange(0, sg.shape[1] / frames_per_second, 0.1))
plt.ylabel('frequency (Hz)')
plt.yticks(np.arange(0, 128, 16), np.arange(0, 4000., 4000. * 16 / 128))
Example #2
0
from keras.layers.convolutional import Convolution1D, MaxPooling1D
from keras.utils import np_utils

import crop
from datasets import clean_digits
import wav_utils

# data params
nb_classes = 11

# training params
batch_size = 8
nb_epoch = 12

# the data, shuffled and split between tran and test sets
(X_train_wav, y_train), (X_test_wav, y_test) = clean_digits.load_data()

X_train_wav = crop.crop_list_arrays(X_train_wav, 1000, 0.05)
X_test_wav = crop.crop_list_arrays(X_test_wav, 1000, 0.05)

max_length = max([len(x) for x in X_train_wav] + [len(x) for x in X_test_wav])

X_train_wav = wav_utils.pad_middle(X_train_wav, max_length)
X_test_wav = wav_utils.pad_middle(X_test_wav, max_length)

def pack(X):
    result = np.zeros((len(X), len(X[0]), 1))
    for i in range(X.shape[0]):
        result[i, :, 0] = X[i]
    return result