I'm trying to develop a query by humming system and looking for an efficient algorithm to compare frequencies of hummed queries against the frequencies in the database. Seems like Dynamic Time Wrapping will be suitable as it can deal with different speeds (tempo).
- But, can this be used for comparison even if the user hums in a different chord? In other words, hums in a different pitch (for example, the original song is in chord C… and the user sings it in chord E)
- Are there any sample code written in c#? (found some matlab coding, but unfortunately I'm not familiar with matlab). Or atleast a tutorial that describes dtw in regard to this context?
- If DTW is not suitable, are there any other algorithms that would be suitable for this purpose? Your suggestions are much appreciated. Thanks in advance :)