一種音高檢測方法
【專利摘要】本發明請求保護一種音高檢測方法。它針對基于內容的音樂檢索中音高檢測技術較差問題進行了研究。先將信號利用傅里葉變換將音樂信號轉換到頻域上進行計算,根據諧波峰值法對信號進行音高檢測的第一步,即找到5個較低頻率的諧波峰,并按其頻率大小升序排列,之后計算各頻率之間的比值,根據實驗所測得的數據確定一組音高候選序列,再采用倒譜法對原有的音樂信號進行音高檢測,將兩種方法所得到的音高序列組合成一個新的音高候選序列,最后利用置信度和維特比最優算法,尋找最小代價對應的音高,即為本方法獲得的標準音高。本發明具有很好的魯棒性,抗噪性能好。
【專利說明】一種音高檢測方法
【技術領域】
[0001]本發明涉及音頻信號處理,具體為一種純音樂信號在不同噪聲環境下的音高檢測方法。
【背景技術】
[0002]音樂中音符音調的高低情況稱之為音高,音高是由本征頻率,即基頻所決定,且與頻率成反比關系。音高是描述音樂的一個重要參數,在哼唱檢索、音樂識別及音樂分離等領域起到關鍵作用。能否快速且準確的檢測出音高,直接影響了相關系統的各項性能。
[0003]隨著互聯網和數字音樂的發展,人們接觸音樂的途徑越來越多,如何快速且準確的找到自己想要的音樂是目前許多相關公司和用戶所面臨的一大難題。現有的音樂檢索特征提取算法,主要方向都離不開準確音高這一顯著特征。原因主要是易于接觸的音頻格式的音樂沒有像MIDI音樂那樣可直接利用的音高信息,如WAV、MP3等格式的音樂。所以目前的音樂檢索算法思路大多都是從音頻信號中提取音高、節拍等信息,從而將其轉化成為MIDI格式音樂檢索情形,這樣諸多問題也就迎刃而解。目前為止,許多研究者在此方面做出了杰出貢獻,Chias和McNab在哼唱檢索中用符號U、D、S (或R)表示音高的變化,但是這種簡化在數據庫很大時的檢索正確率很低。Hung用音高、音長、音強三元組合來描述音樂的特征,雖然提高了檢索準確度,但是該算法復雜度較高,且對多聲部的音樂檢索性能欠佳。
[0004]音樂識別領域中音高的主要三種識別方法是時域的并行處理法,頻域的諧波峰值法以及時頻域的小波算法。在錄音質量差、波形殘缺時,并行處理法出錯率很高,且對于有簡單和弦伴奏的樂曲,并行處理法和小波算法都會無效,而諧波峰值法在基頻分量小、偶次諧波豐富的場合誤判可能性增大,所以目前還沒有一種很好的辦法解決不同種音樂的音高檢測問題。綜上可知,找到一個檢測精度高、魯棒性好的音高檢測算法很有必要。
【發明內容】
[0005]本方明針對基于內容的音樂檢索中音高檢測技術較差的問題,提出一種諧波峰值法結合倒譜法(CEP)的音高檢測方法。該方法可以對不同樂器在不同噪聲下的樂曲進行音高檢測,且檢測正確率較高,魯棒性較好。
[0006]本發明解決上述問題的技術方案是,先對音樂信號進行傅里葉變換(FFT)得到頻譜,根據峰值檢測法找出5個較低頻率處的諧波峰,并按其對應頻率大小升序排列,然后計算各頻率間的比值,以此確定一組音高候選序列,再將此候選序列與倒譜法所算得的音高合并到一起組成新的音高候選序列,最后利用置信度和維特比算法對候選音高序列進行篩選,得到標準音高。具體步驟如下:
[0007]步驟1:將采集的音樂信號X(η)通過帶通濾波器后,進行預處理,得到短時平穩信號;
[0008]步驟2:對所述短時平穩信號利用基于信號頻譜特征的方法檢測出音符起點,然后利用中值門限加均值門限對音符起點進行偽峰值剔除,完成音符分割;
[0009]步驟3:對完成音符分割后的信號采用諧波峰值法計算出一組音高候選序列,再通過倒譜法計算該完成音符分割后的信號的音高,得到另一組音高候選序列,將兩組音高候選序列組成一個新的候選音高序列;
[0010]步驟4:對所述新的候選音高序列利用置信度篩選掉序列中的一部分音高候選值,將具有最大置信度的候選音高作為最佳音高候選值,并將這些值組成最佳音高候選序列;在最佳音高候選序列中利用維特比算法計算出代價函數,該最小代價函數對應的音高即為標準首聞。
[0011]將本發明與經典的YIN算法、倒譜法(CEP)、HPS算法進行比較,具有如下優點:
[0012]本發明可以對不同樂器的樂曲進行音高檢測,對以往單一音源的檢測方法有了很大改進,而且對于常見的幾種噪聲(白(white)噪聲、粉紅(pink)噪聲、工廠(factory)噪聲、babble噪聲)有很好的魯棒性,抗噪性能明顯優于其它幾種方法,在較低信噪比情況下的檢測精度較之其它幾種方法也有很大提高。
【專利附圖】
【附圖說明】
[0013]圖1為理想情況下鋼琴單個音符示意圖;
[0014]圖2為音符分割效果圖;圖中a為《昨日重現》時域波形圖,b為對應a的突出outset點檢測圖,c為對應a峰值提取(音符分割)結果圖;
[0015]圖3為諧波峰值法原理流程圖;
[0016]圖4為倒譜法原理框圖;
[0017]圖5為改進方法的整體流程框圖;
[0018]圖6為不同樂器不同方法的音高比較圖;圖中a為小提琴音高序列比較圖;b為鋼琴音高序列比較圖;
[0019]圖7為不同噪聲下音高序列比較圖;
[0020]圖8為不同樂器不同方法的音高檢測性能比較圖;圖中a為小號音高檢測率比較圖山為豎笛音高檢測率比較圖;c為小提琴音高檢測率比較圖;(1為鋼琴音高檢測率比較圖。
【具體實施方式】
[0021]音高檢測是對單獨的音符來進行的,所以必須先對輸入的音頻信號進行音符分害I]。不同樂器彈奏出來的音樂都以音頻信號的形式采集到計算機內部后再進行相應的處理,這些采集的信號是非平穩且連續音符之間是疊加、互不隱藏的,所以類似于語音信號,必須先做短時處理,即音符分割。下面以鋼琴理想情況下為例說明單個音符的組成,其組成圖如圖1所示。
[0022]單個音符主要由四部分組成:起奏,即attack部分,這段時間音符的幅度包絡快速上升;瞬態即transient部分,它表示演奏者的真正演奏時間;最后為樂器本身的緩慢衰減即deday和共振部分。一個演奏音符的真正開始時間,即音符起點,記為圖中的onset點,它也是瞬態的最初時間點。音符分割就是檢測出onset點,根據其位置進行音符端點的切害I]。具體實現方法如下所述。
[0023]a:預處理階段:將采集的音樂信號通過帶通濾波器,這里根據幾個常見樂器的重要頻率范圍,將濾波器的帶寬設置為50到20000Hz,這樣可以在后面的處理中提取到基頻的5次諧波,之后進行分幀、加窗處理,得到短時平穩信號,窗函數采用窗長為N的漢明窗,表達式為:
【權利要求】
1.一種音高檢測方法,其特征在于,包括如下步驟: 步驟1:將采集的音樂信號X (η)通過帶通濾波器后,進行預處理,得到短時平穩信號;步驟2:對所述短時平穩信號利用基于信號頻譜特征的方法檢測出音符起點,然后利用中值門限加均值門限對音符起點進行偽峰值剔除,完成音符分割; 步驟3:對完成音符分割后的信號采用諧波峰值法計算出一組音高候選序列,再通過倒譜法計算該完成音符分割后的信號的音高,得到另一組音高候選序列,將兩組音高候選序列組成一個新的候選首聞序列; 步驟4:對所述新的候選音高序列利用置信度篩選掉序列中的一部分音高候選值,將具有最大置信度的候選音高作為最佳音高候選值,并將這些值組成最佳音高候選序列;在最佳音高候選序列中利用維特比算法計算出代價函數,該最小代價函數對應的音高即為標準音高。
2.根據權利要求1所述一種音高檢測方法,其特征在于:所述帶通濾波器的帶寬為50到 20000Hz ο
3.根據權利要求1所述一種音高檢測方法,其特征在于:步驟I中所述預處理包括分幀和加窗處理。
4.根據權利要求1所述一種音高檢測方法,其特征在于:所述中值門限加均值門限的公式如下:
式中,λ為尺度因子,取大于零的常數,M為區間長度參數,σ (η)為均值門限,SD(n)為檢測函數;median(.)表示中值濾波器。
5.根據權利要求1所述一種音高檢測方法,其特征在于:所述代價函數為
式中,if表示第η幀第i個候選音高值,表示下一幀的第j個候選基音值,Nframe表示樣本樂曲的幀數,對于每一幀π,Ρη是候選音高,其范圍為{I≤η≤
表示相鄰幀間的代價。
【文檔編號】G10L25/24GK104200818SQ201410383633
【公開日】2014年12月10日 申請日期:2014年8月6日 優先權日:2014年8月6日
【發明者】張天騏, 徐昕, 張剛, 石穗, 張亞娟 申請人:重慶郵電大學