一种基于gpu加速的音乐检索与推荐系统的制作方法

文档序号:6519700阅读:237来源:国知局
一种基于gpu加速的音乐检索与推荐系统的制作方法
【专利摘要】一种基于GPU加速的音乐检索与推荐系统,它包括哼唱旋律提取模块、哼唱检索旋律库建立模块、GPU加速的旋律匹配模块、音乐推荐旋律库建立模块、GPU加速的旋律相似度计算模块和音乐推荐模块;在有数据到来时,整个音乐检索与推荐系统首先由哼唱旋律提取模块接收到该数据;在提取完输入文件的特征之后,数据将被交给旋律匹配模块,旋律匹配模块通过使用预定的旋律匹配算法与哼唱检索旋律库进行匹配,得到哼唱检索结果列表;列表随后将被交给音乐推荐模块,音乐推荐模块通过预定的规则与旋律相似度信息进行比较,最终得到音乐推荐结果列表。本发明模块化设计,具有良好的重用性和可扩展性,完善的后台旋律库,便于曲目的添加、删除等操作。
【专利说明】—种基于GPU加速的音乐检索与推荐系统
【技术领域】
[0001]本发明涉及一种基于GPU加速的音乐检索与推荐系统。具体涉及对哼唱检索以及音乐推荐两大部分的GPU加速内容,属于计算机科学【技术领域】。
【背景技术】
[0002]基于内容的音频检索(Content-BasedAudio Information Retrieval,CBAIR)是音乐检索领域未来的发展趋势,有别于传统的基于文本描述的分类和检索方式,基于内容的音乐检索利用音乐本身的特征对其进行自动分类,取代手工的文本描述,并采用哼唱的方法进行查询,更加符合音乐这种存在高度主观因素载体的查询工作。哼唱检索(Query ByHumming, QBH)就是基于内容的音乐检索中的一种主要使用的检索方式。音乐推荐作为基于内容的音乐检索的一个组成部分,在满足用户需求方面发挥着重要的作用。
[0003]基于内容的音乐检索目前主要存在的问题是用户体验方面的不足,由于检索时所使用的检索算法复杂度普遍较高,导致检索所需要的时间比较长,用户等待的时间也相应较长。在进行推荐的时候需要采用一定的音乐相似算法,目前的音乐相似算法存在着与音乐检索算法类似的问题——算法较为复杂,计算耗时长,不利于带来良好的用户体验。要加快算法的运行速度,首先可以采用的方法是通过对算法本身进行优化来降低算法的复杂度,但是这种方法是有局限的,任何一个算法的复杂度都是有下界的,不可能无限制的降低。另外还可以采用的方法就是采用并行的方式来对算法进行加速。
[0004]并行计算有多种方式,传统的并行计算是采用多CPU或者集群的方式来进行的,往往会涉及到多个处理器或者多个计算结点。最近几年产生了一种新的并行方式,那就是采用GPU (Graphics Processing Unit,图形处理器)来进行并行计算,GPU并行计算通过将应用程序中计算量繁重的部分交给GPU处理,程序的剩余部分依然在CPU上运行,从而可以实现更高的应用程序性能。CPU与GPU是一个强大的组合,在CPU中包含的是专为串行处理而优化的核心,而GPU则由数以千计更小、更节能的核心组成,这些核心针对并行处理而进行了优化,程序的串行部分在CPU上运行,而并行部分则在GPU上运行。
[0005]为了方便开发人员更好地使用GPU来进行并行计算,NVIDIA(英伟达)公司推出了 CUDA, CUDA 是统一计算架构(Compute Unified Device Architecture)的简称,它是由NVIDIA所推出的一种集成技术,是该公司对于GPGPU (General-Purpose computing onGraphics Processing Units,通用图形处理器)的正式名称,通过这个技术,开发人员就可以方便地使用NVIDIA的GPU进行并行计算。进行GPU编程时,在GPU上运行的函数有一个特定的名称——核函数,与CPU上的函数不同的是,核函数可以由多个GPU线程同时执行。
[0006]总而言之,现有的无论是哼唱检索系统还是音乐推荐系统都普遍存在着所使用的关键算法复杂度较高,系统运行效率较低的问题。
[0007]为了更好地进行本专利的阐述,这里首先介绍有关DTW(Dynamic Time Warping,动态时间规整)算法的基本概念与原理。
[0008]DTff算法的最终目标是要对两个时间序列X = (x1> x2'...xn)(jN E Rf)和F =(Y1JwJm)(MGN)进行比较,这些序列可以是离散的信号,也可以是更一般的由相等的时间间隔采样出的特征序列,对于一个特定的特征空间J1,则有A,ym e FOe[l:1V],me [1:叫)。为了比较两个不同的特征1,7£^,我们需要定义一个度量距离的方法,
定义函数
[0009]
【权利要求】
1.一种基于GPU加速的音乐检索与推荐系统,其特征在于:它包括哼唱旋律提取模块、哼唱检索旋律库建立模块、GPU加速的旋律匹配模块、音乐推荐旋律库建立模块、GPU加速的旋律相似度计算模块和音乐推荐模块; 在有数据到来时,整个音乐检索与推荐系统首先由哼唱旋律提取模块接收到该数据;在提取完输入文件的特征之后,数据将被交给GPU加速的旋律匹配模块,GPU加速的旋律匹配模块通过使用预定的旋律匹配算法与哼唱检索旋律库建立模块中的哼唱检索旋律库进行匹配,得到哼唱检索结果列表;列表随后将被交给音乐推荐模块,音乐推荐模块通过预定的规则与旋律相似度信息进行比较,最终得到音乐推荐结果列表;哼唱旋律提取模块、GPU加速的旋律匹配模块以及音乐推荐模块都是音乐检索与推荐主程序的组成部分;GPU加速的旋律匹配模块在进行旋律匹配时需要用到哼唱检索旋律库建立模块所建立的哼唱检索旋律库;GPU加速的旋律相似度计算模块在计算出旋律相似度矩阵时需要用到音乐推荐旋律库建立模块所建立的音乐推荐旋律库,同时音乐推荐模块也需要使用GPU加速的旋律相似度计算模块计算出的旋律相似度矩阵来进行音乐推荐; 所述哼唱旋律提取模块,它负责对用户的哼唱输入进行哼唱旋律特征的提取,首先要经过预处理,预处理之后要进行哼唱旋律特征的提取,在本系统中采用的特征提取算法是YIN算法; 所述哼唱检索旋律库建立模块,它负责基于MIDI文件建立进行哼唱检索时所需要的哼唱检索旋律库,哼唱检索系统的旋律库是基于MIDI文件建立的,为了确保旋律库的准确性,本系统采用手动将主旋律放在第O音轨,并删除其他音轨的信息的方法; 所述GPU加速的旋律匹配模块,它负责对已经提取好特征的用户哼唱输入进行与哼唱检索旋律库中的旋律信息的匹配工作,采用的算法是DTW算法;在音乐检索与推荐系统当中,采用DTW算法作为哼唱检索中进行旋律匹配的匹配算法,同时采用GPU来对DTW算法进行加速,这样一方面可以保证旋律匹配的准确度,另一方面也通过GPU获得了较快的计算速度; 所述音乐推荐旋律库建立模块,它负责基于WAV格式的音频文件建立进行音乐推荐时所需要的音乐推荐旋律库; 所述GPU加速的旋律相似度计算模块,它负责对已经建立好的音乐推荐旋律库进行旋律相似度的计算,本系统采用EP算法作为进行音乐推荐时的音乐相似算法;在对音乐推荐进行GPU加速时,是对音乐检索与推荐系统中的相似度计算过程进行GPU加速,将其编写为在GPU上运行计算,使用GPU加速的EP算法;本系统在对音乐推荐系统进行GPU加速时采用离线加速的方式,即GPU加速体现在旋律相似度矩阵计算这一离线操作上,在实际的音乐推荐中,由于只是读入事先计算好的矩阵,因而并没有GPU计算的部分; 所述音乐推荐模块,它负责根据用户哼唱检索得到的结果为用户进行音乐推荐。
【文档编号】G06F17/30GK103559309SQ201310581486
【公开日】2014年2月5日 申请日期:2013年11月19日 优先权日:2013年11月19日
【发明者】肖利民, 唐文琦, 郑尧, 阮利 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1