專利名稱:數(shù)字音樂旋律的跨越式高速匹配裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是一種計算機應(yīng)用技術(shù)領(lǐng)域的裝置,具體是一種數(shù)字音樂旋律的跨越式高速匹配裝置。
背景技術(shù):
基于哼唱輸入的數(shù)字音樂檢索方式簡稱哼唱檢索(QBHQuery byHumming),它允許用戶通過哼唱的形式來檢索所需要的歌曲。用戶只要能回憶起其中的片段旋律,并通過麥克風(fēng)哼唱出來,QBH檢索系統(tǒng)就能為用戶找到其所需要的歌曲。在哼唱檢索方面,由于用戶憑借自己的記憶哼唱,再加之為非特定人哼唱,如何有效地對查詢輸入的旋律模式進行規(guī)整化,如何提高旋律匹配檢索時的魯棒性,以及如何實現(xiàn)面向大規(guī)模樂曲的檢索高速化等,這些問題還沒有得到很好的解決,許多關(guān)鍵技術(shù)都還有待于進一步深入研究。針對哼唱檢索,國內(nèi)外已提出的面向旋律匹配的技術(shù)包括有近似符號串比較算法,典型的如DP(Dynamic Programming)法和快速近似匹配法,音高輪廓幾何匹配法和線性對齊近似旋律匹配算法LAN。在這些面向旋律匹配的方法中,旋律特征模式由音符特征序列來描述,而音符特征則一般由音符音高(或相對音高差)及音符長度(相對音符長度比)來表征;在對哼唱旋律片段與整首樂曲旋律之間進行非等長音符特征序列的模式匹配時,都是按照音符移動單位將輸入旋律片段的音符序列沿著整首樂曲旋律的標(biāo)準(zhǔn)音符序列方向來進行逐一連續(xù)移動匹配的。
經(jīng)對現(xiàn)有技術(shù)的文獻(xiàn)檢索發(fā)現(xiàn),刊登在《計算機研究與發(fā)展》2003年11月第40卷第11期,pp.1554-1560上的文章“線性對齊近似旋律匹配算法”中所提出的旋律匹配系統(tǒng)的技術(shù)方案,基本上由旋律提取部、旋律匹配部、結(jié)果輸出部和樂曲旋律特征摸板庫組成,而未包含為檢測旋律分段特征音符位置的裝置和為了控制基于旋律分段特征音符位置的旋律分段音符特征序列匹配移動方式的裝置。整個樂曲旋律特征摸板庫結(jié)構(gòu)采用以摸板單位的鏈表結(jié)構(gòu)來實現(xiàn)。在這種匹配系統(tǒng)框架結(jié)構(gòu)下,設(shè)當(dāng)輸入旋律片段沿著標(biāo)準(zhǔn)旋律的音符序列進行移動匹配并移動至第K個音符時,先將輸入旋律片段的頭部音符與標(biāo)準(zhǔn)旋律的第K個音符對齊,并從以第K個音符為起點的標(biāo)準(zhǔn)旋律中取出長度為輸入旋律片段長度1.3倍長的音符序列段作為在該頭部音符對齊下的標(biāo)準(zhǔn)旋律匹配段;在時間軸上進行兩旋律匹配段的線性對齊近似旋律匹配,即將輸入旋律片段線性延展到與標(biāo)準(zhǔn)旋律的音符序列段相同的長度,并在一定的誤差范圍內(nèi)對齊發(fā)生時刻接近的音符,計算旋律在節(jié)奏上的相似度,同時繼續(xù)比較兩段等長旋律在每個時間點上的音高差異,計算旋律在音高上的相似度,最后,綜合考慮節(jié)奏和音高兩方面的相似度,給出輸入旋律片段與該標(biāo)準(zhǔn)旋律音符序列段的匹配得分。輸入旋律片段的頭部音符將繼續(xù)沿著標(biāo)準(zhǔn)旋律的音符序列向后移動一個音符,并重復(fù)上述基于核心步驟的旋律音符序列段的匹配,直至移動到最后為止。線性對齊近似旋律匹配算法具有節(jié)奏容錯性好、匹配精度高的優(yōu)點,但是由于該文獻(xiàn)所述匹配系統(tǒng)的技術(shù)方案沒有考慮對標(biāo)準(zhǔn)旋律進行自動分段檢測標(biāo)注的手段及基于該分段標(biāo)注的匹配控制方式,而采用了原始的以音符為移動單位的移動匹配控制方式,故使得這種基于音符移動單位的移動匹配方式響應(yīng)時間較長,不適于用作大規(guī)模數(shù)字音樂庫的檢索匹配。因此,隨著數(shù)字音樂庫的規(guī)模日益增大,面向旋律匹配檢索的響應(yīng)速度和檢索精度之間的矛盾將會日益突出,成為基于哼唱輸入的數(shù)字音樂檢索系統(tǒng)邁向?qū)嵱没囊淮笃款i。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提供一種高性能的數(shù)字音樂旋律的跨越式高速匹配裝置,使得在保持對用戶哼唱輸入的容錯性的同時,還能大幅度地提高對哼唱輸入的匹配檢索速度。
本發(fā)明是通過以下技術(shù)方案實現(xiàn)的,本發(fā)明包括旋律特征提取結(jié)果存儲裝置、標(biāo)準(zhǔn)旋律特征庫和音樂素材庫存儲裝置、標(biāo)準(zhǔn)旋律特征讀取和匹配檢索控制裝置、旋律分段位置檢測和移動匹配控制裝置、旋律分段匹配裝置、旋律匹配結(jié)果存儲裝置、旋律匹配檢索結(jié)果顯示裝置。
標(biāo)準(zhǔn)旋律特征讀取和匹配檢索控制裝置控制保存在旋律特征提取結(jié)果存儲裝置的輸入旋律的音符特征序列和保存在標(biāo)準(zhǔn)旋律特征庫和音樂素材庫存儲裝置中的整首標(biāo)準(zhǔn)旋律的音符特征序列的讀取及其匹配檢索進程;
旋律分段位置檢測和移動匹配控制裝置檢測樂曲標(biāo)準(zhǔn)旋律中表征各旋律分段位置的特征音符,標(biāo)準(zhǔn)旋律中每兩個特征音符間的音符特征序列即被定義為一個旋律特征分段;同時,控制輸入旋律片段與樂曲標(biāo)準(zhǔn)旋律中的各旋律分段進行匹配時的跨越式移動方式,以及輸出整首旋律匹配結(jié)果;旋律分段匹配裝置進行輸入旋律片段與樂曲標(biāo)準(zhǔn)旋律中某一旋律分段間的模式匹配,旋律分段的匹配結(jié)果將返回所述旋律分段位置檢測和移動匹配控制裝置的控制進程;旋律匹配結(jié)果存儲裝置在每一次與標(biāo)準(zhǔn)旋律模板文件匹配之后,將結(jié)果存儲在該存儲部中;旋律匹配檢索結(jié)果顯示裝置顯示基于輸入旋律片段的最終標(biāo)準(zhǔn)旋律匹配檢索的結(jié)果,包括與前N位匹配的樂曲旋律特征曲線的比較視圖及其相關(guān)樂曲的文本屬性;當(dāng)輸入旋律片段和樂曲標(biāo)準(zhǔn)旋律的音符序列由標(biāo)準(zhǔn)旋律特征讀取和匹配檢索控制裝置提交給旋律分段位置檢測和移動匹配控制裝置時,由其旋律分段位置檢測裝置部分先對標(biāo)準(zhǔn)旋律的音符序列進行旋律分段位置的檢測;然后,由其移動匹配控制裝置部分以當(dāng)前檢測到的旋律分段為單位進行跨越式移動匹配的控制,而不是按照音符移動單位將輸入旋律片段的音符序列沿著標(biāo)準(zhǔn)旋律的音符序列方向進行連續(xù)移動匹配的控制??缭绞揭苿又械妮斎胄善闻c標(biāo)準(zhǔn)旋律中的某一旋律分段的匹配則由旋律分段匹配裝置來完成。最后,由旋律分段位置檢測和移動匹配控制裝置根據(jù)旋律分段匹配裝置返回的各旋律分段匹配的結(jié)果從中選取出最高的旋律分段匹配得分,以此得分作為哼唱輸入旋律片段與當(dāng)前整首樂曲旋律的匹配結(jié)果并輸出至旋律匹配結(jié)果存儲裝置,以供旋律匹配檢索結(jié)果顯示裝置選擇。
所述的旋律特征由表征音符特征的(音高差、時間)矢量的序列來描述。其中,“音高差”指與前一個音符音高(基本頻率)的差值,以適應(yīng)不同旋律的起調(diào)和非特定人哼唱,并以半音(Semitone)為單位;“時間”指該音符的開始時刻,其表達(dá)了旋律的節(jié)奏特征。之所以選用音符起始時刻而非音符持續(xù)時間長度來作為表征旋律的節(jié)奏參數(shù),是考慮到用戶哼唱旋律時的節(jié)奏特征。用戶在進行哼唱時,一般比較容易把握音符的出現(xiàn)時刻,而對各個音符的持續(xù)長度不怎么敏感或差異較大。而若僅僅采用音高信息而忽略時間這一節(jié)奏信息,隨著音樂庫規(guī)模的擴大,匹配成功率勢必會隨之下滑,將變得越來越低。另外,考慮到單以音高信息為參數(shù)匹配的局限性,本發(fā)明選擇(音高差,時間)的矢量序列來描述旋律的特征。在進行輸入旋律片段的音符特征序列與整首樂曲旋律的標(biāo)準(zhǔn)音符特征序列的模式匹配時,不是像傳統(tǒng)的旋律移動匹配方式那樣,即按照音符移動單位將輸入旋律片段的音符序列沿著整首樂曲旋律的音符序列方向進行逐一連續(xù)移動匹配的控制,而是以檢測到的整首樂曲旋律中的各旋律分段的特征音符位置為匹配移動單位來實現(xiàn)跨越式移動匹配的控制,從而為實現(xiàn)大幅度提高基于內(nèi)容的音樂檢索匹配速度提供了一種切實可性的解決方法。
本發(fā)明所述的旋律分段位置檢測和移動匹配控制裝置,也可以由下述特征而構(gòu)成。即,為避免過多的無意義的分段,先由消除可忽略靜音段(等效于休止符)子裝置搜索標(biāo)準(zhǔn)旋律的音符特征序列,若查找到的音符長度小于某一預(yù)先設(shè)定的靜音段長度閾值則將該音符加以刪除,并將此段并入前一個音符的發(fā)音段。由于靜音段長度閾值一般設(shè)得較低(如八分音符長度),所以這種刪除在匹配檢索時對結(jié)果幾乎沒有影響。在刪除了可忽略的靜音段后,則再根據(jù)音符類別特征及其音符長度特征來對標(biāo)準(zhǔn)旋律中的每個音符進行檢測。特征音符類別分為定位類音符和休止類音符,對于這兩類音符均按其各自的音符長度是否超過事先所設(shè)定的特征音符閾值來確定該音符是否為分段特征音符。在整首標(biāo)準(zhǔn)旋律中每兩個特征音符間的音符特征序列即被定義為一個旋律特征分段。
在所述的旋律分段位置檢測和移動匹配控制裝置中,對于定位類特征音符的設(shè)定為其音符長度若大于或等于二分音符長時則將該音符確定為分段特征音符;對于休止類特征音符的設(shè)定為其音符長度若大于或等于八分音符長時則將該類音符確定為分段特征音符。然而,所述的基于特征音符進行旋律分段,其依據(jù)及其用于哼唱檢索的可行性是根據(jù)樂理基礎(chǔ)知識及對大量樂曲旋律進行統(tǒng)計分析與驗證的基礎(chǔ)上得出的。首先,對于整首旋律的可劃分位置,可考慮休止符位置為一種表征旋律分段特征的特征音符。但是,一般在主旋律中,休止符的數(shù)目并不是很多,僅考慮采用休止符作為旋律分段的切分位置勢必將造成旋律分段過長,從而沒有起到真正的分段作用。通過對大量樂曲旋律的音符特征分析,發(fā)現(xiàn)在樂曲,尤其歌曲中,連貫的旋律分段大都在二分音符/全音符處結(jié)束。之所以如此,這其中有一個意群的概念。意群是指一個具有相對獨立意義的詞組、短語或短句,任何的交流都是概念與概念的結(jié)合方式的交流。無概念的符號或聲音是無意義的,也就不能成為語言。在書面表達(dá)里任何句子、文章都是由基本概念以一定的方式結(jié)構(gòu)而成的。就如同我們?nèi)粘=涣饕话?,都是以一個一個完整的語句或者詞組出現(xiàn),而不會突然從一個詞組的中間開始交流,哼唱也是一樣,出于人們思維的慣式,拿某句歌詞“五千年的風(fēng)和雨”為例,哼唱人一般不會以“年的風(fēng)和”這樣的分段進行哼唱,因為這樣的分段不構(gòu)成一個獨立的意群,在樂曲中,對應(yīng)于一個個意群的多為一個個樂句,其間以較長的音符或休止符作為間隔的標(biāo)記,以換取主旋律的交替,演奏中的間歇,實際也是意群的轉(zhuǎn)變。所以本發(fā)明可以將這些特征音符所處的位置作為檢索匹配時跳躍匹配的基礎(chǔ)。
本發(fā)明所述的旋律分段匹配裝置,也可以由下述特征而構(gòu)成。為防止由于用戶哼唱片段在其起始部存在音符脫落現(xiàn)象而導(dǎo)致其與樂曲旋律分段匹配的失配,在進行旋律分段匹配時設(shè)有基于音符移動單位的旋律頭部容錯移動匹配控制機制。即在將輸入旋律片段與樂曲旋律的某一特征旋律分段進行匹配時,先進行各自旋律頭部對齊的線性伸縮匹配,然后將輸入旋律片段的旋律頭部沿著該樂曲旋律分段的音符序列方向向后移動一個音符再進行一次旋律頭部對齊的線性伸縮匹配,直至這種旋律頭部容錯移動到達(dá)所設(shè)定的移動范圍為止,并取其旋律頭部容錯移動匹配中的最高匹配得分作為該旋律分段的匹配輸出得分返回。在本發(fā)明中該容錯移動范圍設(shè)為2個音符長。
本發(fā)明所述的旋律匹配檢索結(jié)果顯示裝置,也可以由下述特征而構(gòu)成。即含有可供用戶選定的顯示輸入旋律片段音符特征序列與前N位中任意樂曲旋律分段的音符特征序列匹配效果的旋律特征曲線比較視圖生成機制。所述的旋律特征曲線,其橫軸為各音符的起始時間,縱軸為音高(半音(Semitone)單位),輸入旋律與樂曲旋律的特征曲線分別用不同的顏色來表示。樂曲旋律特征曲線中的特征音符,按其位置的音符圖形面積用涂色方式表示。用戶可根據(jù)所述的旋律特征曲線比較視圖,方便地瀏覽自己的發(fā)音特點并做出必要的分析評估。
在本發(fā)明應(yīng)用于大型的數(shù)字音樂數(shù)據(jù)庫后,對于音樂檢索的性能可得到明顯提高。按本發(fā)明而實施的基于哼唱輸入的音樂檢索系統(tǒng)的平均檢索時間要比傳統(tǒng)按照音符單位移動匹配檢索方式的檢索系統(tǒng)減少2/3左右,系統(tǒng)性能的改善效果非常顯著。
圖1為適用于本發(fā)明的實施例的音樂旋律跨越式高速匹配裝置的組成框圖。
圖2為適用于本發(fā)明的實施例的音樂旋律跨越式高速匹配處理的流程圖。
圖3A-圖3B為適用于本發(fā)明的實施例的音樂旋律跨越式高速匹配跨越移動方法的說明示意圖。
圖4A-圖4B為用于說明按本發(fā)明的實施例1進行的音樂旋律跨越式匹配過程中樂曲旋律分段特征檢測程序的圖。
圖5A-圖5D為用于說明按本發(fā)明的實施例2進行的音樂旋律跨越式匹配過程中跨越式移動匹配程序的圖。圖5E為第一個旋律分段只有3個音符,跳過不做匹配程序的圖。
具體實施例方式
如圖1所示,本發(fā)明包括旋律特征提取結(jié)果存儲裝置1、標(biāo)準(zhǔn)旋律特征庫和音樂素材庫存儲裝置2、標(biāo)準(zhǔn)旋律特征讀取和匹配檢索控制裝置3、旋律分段位置檢測和移動匹配控制裝置4、旋律分段匹配裝置5、旋律匹配結(jié)果存儲裝置6、旋律匹配檢索結(jié)果顯示裝置7。
標(biāo)準(zhǔn)旋律特征讀取和匹配檢索控制裝置3控制保存在旋律特征提取結(jié)果存儲裝置1的輸入旋律的音符特征序列和保存在標(biāo)準(zhǔn)旋律特征庫和音樂素材庫存儲裝置2中的整首標(biāo)準(zhǔn)旋律的音符特征序列的讀取及其匹配檢索進程;當(dāng)輸入旋律片段和樂曲標(biāo)準(zhǔn)旋律的音符序列由標(biāo)準(zhǔn)旋律特征讀取和匹配檢索控制裝置3提交給旋律分段位置檢測和移動匹配控制裝置4時,由其旋律分段位置檢測部分先對標(biāo)準(zhǔn)旋律的音符序列進行旋律分段位置的檢測。然后,由其移動匹配控制部分以當(dāng)前檢測到的旋律分段為單位進行跨越式移動匹配的控制,而不是按照音符移動單位將輸入旋律片段的音符序列沿著標(biāo)準(zhǔn)旋律的音符序列方向進行連續(xù)移動匹配的控制??缭绞揭苿又械妮斎胄善闻c標(biāo)準(zhǔn)旋律中的某一旋律分段的匹配則由旋律分段匹配裝置5來完成。最后,由旋律分段位置檢測和移動匹配控制裝置4根據(jù)旋律分段匹配裝置5返回的各旋律分段匹配的結(jié)果從中選取出最高的旋律分段匹配得分,以此得分作為哼唱輸入旋律片段與當(dāng)前整首樂曲旋律的匹配結(jié)果并輸出至旋律匹配結(jié)果存儲裝置6,以供旋律匹配檢索結(jié)果顯示裝置7選擇。
旋律特征提取結(jié)果存儲裝置1是用于使從輸入旋律信號提取出的旋律特征結(jié)果適當(dāng)?shù)卮鎯τ诖鎯ζ魃系墓ぷ鲄^(qū)的裝置。旋律特征結(jié)果中的音符特征序列信息為由該數(shù)字音樂旋律的跨越式高速匹配檢索裝置相關(guān)聯(lián)而設(shè)置的前級的預(yù)處理系統(tǒng)的音符特征矢量序列提取裝置得到的信息。標(biāo)準(zhǔn)旋律特征庫和音樂素材庫存儲裝置2是用于使預(yù)先制作及編制好的音樂素材集以及與其相對應(yīng)的標(biāo)準(zhǔn)旋律特征數(shù)據(jù)集適當(dāng)?shù)卮鎯τ诖鎯ζ魃系臄?shù)據(jù)庫區(qū)的裝置。利用后述的標(biāo)準(zhǔn)旋律特征讀取和匹配檢索控制裝置3讀取保存在旋律特征提取結(jié)果存儲裝置1的輸入旋律特征并將其依次與標(biāo)準(zhǔn)旋律特征庫中的旋律特征進行匹配,匹配的結(jié)果則由旋律匹配結(jié)果存儲裝置6適當(dāng)?shù)卮鎯τ诖鎯ζ魃系妮敵鰠^(qū),如此進行處理。這里的樂曲庫旋律特征序列,是指從相應(yīng)的樂曲素材數(shù)據(jù)文件中取出此文件的音符總數(shù),音符序列包括每個音符的音高(半音為單位),音長(tick為單位)和旋律節(jié)點標(biāo)志,存放在被稱為旋律模板文件的數(shù)據(jù)流文件中,并且在相關(guān)的旋律模板文件和音樂素材文件之間建立關(guān)聯(lián),使得檢索到模板文件序號(ID)的時候也可以得到相應(yīng)的真正的音樂文件。
標(biāo)準(zhǔn)旋律特征讀取和匹配檢索控制裝置3控制從模板文件中對音樂序列的讀取以及匹配檢索的控制。在讀取模板文件時,由于系統(tǒng)使用了旋律分段特征音符,在移動匹配的時候不是以音符為單位進行,而是以旋律分段為單位進行,這個裝置可以讀取音符的旋律標(biāo)志,由于模板文件數(shù)量較大,需要匹配檢索控制部來進行各個模板文件匹配過程的控制。
旋律分段位置檢測和移動匹配控制裝置4用于在單個旋律模板文件的音樂序列中檢測旋律分段的特征音符,在匹配移動的時候,由于系統(tǒng)使用了旋律分段特征音符,在移動匹配的時候不是以音符為單位進行,而是以旋律分段為單位進行,這個裝置可以搜索檢測到音符序列中的旋律特征音符,在完成一個旋律分段的兩次線性對齊算法后,就定位到下一旋律分段開始的音符處,移動匹配控制可以完成這一工作。
旋律分段匹配裝置5用于完成對于一個旋律分段的匹配過程,第1次為輸入旋律片段頭部與樂曲旋律分段頭部對齊下的K次線性對齊匹配,即考慮到用戶輸入音符有遺漏或是添加,而將輸入段與標(biāo)準(zhǔn)旋律分段在容錯匹配長度變化范圍內(nèi)的分段進行線性對齊匹配;而第2次是為了考慮用戶哼唱片段在其起始部存在音符脫落現(xiàn)象,而將輸入旋律片段的頭部延樂曲旋律分段音符序列方向向后移動一個音符,即相當(dāng)于將輸入旋律片段頭部與樂曲旋律分段頭部的下一個音符對齊下的K次線性對齊匹配。在本發(fā)明實施例中樂曲旋律分段的標(biāo)準(zhǔn)音符序列的容錯匹配長度P的變化范圍設(shè)為0.75N~1.33N,其中N為輸入音樂段的音符數(shù)。
旋律匹配結(jié)果存儲裝置6在每一次與標(biāo)準(zhǔn)旋律模板文件匹配之后,可以將結(jié)果存儲在該存儲部中,包括匹配的模板文件序號,匹配總相似度值,最佳匹配的旋律分段在該文件中的位置等,并且保留前N位的匹配結(jié)果用于輸出返回用戶,在實施例中N取10。
旋律匹配檢索結(jié)果顯示裝置7在得到哼唱輸入與標(biāo)準(zhǔn)旋律文件匹配前N位的計算結(jié)果后,可將模板文件序號對應(yīng)到真正的音樂文件,為用戶顯示前N位的結(jié)果包括哼唱輸入的文件名,匹配的排名,詳細(xì)的音樂文件名,匹配總相似度值,匹配的旋律分段在音樂文件中的位置等。
實施例1在圖1中依次從標(biāo)準(zhǔn)旋律特征庫和音樂素材庫存儲裝置2讀取的樂曲旋律的音符特征序列如圖4A所示(音樂旋律“莫斯科郊外的晚上”)。
圖中橫軸表示音符起始時間,其單位是MIDI(Musical Instrument DigitalInterface)文件中表示音符時間的特有單位TICK,而縱軸則表示音高,其單位是半音。圖中第十個音符、第十八個音符與最后一個音符即為本發(fā)明所定義的定位類旋律分段特征音符,而第二十八個音符則為休止類旋律分段特征音符。因此,只要能通過檢測手段檢測出這些特征音符,則即可將這些特征音符的標(biāo)志位置定為旋律分段特征音符,即一個音樂旋律分段的結(jié)束音符。在圖1中,這部分工作由旋律分段位置檢測和移動匹配控制裝置自動完成。即旋律分段位置檢測和移動匹配控制裝置4對表征旋律分段特征位置的特征音符的檢測是按其音符類別特征及其音符長度特征來進行的。表征分段特征的特征音符,其類別分為定位類特征音符和休止類特征音符,對于這兩類音符均按其各自的音符長度是否超過各自預(yù)先所設(shè)定的閾值來確定該音符是否為分段特征音符。在本實施例中對于定位類特征音符的設(shè)定為其音符長度若大于或等于二分音符長時則將該音符確定為分段特征音符;對于休止類特征音符的設(shè)定其音符長度若大于或等于八分音符長時則將該類音符確定為分段特征音符。在整首標(biāo)準(zhǔn)旋律中每兩個特征音符間的音符序列即被定義為一個旋律分段。如圖4B所示,圖4A所示的這段樂曲旋律就被檢測到4個特征音符并被分為四個旋律分段。
由旋律分段位置檢測和移動匹配控制裝置4在對休止類特征音符的進行檢測時,對小于八分音符的靜音段,將對其實施刪除合并操作,即,經(jīng)統(tǒng)計發(fā)現(xiàn),長度在八分音符以下的靜音段可忽略,此時會將前一個音符的結(jié)束時間延長至下一個音符的發(fā)音起始時刻為止。
經(jīng)過檢測標(biāo)注后,由旋律分段位置檢測和移動匹配控制裝置4在存儲器上的工作區(qū)內(nèi)可生成相應(yīng)的帶有旋律分段信息的音樂旋律特征模板數(shù)據(jù)文件,如下表所示。其中每個音符特征的數(shù)據(jù)結(jié)構(gòu)的第一字段表示與前一音符的音高差值,但是首音符在這一字段記錄的是絕對音高值,雖然在匹配時不使用絕對音高值,但這一首音符記錄方式對于計算重現(xiàn)描述旋律特征的音高曲線是必需的(如本實施例中的音高曲線);其第二字段記錄的是該音符用tick表示的音長,如果該音符為普通音符,就是正值,而如果該音符為分段特征音符,那么就在該音長特征值前加負(fù)號,特征音符的第三字段為可選標(biāo)注位,用于記錄該特征音符的實際發(fā)音時間,同樣也是用tick表示。如下表所示,只有當(dāng)音符為表征旋律分段的特征音符時,該音符的特征字段才會有3個字段,而不是所有音符都具有3個字段。
因此,由標(biāo)準(zhǔn)旋律特征提取和匹配檢索控制裝置3至旋律分段位置檢測和移動匹配控制裝置4在對輸入旋律片段與整首樂曲的標(biāo)準(zhǔn)旋律進行匹配時,若采用這種帶有檢測旋律分段特征音符的手段及能形成帶有旋律分段信息的標(biāo)準(zhǔn)旋律特征模板,就可以不按音符移動單位來將輸入旋律片段的音符序列沿著整首樂曲旋律的音符序列方向來進行連續(xù)移動匹配,而可以按照在每首樂曲旋律中預(yù)先檢測到的標(biāo)注的旋律分段為匹配移動單位來進行跨越式移動匹配(參照圖3),從而為實現(xiàn)大幅度提高基于內(nèi)容的音樂檢索匹配速度提供了一種切實可性的解決方法。
實施例2下面對實施例2進行說明。
設(shè)有一待檢索的哼唱輸入旋律分段,其經(jīng)過特征提取預(yù)處理(未圖示)而保存在旋律特征提取結(jié)果存儲裝置1中的輸入旋律分段的音符特征序列如圖5A所示。該輸入旋律分段的音符特征序列中音符特征的描述同圖4A(為了便于說明,以下圖中縱軸都使用絕對音高而不是與前一音符的音高差)。圖5B給出了圖4B所示的標(biāo)準(zhǔn)旋律的第一段旋律分段的音符特征序列,該旋律分段的判斷與截取處理由標(biāo)準(zhǔn)旋律特征提取和匹配檢索控制裝置3、旋律分段位置檢測和移動匹配控制裝置4進行。
下面敘述的本發(fā)明的跨越式高速匹配檢索,由旋律分段位置檢測和移動匹配控制裝置4先將檢索起始位置先設(shè)在首音符處,即將輸入旋律音符特征序列的首音符與標(biāo)準(zhǔn)旋律的音樂特征序列的第一個旋律分段的第一個音符對齊進行旋律分段的線性對齊匹配。為了防止非音樂專業(yè)人士在進行哼唱輸入時可能發(fā)生的首音符遺漏現(xiàn)象,本發(fā)明在線性對齊匹配一次后,向后移動一個音符,再進行第二次匹配,此時與無旋律分段標(biāo)注的線性對齊算法并無不同。而在結(jié)束兩次匹配之后,線性對齊算法會繼續(xù)向后移動一個音符即第三個音符作為起始位置進行下一次移動匹配,而本發(fā)明則會自動向后移動到下一旋律分段的首音符,即檢測到的本旋律分段的特征音符即結(jié)束位置,再向后一個音符即為下次移動匹配的起始位置。
圖5C給出了無旋律分段標(biāo)注的線性對齊算法的第三次匹配起始位置,而圖5D為本發(fā)明的第三次匹配起始位置。由圖5C和圖5D可見,本發(fā)明在匹配移動速度上大大優(yōu)于傳統(tǒng)的線性對齊算法。
在上述輸入旋律片段移動匹配的過程中,其與標(biāo)準(zhǔn)旋律分段的匹配是由旋律分段匹配裝置5完成的。并由旋律分段位置檢測和移動匹配控制裝置4判斷整首旋律的旋律分段標(biāo)注存在與否,直至輸入旋律片段與一個完整的旋律匹配完畢為止。
如圖2所示,在進行旋律分段的線性對齊匹配時,是以預(yù)先設(shè)定的樂曲旋律的音符特征序列匹配長度P將輸入旋律片段的音符特征序列作時間上的旋律頭部對齊線性伸縮變換,并在一定的誤差范圍內(nèi)對齊發(fā)聲時刻接近的音符并計算節(jié)奏相似度,直至該旋律分段內(nèi)P匹配范圍內(nèi)的K=αN次匹配操作完畢(圖3參照)。在本發(fā)明實施例中樂曲旋律分段的標(biāo)準(zhǔn)音符序列的節(jié)奏容錯匹配長度P的變化范圍(K)設(shè)為0.75N≤P≤1.33N(K=0.58N),其中,N為輸入旋律片段的音符數(shù)。如實施例1中的輸入段的音符數(shù)為8,那么如果標(biāo)準(zhǔn)旋律分段的長度小于6,那么可以認(rèn)為這兩段旋律分段無法進行伸縮變換,即可以跳過這個旋律分段而移動到下一個分段繼續(xù)匹配。如有標(biāo)準(zhǔn)旋律的音符特征序列(“新世紀(jì)福音戰(zhàn)士”),如圖5E所示。由圖5E可以觀察到第一個旋律分段只有3個音符,不符合此處輸入段長度的匹配范圍,所以可以忽略,跳過不做匹配。
在圖2中完成一個標(biāo)準(zhǔn)旋律的音符特征序列的跨越式檢索匹配計算后,在計算節(jié)奏性相似度(rhythm_score)時,是根據(jù)對齊的音符占總數(shù)的比例計算的。
因為音符只記錄了起始時間,造成最后一個音符的結(jié)束時刻無法確定。在本實例中,假設(shè)最后一個音符的長度為前面音符的平均值。
為計算音高相似度(pitch_score),兩個音的接近程度由sim函數(shù)來評估,考慮到用戶哼唱總是存在有一定的音高誤差,所以這個函數(shù)被設(shè)計成為能在一定范圍內(nèi)容忍誤差。
sim(x)=10<=x<10.51<=x<2-22<=x]]>
最后將節(jié)奏相似度和音高相似度相加,就得到兩段旋律近似程度的一個總評價。rhythm_score和pitch_score最高均為1.0,所以完全匹配的兩端旋律的score為2.0。本實例中輸入段較為清晰,預(yù)處理結(jié)果較好,在與“莫斯科郊外的晚上”匹配時得到的相似度就比較高,該匹配結(jié)果的rhythm_score和pitch_score分別為0.98和0.95,因此總的相似度有1.93,最佳匹配出現(xiàn)在該首樂曲旋律的第二個旋律分段。相對的,與其它標(biāo)準(zhǔn)旋律的音符特征序列的相似度就顯得較低,如與“新世紀(jì)福音戰(zhàn)士”的相似度分別為0.32和0.45,總的相似度只有0.77,表明兩段旋律匹配度不高。
如圖2所示,所得到當(dāng)前輸入旋律片段對于每一個標(biāo)準(zhǔn)旋律特征文件的匹配結(jié)果,將被保存到旋律匹配結(jié)果存儲裝置6中,其中包括了該標(biāo)準(zhǔn)旋律特征文件的序號、總相似度值、當(dāng)前文件的最佳匹配位置(起始音符序號,結(jié)束音符序號)。
對于實施例1中輸入的旋律分段,可以分別得到與標(biāo)準(zhǔn)旋律文件“莫斯科郊外的晚上”和“新世紀(jì)福音戰(zhàn)士”的特征文件進行匹配的結(jié)果
在圖2中由旋律匹配檢索結(jié)果顯示裝置7對保存在旋律匹配結(jié)果存儲裝置6中的輸入旋律片段與所有標(biāo)準(zhǔn)旋律特征文件的相似度進行排序,得到前N位得分高的標(biāo)準(zhǔn)旋律(ID)作為輸出結(jié)果,本實例中N取10作為默認(rèn)值,具體可由用戶設(shè)訂。
權(quán)利要求
1.一種數(shù)字音樂旋律的跨越式高速匹配裝置,包括旋律特征提取結(jié)果存儲裝置(1)、標(biāo)準(zhǔn)旋律特征庫和音樂素材庫存儲裝置(2)、旋律分段匹配裝置(5)、旋律匹配結(jié)果存儲裝置(6)、旋律匹配檢索結(jié)果顯示裝置(7),其特征在于,還包括標(biāo)準(zhǔn)旋律特征讀取和匹配檢索控制裝置(3)、旋律分段位置檢測和移動匹配控制裝置(4),標(biāo)準(zhǔn)旋律特征讀取和匹配檢索控制裝置(3)控制保存在旋律特征提取結(jié)果存儲裝置(1)的輸入旋律的音符特征序列和保存在標(biāo)準(zhǔn)旋律特征庫和音樂素材庫存儲裝置(2)中的整首標(biāo)準(zhǔn)旋律的音符特征序列的讀取及其匹配檢索進程;當(dāng)輸入旋律片段和樂曲標(biāo)準(zhǔn)旋律的音符序列由標(biāo)準(zhǔn)旋律特征讀取和匹配檢索控制裝置(3)提交給旋律分段位置檢測和移動匹配控制裝置(4)時,由其旋律分段位置檢測部分先對標(biāo)準(zhǔn)旋律的音符序列進行旋律分段位置的檢測;然后,由其移動匹配控制部分以當(dāng)前檢測到的旋律分段為單位進行跨越式移動匹配的控制,跨越式移動中的輸入旋律片段與標(biāo)準(zhǔn)旋律中的某一旋律分段的匹配則由旋律分段匹配裝置(5)來完成,最后,由旋律分段位置檢測和移動匹配控制裝置(4)根據(jù)旋律分段匹配裝置(5)返回的各旋律分段匹配的結(jié)果從中選取出最高的旋律分段匹配得分,以此得分作為哼唱輸入旋律片段與當(dāng)前整首樂曲旋律的匹配結(jié)果并輸出至旋律匹配結(jié)果存儲裝置(6),以供旋律匹配檢索結(jié)果顯示裝置(7)選擇。
2.根據(jù)權(quán)利要求1所述的數(shù)字音樂旋律的跨越式高速匹配裝置,其特征是,所述的標(biāo)準(zhǔn)旋律特征讀取和匹配檢索控制裝置(3),控制從模板文件中對音樂序列的讀取以及匹配檢索的控制,在讀取模板文件時,由于系統(tǒng)使用了旋律分段特征音符,在移動匹配的時候以旋律分段為單位進行,這個裝置讀取音符的旋律標(biāo)志,由于模板文件數(shù)量較大,匹配檢索控制部分進行各個模板文件匹配過程的控制。
3.根據(jù)權(quán)利要求1所述的數(shù)字音樂旋律的跨越式高速匹配裝置,其特征是,所述的旋律分段位置檢測和移動匹配控制裝置(4),檢測樂曲標(biāo)準(zhǔn)旋律中表征各旋律分段位置的特征音符,標(biāo)準(zhǔn)旋律中每兩個特征音符間的音符特征序列即被定義為一個旋律特征分段;旋律分段位置檢測和移動匹配控制裝置(4)還控制輸入旋律片段與樂曲標(biāo)準(zhǔn)旋律中的各旋律分段進行匹配時的跨越式移動方式,以及輸出整首旋律匹配結(jié)果。
4.根據(jù)權(quán)利要求1或者2所述的數(shù)字音樂旋律的跨越式高速匹配裝置,其特征是,所述的旋律分段位置檢測和移動匹配控制裝置(4),為避免過多的無意義的分段,先由消除可忽略靜音段子裝置搜索標(biāo)準(zhǔn)旋律的音符特征序列,若查找到的音符長度小于某一預(yù)先設(shè)定的靜音段長度閾值則將該音符加以刪除,并將此段并入前一個音符的發(fā)音段;在刪除了可忽略的靜音段后,再根據(jù)音符類別特征及其音符長度特征來對標(biāo)準(zhǔn)旋律中的每個音符進行檢測,特征音符類別分為定位類音符和休止類音符,對于這兩類音符均按其各自的音符長度是否超過事先所設(shè)定的特征音符閾值來確定該音符是否為分段特征音符,在整首標(biāo)準(zhǔn)旋律中每兩個特征音符間的音符特征序列即被定義為一個旋律特征分段。
5.根據(jù)權(quán)利要求1或者2所述的數(shù)字音樂旋律的跨越式高速匹配裝置,其特征是,所述的旋律分段位置檢測和移動匹配控制裝置(4)中,對于定位類特征音符的設(shè)定為其音符長度若大于或等于二分音符長時則將該音符確定為分段特征音符;對于休止類特征音符的設(shè)定為其音符長度若大于或等于八分音符長時則將該類音符確定為分段特征音符。
6.根據(jù)權(quán)利要求1所述的數(shù)字音樂旋律的跨越式高速匹配裝置,其特征是,所述的旋律分段匹配裝置(5),進行輸入旋律片段與樂曲標(biāo)準(zhǔn)旋律中某一旋律分段間的模式匹配,在將輸入旋律片段與樂曲旋律的某一特征旋律分段進行匹配時,先進行各自旋律頭部對齊的線性伸縮匹配,然后將輸入旋律片段的旋律頭部沿著該樂曲旋律分段的音符序列方向向后移動一個音符再進行一次旋律頭部對齊的線性伸縮匹配,直至這種旋律頭部容錯移動到達(dá)所設(shè)定的移動范圍為止,并取其旋律頭部容錯移動匹配中的最高匹配得分作為該旋律分段的匹配輸出得分返回,該容錯移動范圍設(shè)為2個音符長,旋律分段的匹配結(jié)果將返回所述旋律分段位置檢測和移動匹配控制裝置(4)的控制進程。
7.根據(jù)權(quán)利要求1或者6所述的數(shù)字音樂旋律的跨越式高速匹配裝置,其特征是,旋律分段匹配裝置(5),完成對于一個旋律分段的匹配過程,第一次為輸入旋律片段頭部與樂曲旋律分段頭部對齊下的K次線性對齊匹配,即考慮到用戶輸入音符有遺漏或是添加,而將輸入段與標(biāo)準(zhǔn)旋律分段在容錯匹配長度變化范圍內(nèi)的分段進行線性對齊匹配;而第二次是為了考慮用戶哼唱片段在其起始部存在音符脫落現(xiàn)象,而將輸入旋律片段的頭部延樂曲旋律分段音符序列方向向后移動一個音符,即相當(dāng)于將輸入旋律片段頭部與樂曲旋律分段頭部的下一個音符對齊下的K次線性對齊匹配,樂曲旋律分段的標(biāo)準(zhǔn)音符序列的容錯匹配長度P的變化范圍設(shè)為0.75N~1.33N,其中N為輸入音樂段的音符數(shù)。
8.根據(jù)權(quán)利要求1所述的數(shù)字音樂旋律的跨越式高速匹配裝置,其特征是,所述的旋律匹配結(jié)果存儲裝置(6),在每一次與標(biāo)準(zhǔn)旋律模板文件匹配之后,將結(jié)果存儲在該存儲部中,包括匹配的模板文件序號、匹配總相似度值、最佳匹配的旋律分段在該文件中的位置,并且保留前N位的匹配結(jié)果用于輸出返回用戶。
9.根據(jù)權(quán)利要求1所述的數(shù)字音樂旋律的跨越式高速匹配裝置,其特征是,所述的旋律匹配檢索結(jié)果顯示裝置(7),顯示基于輸入旋律片段的最終標(biāo)準(zhǔn)旋律匹配檢索的結(jié)果,包括與前N位匹配的樂曲旋律特征曲線的比較視圖及其相關(guān)樂曲的文本屬性,具體為哼唱輸入的文件名、匹配的排名、詳細(xì)的音樂文件名、匹配總相似度值、匹配的旋律分段在音樂文件中的位置。
10.根據(jù)權(quán)利要求1所述的數(shù)字音樂旋律的跨越式高速匹配裝置,其特征是,所述的旋律特征,由表征音符特征的音高差、時間矢量的序列來描述,其中,“音高差”指與前一個音符頻率的差值,以適應(yīng)旋律的起調(diào)和非特定人哼唱,并以半音為單位;“時間”指該音符的開始時刻,其表達(dá)了旋律的節(jié)奏特征。
全文摘要
一種計算機應(yīng)用技術(shù)領(lǐng)域的數(shù)字音樂旋律的跨越式高速匹配裝置。輸入的音符序列由標(biāo)準(zhǔn)旋律特征讀取和匹配檢索控制裝置提交給旋律分段位置檢測和移動匹配控制裝置,先對標(biāo)準(zhǔn)旋律的音符序列進行旋律分段位置的檢測,再進行跨越式移動匹配的控制,輸入旋律片段與標(biāo)準(zhǔn)旋律的旋律分段的匹配由旋律分段匹配裝置完成,并將結(jié)果返回旋律分段位置檢測和移動匹配控制裝置,從結(jié)果中選出最高匹配得分,以此作為哼唱輸入旋律片段與當(dāng)前整首樂曲旋律的匹配結(jié)果并輸出至旋律匹配結(jié)果存儲裝置,供旋律匹配檢索結(jié)果顯示裝置選擇。本發(fā)明保持對用戶哼唱輸入的容錯性的同時,大幅度提高對哼唱輸入的匹配檢索速度。
文檔編號G06F17/30GK1752970SQ20051002949
公開日2006年3月29日 申請日期2005年9月8日 優(yōu)先權(quán)日2005年9月8日
發(fā)明者吳亞棟, 趙芳 申請人:上海交通大學(xué)