I am working on creating a method to detect changes from one song to another. Namely, I hope to use a Hidden Markov Model (HMM) in order to model a part of a song and check to see if it accurately predicts another part of the song.
I want to follow the general pattern of speech recognition via HMMs. I want to segment the song into "sound units" analogously to phonemes and use those to train many "sound unit" specific HMMs. The trouble is in the case of phoneme segmentation, we often assume that speech is pre-annotated so we may easily extract phonemes to train our HMMs. In the case of musical samples, "sound units" are not as well defined so I was planning on using a variation of the Baum-Welch Algorithm in order iteratively train analogous HMMs. This is somewhat outlined in the following papers where they refer to these arbitrary sound unit models as "generic acoustic generators":
This all seems fair enough except for one detail. The annotation of the phonemes also gives you the information of how long to make the sequence of features from your song in order to train the related HMMs. Since my sound units are more of an unsupervised problem I'm wondering how we decide the length of the sound units one should use to train. I have read these papers many times over and they seem to gloss over this detail although the first paper does mention that the minimum generic acoustic generator (GAG) length is within a certain range.