基于YIN算法的乐器单旋律音高的提取

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第38卷第5期2020年10月
沈阳师范大学学报(自然科学版)
J o u r n a l o f S h e n y a n g N o r m a lU n i v e r s i t y(N a t u r a l S c i e n c eE d i t i o n)
V o l.38N o.5
O c t.202
文章编号:16735862(2020)05043805
基于Y I N算法的乐器单旋律音高的提取
张岩,王伟
(沈阳师范大学计算机与数学基础教学部,沈阳110034)
摘要:乐器单旋律是乐音信号的重要特征,音高是旋律的最重要因素,由发音体的基本频
率决定㊂音频信号的时域分析具有简单快捷的特点,可以实时辅助作曲创作㊁音准分析和校正等㊂
通过对Y I N算法的分析,提出利用Y I N算法确定分析帧的长度㊂对比自相关函数算法的三电平
中心削波在Y I N算法应用的效果,指出三电平中心削波不利于Y I N算法的效率㊂对于时移非常
小的Y I N算法近零点的影响,采取累积平均归一化处理,消除其对基频近零点的干扰㊂在M a t l a b
环境中,实现以分析帧为单位的音高提取㊂根据十二平均律,计算各个音级和音分的标准频率比,
以小提琴无伴奏WA V文件的200分析帧为样本,对于提取基频和标准基频的偏差,提出基频的修
正方法㊂
关键词:音高;Y I N;自相关函数;三电平中心削波;十二平均律
中图分类号:T P311文献标志码:A
d o i:10.3969/j.i s s n.16735862.2020.05.010
P i t c h e x t r a c t i o no f s i n g l em e l o d y b a s e do nY I Na l g o r i t h m
Z HA N GY a n,WA N G W e i
(C o m p u t e ra n dB a s i c M a t h e m a t i c sE d u c a t i o n D e p a r t m e n t,S h e n y a n g N o r m a lU n i v e r s i t y,S h e n y a n g110034,
C h i n a)
A b s t r a c t:S i n g l em e l o d y i sa n i m p o r t a n t f e a t u r eo fm u s i c a l s i g n a l,P i t c hi s t h e m o s t i m p o r t a n t
f a c t o r o fm e l o d y.I t i s d e t e r m i n e db y t h e b a s i c f r e q u e n c y o f t h e s o u n db o d s.T i m e d o m a i n a n a l y s i s
o f a u d i o s i g n a l i ss i m p l ea n df a s t.I t c a na s s i s t c o m p o s i t i o n,i n t o n a t i o na n a l y s i sa n dc o r r e c t i o n i n
r e a l t i m e.B a s e do n t h e a n a l y s i s o fY i n a l g o r i t h m,i t i s p r o p o s e d t ou s eY i n a l g o r i t h mt od e t e r m i n e
t h e l e n g t ho f a n a l y s i s f r a m e.C o m p a r e dt h ee f f e c to f t h r e e-l e v e l c e n t e rc l i p p i n g o f a u t o c o r r e l a t i o n
f u n c t i o na l
g o r i t
h m
i n Y i n a l g o r i t h m,i ti s p o i n t e d o u tt h a tt h r e e-l e v e lc e n t e rc l i p p i n g i s n o t
c o n
d u c i v
e t o t h e e
f f i c i e n c y o fY i na l
g o r i t
h m.F o r t h e
i n f l u e n c eo f n e a r z e r o p o i n t o fY i na l g o r i t h m
w i t h v e r y s m a l lt i m e s h i f t,t h e c u m u l a t i v e a v e r a g e n o r m a l i z a t i o n i s u s e d t o e l i m i n a t e t h e
i n t e r f e r e n c et o t h ef u n d a m e n t a lf r e q u e n c y n e a rz e r o.I n t h e M a t l a b e n v i r o n m e n t,t h e p i t c h
e x t r a c t i o n b a s e d o n t h e a n a l y s i s
f r a m e i s r e a l i z e d.A c c o r d i n
g t o t
h e T w e l v e-t o n e e q u a l
t e m p e r a m e n t,c a l c u l a t i n g t h es t a n d a r df r e q u e n c y r a t i oo fe a c hs o u n dl e v e la n dc e n t,t a k i n g200
a n a l y s i sf r a m e so fv i o l i n u n a c c o m p a n i e d WA V f i l ea ss a m p l e s,f o rt h e d e v i a t i o n
b e t w e e nt h e
e x t r a c t e d
f u n d a m e n t a l f r e q u e n c y a n dt h es t a n d a r df u n d a m e n t a l f r e q u e n c y,ac o r r e c t i o n m e t h o do f
t h e f u n d a m e n t a l f r e q u e n c y i s p r o p o s e d.
K e y w o r d s:p i t c h;Y I N;a u t o c o r r e l a t i o n f u n c t i o n;t h r e e-l e v e l c e n t e r c l i p p i n g;T w e l v e-t o n e e q u a l
t e m p e r a m e n t
旋律通常指若干乐音经过艺术构思而形成的有组织㊁节奏的序列,其特征是按一定的音高㊁时值和音量构成,并由具有逻辑因素的单声部进行㊂旋律的3个主要特征中,音高是最重要的㊂国际音乐信息
收稿日期:20191106㊂
基金项目:国家社会科学基金艺术学重大项目(18Z D23)㊂
作者简介:张岩(1968),女,辽宁沈阳人,沈阳师范大学教授,硕士㊂
检索测评(M u s i c I n f o r m a t i o nR e t r i e v a l E v a l u a t i o nE x c h a g e ,M I R E X )将旋律定义为对应显著性人声或乐器中感知音高的基频值序列[1
]㊂在旋律进行中,由于音高走向的变化而形成的起伏线条,叫旋律线㊂
音乐学中,按照音乐作品旋律线的数量,将音乐分为单声部音乐和多声部音乐㊂单声部音乐指同一时刻只有一个音符发音,如独唱㊁管乐器的独奏㊁演奏单旋律的弦乐器独奏等㊂多声部音乐是指有2个或者更多的音符同时发声的音乐,这些音符可以来源于不同的声源,如歌声㊁吉它或贝斯等,也可以来源于能
同时发2个以上音的声源,如钢琴[
2
]㊂单旋律提取是以单声部音乐为对象,对旋律的音高和时值等主要特征进行提取㊂从音乐信号中提
取主旋律的方法主要分为3类:基于显著性的方法㊁基于源分离的方法和基于机器学习的方法[
3]
㊂单旋律的提取侧重所提取旋律的准确性㊁高效性和可视性㊂从音乐复杂性和计算复杂性分析,为了实现旋律快速和实时的轮廓化,基于显著性的方法比较适用㊂单旋律提取可以应用于乐曲创作㊁音准分析㊁调式分析等,因此具有重要的研究和应用价值㊂
1 音高显著性和音高检测
1.1 音高与基频
音高是由发音体发出的基本频率决定的,基频通常用F 0表示㊂音高越高对应的f 0越大㊂当发音体由于震荡而发出音时,每个音不仅仅包括基频正弦波的基音,还同时包括许多频率较高的正弦波的泛
音[4],其中频率最低的正弦波即为基音,而其他频率较高的正弦波则为泛音㊂基音是区别音高的主要元
素,泛音决定音色㊂复合波的振幅是由基音的振幅和各组泛音的振幅重叠而成,若振幅方向相同则相
加;若振幅方向相反则须要相减㊂复合波也是一种周期性的振动波[
5]
㊂音分为谐和音与不谐和音㊂谐和音指谐波(或谐波分量)的频率是基频的整数倍,当然有许多乐器(如弹拨弦乐器)产生的音并不是完全谐和的㊂不谐和音和不完全谐和音都是乐音,音乐中的旋律等均由乐音构成[
6]
㊂1.2 音高检测(
基频估计)音高检测通常包括时域分析㊁频域分析和时频域分析㊂在时间域内对信号进行滤波㊁放大㊁统计特征计算㊁相关性分析等处理,统称为信号的时域分析㊂频域分析采用傅立叶变换将时域信号变换为频域信号,从频域角度来了解信号的特征㊂时频域分析是将时域与频域的处理方式结合起来,它将信号分割成时间帧,进行时频变换,分析信号在时间域内的频谱的特征㊂针对单旋律提取的简单性,采取不用进行时频转换的时域分析来进行音高检测,以降低计算复杂度,提高实时应用性㊂时域分析算法主要包括自相函数(A u t oC o r r e l a t i o nF u n c t i o n ,A C F )算法和Y I N 算法㊂
2 Y I N 算法
2.1 自相关函数算法
Y I N 算法以自相关函数算法为基础㊂对于乐曲数字化的有限离散信号,若其长度为N ,它的自相关函数R x (k )
定义为R x (k )=
ðN -1-k n =0
x (
n )x (n +k )(1
)其中k 是时移参数,显然当k =0时得到最大的R 值,也就是信号与信号本身相似度最大[
7]
㊂自相关函数在基音周期的整数倍处取得最大值,计算2个相邻的最大峰值间的距离,就可以估计出基音的周期,从而得到基音的频率㊂
乐音信号复合波的大多数峰值并不能反映基频的周期,而只有少数的峰值与基频有关㊂为了强化反映基频周期的峰值,减少谐波成分峰值的干扰,降低自相关算法的计算量,需要对音频信号进行中心削波处理㊂通常采用的三电平中心削波函数是
y (
n )=1,x (n )>C l 0,x (n )ɤC l -1,x (n )<-C ìîíï
ï
ïïl
(2)式(2)中,x (n )是原始乐音信号,C l 是削波电平,y (n )是削波后的乐音信号[8]
㊂一般地,削波电平是由乐音信号的峰值的固定百分比来确定的,可以取峰值幅度的60%~70%㊂
9
34
第5期 张 岩,等:基于Y I N 算法的乐器单旋律音高的提取
2.2 Y I N 算法
Y I N 算法可以一定程度地解决确定哪个峰值对应的是基频的峰值的问题㊂Y I N 函数的定义D x
(k )
为[9]
D x (k )=ðN -1
n =0
[x (n )-x (
n +k )]2
(3
)公式(3)中,以信号差平方和函数代替了公式(1)
中的信号积和函数㊂这样,在信号周期整数倍数处,Y I N 函数值为幅度差平方和,
并且取值均为零㊂很显然,查找零值的时间效率要高于求最大值的时间效率

图1 乐音信号某512采样点三电平
中心削波后Y I N 波形
F i g .1 Y i nw a v e f o r mo fm u s i c s i g
n a l a f t e r t h r e e -l e v e l c e n t e r c l i p p i n g a t 512s a m p l i n gp
o i n t s 利用Y I N 算法时,
考虑基频提取的实时性,通过实验测试三电平中心削波对Y I N 算法效率的影响㊂具体测试了不同采样点数量规模的情况下,只进行Y I N 算法的运行时间,以及先进行三电平中心削波后进行Y I N 计算的运行时间,测试数据如表1所示,采样点数为512时的Y I N 函数波形如图1所示㊂实验结果表明,随着处理的采样点数的增加,三电平中心削波会一定程度地增加Y I N 算法的运行时间;三电平中心削波减弱了Y I N 算法在信号周期处获得零值或者近零值的显著性,增加了获取周期位置的复杂性㊂因此,Y I N 算法不必进行自相关函数算法中的三电平中心削波处理㊂
表1 Y I N 算法与三电平中心削波+Y I N 算法的运行时间对比(
单位:秒)T a b l e1 C o m p a r i s o no f o p e r a t i o n t i m eb e t w e e nY i na l g
o r i t h ma n d t h r e e -l e v e l c e n t e r c l i p p i n g +Y i na l g o r i t h m (U n i t :s e c )方 法
采 样 点 数128
256
512
1024
Y I N 算法
0.0290
0.1140
0.4490
1.7910
三电平中心削波+Y I N 算法
0.03100.11700.45501.7970
3 单旋律乐曲的音高提取算法的实现
3.1 利用Y I N 算法对乐音信号的分析帧长的估算
图2 乐音信号某512个采样点的Y I N 波形
F i g .2 Y i nw a v e f o r mo f 512s a m p l i n gp o i n t s o fm u s i c a l s i g
n a l 以小提琴为例,从低到高的4根琴弦分别为E ㊁A ㊁D ㊁G ,标准的空弦音从低到高是g =196H z ㊁d 1=
294H z ㊁a 1=440H z ㊁e 2=659H z
,每把小提琴的实际频率分布是不同的[
10]
㊂假设取最低频率确定的分析帧长,当分析帧帧长取128
(1024个采样点的时间约为24m s ,128个采样点的时间约为3m s
)时,不能包含最低频率的2个周期,经过Y I N 算法实验证明,波形中包含1个最低点,但是不能判断该采样点即是周期点,所以需要扩展分析帧长点数;当扩展帧长点数为512时,采样时间约为12m s ,包含最低频率的2个周期,波形出现了周期性的波动,如图2所示㊂以上实验表明,512个点作为分析帧的帧长是适当的,依此也可以将分析
044沈阳师范大学学报(自然科学版) 第38卷
帧的一半,即256个点作为帧移㊂
3.2 获取乐音信号分析帧中近零点的方法
从图中的Y I N 函数波形来看,对于Y I N 算法理论上的零点存在2个实际的问题:图3 乐音信号某512个采样点的
Y I N 累积平均归一化波形
F i g .3 Y i n c u m u l a t i v ea v e r a g
en o r m a l i z e dw a v e f o r m o f 512s a m p l i n gp o i n t s o fm u s i c a l s i g
n a l 1
)理论上应该在信号周期处获得零点,但是由于采样时未必能取到信号周期所在处的点,所以只能从Y I N 函数值中获得近零点㊂2)当时移k 非常小的时候,D x (k )的值也非常小,也往往小于周期处近零点的值㊂当k =0时,往往就是D x (k )的零点或者是最接近零的近零点,影响获取正确的近零点㊂为了取消时移k 非常小的影响,可以采用累积平均归
一化差分函数,其公式为[
11]D n x (k )=1,k =0D x (k )1
k ðk j =1
D x (
k ),ìîíï
ïïïo t h e r w i s e (4)利用累积平均归一化函数,对于图2中的
采样帧进行处理,处理结果如图3所示㊂显然,经过处理后,消除了时移非常小时的Y I N 函数值对提取近零点的影响㊂
3.3 Y I N 算法提取音高的实现
在M a t l a b 环境中,读入小提琴无伴奏的WA V 乐曲文件,利用Y I N 算法提取该分析帧的基频的周
期,即采样点序号㊂若经算法计算得出基音周期为T (i ),则相应的基音频率为F (i )=f
s /T (i ),其中f s 表示乐曲采样频率[12]
㊂M a t l a b 代码如下[1
3]:[x 1,f s ,n b i t ]=a u d i o r e a d (ᶄx t q
.w a v ᶄ); %f s 为采样频率44.1k H z ,n b i t 为采样位数16,x 1为读取的归一化后幅%值[-1,1
]之间的乐音信号,共有采样点数*2个数据,2表示双声道[R o w ,C o l ]=s i z e (x 1);%采样点数组的行数和列数
N=512;
%确定分析帧的帧长点数
I n d =[];AM=[];P i t c h =[
];f o rF M=1:200%选取前200个分析帧
N 1=256*(F M-1)+1;%某分析帧的起始采样点序号,帧移是256 N 2=N 1+1024-1;%某分析帧的终止采样点序号
x 2=x 1(N 1:N 2,
:); D=[];D n =[];%以下3行是累积平均归一化的初始化 D n (1)=1;s u m n =0; f o r k =2:N
%延迟N 个点数
s u m=0;
f o r j
=1:N %Y I N 函数计算
s u m=s u m+(x 2(j )-x 2(j +k ))*(x 2(j )-x 2(j +k )); e n d
D (k )=s u m ;
s u m n =s u m n +D (k );%以下2行是累积平均归一化 D n (k )=D (k )/(s u m n /k );e n d
[A ,P o s ]=m i n (D n
);%求第一个近零点 AM (F M )=A ; I n d (F M )=P o s
;%求近零点的采样点序号
P i t c h (F M )=44100/I n d (F M )
;%求基频
e n d
4 结 语
根据十二平均律,计量上将一个八度音程即2倍频率之间分成12个音级,
每2个相邻音级相差1
44
第5期 张 岩,等:基于Y I N 算法的乐器单旋律音高的提取
244沈阳师范大学学报(自然科学版)第38卷100音分(c e n t)㊂2个相邻音级的频率比是2(1/12)(约1.059463)㊂2个相邻音分的频率比是2(1/1200)
(约1.00057779)[14]㊂音列中乐音i的标准频率公式为F(i)=f a1*2(n/12),其中f a1=440为第一国际高度,n为乐音i到a1间隔的半音数目,当乐音i比音a1低时,n取负数[15]㊂以前面的200个分析帧(帧长512点,帧移256点)提取的音高序列为例,提取的频率和标准频率之间存在偏差,表现为音级和音级之间不是准确的2(n/12)的关系,进一步通过消除偏离频率严重的野点来修正提取的频率㊂以f a1= 440H z为基准,可以通过若干次的1.059463的倍数来计算标准音级的频率㊂对于某个音级,可以通过若干次的1.00057779的倍数来计算音级的各个音分的频率㊂如果是音准检测,那么10个音分以内的偏差下,可以认定音级;如果是提取旋律,那么50个音分以内的偏差下,可以认定音级,或者结合提取频率对应的帧数来进一步判断,当帧数少于2帧时,可以认定为野点,否则可以进行频率修正,如表2所示㊂显然,经过修正后,可以提高乐音频率提取的准确度㊂
表2提取频率的修正方法
T a b l e2T h ec o r r e c t i o nm e t h o do f e x t r a c t i o n f r e q u e n c y
提取的频率标准音级的频率音分偏差修整方法
86.811,86.982,87.154,87.32787.307289,6,3,087.30728
104.5103.82644103.8264
174.31,175174.61443,4174.6144
260.95261.62584261.6258
393.75391.99558391.9955
454.64466.163744野点/466.1637
518.82,525523.25116,6523.251
700698.4564698.456
773.6824野点/783.9902
787.5783.99028783.9902
801.8239野点/783.9902
816.67830.608629野点/830.6086
参考文献:
[1]李强,于凤芹.一种改进的基于音高显著性的旋律提取算法[J].计算机工程与应用,2019,55(3):115119.
[2]李伟,冯相宜,吴益明,等.流行音乐主旋律提取技术综述[J].计算机科学,2017,44(5):14.
[3]张维维,陈喆,殷福亮.复调音乐主旋律提取方法综述[J].电子学报,2017,45(4):10001007.
[4]陈静.钢琴音乐的多基频估计研究[D].成都:电子科技大学,2016.
[5]李睿.音乐和谐感的科学支点研究[D].太原:山西大学,2018.
[6]胡倩如.解析钢琴调律中检验方法对基准音组音高的影响[J].西安音乐学院学报,2019,38(3):138142.
[7]S T A U D A C H E R M,S T E I X N E R V,G R I E S S N E R A,e ta l.F a s t f u n d a m e n t a l f r e q u e n c y d e t e r m i n a t i o nv i aa d a p t i v e
a u t o c o r r e l a t i o n[J].S p r i n g e r J o u r n a l,2016,2016(1):18.
[8]赵发,孙瑞霞.基于小波减噪的基音检测改进算法[J].安徽理工大学学报(自然科学版),2018,38(2):7782.
[9]张维维.音乐主旋律提取与多音高估计方法研究[D].大连:大连理工大学,2019.
[10]Y O L O Y AMA M.P o s s i b i l i t y o f d i s t i n c t i o no f v i o l i nt i m b r eb y s p e c t r a l e n v e l o p e[J].A p p l i e dA c o u s t i c s,2020,157
(1):17.
[11]张维维.音乐主旋律提取与多音高估计方法研究[D].大连:大连理工大学,2019.
[12]刘莹,赵彤洲,江逸琪,等.基于自相关函数的钢琴乐音改进识别算法[J].武汉工程大学学报,2018,40(2):208
213.
[13]张岩,吕梦儒.基于MA T L A B的音乐旋律二维可视化方法[J].沈阳师范大学学报(自然科学版),2018,36(4):342
346.
[14]中华人民共和国国家质量监督检验检疫总局,中国国家标准化管理委员会.十二平均律的频率与音分的计算:G B/ T23146 2008[S].北京:中国标准出版社,2018.
[15]别碧耀.基于示范音频深度学习的钢琴自动作曲研究[D].广州:华南理工大学,2019.。

相关文档
最新文档