一種基于gpu加速的音樂(lè)檢索與推薦系統(tǒng)的制作方法
【專(zhuān)利摘要】一種基于GPU加速的音樂(lè)檢索與推薦系統(tǒng),它包括哼唱旋律提取模塊、哼唱檢索旋律庫(kù)建立模塊、GPU加速的旋律匹配模塊、音樂(lè)推薦旋律庫(kù)建立模塊、GPU加速的旋律相似度計(jì)算模塊和音樂(lè)推薦模塊;在有數(shù)據(jù)到來(lái)時(shí),整個(gè)音樂(lè)檢索與推薦系統(tǒng)首先由哼唱旋律提取模塊接收到該數(shù)據(jù);在提取完輸入文件的特征之后,數(shù)據(jù)將被交給旋律匹配模塊,旋律匹配模塊通過(guò)使用預(yù)定的旋律匹配算法與哼唱檢索旋律庫(kù)進(jìn)行匹配,得到哼唱檢索結(jié)果列表;列表隨后將被交給音樂(lè)推薦模塊,音樂(lè)推薦模塊通過(guò)預(yù)定的規(guī)則與旋律相似度信息進(jìn)行比較,最終得到音樂(lè)推薦結(jié)果列表。本發(fā)明模塊化設(shè)計(jì),具有良好的重用性和可擴(kuò)展性,完善的后臺(tái)旋律庫(kù),便于曲目的添加、刪除等操作。
【專(zhuān)利說(shuō)明】—種基于GPU加速的音樂(lè)檢索與推薦系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于GPU加速的音樂(lè)檢索與推薦系統(tǒng)。具體涉及對(duì)哼唱檢索以及音樂(lè)推薦兩大部分的GPU加速內(nèi)容,屬于計(jì)算機(jī)科學(xué)【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]基于內(nèi)容的音頻檢索(Content-BasedAudio Information Retrieval,CBAIR)是音樂(lè)檢索領(lǐng)域未來(lái)的發(fā)展趨勢(shì),有別于傳統(tǒng)的基于文本描述的分類(lèi)和檢索方式,基于內(nèi)容的音樂(lè)檢索利用音樂(lè)本身的特征對(duì)其進(jìn)行自動(dòng)分類(lèi),取代手工的文本描述,并采用哼唱的方法進(jìn)行查詢(xún),更加符合音樂(lè)這種存在高度主觀因素載體的查詢(xún)工作。哼唱檢索(Query ByHumming, QBH)就是基于內(nèi)容的音樂(lè)檢索中的一種主要使用的檢索方式。音樂(lè)推薦作為基于內(nèi)容的音樂(lè)檢索的一個(gè)組成部分,在滿(mǎn)足用戶(hù)需求方面發(fā)揮著重要的作用。
[0003]基于內(nèi)容的音樂(lè)檢索目前主要存在的問(wèn)題是用戶(hù)體驗(yàn)方面的不足,由于檢索時(shí)所使用的檢索算法復(fù)雜度普遍較高,導(dǎo)致檢索所需要的時(shí)間比較長(zhǎng),用戶(hù)等待的時(shí)間也相應(yīng)較長(zhǎng)。在進(jìn)行推薦的時(shí)候需要采用一定的音樂(lè)相似算法,目前的音樂(lè)相似算法存在著與音樂(lè)檢索算法類(lèi)似的問(wèn)題——算法較為復(fù)雜,計(jì)算耗時(shí)長(zhǎng),不利于帶來(lái)良好的用戶(hù)體驗(yàn)。要加快算法的運(yùn)行速度,首先可以采用的方法是通過(guò)對(duì)算法本身進(jìn)行優(yōu)化來(lái)降低算法的復(fù)雜度,但是這種方法是有局限的,任何一個(gè)算法的復(fù)雜度都是有下界的,不可能無(wú)限制的降低。另外還可以采用的方法就是采用并行的方式來(lái)對(duì)算法進(jìn)行加速。
[0004]并行計(jì)算有多種方式,傳統(tǒng)的并行計(jì)算是采用多CPU或者集群的方式來(lái)進(jìn)行的,往往會(huì)涉及到多個(gè)處理器或者多個(gè)計(jì)算結(jié)點(diǎn)。最近幾年產(chǎn)生了一種新的并行方式,那就是采用GPU (Graphics Processing Unit,圖形處理器)來(lái)進(jìn)行并行計(jì)算,GPU并行計(jì)算通過(guò)將應(yīng)用程序中計(jì)算量繁重的部分交給GPU處理,程序的剩余部分依然在CPU上運(yùn)行,從而可以實(shí)現(xiàn)更高的應(yīng)用程序性能。CPU與GPU是一個(gè)強(qiáng)大的組合,在CPU中包含的是專(zhuān)為串行處理而優(yōu)化的核心,而GPU則由數(shù)以千計(jì)更小、更節(jié)能的核心組成,這些核心針對(duì)并行處理而進(jìn)行了優(yōu)化,程序的串行部分在CPU上運(yùn)行,而并行部分則在GPU上運(yùn)行。
[0005]為了方便開(kāi)發(fā)人員更好地使用GPU來(lái)進(jìn)行并行計(jì)算,NVIDIA(英偉達(dá))公司推出了 CUDA, CUDA 是統(tǒng)一計(jì)算架構(gòu)(Compute Unified Device Architecture)的簡(jiǎn)稱(chēng),它是由NVIDIA所推出的一種集成技術(shù),是該公司對(duì)于GPGPU (General-Purpose computing onGraphics Processing Units,通用圖形處理器)的正式名稱(chēng),通過(guò)這個(gè)技術(shù),開(kāi)發(fā)人員就可以方便地使用NVIDIA的GPU進(jìn)行并行計(jì)算。進(jìn)行GPU編程時(shí),在GPU上運(yùn)行的函數(shù)有一個(gè)特定的名稱(chēng)——核函數(shù),與CPU上的函數(shù)不同的是,核函數(shù)可以由多個(gè)GPU線程同時(shí)執(zhí)行。
[0006]總而言之,現(xiàn)有的無(wú)論是哼唱檢索系統(tǒng)還是音樂(lè)推薦系統(tǒng)都普遍存在著所使用的關(guān)鍵算法復(fù)雜度較高,系統(tǒng)運(yùn)行效率較低的問(wèn)題。
[0007]為了更好地進(jìn)行本專(zhuān)利的闡述,這里首先介紹有關(guān)DTW(Dynamic Time Warping,動(dòng)態(tài)時(shí)間規(guī)整)算法的基本概念與原理。
[0008]DTff算法的最終目標(biāo)是要對(duì)兩個(gè)時(shí)間序列X = (x1> x2'...xn)(jN E Rf)和F =(Y1JwJm)(MGN)進(jìn)行比較,這些序列可以是離散的信號(hào),也可以是更一般的由相等的時(shí)間間隔采樣出的特征序列,對(duì)于一個(gè)特定的特征空間J1,則有A,ym e FOe[l:1V],me [1:叫)。為了比較兩個(gè)不同的特征1,7£^,我們需要定義一個(gè)度量距離的方法,
定義函數(shù)
[0009]
【權(quán)利要求】
1.一種基于GPU加速的音樂(lè)檢索與推薦系統(tǒng),其特征在于:它包括哼唱旋律提取模塊、哼唱檢索旋律庫(kù)建立模塊、GPU加速的旋律匹配模塊、音樂(lè)推薦旋律庫(kù)建立模塊、GPU加速的旋律相似度計(jì)算模塊和音樂(lè)推薦模塊; 在有數(shù)據(jù)到來(lái)時(shí),整個(gè)音樂(lè)檢索與推薦系統(tǒng)首先由哼唱旋律提取模塊接收到該數(shù)據(jù);在提取完輸入文件的特征之后,數(shù)據(jù)將被交給GPU加速的旋律匹配模塊,GPU加速的旋律匹配模塊通過(guò)使用預(yù)定的旋律匹配算法與哼唱檢索旋律庫(kù)建立模塊中的哼唱檢索旋律庫(kù)進(jìn)行匹配,得到哼唱檢索結(jié)果列表;列表隨后將被交給音樂(lè)推薦模塊,音樂(lè)推薦模塊通過(guò)預(yù)定的規(guī)則與旋律相似度信息進(jìn)行比較,最終得到音樂(lè)推薦結(jié)果列表;哼唱旋律提取模塊、GPU加速的旋律匹配模塊以及音樂(lè)推薦模塊都是音樂(lè)檢索與推薦主程序的組成部分;GPU加速的旋律匹配模塊在進(jìn)行旋律匹配時(shí)需要用到哼唱檢索旋律庫(kù)建立模塊所建立的哼唱檢索旋律庫(kù);GPU加速的旋律相似度計(jì)算模塊在計(jì)算出旋律相似度矩陣時(shí)需要用到音樂(lè)推薦旋律庫(kù)建立模塊所建立的音樂(lè)推薦旋律庫(kù),同時(shí)音樂(lè)推薦模塊也需要使用GPU加速的旋律相似度計(jì)算模塊計(jì)算出的旋律相似度矩陣來(lái)進(jìn)行音樂(lè)推薦; 所述哼唱旋律提取模塊,它負(fù)責(zé)對(duì)用戶(hù)的哼唱輸入進(jìn)行哼唱旋律特征的提取,首先要經(jīng)過(guò)預(yù)處理,預(yù)處理之后要進(jìn)行哼唱旋律特征的提取,在本系統(tǒng)中采用的特征提取算法是YIN算法; 所述哼唱檢索旋律庫(kù)建立模塊,它負(fù)責(zé)基于MIDI文件建立進(jìn)行哼唱檢索時(shí)所需要的哼唱檢索旋律庫(kù),哼唱檢索系統(tǒng)的旋律庫(kù)是基于MIDI文件建立的,為了確保旋律庫(kù)的準(zhǔn)確性,本系統(tǒng)采用手動(dòng)將主旋律放在第O音軌,并刪除其他音軌的信息的方法; 所述GPU加速的旋律匹配模塊,它負(fù)責(zé)對(duì)已經(jīng)提取好特征的用戶(hù)哼唱輸入進(jìn)行與哼唱檢索旋律庫(kù)中的旋律信息的匹配工作,采用的算法是DTW算法;在音樂(lè)檢索與推薦系統(tǒng)當(dāng)中,采用DTW算法作為哼唱檢索中進(jìn)行旋律匹配的匹配算法,同時(shí)采用GPU來(lái)對(duì)DTW算法進(jìn)行加速,這樣一方面可以保證旋律匹配的準(zhǔn)確度,另一方面也通過(guò)GPU獲得了較快的計(jì)算速度; 所述音樂(lè)推薦旋律庫(kù)建立模塊,它負(fù)責(zé)基于WAV格式的音頻文件建立進(jìn)行音樂(lè)推薦時(shí)所需要的音樂(lè)推薦旋律庫(kù); 所述GPU加速的旋律相似度計(jì)算模塊,它負(fù)責(zé)對(duì)已經(jīng)建立好的音樂(lè)推薦旋律庫(kù)進(jìn)行旋律相似度的計(jì)算,本系統(tǒng)采用EP算法作為進(jìn)行音樂(lè)推薦時(shí)的音樂(lè)相似算法;在對(duì)音樂(lè)推薦進(jìn)行GPU加速時(shí),是對(duì)音樂(lè)檢索與推薦系統(tǒng)中的相似度計(jì)算過(guò)程進(jìn)行GPU加速,將其編寫(xiě)為在GPU上運(yùn)行計(jì)算,使用GPU加速的EP算法;本系統(tǒng)在對(duì)音樂(lè)推薦系統(tǒng)進(jìn)行GPU加速時(shí)采用離線加速的方式,即GPU加速體現(xiàn)在旋律相似度矩陣計(jì)算這一離線操作上,在實(shí)際的音樂(lè)推薦中,由于只是讀入事先計(jì)算好的矩陣,因而并沒(méi)有GPU計(jì)算的部分; 所述音樂(lè)推薦模塊,它負(fù)責(zé)根據(jù)用戶(hù)哼唱檢索得到的結(jié)果為用戶(hù)進(jìn)行音樂(lè)推薦。
【文檔編號(hào)】G06F17/30GK103559309SQ201310581486
【公開(kāi)日】2014年2月5日 申請(qǐng)日期:2013年11月19日 優(yōu)先權(quán)日:2013年11月19日
【發(fā)明者】肖利民, 唐文琦, 鄭堯, 阮利 申請(qǐng)人:北京航空航天大學(xué)