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