diff --git a/speech_data.py b/speech_data.py index 66b6d10..a5c166e 100644 --- a/speech_data.py +++ b/speech_data.py @@ -31,11 +31,12 @@ def create_test_pair(l, r, max_samples): r_sample = append_zeros(r, max_samples) return np.asarray([[l_sample, r_sample]]) + def create_X(sp, max_samples): - return create_pair(sp[0]['spectrogram'],sp[1]['spectrogram'],max_samples) + return create_pair(sp[0]['spectrogram'], sp[1]['spectrogram'], max_samples) -def get_word_pairs_data(word,max_samples): +def get_word_pairs_data(word, max_samples): audio_samples = pd.read_csv( './outputs/audio.csv', names=['word', 'voice', 'rate', 'variant', 'file']) @@ -55,7 +56,7 @@ def get_word_pairs_data(word,max_samples): Y = np.hstack([np.ones(len(same_data)), np.zeros(len(diff_data))]) X = np.asarray(same_data + diff_data) # tr_pairs, te_pairs, tr_y, te_y = train_test_split(X, Y, test_size=0.1) - return (X,Y) + return (X, Y) def create_spectrogram_data(audio_group='audio'): @@ -106,8 +107,8 @@ def create_speech_pairs_data(audio_group='audio'): def speech_model_data(): tr_pairs = np.load('outputs/tr_pairs.npy') / 255.0 te_pairs = np.load('outputs/te_pairs.npy') / 255.0 - tr_pairs[tr_pairs < 0] = 0 - te_pairs[te_pairs < 0] = 0 + # tr_pairs[tr_pairs < 0] = 0 + # te_pairs[te_pairs < 0] = 0 tr_y = np.load('outputs/tr_y.npy') te_y = np.load('outputs/te_y.npy') return tr_pairs, te_pairs, tr_y, te_y diff --git a/test_siamese.py b/test_siamese.py index a83f478..af66f79 100644 --- a/test_siamese.py +++ b/test_siamese.py @@ -6,12 +6,17 @@ reload(speech_data) from speech_data import create_test_pair,get_word_pairs_data import numpy as np -sunflower_data,sunflower_result = get_word_pairs_data('sunflowers',15) -sunflower_result model = siamese_model((15, 1654)) model.load_weights('./models/siamese_speech_model-final.h5') -spec1 = record_spectrogram(n_sec=1.4) -spec2 = record_spectrogram(n_sec=1.4) -inp = create_test_pair(spec1,spec2,16) -model.predict([inp[:, 0], inp[:, 1]]) + +def predict_recording_with(m,sample_size=15): + spec1 = record_spectrogram(n_sec=1.4) + spec2 = record_spectrogram(n_sec=1.4) + inp = create_test_pair(spec1,spec2,sample_size) + return m.predict([inp[:, 0], inp[:, 1]]) + +predict_recording_with(model) + +sunflower_data,sunflower_result = get_word_pairs_data('sunflowers',15) +sunflower_result model.predict([sunflower_data[:, 0], sunflower_data[:, 1]]) < 0.5