blackadar / sonus

Machine Learning voice classification using scikit-learn RandomForest model.
4 stars 0 forks source link

FFT for Windowed Data #17

Closed blackadar closed 4 years ago

blackadar commented 4 years ago

I've added sonus.pipeline.fft (and left legacy sonus.pipeline.fft_df) which should implement FFT for the windowed data. The function sonus.pipeline.fft appends columns to the X data, so we'll need to be careful keeping track of which column is which moving forwards. The fft also now has a cutoff so that all the frequency data is in the range of human speech (this is customizable).

Here's some example code and plots:

import sonus.pipeline import sonus.parse import sonus.examples data = pickle.load(open('data/vox2_test_aac_wav.pkl', 'rb')) data = data.iloc[0:100] X_train, X_test, y_train, y_test = sonus.parse.window_data(data['audio'], data['id'], 0.5, 0.5, 16000, 0.25) fft_x, fftout = sonus.pipeline.fft(X_train, return_x=True)

sonus.examples.plot_fft(fftout, fft_x, 50)

image

sonus.examples.plot_fft(fftout, fft_x, 100)

image