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