999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于YIN算法的樂器單旋律音高的提取

2020-12-04 07:32:54巖,
關鍵詞:信號分析

張 巖, 王 偉

(沈陽師范大學 計算機與數學基礎教學部, 沈陽 110034)

旋律通常指若干樂音經過藝術構思而形成的有組織、節奏的序列,其特征是按一定的音高、時值和音量構成,并由具有邏輯因素的單聲部進行。旋律的3個主要特征中,音高是最重要的。國際音樂信息檢索測評(Music Information Retrieval Evaluation Exchage,MIREX)將旋律定義為對應顯著性人聲或樂器中感知音高的基頻值序列[1]。在旋律進行中,由于音高走向的變化而形成的起伏線條,叫旋律線。音樂學中,按照音樂作品旋律線的數量,將音樂分為單聲部音樂和多聲部音樂。單聲部音樂指同一時刻只有一個音符發音,如獨唱、管樂器的獨奏、演奏單旋律的弦樂器獨奏等。多聲部音樂是指有2個或者更多的音符同時發聲的音樂,這些音符可以來源于不同的聲源,如歌聲、吉它或貝斯等,也可以來源于能同時發2個以上音的聲源,如鋼琴[2]。

單旋律提取是以單聲部音樂為對象,對旋律的音高和時值等主要特征進行提取。從音樂信號中提取主旋律的方法主要分為3類:基于顯著性的方法、基于源分離的方法和基于機器學習的方法[3]。單旋律的提取側重所提取旋律的準確性、高效性和可視性。從音樂復雜性和計算復雜性分析,為了實現旋律快速和實時的輪廓化,基于顯著性的方法比較適用。單旋律提取可以應用于樂曲創作、音準分析、調式分析等,因此具有重要的研究和應用價值。

1 音高顯著性和音高檢測

1.1 音高與基頻

音高是由發音體發出的基本頻率決定的,基頻通常用F0表示。音高越高對應的f0越大。當發音體由于震蕩而發出音時,每個音不僅僅包括基頻正弦波的基音,還同時包括許多頻率較高的正弦波的泛音[4],其中頻率最低的正弦波即為基音,而其他頻率較高的正弦波則為泛音。基音是區別音高的主要元素,泛音決定音色。復合波的振幅是由基音的振幅和各組泛音的振幅重疊而成,若振幅方向相同則相加;若振幅方向相反則須要相減。復合波也是一種周期性的振動波[5]。音分為諧和音與不諧和音。諧和音指諧波(或諧波分量)的頻率是基頻的整數倍,當然有許多樂器(如彈撥弦樂器)產生的音并不是完全諧和的。不諧和音和不完全諧和音都是樂音,音樂中的旋律等均由樂音構成[6]。

1.2 音高檢測(基頻估計)

音高檢測通常包括時域分析、頻域分析和時頻域分析。在時間域內對信號進行濾波、放大、統計特征計算、相關性分析等處理,統稱為信號的時域分析。頻域分析采用傅立葉變換將時域信號變換為頻域信號,從頻域角度來了解信號的特征。時頻域分析是將時域與頻域的處理方式結合起來,它將信號分割成時間幀,進行時頻變換,分析信號在時間域內的頻譜的特征。針對單旋律提取的簡單性,采取不用進行時頻轉換的時域分析來進行音高檢測,以降低計算復雜度,提高實時應用性。時域分析算法主要包括自相函數(Auto Correlation Function,ACF)算法和YIN算法。

2 YIN算法

2.1 自相關函數算法

YIN算法以自相關函數算法為基礎。對于樂曲數字化的有限離散信號,若其長度為N,它的自相關函數Rx(k)定義為

(1)

其中k是時移參數,顯然當k=0時得到最大的R值,也就是信號與信號本身相似度最大[7]。自相關函數在基音周期的整數倍處取得最大值,計算2個相鄰的最大峰值間的距離,就可以估計出基音的周期,從而得到基音的頻率。

樂音信號復合波的大多數峰值并不能反映基頻的周期,而只有少數的峰值與基頻有關。為了強化反映基頻周期的峰值,減少諧波成分峰值的干擾,降低自相關算法的計算量,需要對音頻信號進行中心削波處理。通常采用的三電平中心削波函數是

(2)

式(2)中,x(n)是原始樂音信號,Cl是削波電平,y(n)是削波后的樂音信號[8]。一般地,削波電平是由樂音信號的峰值的固定百分比來確定的,可以取峰值幅度的60%~70%。

2.2 YIN算法

YIN算法可以一定程度地解決確定哪個峰值對應的是基頻的峰值的問題。YIN函數的定義Dx(k)為[9]

(3)

公式(3)中,以信號差平方和函數代替了公式(1)中的信號積和函數。這樣,在信號周期整數倍數處,YIN函數值為幅度差平方和,并且取值均為零。很顯然,查找零值的時間效率要高于求最大值的時間效率。

利用YIN算法時,考慮基頻提取的實時性,通過實驗測試三電平中心削波對YIN算法效率的影響。具體測試了不同采樣點數量規模的情況下,只進行YIN算法的運行時間,以及先進行三電平中心削波后進行YIN計算的運行時間,測試數據如表1所示,采樣點數為512時的YIN函數波形如圖1所示。實驗結果表明,隨著處理的采樣點數的增加,三電平中心削波會一定程度地增加YIN算法的運行時間;三電平中心削波減弱了YIN算法在信號周期處獲得零值或者近零值的顯著性,增加了獲取周期位置的復雜性。因此, YIN算法不必進行自相關函數算法中的三電平中心削波處理。

圖1 樂音信號某512采樣點三電平中心削波后YIN波形

表1 YIN算法與三電平中心削波+YIN算法的運行時間對比(單位: 秒)

3 單旋律樂曲的音高提取算法的實現

3.1 利用YIN算法對樂音信號的分析幀長的估算

以小提琴為例,從低到高的4根琴弦分別為E、A、D、G,標準的空弦音從低到高是g=196 Hz、d1=294 Hz、a1=440 Hz、e2=659 Hz,每把小提琴的實際頻率分布是不同的[10]。假設取最低頻率確定的分析幀長,當分析幀幀長取128(1 024個采樣點的時間約為24 ms,128個采樣點的時間約為3 ms)時,不能包含最低頻率的2個周期,經過YIN算法實驗證明,波形中包含1個最低點,但是不能判斷該采樣點即是周期點,所以需要擴展分析幀長點數;當擴展幀長點數為512時,采樣時間約為12 ms,包含最低頻率的2個周期,波形出現了周期性的波動,如圖2所示。以上實驗表明,512個點作為分析幀的幀長是適當的,依此也可以將分析幀的一半,即256個點作為幀移。

圖2 樂音信號某512個采樣點的YIN波形

3.2 獲取樂音信號分析幀中近零點的方法

從圖中的YIN函數波形來看,對于YIN算法理論上的零點存在2個實際的問題:

1)理論上應該在信號周期處獲得零點,但是由于采樣時未必能取到信號周期所在處的點,所以只能從YIN函數值中獲得近零點。

2)當時移k非常小的時候,Dx(k)的值也非常小,也往往小于周期處近零點的值。當k=0時,往往就是Dx(k)的零點或者是最接近零的近零點,影響獲取正確的近零點。為了取消時移k非常小的影響,可以采用累積平均歸一化差分函數,其公式為[11]

(4)

利用累積平均歸一化函數,對于圖2中的采樣幀進行處理,處理結果如圖3所示。顯然,經過處理后,消除了時移非常小時的YIN函數值對提取近零點的影響。

圖3 樂音信號某512個采樣點的YIN累積平均歸一化波形

3.3 YIN算法提取音高的實現

在Matlab環境中,讀入小提琴無伴奏的WAV樂曲文件,利用YIN算法提取該分析幀的基頻的周期,即采樣點序號。若經算法計算得出基音周期為T(i),則相應的基音頻率為F(i)=fs/T(i),其中fs表示樂曲采樣頻率[12]。Matlab代碼如下[13]:

[x1,fs,nbit]=audioread(′xtq.wav′); %fs為采樣頻率44.1kHz,nbit為采樣位數16,x1為讀取的歸一化后幅

%值[-1,1]之間的樂音信號,共有采樣點數*2個數據, 2表示雙聲道

[Row,Col]=size(x1); %采樣點數組的行數和列數

N=512; %確定分析幀的幀長點數

Ind=[];AM=[];Pitch=[];

for FM=1:200 %選取前200個分析幀

N1=256*(FM-1)+1; %某分析幀的起始采樣點序號,幀移是256

N2=N1+1024-1; %某分析幀的終止采樣點序號

x2=x1(N1:N2,:);

D=[];Dn=[]; %以下3行是累積平均歸一化的初始化

Dn(1)=1;sumn=0;

for k=2:N %延遲N個點數

sum=0;

for j=1:N %YIN函數計算

sum=sum+(x2(j)-x2(j+k))*(x2(j)-x2(j+k));

end

D(k)=sum;

sumn=sumn+D(k); %以下2行是累積平均歸一化

Dn(k)=D(k)/(sumn/k);

end

[A,Pos]=min(Dn); %求第一個近零點

AM(FM)=A;

Ind(FM)=Pos; %求近零點的采樣點序號

Pitch(FM)=44100/Ind(FM); %求基頻

end

4 結 語

根據十二平均律,計量上將一個八度音程即2倍頻率之間分成12個音級,每2個相鄰音級相差100音分(cent)。2個相鄰音級的頻率比是2(1/12)(約1.059 463)。2個相鄰音分的頻率比是2(1/1 200)(約1.000 577 79)[14]。音列中樂音i 的標準頻率公式為F(i)=fa1*2(n/12),其中fa1= 440為第一國際高度,n 為樂音i到a1間隔的半音數目,當樂音i比音a1低時,n取負數[15]。以前面的200個分析幀(幀長512點,幀移256點)提取的音高序列為例,提取的頻率和標準頻率之間存在偏差,表現為音級和音級之間不是準確的2(n/12)的關系,進一步通過消除偏離頻率嚴重的野點來修正提取的頻率。以fa1=440 Hz為基準,可以通過若干次的1.059 463的倍數來計算標準音級的頻率。對于某個音級,可以通過若干次的1.000 577 79的倍數來計算音級的各個音分的頻率。如果是音準檢測,那么10個音分以內的偏差下,可以認定音級;如果是提取旋律,那么50個音分以內的偏差下,可以認定音級,或者結合提取頻率對應的幀數來進一步判斷,當幀數少于2幀時,可以認定為野點,否則可以進行頻率修正,如表2所示。顯然,經過修正后,可以提高樂音頻率提取的準確度。

表2 提取頻率的修正方法

猜你喜歡
信號分析
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
隱蔽失效適航要求符合性驗證分析
完形填空二則
孩子停止長個的信號
電力系統不平衡分析
電子制作(2018年18期)2018-11-14 01:48:24
電力系統及其自動化發展趨勢分析
基于LabVIEW的力加載信號采集與PID控制
一種基于極大似然估計的信號盲抽取算法
中西醫結合治療抑郁癥100例分析
在線教育與MOOC的比較分析
主站蜘蛛池模板: 免费一级成人毛片| 人妻夜夜爽天天爽| 97久久人人超碰国产精品| 亚洲男人天堂2020| 成人免费视频一区| 亚洲精品无码成人片在线观看| 国产精品999在线| 精品第一国产综合精品Aⅴ| 又黄又湿又爽的视频| 亚洲91在线精品| 亚洲第一天堂无码专区| 国产精品va| 人妻中文久热无码丝袜| 毛片视频网址| 国产麻豆精品久久一二三| 久久青青草原亚洲av无码| 欧美成人手机在线观看网址| 在线播放91| 亚洲AV无码久久精品色欲| 国产一线在线| 91久久大香线蕉| 亚洲综合片| 五月天久久综合| 成年女人18毛片毛片免费| 亚洲伊人久久精品影院| 波多野结衣在线se| 色婷婷视频在线| 国产在线视频导航| 欧美日韩第三页| 亚洲日韩在线满18点击进入| 国产AV无码专区亚洲A∨毛片| 凹凸精品免费精品视频| 国产无码精品在线播放| 天天综合网色| 欧美日韩精品一区二区在线线| 日韩免费毛片视频| 欧美久久网| 午夜不卡福利| 毛片免费观看视频| 尤物精品国产福利网站| 国产91九色在线播放| 久久男人视频| 在线国产你懂的| 国产一在线观看| 国产女主播一区| 天堂久久久久久中文字幕| 国产精品无码作爱| 国产va在线| a免费毛片在线播放| 四虎精品国产AV二区| 国产区免费精品视频| 日韩毛片免费观看| 亚洲天堂视频网站| 日韩精品一区二区三区免费在线观看| 国产欧美亚洲精品第3页在线| 97精品久久久大香线焦| 日本伊人色综合网| 玖玖精品在线| 中文天堂在线视频| 麻豆精品视频在线原创| 91系列在线观看| 日本三区视频| 亚洲精品无码不卡在线播放| 国产精品亚洲综合久久小说| 日韩经典精品无码一区二区| 国内精品自在自线视频香蕉| 91精品国产自产在线老师啪l| 乱人伦中文视频在线观看免费| 九色视频线上播放| 日韩中文字幕亚洲无线码| 亚洲国产第一区二区香蕉| 国产日韩丝袜一二三区| 伊人查蕉在线观看国产精品| 无码精品国产dvd在线观看9久| 91视频精品| 成人精品区| 国产午夜福利在线小视频| 毛片手机在线看| 在线精品亚洲一区二区古装| 看国产一级毛片| 中文字幕第4页| 97久久人人超碰国产精品|