国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于哼唱檢索的方法和裝置的制作方法

      文檔序號(hào):2837388閱讀:229來(lái)源:國(guó)知局

      專利名稱::用于哼唱檢索的方法和裝置的制作方法
      技術(shù)領(lǐng)域
      :本發(fā)明涉及自動(dòng)搜索音樂(lè)的領(lǐng)域,更具體地講,涉及一種用于畔唱檢索(QBSH)的方法和裝置,通過(guò)該方法和裝置,用戶能夠快速檢索到他/她期望聽(tīng)到的音樂(lè)。
      背景技術(shù)
      :傳統(tǒng)上,當(dāng)用戶希望聽(tīng)音樂(lè)時(shí),他/她不得不輸入音樂(lè)的名稱、歌手名字或者與音樂(lè)相關(guān)的其他信息,來(lái)在音樂(lè)庫(kù)中檢索特定音樂(lè)。然而,隨著音樂(lè)庫(kù)中存儲(chǔ)的音樂(lè)的數(shù)量的增加,用戶越來(lái)越難以記住如此眾多的音樂(lè)的信息,因此,查找音樂(lè)變得困難。為了解決這一問(wèn)題,開(kāi)發(fā)了一種基于內(nèi)容的檢索方法,即,畔唱檢索(QBSH)。QBSH具體目的在于通過(guò)輸入用戶的哼唱、一^L音樂(lè)的錄音或者口哨來(lái)搜索到期望的音樂(lè),因此能夠幫助用戶從音樂(lè)庫(kù)中找到他/她已經(jīng)忘掉歌詞、歌唱者等信息的音樂(lè)。在第US20070131094A1號(hào)美國(guó)專利中,提供了一種畔唱檢索方法。該方法使用3D搜索算法來(lái)執(zhí)行音樂(lè)信息檢索,即,在三維空間(t,S,H)中執(zhí)行搜索,其中,t表示時(shí)間,S表示語(yǔ)音學(xué)的語(yǔ)言特征,H表示UDS字符串。在該發(fā)明中,將具有附加"da"字的標(biāo)準(zhǔn)言語(yǔ)識(shí)別器和畔唱檢索系統(tǒng)結(jié)合起來(lái)。另一個(gè)美國(guó)專利第US6188010B1號(hào)也提供了一種哼唱^f企索方法,該方法能夠?qū)崿F(xiàn)當(dāng)僅得知歌曲的旋律時(shí)也能搜索到該歌曲。在該方法中,用戶通過(guò)使用鋼琴輸入一首歌曲的旋律,來(lái)檢索歌曲。美國(guó)專利第US6121530以及US5874686號(hào)也提出了有關(guān)音樂(lè)檢索的方法。傳統(tǒng)QBSH通常包含下列幾個(gè)主要部分(a)從用戶啤唱里提取基頻并將提取的基頻轉(zhuǎn)換為半音;(2)得到半音輪廓后,進(jìn)行音符切分,通常情況下,將音符的時(shí)長(zhǎng)信息忽略,所謂音符切分指的是將輪廓線按照時(shí)長(zhǎng)切分為1/8、1/4等音符序列;(c)將半音旋律輪廓轉(zhuǎn)換為其它形式。由于用戶很難哼唱出音樂(lè)譜中的精確的音符,往往會(huì)低一些或高一些,直接用音符值進(jìn)行匹配會(huì)有很大的誤差,因此,通常的做法是使用一些其他的特征表示方式,如減均值、音符差、UDS字符串等;(d)進(jìn)行旋律搜索。在將旋律轉(zhuǎn)換為其他形式后,一般采用字符串匹配算法、動(dòng)態(tài)時(shí)間規(guī)整(DTW)、Viterbi搜索等。然而,傳統(tǒng)QBSH系統(tǒng)的問(wèn)題在于準(zhǔn)確率較低,因?yàn)閷?duì)于用戶畔唱,很難得到準(zhǔn)確的音符切分,會(huì)有很多的插入、刪除、替換錯(cuò)誤;并且音符切分后,旋律序列中的音符數(shù)目較少,使得對(duì)于旋律的表示非常不準(zhǔn)確,導(dǎo)致采用后面的匹配算法后,準(zhǔn)確率有很大的不足。這種情況隨著音樂(lè)庫(kù)中音樂(lè)數(shù)目的增加會(huì)變得更加嚴(yán)重。而且,檢索速度也會(huì)隨著音樂(lè)庫(kù)中音樂(lè)數(shù)目的增加而顯著變慢。因此,需要一種能夠根據(jù)用戶的哼唱快速準(zhǔn)確和快速地從大規(guī)模音樂(lè)庫(kù)中找出所要的音樂(lè)的方法和裝置。
      發(fā)明內(nèi)容本發(fā)明的目的在于一種能夠提高哼唱檢索的準(zhǔn)確率和速度的用于口亨唱檢索的方法和裝置,以解決現(xiàn)有技術(shù)中的問(wèn)題。本發(fā)明的構(gòu)思主要包括兩個(gè)要點(diǎn)(1)在音樂(lè)庫(kù)上執(zhí)行自動(dòng)音樂(lè)小節(jié)切分,以得到搜索的可能起始位置或結(jié)束位置;(2)使用不同的旋律分辨率。首先,執(zhí)行低分辨率搜索,以從大音樂(lè)庫(kù)中快速搜索出一小組可能的音樂(lè),然后,執(zhí)行高分辨率搜索,以提高匹配精度。根據(jù)本發(fā)明的一方面,提供了一種用于哼唱檢索的音樂(lè)模板創(chuàng)建方法,包括提取音樂(lè)庫(kù)中的每首音樂(lè)的主旋律輪廓;將提取的主旋律輪廓按照音樂(lè)小節(jié)進(jìn)行切分;將按照音樂(lè)小節(jié)切分后的旋律輪廓轉(zhuǎn)換為幀級(jí)音符序列,并將其存儲(chǔ)為模板序列。根據(jù)本發(fā)明的一方面,在進(jìn)行音樂(lè)小節(jié)切分時(shí),執(zhí)行下述步驟獲得歌曲旋律的相關(guān)信息;根據(jù)獲得的信息找到每一小節(jié)的起始點(diǎn)和結(jié)束點(diǎn);在旋律輪廓上標(biāo)記每個(gè)小節(jié)的起始點(diǎn)和結(jié)束點(diǎn)。根據(jù)本發(fā)明的一方面,在將按照音樂(lè)小節(jié)切分的旋律輪廓轉(zhuǎn)換為幀級(jí)音符輪廓時(shí),可按照預(yù)定的幀移來(lái)對(duì)旋律輪廓的音符進(jìn)行采樣,以得到旋律音符序列。根據(jù)本發(fā)明的一方面,所述音樂(lè)模板創(chuàng)建方法,還可包括將旋律音符序列轉(zhuǎn)換為減均值形式的旋律音符序列。根據(jù)本發(fā)明的另一方面,提供了一種用于哼唱檢索的方法,包括輸入從哼唱中提取的幀級(jí);險(xiǎn)索序列;輸入按照音樂(lè)小節(jié)進(jìn)行切分的幀級(jí)模板序列;將檢索序列和模板序列進(jìn)行匹配;根據(jù)匹配的結(jié)果,輸出檢索結(jié)果。根據(jù)本發(fā)明的另一方面,將檢索序列和模板序列進(jìn)行匹配的步驟包括以第一幀移從哼唱檢索序列中提取低分辨率檢索序列;以第一幀移從輸入的模板序列中提取低分辨率模板序列;將低分辨率檢索序列和提取的低分辨率模板序列進(jìn)行匹配,根據(jù)匹配的結(jié)果,從音樂(lè)庫(kù)中得到一組候選模板序列;以比第一幀移小的第二幀移從輸入的檢索序列中提取高分辨率幀級(jí)檢索序列;以第二幀移從得到的候選模板序列中的每一個(gè)提取高分辨率模板序列;將高分辨率檢索序列和高分辨率模板序列進(jìn)行匹配。其中,采用具有快拍子伸縮的線性伸縮算法進(jìn)行檢索序列和模板序列之間的匹配。根據(jù)本發(fā)明的另一方面,在進(jìn)行檢索序列和模板序列之間的匹配時(shí),執(zhí)行如下步驟(a)輸入檢索序列Q和模板序列T;(b)使伸縮比例r等于r0,并使伸縮比例r的偏移S等于SQ;(c)計(jì)算Q,=Qxr,并利用線性伸縮算法計(jì)算序列Q,和模板序列T之間的距離值d叫Q廣TI;(e)計(jì)算Qh妙-Qx(r+S),并利用線性伸縮算法計(jì)算序列Qhigh和模板序列T之間的距離值dhigh=|Qhigh-T|;(f)計(jì)算Qbw=Qx(r-S),并利用線性伸縮算法計(jì)算序列Qi。w和模板序列T之間的距離值d!。w叫Qtow-TI;(g)比較d、dh妙和d,。w的大小;(h)如果4igh最小,則使r-r+S,d=dhlgh,如果d!。w最小,則使n-S,d=dlow,如果d最小,則保持r和d值不變;(i)判斷S是否大于預(yù)設(shè)值;(j)如果S大于預(yù)定值,則<吏3=5/2,并返回到步驟(e);(k)如果5小于預(yù)定值,則輸出距離值d;(l)如果d小于預(yù)定值,則表示檢索序列和模板序列匹配,輸出與模板序列對(duì)應(yīng)的音樂(lè)作為檢索結(jié)果。其中,ro和5o分別為1.4和0.4,所述預(yù)定值為0.09。根據(jù)本發(fā)明的另一方面,在進(jìn)行檢索序列和模板序列之間的匹配時(shí),使用快速迭代對(duì)齊算法計(jì)算檢索序列和模板序列之間的距離值,如果兩者之間的距離值小于預(yù)定值,則輸出與該模板序列對(duì)應(yīng)的音樂(lè)作為檢索結(jié)果,否則丟棄該模板,進(jìn)行檢索序列與下一個(gè)模板序列之間的匹配。根據(jù)本發(fā)明的另一方面,在進(jìn)行檢索序列和模板序列之間的匹配時(shí),執(zhí)行如下步驟(a)輸入檢索序列Q=(qhq2,...,qN)和模板序列丁=(^,t2,...,tM),其中,N表示檢索序列的幀數(shù),M表示模板序列的幀數(shù);(b)輸入迭代次數(shù)D,同時(shí)使j-N/2,i=0;(c)將序列Q在j點(diǎn)分為兩個(gè)序列=(qi,q2,...,化)和02=(qj+1,qj+2,…,qN);(d)分別將序列的和值sum(QJ以及Q序列的和值s腿(Q),以及兩者的比值R=sum(Q!)/sum(Q);(e)使k=M/2,T產(chǎn)(t!,t2,...,tk),T2=(tk+l,tk+2,...,tM);(f)利用線性伸縮算法求Q!和T,的距離值的d,以及Q2和T2之間的距離值d2,并使S廣山+d2;(g)將模板序列T從第h點(diǎn)分開(kāi),分為兩個(gè)序列Tf(t!,t2,…,th),T2=(th+1,th+2,...,tM),并使序列T3和T的和值之間的比等于R;(h)利用線性伸縮算法求Q!和T3的距離值的d3以及Q2和T4之間的距離值d4,并使S2二d3+d4;(i)判斷SI和S2之間的大小關(guān)系,如果S1小于S2,則使S:Sl,i=k,否則使S-S2,i=h;(j)如果D等于零,則輸出S值,如果D不等于零,則D二D-1,并使T產(chǎn)(t,,t2,...,ti),T2=(ti+1,ti+2,..,,tM),然后分別令Q:Q"T=T^。Q=Q2,丁=丁2重新執(zhí)行步驟(a),并對(duì)Q=Q,,T^T!以及Q=Q2,T=T2的返回值進(jìn)行累加作為S的值并輸出;(k)如果S小于預(yù)定的距離值,則輸出與模板序列T對(duì)應(yīng)的音樂(lè)作為檢索結(jié)果,否則,執(zhí)行檢索序列與下一個(gè)模板序列之間的匹配。根據(jù)本發(fā)明的又一方面,一種用于畔唱檢索的音樂(lè)模板創(chuàng)建裝置,包括提取音樂(lè)庫(kù)中的每首音樂(lè)的主旋律輪廓的提取單元;將提取的主旋律輪廓按照音樂(lè)小節(jié)進(jìn)行切分的音樂(lè)小節(jié)切分單元;將按照音樂(lè)小節(jié)切分后的旋律輪廓轉(zhuǎn)換為音符序列并將其存儲(chǔ)為模板序列的轉(zhuǎn)換單元。根據(jù)本發(fā)明的又一方面,提供了一種用于哼唱檢索的裝置,包括輸入切分的幀級(jí)模板序列的模板序列輸入單元;將檢索序列和模板序列進(jìn)行匹配的匹配單元;根據(jù)匹配的結(jié)果輸出檢索結(jié)果的輸出單元。根據(jù)本發(fā)明的又一方面,提供了一種用于口亨唱檢索的裝置,包括模板創(chuàng)建單元,用于對(duì)音樂(lè)庫(kù)中每首音樂(lè)提取主旋律,并創(chuàng)建按照音樂(lè)小節(jié)進(jìn)行切分的模板組;旋律提取單元,用于從用戶的畔唱中提取檢索旋律輪廓;旋律匹配單元,用于將提取的檢索旋律輪廓與模板組中的每一模板進(jìn)行匹配,并根據(jù)匹配結(jié)果,輸出候選音樂(lè)。根據(jù)本發(fā)明的又一方面,所述的裝置還包括多分辨率模板序列創(chuàng)建單元,用于以預(yù)定幀移從提取的主旋律中提取音符序列,從而創(chuàng)建多分辨率幀級(jí)旋律模板序列。根據(jù)本發(fā)明的又一方面,所述的裝置還包括多分辨率檢索序列創(chuàng)建單元,用于從檢索旋律輪廓提取音符序列,從而創(chuàng)建多分辨率幀級(jí)旋律檢索序列。通過(guò)下面結(jié)合附圖對(duì)實(shí)施例進(jìn)行的描述,本發(fā)明的上述和其他目的和特點(diǎn)將會(huì)變得更加清楚,其中圖1是根據(jù)本發(fā)明的畔唱檢索方法的框圖;圖2是示出在圖1的模塊100中執(zhí)行的創(chuàng)建模板組的詳細(xì)流程圖;圖3是示出在圖1的模塊200中執(zhí)行的從哼唱中提取旋律的詳細(xì)流程圖;圖4是示出在圖1的模塊300中執(zhí)行的旋律匹配處理的詳細(xì)流程圖;圖5是示出傳統(tǒng)線性伸縮算法的示圖;圖6A和6B示出傳統(tǒng)RA算法的示圖;圖7是示出本發(fā)明實(shí)施例中的均值位移算法的示圖。具體實(shí)施方式以下,參照附圖來(lái)詳細(xì)說(shuō)明本發(fā)明的實(shí)施例。圖1是根據(jù)本發(fā)明實(shí)施例的哼唱檢索方法的整體框圖。如圖l所示,根據(jù)本發(fā)明實(shí)施例的噂唱檢索方法包括三個(gè)模塊模板組創(chuàng)建模塊100、旋律提取模塊200和旋律匹配處理模塊300。在模塊100中,進(jìn)行模板組創(chuàng)建,制作用于后續(xù)匹配處理的模板。模板組創(chuàng)建過(guò)程可以離線操作。在該模塊中,對(duì)音樂(lè)庫(kù)中的每首音樂(lè)提取主旋律,然后對(duì)提取的主旋律執(zhí)行音樂(lè)小節(jié)切分,從而制作多分辨率模板組。圖2示出了圖1的模塊100中的創(chuàng)建模板組的詳細(xì)流程。將參照?qǐng)D2詳細(xì)描述模板組創(chuàng)建的過(guò)程。在步驟SIOI,輸入音樂(lè)庫(kù)。在步驟S102中,提取每首音樂(lè)的主旋律。主旋律的提取方式根據(jù)MIDI的類(lèi)型而不同。對(duì)于單軌MIDI音樂(lè),由于只有一個(gè)音軌,所以該音軌里所存儲(chǔ)的旋律即為主旋律。對(duì)于多音軌MIDI音樂(lè),一般主旋律在第一個(gè)音軌中,但是有的MIDI音樂(lè)可能不是這樣,因此需要作出如下幾個(gè)條件的判斷(1)音軌名里有"MELODIES","VOCAL","SING","SOLO","LEAD","VOICE"這些詞;(2)音軌中音符的力度(即音符的強(qiáng)弱)的平均值最大;(3)音軌中音符的時(shí)長(zhǎng)最長(zhǎng),即第一個(gè)音符的起始時(shí)刻到最后一個(gè)音符的結(jié)束時(shí)刻。滿足上面3個(gè)條件之一的音軌,認(rèn)為是主旋律所在的音軌,將里面的音符信息作為主旋律提取出來(lái)。在步驟S103,從音樂(lè)中提取其他信息。對(duì)于一首音樂(lè)來(lái)說(shuō),它的速度、拍子記號(hào)(指的4/4拍,2/4拍)、1/4音符的時(shí)長(zhǎng)等是非常有用的信息。這些信息通常寫(xiě)在MIDI音樂(lè)的每個(gè)音軌的頭中,因此這些信息都可以從每首MIDI的音軌中得到。在步驟S104中,根據(jù)在步驟S103中得到的信息,找出每個(gè)小節(jié)的起始時(shí)刻和結(jié)束時(shí)刻。具體地,根據(jù)在步驟S103中獲得信息,如節(jié)拍、拍子記號(hào),1/4音符的時(shí)長(zhǎng),可以容易地標(biāo)出音樂(lè)小節(jié)的起始時(shí)刻和結(jié)束時(shí)刻。將步驟S103和S104的操作統(tǒng)稱為音樂(lè)小節(jié)切分。因?yàn)槿藗冊(cè)诤叱臅r(shí)候,一般總是從某一小節(jié)的開(kāi)頭開(kāi)始,到某一小節(jié)的結(jié)束終止,因此可以利用這一習(xí)慣來(lái)提高搜索的準(zhǔn)確率,并可以在一定程度上提高搜索的速度。而且用戶在執(zhí)行搜索時(shí),可以從音樂(lè)的任意位置進(jìn)行搜索,也就是說(shuō),用戶的口亨唱可以從歌曲的任意部分開(kāi)始。因此,在根據(jù)本發(fā)明的實(shí)施例中,采用自動(dòng)音樂(lè)小節(jié)切分。在步驟S105,創(chuàng)建幀級(jí)多分辨率旋律輪廓。根據(jù)幀移(frameshift)的不同,可以得到不同分辨率的旋律音符序列。低分辨率指的是采用比較大的幀移對(duì)每首音樂(lè)的音符采樣,這樣得到的音符數(shù)目較少,對(duì)旋律的描述比較粗。高分辨率指的是采用比較小的幀移對(duì)每首音樂(lè)的音符采樣,這樣得到的音符數(shù)目比較多,對(duì)旋律的描述比較清晰。一般來(lái)說(shuō),一首音樂(lè)可以得到兩個(gè)或兩個(gè)以上的旋律序列,這要根據(jù)具體的應(yīng)用而定。這里需要說(shuō)明的是,最后的旋律音符序列都被表示為減均值(meansubtraction)形式的序列(與后面將要描述的步驟S205類(lèi)似)。在步驟S106,輸出用于匹配處理的模板組,即,將每首音樂(lè)中提取的多個(gè)不同分辨率的旋律序列組成用于匹配的模板集合。在模塊200中,從用戶的哼唱中提取旋律輪廓用于后續(xù)的匹配處理。圖3是示出在圖1中的模塊200中從口亨唱中提取旋律的詳細(xì)流程。下面,參照?qǐng)D3詳細(xì)描述該過(guò)程。在步驟S201中,輸入用戶的畔唱。所述輸入可以是用戶具有歌詞、沒(méi)有歌詞的查詢、也可以是音樂(lè)的一段錄音或者是口哨。這些類(lèi)型的檢索均可以被存儲(chǔ)為wave形式的文件。在步驟S202中,對(duì)輸入的,唱進(jìn)行基頻抽取。在該過(guò)程中,在提取啤唱中的基頻時(shí),根據(jù)最大分辨率,即最小的幀移,進(jìn)行基頻抽取。當(dāng)需要低分辨率的旋律輪廓時(shí),從以最小幀移抽取的旋律序列中進(jìn)行抽取。例如,當(dāng)最小幀移是O.ls,語(yǔ)音長(zhǎng)8s時(shí),則得到80幀數(shù)據(jù)。如果要得到0.2s的旋律序列,則從所述80幀數(shù)據(jù)中取偶數(shù)(或奇數(shù))序號(hào)的值即可。提取基頻的算法是傳統(tǒng)的自相關(guān)算法,這里不再詳細(xì)描述。在步驟S203中,進(jìn)行旋律輪廓的平滑處理。由于提取基頻的算法不可能準(zhǔn)確地提取出畔唱中實(shí)際的基頻值,因而會(huì)有一些半頻或倍頻(即真實(shí)基頻的一半或倍數(shù))錯(cuò)誤,或者產(chǎn)生一些奇異點(diǎn)(即,^^立點(diǎn)),因而需要對(duì)提取的基頻輪廓進(jìn)行平滑處理。這里采用的平滑處理算法為常用的中值濾波和線性濾波方式。在基頻抽取之后,在步驟S204,執(zhí)行基頻到半音的變換。每個(gè)基頻被變換為如式(1)所示的半音符(semitone):<formula>formulaseeoriginaldocumentpage12</formula>其中,freq是基頻。在步驟S205,對(duì)轉(zhuǎn)換后的半音執(zhí)行減均值。由于用戶很難準(zhǔn)確地哼唱出音樂(lè)譜中的每個(gè)音符,而且不同的人對(duì)同一首音樂(lè)也會(huì)畔出不同的音符,通常男的會(huì)高一些,女的會(huì)低一些,因此,為了減少這一情況對(duì)匹配算法的影響,需要將音符序列改變?yōu)橛糜谄ヅ涮幚淼奶囟ǖ谋硎?。在本發(fā)明的實(shí)施例中,采用了"減均值"的旋律序列表示方式。具體地講,將半音符序列轉(zhuǎn)換為最終用于匹配算法中的序列,即,給定一段半音符序列,將其中的非零值相加求均值,然后用原序列中的每個(gè)非零均值去減該均值,得到用于匹配的序列。需要說(shuō)明的是,原半音符序列中為零的值被丟棄了,在抽取音樂(lè)的主旋律時(shí)(即圖2中的步驟S105),也是按照這種方式進(jìn)行的。在步驟S206,輸出幀級(jí)旋律輪廓。在該處理中,使用簡(jiǎn)單采樣方法來(lái)從最高分辨率幀級(jí)音符輪廓獲得不同分辨率的幀級(jí)音符輪廓。該操作與對(duì)音樂(lè)庫(kù)中的每首音樂(lè)制作不同分辨率的模板過(guò)程類(lèi)似,這里不再詳細(xì)描述。當(dāng)從用戶的啤唱中提取出旋律輪廓之后,在模塊300中進(jìn)行旋律輪廓和模板組的匹配,從而得到用戶期望查找的結(jié)果。圖4示出了模塊300中的旋律輪廓與模板組的匹配的詳細(xì)流程。下面,參照?qǐng)D4進(jìn)行詳細(xì)描述。在步驟S301,輸入在模塊200中得到的從哼唱中提取的幀級(jí)旋律輪廓。在下面的匹配處理中,也可將幀級(jí)旋律輪廓稱作口亨唱檢索序列。在步驟S302,輸入在模塊100中得到的模板組。在下面的匹配處理中,也可將用于匹配的每一個(gè)模板稱作模板序列。在步驟S303中,形成低分辨率旋律輪廓。該處理用于分別從幀級(jí)多分辨率旋律輪廓中和幀級(jí)多分辨率模板組得到相同分辨率的旋律輪廓。由于低分辨率的旋律輪廓的采樣點(diǎn)較少,所以能夠在從啤唱中提取的旋律輪廓與模板組的旋律輪廓之間進(jìn)行快速比對(duì),短時(shí)間內(nèi)得出候選項(xiàng)。在步驟S304中,執(zhí)行快速匹配處理,以選出一小組用于后續(xù)比較的候選項(xiàng)。具體地,采用快速匹配算法進(jìn)行提取的旋律輪廓(即,哼唱檢索序列^)與模板組(即,模板序列r)之間的匹配。可以采用各種匹配算法來(lái)進(jìn)行所述匹配處理。在本發(fā)明的實(shí)施例中,提出了一種快速伸縮算法,即,在線性伸縮(LS)算法的基礎(chǔ)上,加入快速拍子伸縮操作,下面稱為算法1,具體如下:_<table>tableseeoriginaldocumentpage13</column></row><table>下面,對(duì)上述算法1及其中的變量進(jìn)行解釋。首先輸入檢索序列2二fa,2,…,^),并輸入在模塊100中得到的模板序列尸=(^/2廣.,^),其中,N表示。亨唱序列中的幀數(shù),M表示模板序列中的幀數(shù)。r表示序列g(shù)的伸縮比例,5表示r的偏移,2"表示將序列g(shù)拉伸r倍,例如,原來(lái)^的長(zhǎng)度為100,r為1.5,則變換后2i的長(zhǎng)度為150。其中,和5。是兩個(gè)預(yù)設(shè)值,在實(shí)驗(yàn)中分別被設(shè)置為1.4和0.4。"="(0,"是對(duì)Q和r采用線性伸縮算法求距離值的線性伸縮函數(shù)。圖5示出了"^"fo,r)的含義。如圖5所示,橫軸為模板序列,縱軸為啤唱檢索序列,取對(duì)角線上的點(diǎn)對(duì)距離值進(jìn)行計(jì)算,即,求兩者的差的絕對(duì)值。比如說(shuō)橫軸為200個(gè)點(diǎn),縱軸為IOO個(gè)點(diǎn),則對(duì)角線的斜率為0.5,那么給定橫軸上的2個(gè)點(diǎn),對(duì)應(yīng)縱軸上1個(gè)點(diǎn),分別求橫軸上的兩個(gè)點(diǎn)與縱軸上的1個(gè)點(diǎn)對(duì)應(yīng)的距離值,將這些距離值累加起來(lái),得到的就是模板序列和,唱檢索序列之間的距離值。在執(zhí)行算法1并輸出距離值之后,利用4個(gè)濾波器來(lái)進(jìn)一步降低候選項(xiàng)的數(shù)量。這些濾波器分別基于方差、子段均值比較、質(zhì)心比較和音符分布比較,詳細(xì)描述如表1所示。表1<table>tableseeoriginaldocumentpage14</column></row><table><table>tableseeoriginaldocumentpage15</column></row><table>使用上述5個(gè)濾波器,主要用于篩選用于后面精確匹配的模板集合。經(jīng)過(guò)在步驟S304的篩選,候選音樂(lè)的數(shù)量規(guī)模變小。在步驟S305,輸出小規(guī)模的模板組。在步驟S306,形成高分辨率旋律輪廓。在該步驟中,得到具有相同分辨率的高分辨率旋律輪廓和模板,用于最后的精確匹配。該操作和得到低分辨率旋律輪廓的原理相同,這里不再重復(fù)描述。在步驟S307中,執(zhí)行精確匹配方法。在該處理中,使用快速迭代對(duì)齊(fast—RA)算法??焖俚鷮?duì)齊算法被稱為算法2,該算法是在迭代對(duì)齊(RA)的基礎(chǔ)上提出的一種快速算法,具體描述如下。<table>tableseeoriginaldocumentpage15</column></row><table><table>tableseeoriginaldocumentpage16</column></row><table>圖6A和6B示出了傳統(tǒng)的RA算法。如圖6A所示,粗實(shí)線是檢索序列和模板序列之間的最佳對(duì)齊路徑。在迭代的第一步,比較三條對(duì)齊路徑實(shí)線、虛線和雙點(diǎn)劃線。如果通過(guò)虛線路徑獲得的值最小,則在迭代的下一步驟中,將該路徑分為兩部分,如圖6B所示。然后,分別在左右兩個(gè)部分中重復(fù)上述操作,即分別沿著三條路徑進(jìn)行計(jì)算,分別獲得值最小的一條路徑。然后,左右兩部分中的距離值最小的兩條路徑的組合即為最后得出的路徑。本發(fā)明的快RA算法的不同之處在于,為了提高計(jì)算速度,通過(guò)計(jì)算,判斷最佳匹配路徑的曲線是向上彎的還是向下彎的,然后,僅計(jì)算彎曲方向相同的路徑,例如,在圖6A中,通過(guò)計(jì)算判斷最佳匹配路徑是向上彎的,從而僅計(jì)算虛線對(duì)應(yīng)的路徑即可,從而可以省去對(duì)另外一條路徑的計(jì)算。通常,女歌唱者的基頻高于男歌唱者的基頻,也就是說(shuō),不同的人即使是對(duì)同一首音樂(lè)也會(huì)具有不同的基頻值(音符值)。這對(duì)于匹配處理的精度是個(gè)問(wèn)題。為了解決這一問(wèn)題,采用均值移位來(lái)使檢索序列和模板序列之間的值最小。在本發(fā)明中,提出了一種采用均值移位的快RA算法,稱為算法3,將在后面詳纟田描述。這里提到的均值位移也是一種算法,如在前面提到的減均值一樣,原始的旋律序列要減去它的均值。由于人啤唱的差異,檢索序列的均值和模板序列的均值會(huì)有一些偏差,為了彌補(bǔ)這種偏差,使用了均值移位算法,即,將檢索序列的均值移到(上下移動(dòng))一個(gè)合適的位置,使得檢索序列的均值和模板序列的均值之間的距離最小。算法3.釆用均值以為的快RA(g,r,D)算法_<table>tableseeoriginaldocumentpage17</column></row><table>(注S表示均值偏移值)<table>tableseeoriginaldocumentpage17</column></row><table>在算法3中,在試驗(yàn)中,^是被設(shè)置為2的預(yù)設(shè)值。2土S是指檢索序列g(shù)加上或減去均值偏移值的所有值,如圖7所示。在圖7中,t為檢索序列的均值,開(kāi)始5為2,這時(shí)比較t、t-2、t+2時(shí)檢索序列與模板序列的距離值。如果t+2的距離值最小,則選定t+2,記為t',5除以2,然后比較t'、t'-l、t'+l時(shí)的距離值,選擇最小的距離值作為最終的結(jié)果。在步驟S308,輸出匹配結(jié)果,得到用戶期望查找的音樂(lè)的候選項(xiàng)。具體地說(shuō),如果口亨唱檢索序列和模板序列之間的距離小于預(yù)定值,則認(rèn)為兩者匹配,從而與該模板對(duì)應(yīng)的歌曲即為候選歌曲。通過(guò)精確匹配處理,候選項(xiàng)進(jìn)一步縮小,從而快速找到用戶查找的音樂(lè)。在上述匹配處理中,采用了不同分辨率的旋律輪廓匹配,首先采用較低分辨率的音樂(lè)旋律輪廓線進(jìn)行匹配搜索,以便從一個(gè)非常大的音樂(lè)庫(kù)中篩選出一個(gè)小的候選集合,在這個(gè)小的候選集合上,再使用高精度的旋律輪廓線進(jìn)行精確匹配,來(lái)得到最后的匹配音樂(lè)集。因此,根據(jù)本發(fā)明的匹配處理方法,可以提高搜索速度。本發(fā)明具有如下優(yōu)點(diǎn)(l)在提取旋律時(shí),進(jìn)行自動(dòng)音樂(lè)小節(jié)切分,按照小節(jié)進(jìn)行搜索,提高了準(zhǔn)確率;(2)通過(guò)不同分辨率的旋律輪廓進(jìn)行匹配,先用較低分辨率的旋律輪廓線進(jìn)行匹配,從一個(gè)非常大的音樂(lè)庫(kù)中篩選出一個(gè)小的候選集合,再在這個(gè)小的候選集合上,使用高精度的旋律輪廓線進(jìn)行精確匹配,來(lái)提高搜索速度,快速而準(zhǔn)確的根據(jù)用戶哼唱從大規(guī)模音樂(lè)庫(kù)中找出所要的音樂(lè);(3)對(duì)于用戶的要求較低,面向普通用戶,允許在畔唱中有一定的錯(cuò)誤(插入、刪除、替換),并可以帶歌詞畔唱,或者使用"dada,,,"lala"來(lái)進(jìn)行畔唱,也可以吹口哨,或者錄一段音樂(lè)片段來(lái)進(jìn)行搜索;(3)可以用于PC、手機(jī)、MP3播放器上。盡管已經(jīng)參照本發(fā)明的特定優(yōu)選實(shí)施例示出和描述了本發(fā)明,但是本領(lǐng)域的技術(shù)人員應(yīng)該理解,在不脫離由權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,可以在形式和細(xì)節(jié)上作出各種改變。權(quán)利要求1、一種用于哼唱檢索的音樂(lè)模板創(chuàng)建方法,包括提取音樂(lè)的主旋律輪廓;對(duì)提取的主旋律輪廓按照音樂(lè)小節(jié)進(jìn)行切分;將按照音樂(lè)小節(jié)切分后的旋律輪廓轉(zhuǎn)換為幀級(jí)旋律音符序列,并將其存儲(chǔ)為模板序列。2、如權(quán)利要求1所述的音樂(lè)模板創(chuàng)建方法,其中,在進(jìn)行音樂(lè)小節(jié)切分時(shí),包括下述步驟獲得音樂(lè)旋律的相關(guān)信息;根據(jù)獲得的信息找到每一小節(jié)的起始點(diǎn)和結(jié)束點(diǎn);在旋律輪廓上標(biāo)記每個(gè)小節(jié)的起始點(diǎn)和結(jié)束點(diǎn)。3、如權(quán)利要求1所述的音樂(lè)模板創(chuàng)建方法,其中,在將旋律輪廓轉(zhuǎn)換為幀級(jí)旋律音符序列時(shí),按照預(yù)定的幀移來(lái)對(duì)旋律輪廓的音符進(jìn)行采樣,從而得到幀級(jí)旋律音符序列。4、如權(quán)利要求3所述的音樂(lè)模板創(chuàng)建方法,還包括將旋律音符序列轉(zhuǎn)換為減均值形式的旋律音符序列。5、一種用于啤唱^f全索的方法,包括輸入從畔唱中提取的檢索序列;輸入按照音樂(lè)小節(jié)進(jìn)行切分的模板序列組,所述^t板序列組包含與音樂(lè)庫(kù)中每首音樂(lè)對(duì)應(yīng)的模板序列;將檢索序列和模板序列進(jìn)行匹配;如果模板序列和檢索序列匹配,則將與該模板序列對(duì)應(yīng)的音樂(lè)輸出作為檢索結(jié)果。6、如權(quán)利要求5所述的方法,其中,將檢索序列和模板序列進(jìn)行匹配的步驟包括以第一幀移從啤唱檢索序列中提取低分辨率檢索序列;以第一幀移從輸入的模板序列中提取低分辨率模板序列;將低分辨率檢索序列和低分辨率模板序列進(jìn)行匹配,根據(jù)匹配的結(jié)果,篩選出一組候選模板序列;以比第一幀移小的第二幀移從輸入的檢索序列中提取高分辨率檢索序列;以第二幀移從得到的候選模板序列的每一個(gè)中提取高分辨率模板序列;將高分辨率檢索序列和高分辨率模板序列進(jìn)行匹配。7、如權(quán)利要求5所述的方法,其中,采用線性伸縮算法進(jìn)行檢索序列和模板序列之間的匹配。8、如權(quán)利要求5所述的方法,其中,在進(jìn)行檢索序列和模板序列之間的匹配時(shí),執(zhí)行如下步驟(a)輸入纟全索序列Q和模板序列T;(b)使伸縮比例r等于r。,并使伸縮比例r的偏移5等于50;(c)計(jì)算Q,=Qxr,并利用線性伸縮算法計(jì)算序列Q,和模板序列T之間的距離值d叫Q廣TI;(e)計(jì)算Qhigh=Qx(r+5),并利用線性伸縮算法計(jì)算序列Qh妙和模板序列T之間的距離值dhigh=|Qhigh-T|;(f)計(jì)算QlQW=Qx(r-S),并利用線性伸縮算法計(jì)算序列Q^和模板序列T之間的距離值dk叫Qlow一丄I,(g)比較d、4igh和d,。w的大小;(h)如果4igh最小,則使r"+S,d=dhigh,如果d!。w最小,則使r"-5,d=dbw,如果d最小,則保持r和d值不變;(i)判斷S是否大于預(yù)設(shè)值;(j)如果5大于預(yù)定值,則使5=5/2,并返回到步驟(e);(k)如果5小于預(yù)定值,則輸出距離值d;(l)判斷d是否小于預(yù)定閾值,如果d小于預(yù)定閾值,則確定模板序列與斗全索序列匹配。9、如權(quán)利要求8所述的方法,其中,r。和So分別為1.4和0.4,所述預(yù)定值為0.09。10、如權(quán)利要求6所述的方法,其中,在進(jìn)行檢索序列和模板序列之間的匹配時(shí),使用迭代對(duì)齊算法計(jì)算檢索序列和模板序列之間的距離值,如果兩者之間的距離值小于預(yù)定值,則輸出與該模板序列對(duì)應(yīng)的音樂(lè)作為檢索結(jié)果,否則丟棄該模板,進(jìn)行檢索序列與下一個(gè)才莫板序列之間的匹配。11、如權(quán)利要求6所述的方法,其中,在進(jìn)行檢索序列和模板序列之間的匹配時(shí),執(zhí)行如下步驟(a)專lr入斗全索序歹l)Q=(qi,q2,…,qN)和才莫寺反序歹寸T=(tht2,...,tM),其中,N表示檢索序列的幀數(shù),M表示模板序列的幀數(shù);(b)輸入迭代次數(shù)D,同時(shí)使j=N/2,i=0;(c)在j點(diǎn)將序列Q分為兩個(gè)序列=(q,,q2,...,qj)和Q2=(q_i+1,qi+2,...,);(d)分別將序列Q,的和值sum(Q!)以及Q序列的和值sum(Q),以及兩者的比值Ro=sum(Q,)/sum(Q);(e)使k=M/2,Tf(t,,t2,tk),T2=(tk+1,tk+2,tM);(f)利用線性伸縮算法求Q!和的距離值的山以及Q2和丁2之間的距離值4,并使S,d!+d2;(g)將模板序列T從第h點(diǎn)分開(kāi),分為兩個(gè)序列T產(chǎn)(t!,t2,...,th),T4=(th+1,th+2,...,tM),并使序列T3和T的和值之間的比等于Ro;(h)利用線性伸縮算法求Q,和T3的距離值的d3以及Q2和丁4之間的距離值山,并<吏82=<13+(14;(i)判斷S,和S2之間的大小關(guān)系,如果Si小于S2,則4吏S-Spi=k,否則使S-S2,i=h;(j)如果D等于零,則輸出S值,如果D不等于零,則D二D-1,并使T「(t,,t2,...,t'),T2=(ti+1,ti+2,...,tM),然后分別令Q:Q,,T-T,和Q^Q"T=丁2重新執(zhí)行步驟(a),并對(duì)Q-Qi,T-T,以及Q-Q2,丁=丁2的返回值進(jìn)行累加作為S的值并輸出;(k)如果S小于預(yù)定的距離值,則輸出與模板序列T對(duì)應(yīng)的音樂(lè)作為檢索結(jié)果,否則,執(zhí)行檢索序列與下一個(gè)模板序列之間的匹配。12、一種用于畔唱檢索的音樂(lè)模板創(chuàng)建裝置,包括提取音樂(lè)庫(kù)中的每首音樂(lè)的主旋律輪廓的提取單元;將提取的主旋律輪廓按照音樂(lè)小節(jié)進(jìn)行切分的音樂(lè)小節(jié)切分單元;將按照音樂(lè)小節(jié)切分后的旋律輪廓轉(zhuǎn)換為音符序列并將其存儲(chǔ)為模板序列的轉(zhuǎn)換單元。13、一種用于啤唱檢索的裝置,包括輸入按照音樂(lè)小節(jié)進(jìn)行切分的幀級(jí)模板序列的模板序列輸入單元;將檢索序列和模板序列進(jìn)行匹配的匹配單元;根據(jù)匹配的結(jié)果輸出檢索結(jié)果的輸出單元。14、一種用于啤唱檢索的裝置,包括模板創(chuàng)建單元,用于對(duì)音樂(lè)庫(kù)中每首音樂(lè)提取主旋律,并創(chuàng)建按照音樂(lè)小節(jié)進(jìn)行切分的模板組;旋律提取單元,用于從用戶的哼唱中提取檢索旋律輪廓;旋律匹配單元,用于將提取的檢索旋律輪廓與模板組中的每一模板進(jìn)行匹配,并根據(jù)匹配結(jié)果,輸出候選音樂(lè)。15、如權(quán)利要求14所述的裝置,還包括多分辨率模板序列創(chuàng)建單元,用于以預(yù)定幀移從提取的主旋律中提取音符序列,從而創(chuàng)建多分辨率幀級(jí)旋律模板序列;多分辨率檢索序列創(chuàng)建單元,用于從檢索旋律輪廓提取音符序列,從而創(chuàng)建多分辨率幀級(jí)旋律檢索序列。16、如權(quán)利要求14所述的裝置,其中,旋律匹配單元包括距離值計(jì)算單元,用于計(jì)算多分辨率幀級(jí)旋律模板序列和多分辨率幀級(jí)旋律檢索序列之間的距離值;檢索結(jié)果輸出單元,用于判斷所述距離值是否小于預(yù)定閾值,如果小于預(yù)定閾值,則判斷該模板序列與檢索序列匹配,并輸出與該模板序列相應(yīng)的音樂(lè)作為檢索結(jié)果,否則,進(jìn)行下一個(gè)模板與檢索序列之間的匹配。全文摘要提供了一種用于哼唱檢索的方法和裝置,所述方法包括輸入從哼唱中提取的檢索序列;輸入按照音樂(lè)小節(jié)進(jìn)行切分的模板序列組,所述模板序列組包含與音樂(lè)庫(kù)中每首音樂(lè)對(duì)應(yīng)的模板序列;將檢索序列和模板序列進(jìn)行匹配;如果模板序列和檢索序列匹配,則將與該模板序列對(duì)應(yīng)的音樂(lè)輸出作為檢索結(jié)果。根據(jù)本發(fā)明,可以提高哼唱檢索的準(zhǔn)確率和速度。文檔編號(hào)G10H1/00GK101398827SQ20071015189公開(kāi)日2009年4月1日申請(qǐng)日期2007年9月28日優(yōu)先權(quán)日2007年9月28日發(fā)明者嚴(yán)基完,史媛媛,璇朱,李在原,菁鄧申請(qǐng)人:三星電子株式會(huì)社;北京三星通信技術(shù)研究有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1