The aim of this project was to use machine learning approaches to classify the pitch of notes played from an instrument. The ultimate goal was to convert a recorded piece into a script.
The instrument selected for this project was the violin and it was recorded solo. The sound files were preproccessed using spectrogram techniques, which approximates a conitnuous fast fourier transform of the signal over time. The processed signal could then be split into small time segments and classified.
For training data each note was played for about 10 seconds. For the test data, a few pieces were selected with varying complexity and speed. The test data was manually labelled, finding the precise time for the start and end of each note.
Logistic regression and Support Vector Machine algorithms were implemented. Logisitic regression showed to be more accurate, achieving up to 90% classification accuracy on slow music.
Sorry I don't have the code online for this one. This was programmed using octave, and LibSVM was used for the SVM part. If you are interested don't hesitate to contact me: ross.kidson at gmail.com