華斌,尹文慧,張奕林
天津財經大學信息科學與技術系,天津 300222
基于哼唱的音樂檢索應用系統
華斌,尹文慧,張奕林
天津財經大學信息科學與技術系,天津 300222
用哼唱檢索音樂能夠讓用戶尋找到他僅僅只知道旋律的部分音調的一首歌。用戶只是簡單地通過電腦的麥克風哼唱出這段音調,然后系統通過查詢包括這段音調的歌曲旋律數據庫,返回一個查詢結果的相關歌曲列表。這種查找方式相比于文本查找(曲名、演唱者等)更自然,也更方便,擁有很大的商業發展潛力,成為近年來很多人研究的熱點[1-3]。
Ghias最早研究哼唱檢索[4]。他提出的方案是用三個符號U(升高)、R(不變)、D(降低)表示旋律相鄰兩個音符的音高變化。然后應用近似字符串匹配方法來比較兩段旋律的相似度。然而這種描述旋律信息的方法相對簡略,在辨識度上也不太理想。Kosugi[5]等采用把音高和節奏信息結合的旋律表示方法,可以適應大型樂曲庫的檢索。但是該系統要求用戶必須伴隨一個節拍器哼唱,使用起來不方便。Shih等在QBH系統中使用了隱馬爾科夫模型(HMM)比較哼唱旋律和目標歌曲的相似度,實驗表明該方法對音高不準比較敏感,但是對節奏上的哼唱誤差有較高的容忍度。臺灣清華大學在哼唱檢索系統中采用DTW和Line Scaling多級匹配算法,但由于DTW,Line Scaling直接使用基頻曲線進行匹配,系統的檢索速度較慢。
因此如何有效地利用旋律音高和音長特征進行高效檢索,是人們進一步研究的方向。針對此問題,本文提出了一種改進的動態時間彎折(Dynamic Time Warping,DTW)算法,引入音長差序列的余弦相似度,將旋律音高和音長同時進行平移,并在此基礎上實現了一個哼唱音樂檢索系統的原型。另外,有效地提取哼唱旋律的基頻也是檢索系統的關鍵步驟,系統模型中采用了差分Mel倒譜法獲得幀的基頻達到了較好的效果。
2.1 哼唱片段預處理
音頻信號屬于“短時平穩過程”每一幀信號視為平穩過程,即統計特性平穩,所以哼唱聲音信號處理全過程一般都使用短時處理技術。為了更好地提取哼唱信號的旋律信息,在對哼唱片段進行分析前要進行預處理,包括哼唱旋律的預濾波、預加重、加窗和分幀及語音增強等。下面主要介紹本系統中分幀加窗和語音增強技術。
(1)分幀和加窗
分幀就是把哼唱片段分成一幀一幀的短時信號。一般采用交疊分段的方法,這樣可以使幀與幀之間較好保持連續性,因為后一幀都保留了前一幀的部分信息。把前一幀和后一幀的交疊部分稱為幀移,幀移與幀長的比值一般取0~0.5。本系統采樣頻率為11 kHz,考慮頻率分辨率和時間分辨率的平衡,采用256位的幀長,128位的幀移。因為傅里葉變換對應的是無限信號,信號經過分幀后變成有限信號,分幀的信號再進行傅里葉變換后,高頻部分將有“泄露”,所以要進行加窗處理。窗函數有很多種,如矩形窗、漢寧窗、漢明窗等,各自有其優缺點,本系統采用漢明窗,可以較好的保留波形細節。漢明窗函數為:

(2)語音增強
“這驢肉不比西市胡姬酒肆中的差啊!聽說萬花谷滿山滿谷都種著花,長著草,養得牛羊滿山遍野,野豬成群結隊,是一個可以天天吃肉的地方。有一個由六詔來的小丫頭,會用花瓣釀‘百花酒’,唉喲喂,老子想到這個,肚里的酒蟲就一拱一拱的往喉嚨里躥!”左邊桌子上一個滿臉胡子的大叔在朝著他身邊的幾個兄弟嚷嚷,由他腿邊包袱里露出來的泥刀與灰板來看,他們多半是長安匠作行里出來覓活的師傅吧!
用戶哼唱的聲音信號不可避免地含有噪聲,嚴重的會影響哼唱信號的質量。另外信號在傳輸過程中也會產生各種噪聲[6]。噪聲分為加性和非加性的。加性噪聲一般有寬帶噪聲、周期噪聲和語音干擾等,非加性噪聲一般是輸入殘響和傳輸過程中的電路噪聲,其中非加性噪聲可以通過一些技術如同態濾波轉為加性噪聲。目前語音增強能從攜帶噪聲的語音信號中獲得較純凈的語音信號,是解決噪聲污染比較有效的方法。語音增強技術一般采用濾波法、自相關抗噪法、減譜法、中心消波法等。本系統采用減譜法。如圖1為哼唱原始信號波形圖(a)和經過預處理降噪之后的信號波形圖(b),可以看出比較好的去噪效果。

圖1 原始信號和預處理后信號對比圖
2.2 基頻提取和切分音符
系統采用了速度較快的差分Mel倒譜法得到基音頻率MFCC并轉換為幀的半音高,采用兩級切分音符的方法將音符分割,然后將幀音高加權處理得到每個音符的音高。旋律特征提取步驟如圖2所示。

圖2 旋律特征提取過程
在圖2所示的特征提取過程中,經過離散余弦變換(DCT)后得到每一幀的倒譜參數c(n),提取過程如公式(2)所示[7]:

其中0≤n<M,n為所取的MFCC個數;c(n)為第n個MFCC系數;M為三角濾波器個數;S(m)為聲音信號的對數能量;本系統中M取24,n取12。
Mel倒譜充分模擬了人耳的聽覺特性,根據聲音的性質,將頻譜轉化為基于Mel頻標的非線性頻譜,最后變換到倒譜域上。由于沒有任何前提假設,因此MFCC系數擁有較好的分辨率。然而傳統標準的MFCC系數僅僅反映了語音特性的靜態參數,缺少動態特性的描述,因此采用了多個參數特征組合方式來更有效地表征說話人的特征。系統中采用了一階差分倒譜參數來描述動態特性,差分參數的表達式[8]為:

其中c(n)為已得出的MFCC系數,k是常數,根據經驗取2。
這樣提取到更精確的基頻特征參數。基頻f提取出來后,利用半音轉換公式Semitone(半音)=69+12× lb(f/440),可以把每幀音高的頻率都轉換為半音單位來表示。通常一個音符要包含連續的X幀,通過上述方法得到幀的音高后,系統采用了一種加權求特征值的方法來獲得一個音符的音高值。原理如下:已知一個音符由x幀組成,幀音高序列為{H1,H2,…,Hx}。定義每幀的權重值為:Wi=1–cos(2∏×i/(x+1)),1≤i≤x。然后將具有相同幀音高值權重累加,所得值最大就是這個音符的音高值。考慮到哼唱旋律音符的能量分布是中間高兩端低,因此權重函數設計效果為中間加強而兩端減弱。
3.1 動態時間彎折(DTW)
DTW(Dynamic Time Warping,動態時間彎折)算法,是一種在一定路徑的限制下,尋找最優化路徑的方法,是動態規劃理論在哼唱檢索領域最常用的方法[12-14],本文將DTW作為旋律匹配的核心模塊。在DTW中,路徑方式和代價函數的選取對DTW的性能起著重要的作用,本文選取的路徑方式如圖3所示。

圖3 DTW算法—3條路徑
則DTW算法可表示為:

其中,D(i,j)表示哼唱旋律的第i幀與模板旋律的第j幀之間的最小距離,d(i,j)為哼唱旋律的第i幀與模板旋律的第j幀之間的距離。
3.2 改進的DTW算法
傳統的DTW算法只計算旋律特征的音高系數,忽略了旋律特征的音長部分。如圖4所示,兩邊所表達的旋律特征音高部分相同,而音長卻不同,但通過DTW算法計算結果是一樣的。
如何將音長特征引入到DTW算法中,有學者做了研究[15],將音長直接與音高相加,但音高和音長的特征從本質來說是不同的,因此本文對引入方式進行了改進。

圖4 音高相同、音長不同的旋律對比圖
首先記錄目標旋律的音長差序列{R1,R2,…,Rn},哼唱片段旋律的音長差序列{Q1,Q2,…,Qn}。兩者的余弦相似度D′為:

考慮到余弦相似度的特點,為了修正類似向量(1,2)、(4,5)的余弦相似度過高這種不合理的情況,需要在各維度減去一個均值。這里采用模板旋律和哼唱旋律的音長差均值,即引入:

最后通過對基因音高差的DTW相似度距離和音長相似度加權求和,得到

本文實現的哼唱檢索系統的整體工作框架如圖5所示。

圖5 基于哼唱的音樂檢索應用系統框架圖
系統包括三個主要模塊,分別為哼唱旋律特征提取、MIDI音樂索引模塊庫建立和近似旋律匹配模塊。用戶通過麥克風等輸入設備進行哼唱采樣,將哼唱片段預處理、去噪后進行特征提取,得到哼唱片段的旋律信息(音高和音長);MIDI格式的文件易于提取音高、音長等旋律特征信息,因此被廣泛用于現有的哼唱檢索系統中[16],本系統即是在MIDI格式的歌曲數據庫中進行特征提取后建立音樂模板庫;當用戶哼唱輸入完成后,系統將提取的旋律信息與音樂模板庫中模板片段進行匹配,然后將按照匹配程度從高到低用列表方式顯示給用戶。系統原型如圖6所示。

圖6 基于哼唱的音樂檢索應用系統原型
系統采用的歌曲數據庫來自網絡搜集的MIDI格式音樂文件,單音軌模式,共340首歌曲;實驗哼唱片段要求用戶采用“Da”聲哼唱,其中采集參數如下:采樣頻率為11 025 Hz,單聲道采樣,量化位數為8位。這種方式的特點是音符之間會留出低能量間隔,系統通過判斷信號能量隨時間的變化,能夠更精確地進行音符劃分。
實驗中,請到了來自實驗室同學和老師共12名實驗者,哼唱水平都為普通水平。其中女生6名,男生6名,實驗者的年齡分布情況為20~30歲男女各3名,40~50歲男女各3名。分別哼唱10次不同歌曲,共120個哼唱片段,哼唱時間要求為10~15 s。如圖7所示為采用本系統改進的DTW算法下的不同性別和不同年齡段的實驗者的歌曲命中率前三位、前十位、前二十位的比較。根據實驗結果可知,該算法對性別和年齡的影響很小,證明該算法對音頻變化和音高變化有比較好的容忍性。為比較新算法的效果,分別針對BF算法、KMP算法、傳統的DTW算法、音高音長直接相加改進的DTW算法(以下記作DTW改進一)、基于幀的改進DTW算法(以下記作:DTW改進二)和本文改進的DTW算法進行了測試,測試結果如表1所示。表1列出了120個哼唱片段在六種匹配算法下的目標歌曲排名前三位、前10位和前20位的命中率及運行時間比例結果。

圖7 分類統計實驗者在改進DTW算法下的歌曲命中數

表1 六種匹配算法的實驗結果對比
根據表1可知,DTW算法相比BF算法和KMP算法的準確率和效率都有顯著優勢。而將音高與音長直接相加的改進效果不明顯,基于幀的改進DTW算法,由于避免了音符切割,在準確度上較本文的改進的算法有提高,但是用時是本文的三倍,這在大數據集上是行不通的。本文經過改進的動態時間彎折算法在速度和精度上都有提高,雖然在命中率上的提高微小,但是經過改進的DTW算法用時有了顯著減少,系統性能顯著提高。這對以后在大規模數據庫上應用檢索提供了可行方案。
本文給出了一個基于哼唱的音樂檢索應用系統模型。在哼唱旋律特征提取部分,采用了差分Mel倒譜法提取幀的基頻后加權處理得到音符的音高;在旋律匹配部分,用經典的動態時間彎折法引入音長信息,根據哼唱片段音高和音長提取的精確度不同,提出音高和音長比加不同權重處理,經過試驗表明,該算法可以有效提高系統的精度和運行時間。但是本系統目前仍然是實驗系統,在去除噪聲處理方面和搜索效率上還有很多待完善的地方,同時會繼續研究更自然的哼唱方式不局限用爆破音哼唱,并研究在不同格式數據庫中的算法改進以進一步提高系統的精確性和魯棒性。
[1]郭敏,劉加.一個基于哼唱的歌曲檢索系統[J].語音技術,2009,33(12):63-64.
[2]Merrett T H.Query by Humming[J].[S.l.]:McGill University,2009.
[3]Chen B,Jang J S R.Query by singing[C]//Proceedings of 11th IPPR Conference on Computer Vision,Graphics,and Image Processing(CVGIP 1998),1998:529-536.
[4]Ghias A,Logan J,Chamberlain D,et al.Query by humming musical information retrieval in an audio database[C]// Proceedings of the 3rd ACM International Conference onMultimedia.SanFrancisco,California,USA:ACM Press,1995.
[5]Kosugi N,Nishihara Y,Sakata T,et al.A practical queryby-humming system for a large music database[C]//Proc ACM International Conference on Multimedia,California,2000.
[6]焦志平,張雪英,趙姝彥.一種基于聽覺模型的抗噪語音去噪方法[J].應用科技,2005(4).
[7]張震,王化清.語音信號特征提取中Mel倒譜系MFCC的改進算法[J].計算機工程與應用,2008,44(22):54-57.
[8]吳斌,沈廷根,宋雪樺,等.基于噪聲環境下的MFCC特征提取[J].微計算機信息,2008,24(1):224-226.
[9]李揚,吳亞棟,劉寶龍.一種新的近似旋律匹配方法及其在哼唱檢索系統中的應用[J].計算機研究與發展,2003,40(11):1554-1560.
[10]錢屹,侯義斌.一種快速的字符串匹配算法[J].小型微型計算機系統,2004(4):410-413.
[11]李雪瑩,劉寶旭,許榕生.字符串匹配技術研究[J].計算機工程,2004(11):24-26.
[12]劉志強.基于DTW的哼唱識別系統的研制[J].信息與電腦,2009(12):25-26.
[13]金毅,黃敏.基于旋律的音樂檢索[J].情報學報,2003,22(3):297-301.
[14]李明.基于哼唱的音樂檢索研究[D].北京:中國科學院聲學研究所,2005.
[15]羅凱,魏維,謝青松.哼唱檢索中改進的動態時間規整算法[J].計算機工程,2008,10(34):69-73.
[16]郭敏,張衛強,劉加.一種基于幀-音符方式的哼唱檢索算法[J].清華大學學報:自然科學版,2011,51(4):561-565.
HUA Bin,YIN Wenhui,ZHANG Yilin
Department of Information Science and Technology,Tianjin University of Finance and Economics,Tianjin 300222,China
Through analyzing the humming melodies pitch extraction and retrieval algorithm,a complete system framework of Query By Humming(QBH)is proposed.It includes the melody feature extraction and approximate melody matching in MIDI music database.The Mel Frequency Cepstral Coefficients(MFCC)is extracted.Through analyzing the theory of DTW algorithm,the cosine similarity of the delta duration sequence is added with the characteristics of the sound for performance improvement of the system.Experiments are conducted in a test set of 340 MIDI songs.The system gets a success rate of top-3 increased by 3.7%and a 16%time reduction.
query by humming;pitch track;melody match;dynamic time wrapping
通過研究哼唱旋律基頻提取和檢索算法,給出了一個完整的基于哼唱的音樂檢索系統框架。系統主要分析了旋律特征提取和近似旋律匹配部分。旋律特征提取部分采用基于差分Mel倒譜法求基頻;旋律匹配部分對經典的動態時間彎折算法原理分析后,根據聲音特征引入音長差序列的余弦相似度,提高了檢索效率和精度。在340首MIDI歌曲的測試集上,前三位識別效率提高3.7%,用時降低16%,系統的性能有明顯改善。
哼唱檢索;基頻提取;旋律匹配;動態時間彎折
A
TP391.3
10.3778/j.issn.1002-8331.1212-0357
HUA Bin,YIN Wenhui,ZHANG Yilin.Music retrieval system based on query by humming.Computer Engineering and Applications,2014,50(22):141-144.
華斌(1963—),男,博士,教授,主要研究領域為多媒體處理、計算機仿真、決策支持系統、管理信息系統、創新管理;尹文慧(1987—),女,碩士研究生;張奕林(1987—),男,碩士研究生。E-mail:yin12803@163.com
2012-12-29
2013-05-02
1002-8331(2014)22-0141-04
CNKI網絡優先出版:2013-05-24,http://www.cnki.net/kcms/detail/11.2127.TP.20130524.1509.003.html