I am working on a project with the idea to cluster the sound waves of key strokes on a computer. So far what I have done was recorded about 50 keystrokes per key (only have done 1 - 10 so far), found their peaks and isolated the waveforms, then I created a chroma vector as the Feature Vector and run k-means on the resulting feature matrix.
After some very minor filtering I was able to get an accuracy of about 90% (taking accuracy as the mode cluster label for a group of keys as the true value, how many are the true value / total values). However, when I try to essentially classify new data it is far from accurate.
My initial thoughts as to why this probably wont work:
- The difference in any audio feature between keystrokes is minimal
- Many many more samples are required
- Clustering is not the best approach here (I don't have any formal reasoning here but I would guess a supervised alg would work better).
- The pre-processing I'm doing is not right. The only things I have done were normalize the audio files and use a smoothing function on the waveforms (no frequency analysis here!).
Any suggestions are appreciated.