● 摘要
互联网技术和数字多媒体技术的发展,拓宽了数字音乐的传播和获取渠道,导致数字音乐的容量呈现前所未有的增长。这种爆炸式的增长,对音乐信息检索技术提出了新的挑战。如何从大规模数字音乐库中检索用户需要和感兴趣的音乐,已成为当前学术界和产业界亟待解决的关键问题。然而,传统的基于文本的音乐检索技术由于检索手段单一,导致用户体验差,用户无法准确检索到自己想听的歌曲,同时新歌也无法被准确推荐给感兴趣的用户。基于内容的哼唱检索和音乐推荐技术,采用音乐自身的声学特征进行检索和推荐,正发展为音乐信息检索的热门研究方向。但是,基于内容的哼唱检索和音乐推荐技术,目前还存在关键算法处理速度无法满足大规模音乐库检索需求的问题。
本文针对哼唱检索和音乐推荐技术在处理大规模音乐库时存在的速度瓶颈问题,研究了面向大规模音乐库的哼唱检索和音乐推荐方法,包括相应的核心算法并行加速以及音乐库索引机制。具体的研究内容和主要成果如下:
(1)针对基于DTW的音乐旋律匹配算法存在计算复杂度高、近似优化方法精度低等问题,本文研究提出了一种基于波阵面的并行旋律匹配算法和一种基于前缀计算的并行旋律匹配算法。基于波阵面的并行算法以对角线的方式实现旋律匹配的细粒度并行计算,显著提高1K以上音乐旋律序列的匹配效率,解决粗粒度并行计算无法完成大序列匹配的问题;基于前缀计算的并行算法利用前缀计算的思想实现旋律匹配算法的并行计算,解决基于波阵面的并行算法存在的线程资源浪费问题。测试结果表明,在小规模序列比对时,基于前缀计算的并行旋律匹配算法可获得20倍左右加速比,基于波阵面的并行旋律匹配算法可获得10左右加速比;然而,在大规模序列比对时,基于波阵面的并行算法最高可获得120倍加速比,而基于前缀计算的并行算法最高可获得100倍加速比。此外,为了进一步提高音乐旋律匹配算法的并行度,本文提出了一种粗细粒度混合的并行旋律匹配算法,通过在任务级并行的基础上,利用细粒度并行算法计算序列比对距离,实现任意音乐旋律序列的并行匹配。测试结果表明,在序列长度小于1k时,该算法加速比与粗粒度并行算法相当;在序列长度大于1k时,加速比优于上述两种细粒度的并行算法。
(2)针对哼唱旋律存在可平移性和可伸缩性等技术难点,以及目前的哼唱检索系统无法同时满足用户对检索精度和响应速度的双重需求等问题,本文研究提出了一种基于GPU加速的哼唱检索方法。该方法通过采用音高序列优化解决哼唱旋律存在的技术难点,并设计多级降采样索引机制,降低音乐库的计算规模,提高哼唱系统的检索效率。在实验验证环节,本文分别使用MIDI音乐库和波形音乐库,验证该方法的有效性。测试结果表明,面向MIDI音乐库,该方法的Top-10检索精度达到85%~90%,与国际水平相当;与基于CPU计算的方法相比,该方法检索速度的加速比能够达到40倍左右;面向波形音乐库,通过采用多级降采样索引机制,检索十万量级的音乐库,检索时间减少到原始序列检索时间的7%到8%,可大幅提高检索效率。
(3)针对基于内容的音乐推荐方法由于采用高斯音色模型等非向量化的特征表示和Kullback-Leibler距离等非标准化的音乐相似性计算,导致音乐相似计算的维数和复杂度高,不适合在线音乐库检索等问题,本文研究提出一种面向大规模音乐库的音乐推荐方法。该方法利用FastMap建立索引机制,并对旋律相似度和旋律特征进行并行计算,最终通过将索引机制与GPU硬件加速相结合,充分利用GPU的多线程能力,提高音乐推荐方法的计算效率,以满足大规模音乐库的音乐推荐需求。测试结果表明,该方法检索包含100000个片段的音乐库耗时27毫秒,可以在用户接受的时间内返回推荐结果,满足用户的检索要求。同时,在特征计算中,采用并行任务分割方法,充分发挥GPU的多线程能力,可获得10倍左右加速比。
(4)为系统验证上述研究成果的有效性,本文设计并实现了一个基于GPU加速的哼唱检索与音乐推荐原型系统。系统采用模块化的设计思想,将特征提取、索引库建立、哼唱检索、音乐推荐等技术按照工作流程有序衔接,实现原型系统功能,并验证本文提出的相关方法。
相关内容
相关标签