?

一種基于哼唱的小規模MIDI音樂檢索系統及實現

2017-03-11 09:27肖艷王虎
中國新通信 2017年3期
關鍵詞:音高特征提取音符

肖艷+王虎

【摘要】 本文對基于哼唱的小規模MIDI音樂檢索系統的各個模塊進行了詳細的闡述,匹配模塊中以相對音高序列作為音樂旋律的特征進行匹配,并通過實驗驗證系統的性能。實驗表明,該檢索系統能取得較滿意的結果。

【關鍵字】 MIDI音樂 相對音高序列 哼唱檢索

Abstract: This paper elaborated different modules of small MIDI music retrieval system based on the humming. In the matching module, it used relative pitch sequence as characteristics of the music melody. It also verified the performance of the system through the experiment. And experiments showed that the system can obtain satisfactory results.

Key words: The MIDI music; Relative pitch sequence; Hum to retrieve

引言

哼唱檢索(QBH)是在歌曲數據庫中檢索到用戶哼唱旋律并將結果反饋給用戶的系統。在一個標準的哼唱檢索查詢中,用戶要從一個大型的音樂錄音數據庫中找到一首歌曲。如果用戶不記得歌手或歌曲的名稱來進行元數據查詢,自然選擇對麥克風哼唱,來表現歌曲旋律的一部分,然后使用哼唱檢索系統檢索歌曲。

MIDI文件記錄的是音樂演奏的指令序列,向演奏者標注出演奏時間、樂器、音符和方式。midi作為數字音樂文件,本身只有樂器旋律而沒有人聲,所以使用midi主旋律就可以表示歌曲旋律,比從WAV中提取的主旋律更準確。WAV格式在本文中只是作為用戶哼唱音頻的輸入格式。

相對音高序列是指序列的后一個音高同前一個音高進行比較,它能反映音符的音高特征。用相對音高序列作為旋律的特征在中小型音樂檢索效果方面很不錯。

一、基于哼唱的小規模MIDI音樂檢索系統框架

本文基于哼唱的小規模MIDI音樂檢索系統主要分為四部分:第一部分是MIDI歌曲數據庫的建立,即用戶哼唱的旋律在檢索時所逐一進行匹配的MIDI歌曲數據庫;第二部是旋律特征提取,這里的特征提取既包含MIDI歌曲庫中的歌曲特征提取又包含用戶哼唱時的旋律特征提??;第三部分是特征匹配,是將用戶哼唱的旋律特征與MIDI歌曲庫中的MIDI歌曲特征進行比較;第四部分是將MIDI歌曲庫中和哼唱旋律相似的音樂名稱輸出。

1.1歌曲庫建立

首先在網絡上收集10首MIDI格式的音樂構成MIDI歌曲庫。當然,對于整個基于哼唱的音樂檢索系統來說,10首歌曲是遠遠不夠的,這主要是因為在系統搜索階段,系統搜索的復雜度和準確度與歌曲數目呈負相關,但是因為本論文主要討論的是基于哼唱的MIDI音樂檢索的整體過程,為部分此方面學習人員提供一個思路,因此10首歌曲和1000或10000首并不會有太大差別。

1.2旋律特征提取

這里的旋律特征提取包含兩個方面,分別是MIDI歌曲庫中MIDI音樂的特征提取、用戶哼唱的旋律特征提取。由于MIDI歌曲庫中的歌曲是MIDI格式的,用戶哼唱的旋律是wav格式的,所以下面將分開介紹兩者的特征提取步驟。由于相對音高序列能夠反映音符的音高特征,所以將旋律特征提取轉換成求旋律的相對音高序列即可。

用戶哼唱的旋律其相對音高序列是通過比較相鄰音符的過零率得到的。用戶 哼唱的旋律其相對音高序列提取步驟:

1)可調參數。設定計算過零率前加入的白噪聲的信噪比、對有毛刺的過零率結果進行的低通濾波器的截止頻率、上述低通濾波器的開關、對過零率結果進行門限判決的門限設定。

2)過零率計算。音頻頻率越高,過零也越高。

3)濁音區間端點檢測。首先判斷第一個點是高過零點還是低過零點。當第一個點是高過零點時,第一個點被舍棄。始點從第二點開始,終點從第三點開始。認為第一個端點應該是清音或者靜音的開始,后面的端點是清音與濁音交替;當第一個點是低過零點時,始點從第一點開始,終點從第三點開始。認為第一個端點應該是濁音段的開始,后面的端點是清音與濁音交替。

4)除野點。將持續時間小于100ms的濁音段認為是野點,忽略掉。

5)求取tempo以及在每個tempo內求一個平均絕對音高(Hz)。

6)轉換成相對音高(音階)。

MIDI歌曲庫中MIDI音樂的相對音高序列的提取過程:

(1) 驗證文件格式。驗證MIDI歌曲庫中的MIDI音樂是否是單聲道的midi format0,然后讀取所有音符(包括靜音段)的音高、通道、持續時間(即deltatime的值,時鐘個數),讀取所有的 Note On和Note Off消息。事件的deltatime作為上一個事件的持續時間,我們默認時間都是Note On和Note Off交替進行。如果有幾個音符同時發聲的情況,第二個音符開始發聲時認為前一個音符結束,再遇到它的note off消息時我們將會忽略。note on時間的deltatime表示如果不為0,認為是前面有靜音的地方。

2)提取所有音符。

3)統計音符中1/16、1/8、1/4等各種音符的個數。

4)對音符量化。將0音符的音高認為是前一個音符的音高。

5)轉為相對音高序列。

6)把文件名和相對音高序列存入庫中。

1.3旋律匹配

首先依次讀取MIDI歌曲庫中的10首歌曲的MIDI音符序列,通過旋律特征提取得到相對音高序列,然后在歌曲中尋找與用戶哼唱旋律最小距離的片段即最相似的片段,然后再尋找最相似的片段起始位置并計算錯誤字符數。

旋律匹配的具體步驟是:

1)依次讀取MIDI歌曲庫中midi音符序列的相對音高序列。

2)遍歷尋找出10首歌曲中與用戶哼唱旋律的相對音高序列最低差錯的序列。

3)尋找最相似的片段起始位置,并計算錯誤字符數。

4)顯示歌曲名和錯誤音符數。

二、系統實驗驗證

在實驗中,我們輸入哼唱的一小段“北京歡迎你”旋律,導進檢索系統過后,系統將檢索用戶哼唱的歌曲和MIDI數據庫中的歌曲進行對比,再按照相似度的大小進行排序 ,把相似度最高的前5首的歌曲名列表返回給檢索用戶。實驗結果是基于Matlab2012b 仿真平臺進行的,如下圖所示。

三、總結

通過實驗結果可以看到,當用戶哼唱歌曲“北京歡迎你”的一段旋律時,檢索系統將MIDI歌曲庫中的“北京歡迎你”等前5首歌曲的名稱反饋給用戶,并且“北京歡迎你”歌曲名稱排列在第一位。此結果表明該系統在小規模數據庫中的應用識別率較高。

參 考 文 獻

[1]魯帆.基于哼唱的音樂檢索系統[D].西安:西安建筑科技大學,2011.

[2]郭洪波.音樂哼唱檢索關鍵技術研究[D].西安:西北大學,2004

[3]孫潔.基于哼唱的MIDI音樂檢索系統的研究[D].西安:西安建筑科技大學,2013.

[4]曹亮.海量音樂的哼唱檢索研究[D].北京:北京郵電大學,2015.

[5]徐霽,袁旭海.一個音樂檢索系統的研究與實現[J].寧波大學學報(理工版),2007,20(3):293-296.

猜你喜歡
音高特征提取音符
為何有人唱歌總是跑調
一串快樂的音符
美妙音符
基于MED—MOMEDA的風電齒輪箱復合故障特征提取研究
基于曲率局部二值模式的深度圖像手勢特征提取
鋼琴調律對鋼琴音準穩定性的作用
嗩吶常用演奏技法與聲學參量關系研究(一)
韓國留學生漢語陳述句語調的實驗研究
音符草
變臉
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合