100 likes | 502 Vues
Fast Music Information Retrieval Using PAT Tree Based Dynamic Time Warping. 云飞 2012-11-9. 1 、 PAT tree 2 、 Dynamic Time Warping(DTW) 3 、 Query By Humming System. PAT tree. 1 、 采用半无限长字串 (sistring) 比如一个字符串 CUHK 。 它的子串有 C 、 CU 、 CUH 、 CUHK 、 U 、 UH 、 UHK 、 H 、 HK 、 K 十种。
E N D
Fast Music Information Retrieval Using PAT Tree Based Dynamic Time Warping 云飞 2012-11-9
1、PAT tree • 2、Dynamic Time Warping(DTW) • 3、Query By Humming System
PAT tree • 1、采用半无限长字串(sistring) • 比如一个字符串CUHK。它的子串有C、CU、CUH、CUHK、U、UH、UHK、H、HK、K十种。 • CUHK —— 完全可以表示 C、CU、CUH、CUHK • UHK —— 完全可以表示 U、UH、UHK • HK —— 完全可以表示 H、HK • K —— 完全可以表示 K • 2、存储结构 • 内部结点:存储bit位在完整sequence中的位置。 • 叶子结点:记录sistring的首字符在完整sistring中的开始位置和sistring出现的频次。 • 左指针:对应bit位上的数据是0,则将这个sistring存储在左子树中。 • 右指针:若数据是1,则存储在右子树中。
PAT tree • 3、树的构建 • 将所有sistring的字符转化成1 bytes的ASCII码值,用二进制位来表示 (没有的空字符我们用0来填充)。
PAT tree • 4、树的搜索 • 要查找string= “CU ”(bit sequence=010 00 0 1 1 01010101) 是不是在CUHK 中。 • (1)根据“CUHK ”的PAT tree 结构( 如上图) ,根结点的bit position=4 ,那么查找bit sequence 的第4 个bit=0 。然后查找左孩子。 • (2)左孩子的bit position=5 ,在bit sequence 的第5 个bit=0 。则查找的左孩子。 • (3)” CUHK ” 已经是叶子结点了,则确定一下CU 是不是CUHK 的前缀即可。
Dynamic Time Warping(DTW) • 1、算法原理 • 一个参考模板可表示为R={R(1),R(2),……,R(m),……,R(M)},R(m)为第m帧的语音特征矢量。所要识别的一个输入词条语音称为测试模板,可表示为T={T(1),T(2),……,T(n),……,T(N)}。 • 为了比较它们之间的相似度,可以计算它们之间的距离 D[T,R]。若N=M则可以直接计算,否则要考虑将T(n)和R(m)对齐。对齐可以采用线性扩张的方法,如果N<M可以将T线性映射为一个M帧的序列,再计算它与{R(1),R(2),……,R(M)}之间的距离。也可以采用动态规划(DP)的方法。
Dynamic Time Warping(DTW) • 把测试模板的各个帧号n=1~N在一个二维直角坐标系中的横轴上标出,把参考模板的各帧号m=1~M在纵轴上标出,通过这些表示帧号的整数坐标画出一些纵横线即可形成一个网络,网络中的每一个交叉点(n,m)表示测试模式中某一帧的交汇点。
Query By Humming System • 1、Feature Extraction • 2、PAT Tree Indexing • 3、DTW Musical Clause Verification
Feature Extraction • pitch detection is performed followed by a median filtering to obtain a pitch contour, which is converted to a note sequence via: • reason : could obtain more potential regions even under the noisy environment.
结论 • 在DTW高容错性的基础上使用PATtree大大减少了计算时间。而且精确度有所提高。