[發(fā)明專利]基于音頻指紋特征的音樂檢索系統(tǒng)有效
| 申請?zhí)枺?/td> | 201310378000.0 | 申請日: | 2013-08-27 |
| 公開(公告)號: | CN103440313B | 公開(公告)日: | 2018-10-16 |
| 發(fā)明(設(shè)計)人: | 俞鵬飛;楊夙 | 申請(專利權(quán))人: | 復(fù)旦大學(xué) |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 上海正旦專利代理有限公司 31200 | 代理人: | 陸飛;盛志范 |
| 地址: | 200433 *** | 國省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 音頻 指紋 特征 音樂 檢索系統(tǒng) | ||
1.一種基于音頻指紋特征的音樂檢索系統(tǒng),其特征在于包括預(yù)處理模塊,特征提取模塊,倒排索引模塊和精匹配模塊四個部分;其中:
所述的預(yù)處理模塊,用于音頻文件格式統(tǒng)一,音頻重采樣和音頻濾波;
所述的特征提取模塊,用于對音樂文件的結(jié)構(gòu)化表示,采用基于動態(tài)閾值的音樂指紋特征;首先對歌曲序列進(jìn)行分幀,對每幀進(jìn)行快速傅里葉變換,處理完所有幀,得到頻譜矩陣;接著,對頻譜矩陣進(jìn)行平滑處理;然后,在矩陣中選取極值點,并根據(jù)動態(tài)閾值對這些點進(jìn)行兩次篩選,取大于閾值的點作為特征點;最后,用一個點對表示一個特征,并經(jīng)哈希函數(shù)變換,輸出一個哈希值為一個特征;對于每個特征點,在其后續(xù)頻段的鄰近區(qū)域內(nèi),選取最多P個最近鄰的特征點與該特征點一一組成特征;所有特征按幀的先后順序和首次特征點篩選順序組成一維特征序列;
所述的倒排索引模塊,用于系統(tǒng)的初次檢索,以一個特征作為一個關(guān)鍵詞,對數(shù)據(jù)庫中的每首歌曲的特征建立倒排索引表;當(dāng)查詢時,通過倒排索引表統(tǒng)計查詢片段每個關(guān)鍵詞在各歌曲中出現(xiàn)的次數(shù),并將所有關(guān)鍵詞在各個歌曲中出現(xiàn)的次數(shù)求和,然后對求和的結(jié)果進(jìn)行排序,排序結(jié)果所對應(yīng)的歌曲作為初次檢索結(jié)果;
所述的精匹配模塊,用于系統(tǒng)的二次檢索,先根據(jù)初次檢索返回的結(jié)果選定候選歌曲,接著讀取各候選歌曲的特征序列,并對特征序列按查詢特征序列長度進(jìn)行分段,對每首歌曲篩選出最為相似的Q個特征序列片段,即其與查詢特征序列具有最多的相同特征個數(shù);然后,對這Q個片段與查詢特征序列進(jìn)行改進(jìn)的編輯距離計算,取最小的編輯距離作為該歌曲片段與查詢片段的相似度;最后,根據(jù)相似度對候選歌曲進(jìn)行排序,得到最終的檢索排名;
在特征提取模塊中,所述的采用基于動態(tài)閾值的音樂指紋特征,具體實現(xiàn)過程為:首先,對音頻序列X={x1,x2,…,xL}進(jìn)行分幀,L為音頻序列長度,幀之間有較高的重疊率,共分成M幀;接著,對每一幀進(jìn)行N點快速傅里葉變換,處理完所有幀后,得到N*M維的頻譜矩陣S,并對頻譜矩陣S=[Si,j|i=1,2,…,N;j=1,2,…,M]進(jìn)行平滑處理,平滑計算公式如下:
Si,j=log10(max(abs(Si,j),e-5))i=1,2,...,N,j=1,2,...,M (1)
其中abs()為取模運算,然后,在S中選取極大值點,即Si,j>Si,j-1且Si,j>Si,j+1,作為特征點,并根據(jù)閾值對特征點進(jìn)行兩次篩選;用N維向量thresh表示頻譜中各頻段的閾值,在S矩陣中,取開始R幀各頻段的最大值來初始化對應(yīng)頻段的閾值;初次篩選:順序掃描所有特征點,若該點值大于對應(yīng)維度的閾值,則保留該特征點,否則刪除該特征點,同時按以下公式更新閾值向量thresh:
第二次篩選:從最后一個特征點開始,逆序掃描所有保留的特征點,按與上述相同規(guī)則篩選特征點和更新閾值;最后,用一個點對來表示一個特征,對于每一個特征點,用它分別與其后續(xù)頻段的鄰近區(qū)域的每個特征點組成一個特征;當(dāng)鄰近區(qū)域內(nèi)特征點較多時,選取與它最相鄰的P個點與該特征點一一組成特征,并按第一次篩選順序逐個表示這些特征點,處理完所有幀得到一維特征序列;
所述的倒排索引模塊由兩部分組成,一部分為字典,字典由詞項組成,所有哈希值相同的特征組成一個詞項;另一部分是倒排索引表,其中,每一個詞項都對應(yīng)一個屬于自己的“倒排鏈表”,該表記錄了包含該詞項的歌曲編號或者歌曲片段編號;
所述的精匹配模塊,采用多個步驟實現(xiàn)精匹配,首先,根據(jù)初次檢索返回的結(jié)果,尋找一“拐點”,假定倒排索引表返回的第i首歌曲中與查詢片段具有的相同特征個數(shù)之和為numi,如果存在一點K,使得:
則認(rèn)為該點為“拐點”,目標(biāo)歌曲就在這前K個候選歌曲片段中;接著,讀取前K個候選歌曲片段的特征序列,對這些序列進(jìn)行分段,找出最為相似的Q個片段,它們與查詢序列具有最多的相同特征個數(shù);然后,將這Q個片段與查詢特征序列進(jìn)行改進(jìn)的編輯距離計算,把最小距離的片段作為與查詢序列最相似的片段,并取最小距離作為與該候選歌曲片段的相似度;設(shè)查詢特征序列A={A[1],A[2],…,A[m]},比較的特征序列B={B[1],B[2],...,B[n]},長度分別為m和n,距離矩陣d={d[i,j]=0|i=1,2,…,m;j=1,2,…,n},d[i,j]為子序列A[1…i]和B[1…j]的距離,改進(jìn)的編輯距離算法步驟如下:
(1)初始化距離矩陣d,讀入特征序列A和B;
(2)循環(huán)遍歷特征序列A,逐次取數(shù)A[i],依次執(zhí)行操作步驟(3)、(4)、(5);
(3)循環(huán)遍歷特征序列B,逐次取數(shù)B[j],依次執(zhí)行操作步驟(4)、(5);
(4)計算代價cost,如果數(shù)A[i]與數(shù)B[j]相等或只有1位(bit)不同,cost為0,否則為1,如公式:
cost=min((A[i]^B[j])&((A[i]^B[j])-1),1) (5)
其中,^為位異或運算,&為位與運算;
(5)調(diào)整距離矩陣,計算出當(dāng)前最小距離d[i,j],公式如下:
d[i,j]=min(d[i-1,j]+1,d[i,j-1]+1,d[i-1,j-1]+cost) (6)
(6)d[m,n]即為改進(jìn)的編輯距離。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于復(fù)旦大學(xué),未經(jīng)復(fù)旦大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310378000.0/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





