亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        從MIDI音樂文件中抽取旋律特征

        2016-07-31 21:10:13劉高軍,郭校培
        數碼世界 2016年3期
        關鍵詞:音軌音符發(fā)音

        從MIDI音樂文件中抽取旋律特征

        1 背景

        目前,網絡上每天都會產生大量的音樂作品,音樂的推薦系統(tǒng)也種類繁多。但大多數都是根據用戶的喜好,或者是音樂的關聯(lián)來進行推薦的[1]??紤]到音樂特征本身的相似性,因此考慮從音樂本身的特征出發(fā),根據特征的相似度來給用戶推薦歌曲。然而金毅等人[2]通過研究得出結論:從聲音文件中提取旋律特征處理過程復雜、難度高,精度不如MIDI文件和模塊文件;模塊文件通用性較差,編碼格式繁多;對于MIDI文件,很多音樂的特征可以直接提取出來,這就為音樂特征的自動識別提供了極大的便利,所以采用MIDI樂曲作為提取音樂旋律的數據源。因此接下來從MIDI文件的分析入手,剖析如何從MIDI中提取特征。

        2 MIDI文件的結構

        MIDI(Musical Instrument Digital Interface)是一套消息的約定,它不產生聲音信號,而是在MIDI電纜上傳送各種MIDI消息,由接收MIDI消息的MIDI設備或其它電子裝置產生聲音或執(zhí)行動作[3]。

        MIDI文件的格式有好多種,目前較為廣泛使用的存儲格式是后綴為.mid格式的文件,而且是標準的MIDI文件。MIDI文件通常有兩部分組成:頭塊和軌道塊。頭塊用MThd標記,軌道塊由MTrk標記,一個MIDI文件由一個頭塊和緊接的一個或者多個軌道塊組成[4]。結構如表1所示。

        2.1 頭塊(Header chunk)

        頭塊出現(xiàn)在MIDI文件開頭,共有6字節(jié)組成,結構如表2所示。

        2.2 軌道塊(Track chunk)

        頭塊之后是一個或多個音軌塊,軌道塊的結構如表3所示。

        表3 MIDI文件軌道塊結構

        一個MIDI事件由delta-time和MIDI消息組成,deltatime由可變長度編碼,它決定了其后MIDI消息的執(zhí)行時間。2.3 midi消息

        一個MIDI消息由一個狀態(tài)字節(jié)和若干個數據字節(jié)組成。其中狀態(tài)字節(jié)最高位是1,因此值介于128到255之間;數據字節(jié)的最高位是0,因此值介于0到127之間。MIDI消息分為通道消息(Channel Message)和系統(tǒng)消息(System Message)兩類[5]。

        通道消息對單一的通道起作用,利用狀態(tài)字節(jié)的低4為來表示,從0到15共有16個通道。通道消息分兩種:聲音消息和模式消息。聲音消息用于控制合成器的聲音產生,模式消息用于為16條通道分配聲音關系,設定單音模式和復音模式等。

        表1 MIDI文件結構

        表2 MIDI文件頭塊結構

        系統(tǒng)消息應用于整個系統(tǒng)而不是特定的通道,不含有通道碼。系統(tǒng)消息分三種:公共消息、實時消息和專用消息。公共消息用于選擇歌曲、用拍子數來設定歌曲位置指針、向合成器發(fā)出旋律請求;實時消息用來設定系統(tǒng)的事實參數,包括時鐘、啟動、停止定序器、從停止位置恢復定序器和系統(tǒng)復位;專用消息包含廠商特定的數據,如標識、系列號、模型號及其他消息。

        分析midi消息主要為了研究MIDI事件,常見的MIDI事件[6]如表4所示。

        表4 常見MIDI事件

        3 旋律相關的音軌特征量

        3.1 音軌名稱

        對于MIDI數據文件中的每一個音軌,通常都會有一個音軌名稱標注字段,因此該音軌可以作為表征旋律音軌的特征量使用。音軌名稱可由以下事件格式中獲取”FF 03 length text”,text給出了音序器或者音軌的名稱,通常被放置在音軌的開頭。

        3.2 通道號

        所有的音軌消息中都帶有一個比特來記錄將本音軌的演奏送到哪個通道。MIDI有16個通道,在多音軌MIDI演奏數據中,多個通道被同時演奏。

        3.3 左右聲道平衡度

        每個音軌都記錄了一個Pan值,用來表示該音軌的音符在左右聲道中音量大小的比例。通常旋律音軌的發(fā)音基本處于左右聲道平衡的位置。Pan值可以由消息”0xBn 0A value”獲取,其中n表示通道號,value表示音軌的Pan值。Pan值得取值范圍是0至127,其中64代表左右聲道平衡,可以使用以下公式來定義音軌k的左右聲道平衡度:F1(k) = Pan(k)-64/127, k=1,2,3…

        3.4 平均力度

        通常情況下,主旋律聲部的全頻域平均能量要比其他的聲部的高,因此可以定義一個名為平均力度的特征量F2來表示音軌能量的大小。

        式子中的k表示音軌號,N表示第k音軌的音符數,V(k,i)表示第k音軌中第i音符的按鍵力度值,取值范圍為0-127。但是在統(tǒng)計的時候,只有那些力度值為非零的“音符開”才被計算在內并進行排序。在同一音軌,如果出現(xiàn)同時發(fā)音的多個音符,則計算時取音高最高音符的力度值而刪除其余同時發(fā)音音符的力度值。

        3.5 主音量

        每個音軌都記錄了一個名為主音量的特征值,假設除了主音量特征,其他的特征值都相同,那么較好的方法是選取主音量較高的音軌作為主旋律。音量值可由“0xBn 07 size”來獲取。在該時間格式中,n表示通道號碼,size記錄該通道的主音量值,其范圍在0-127之間。結果用F3(k)來表示。

        3.6 發(fā)音時間

        音軌聲音消息通過在音符的開與關之間的相互切換來控制聲音,并且還能調整響度和音高等。該事件的格式如下:音符開,“0x9n note velocity”;音符關,“0x8n note velocity”。

        在多音軌MIDI演奏數據中,每當多個音符在同一音軌中同時發(fā)音時,只計算其中一個音高較高的音符的發(fā)音時間。因為人們通常在同一時刻對音高較高的音符容易感知,而該音符通常是在主旋律線上的音符。

        對于交叉發(fā)音,通常情況下采用從后一個音符的結束時間減去前一個音符的開始時間來表示總發(fā)音時間,而不是直接將兩個音符的持續(xù)時間相加來計算[8]。計算方法如下所示:

        F4(k) = , k=1,2,…16

        其中,k表示音軌號,n表示第k音軌的音符數,note(i)表示音符i,note(i).end表示該音符的關時刻,note(i). start表示該音符的開時刻。

        3.7 發(fā)音面積

        選取音樂的特征時,音高信息也是關鍵的音符,結合音符的持續(xù)時間一起考慮在內,用發(fā)音面積的概念來表示其綜合效果。發(fā)音面積可用音高與音長的乘積來表示,而音軌的發(fā)音面積可以定義為每個音軌的發(fā)音面積之和。計算方法如下所示:

        其中,note(i)表示音符i,note(i).pitch表示該音符的音高值,而note(i).duration表示該音符的音長。對于同時發(fā)音的音符,可以取音高較高的值乘以發(fā)音時間來計算發(fā)音面積。

        3.8 確定主旋律

        在MIDI音樂中,但音軌的比較少,更多的是多音軌的數據[9]?;谖墨I的方法可以得到不同音軌特征量對主旋律的貢獻量,因此可以從提取出的多音軌特征運算得出主旋律所在的音軌,成功率在83%以上[7]。

        4 實驗結果

        直接分析二進制文件較為困難,并且MIDI事件本身的復雜性和delta-time的不確定性,使程序處理起來比較困難。然而,借助于java的MIDI包的一些功能函數,就可以很方便的分析MIDI文件。

        MidiSystem 類提供了對已安裝的 MIDI 系統(tǒng)資源的訪問,包括諸如 synthesizer、sequencer 和 MIDI 輸入和輸出端口等設備。典型的簡單 MIDI 應用程序可通過調用一個或多個 MidiSystem 方法開始,這樣可了解已安裝的設備并獲得該應用程序中所需要的設備。通過加載midi文件可以得到一個sequence:Sequence seq = MidiSystem.getSequence(file)。通過這個sequence可以加載到軌道的數據,然后對每一個軌道數據進行遍歷可以得到每個軌道的midi消息。按照如上圖所示的幾種MIDI時間以及幾個特征量的抽取方法來進行處理,可以得到比較完整的特征結果[10]。

        分析MIDI文件的關鍵步驟如圖1所示,可以較為方便的得到相關的特征。

        圖1 分析MIDI文件的關鍵步驟流圖

        以“歌唱祖國”和“黃河頌”為例,得到的主旋律的結果數據如下表所示。

        表5 “歌唱祖國”和“黃河頌”的音軌特征

        在實際的操作中,主要以后五個特征按照一定的權重來進行運算。

        5 結束語

        按照java語言提供的一些功能函數可以較為方面的分析MIDI文件,然后從定義的幾個維度從MIDI文件中得到目標數據,使處理MIDI文件的過程變得簡單高效。然而實際過程中大多數的MIDI文件為多音軌的,因此需要按照一定的方法從多音軌中找到能夠代表主旋律的音軌,然后分析該音軌的特征,確定MIDI音樂的特征。根據分析出來的特征向量,為后續(xù)基于特征的推薦做了準備。

        [1]Alexandros Nanopoulos, Dimitrios Rafailidis, Panagiotis Symeonidis and Yannis Manolopoulos. MusicBox: Personalized Music Recommendation based on Cubic Analysis of Social Tags.

        [2]金 毅, 黃 敏. 基于旋律的音樂檢索研究-旋律特征的表達和提取[J]. 信息檢索技術,2003.4,49-51.

        [3]林福宗. 多媒體技術基礎[M]. 北京:清華大學出版社,2001.7,14-21.

        [4]周明全, 耿國華, 王小鳳, 李鵬. 基于內容的音頻檢索技術[M]. 北京:科學出版社,2014.8,97-99.

        [5]楊軍. MIDI消息和標準MIDI文件格式剖析與應用[J].中南民族大學學報(自然科學版).2003.9:62-64 Vol. 22 Sup.

        [6]潘曉利, 劉永志. 基于單片機的MIDI文件中delta-time的實現(xiàn). 現(xiàn)代計算機. 2008.1 總第二十七期.

        [7]趙芳, 吳亞棟, 宿繼奎. 基于音軌特征量的多音軌MIDI主旋律抽取方法[J]. 計算機工程. 2007.1 Vol.33 No.2

        [8]劉勇, 林景棟, 穆偉力. 基于H-K算法的MIDI音樂主旋律提取[J]. 計算機技術與發(fā)展. 2011.6 : 154-160 Vol.21 No.6

        [9]李娟,周明全,李鵬. MIDI主旋律特征提取構建音樂數據庫[J]. 計算機工程與應用,2011,47:124-128.

        [10]秦丹. 利用C#從MIDI文件中獲取音樂旋律[J]. 電腦知識與技術. 2009.6:4281-4284 Vol.5 No.16

        猜你喜歡
        音軌音符發(fā)音
        Hickory, Dickory, Dock
        AI在線分離歌曲中的伴奏
        電腦愛好者(2020年6期)2020-05-26 09:27:33
        一串快樂的音符
        春天的音符
        音符(兩首)
        讀寫算(上)(2016年9期)2016-02-27 08:44:58
        Playing with h
        Playing with /eI/
        Playing with u_e
        新手進階:追求卓越錄音品質
        演藝科技(2013年2期)2013-11-05 07:44:00
        窮“屌絲”也玩情侶對唱
        国产极品女主播国产区| 男女羞羞的视频免费网站| 免费人成在线观看播放视频| 亚洲av综合色区无码另类小说| 人妻少妇边接电话边娇喘| 日韩在线看片| 一区二区三区在线日本| 国产精品一区二区性色| 丰满人妻被黑人猛烈进入| 天天躁日日躁狠狠躁一区| 日本大片在线一区二区三区| 久久精品国产av一级二级三级| 精品少妇人妻av无码久久| 国产精品短视频| 亚洲综合有码中文字幕| 麻豆国产精品久久人妻| 国产av无码专区亚洲av琪琪| 女人的天堂av免费看| 久久久黄色大片免费看| 人人做人人爽人人爱| 色婷婷五月综合亚洲小说| 一区二区三区国产美女在线播放| 国产午夜精品视频在线观看| 精品国产麻豆免费人成网站| 国产女合集小岁9三部| 在线观看中文字幕一区二区三区| 精品国产一区二区三区av天堂| 日本高清h色视频在线观看| 久久久久中文字幕精品无码免费 | 国产 精品 自在 线免费| 国产超碰人人做人人爱ⅴa| 亚洲高清精品50路| 极品尤物在线精品一区二区三区 | 成人综合亚洲欧美一区h| 尤物国产一区二区三区在线观看 | 国产精品va在线观看无码| 人妻少妇精品视中文字幕国语| 成人性生交大全免费看| 日本免费a级毛一片| 亚洲AV无码秘 蜜桃1区| 青草草视频在线观看华人免费 |