Query by Humming System Query by Humming System Dong In Lee Dong In Lee MA/MST ’ ’07 07 MA/MST
System Overview System Overview Pitch detection Note segmentation Get note interval Make query string Compare with DB Show song name
Pitch Detection Pitch Detection ► YIN algorithm ► YIN algorithm Based on the well known autocorrelation ased on the well known autocorrelation method for method for B detecting a signal’ ’s periodicity. s periodicity. detecting a signal Since the basic autocorrelation method has high error rates, the basic autocorrelation method has high error rates, Since YIN introduces several modifications to reduce the errors introduces several modifications to reduce the errors YIN while maintaining simplicity and low maintaining simplicity and low ‐ ‐ latency in its latency in its while implementation. implementation.
Note Segmentation Note Segmentation Set the threshold value for slope between two pitches
Note Interval & Query String Note Interval & Query String ► People can People can’ ’t hum in original key for any song. Thus, t hum in original key for any song. Thus, ► instead of using absolute key note, I used note interval. instead of using absolute key note, I used note interval. Ex) C C G G A A G = > 0 7 0 2 0 - -2 2 Ex) C C G G A A G = > 0 7 0 2 0 ► I made simple scheme for converting numbers to string I made simple scheme for converting numbers to string ► Ex) 0 7 0 2 0 - -2 = > 0 g 0 b 0 B 2 = > 0 g 0 b 0 B Ex) 0 7 0 2 0
Database specification Database specification ► Same scheme was used to make DB Same scheme was used to make DB ► Ex) Happy birthday Happy birthday song song Ex) 0bBeAD0bBgBE0lCDABh0ADAa 0bBeAD0bBgBE0lCDABh0ADAa
String Compare Algorithm String Compare Algorithm st trial : String Edit Distance Algorithm 1 st ► 1 trial : String Edit Distance Algorithm ► � Principle � Principle Query : 0bD Query : 0b DA A Database : 0b 0bB Be eA A Database : Distance : 2 2 Distance : � Problem � Problem Query : 0b 0bD DA A Query : Intended DB : 0bBeAD0bBgBE0lCDABh0ADAa 0bBeAD0bBgBE0lCDABh0ADAa Intended DB : Distance : 21 Distance : 21 Vicious DB : hhhh hhhh Vicious DB : Distance : 4! Distance : 4!
String Compare Algorithm Con Con’ ’t t String Compare Algorithm nd trial : LCS Algorithm 2 nd ► 2 trial : LCS Algorithm ► � Principle � Principle Query : 0b 0bD DA A Query : Intended DB : 0b 0bBe BeA AD0bBgBE0lCDAB D0bBgBE0lCDABh h0ADAa 0ADAa Intended DB : = > LCS Length : 3 = > LCS Length : 3 Vicious DB : h hhhh hhh Vicious DB : = > LCS Length : 1 = > LCS Length : 1 � Problem � Problem More Vicious DB : xx0 0xxx xxxb bxx xxA A More Vicious DB : xx LCS Length : 3 LCS Length : 3
String Compare Algorithm Con Con’ ’t t String Compare Algorithm rd trial : Modified LCS Algorithm ► 3 3 rd trial : Modified LCS Algorithm ► � Principle � Principle Check adjacent characters Check adjacent characters If common characters are found, modified algorithm If common characters are found, modified algorithm check to see if the adjacent characters are also verified to check to see if the adjacent characters are also verified to common characters. common characters. =>The more adjacent common characters there exists, the =>The more adjacent common characters there exists, the higher value the query has. higher value the query has. Cf. Time complexity : f. Time complexity : O(m O(m*n) with Dynamic *n) with Dynamic C programming technique programming technique
String Compare Algorithm Con Con’ ’t t String Compare Algorithm ► Modified LCS Algorithm Modified LCS Algorithm ► 0 b B e A 0 b B e A 0 0 Value of intended DB Value of intended DB 0 - -> 3 > 3 - -> 2 > 2 - -> 1 > 1 - -> > 0 b b 0 - -> 3 > 3 - -> 6 > 6 0 D D A A
String Compare Algorithm Con Con’ ’t t String Compare Algorithm ► Modified LCS Algorithm Modified LCS Algorithm ► x x x 0 0 x x x x x x b b x x x x A A x 0 0 Value of vicious DB Value of vicious DB 0 - -> 3 > 3 - -> 2 > 2 - -> 1 > 1 - -> > 0 b b 0 - -> 3 > 3 - -> 2 > 2 - -> 1 > 1 - -> > 0 0 - -> 3 > 3 0 D D A A
Conclusion Conclusion ► Evaluation Evaluation ► This QBH system shows good performance when the user This QBH system shows good performance when the user makes “ “good good” ” query query makes ► Future Work Future Work ► ‐ Fast transition detection ‐ Fast transition detection ‐ More elaborated algorithm for string matching ‐ More elaborated algorithm for string matching
Recommend
More recommend