基于旋律的音乐检索系统设计与实现
【摘要】:本文研究了基于旋律特征的大型音乐库检索系统中有关相似性搜索的性能问题,针对这一问题,本文尝试了一种称之为位置敏感哈希函数来对旋律库进行索引以提升查询处理速度,为此开发了一个完整的基于旋律特征的音乐检索系统原型,以便对该方法进行有效评估。
通常基于旋律特征的音乐搜索系统允许用户提供一段数字音频内容作为查询条件,系统将查询文件中提取的旋律与数据库中所有乐曲的旋律逐一进行比较,计算它们之间的相似度,最终根据相似度排名,返回最为相似的一组乐曲作为搜索结果并呈现给用户。这种将查询的旋律与乐曲库中的旋律库逐一比较的方法,其整体搜索的开销随乐曲库的规模增长呈现出线性关系,因此系统的搜索性能随着乐曲库的增大急剧下降,导致这种方法无法在大乐曲库的应用场合下提供满意的查询体验。为能够在大乐曲库的场合下获取更快的搜索速度,种办法是将旋律表示成度量空间中的点,根据度量空间中距离函数特有的性质,可以按照一定的方法来对旋律库构建索引,这样在执行基于旋律特征的搜索时,可以将大量的不太可能相似的旋律过滤掉,得到一组相对要少得多的候选旋律集,随后将查询旋律与候选旋律集中旋律进行精确但耗时的相似性比较,从而使得需要进行耗时比较的旋律数量与数据库中的旋律数量无直接关系,达到大型库中也具有很高快搜索速度的目的。
为此,本文应用了一种利用欧式空间上的位置敏感的哈希函数来构建旋律索引库,在执行查询的时候直接针对查询的旋律计算其位置敏感哈希值,根据其值直接索引得出与查询旋律特征具有一定相似度的候选旋律集,然后利用动态时间规整算法,计算这些候选旋律与查询旋律的相似度,得出最终排名。基于这一思想的原型系统的实验结果表明,这种方法可以在保持较高的查询准确率的同时获得很高查询效率。