第26卷第5期2009年5月计算机应用研究ApplicationResearchofComputersV01.26No.5Mav2009基于自适应白化的音乐节拍实时跟踪算法王跃,谢磊,杨玉莲(西北工业大学计算机学院音频、语音与语言处理研究组,西安710072)摘要:提出一种基于白适应白化的音乐节拍实时跟踪算法。在对音乐信号进行触发点检测之前,构建音乐信号短时傅里叶变换的当前频域峰值表,对各频段的频谱幅值进行自适应加权。使各个频段保持相似的动态范围,改善音乐信号起伏变化较大时触发点检测准确性低的问题,进而提高节拍实时跟踪效果。在MIREx2006标准测试库上的节拍跟踪实验表明,自适应白化的引入可整体提高P—score,特别是对于起伏变化很大的音乐信号,节拍跟踪效果的提高非常明显。关键词:音乐节拍跟踪;自适应白化;触发点检测;实时中图分类号:TP301.6文献标志码:A文章编号:1001.3695(2009)05—1676.03AdaptiVewhiteningforreal—timemusicbeattrackingWANGYue,XIELei,YANGYu-liall(A以如,5陴航&血甥z嘲它Pro螂sf,lgcro印,&枷f矿co唧眦rAb醴ract:Thjswhiteningintopapersc如,掰,胁n^蝴Po咖ec^n如越№泌瑙豇y,射’nnformusicwith7100r72,C托舱)pmpo鸵danonsetdetectionphaseofmagnitudeofeachbinaccordingtoicmngeoveradaptive—whitening-b鹊edreal-timealg州thmformusicbeattracking,introducedadaptiveamusicbeattmcker.ItpreprocessedtlleSTn’fhmesbyadaptiveIynorrnalizingtheapresentBpectralpeaktable.TmsaIlowedeachma#mjtudebintoachieveasi而lardynam—detectiontimeandimprovedononsetpe怕Ⅱnancespec叫ro重l-ofre脆ctsaIldstmn百y-va聊ngdynam-ics.ExperimentalresultssuperiortheMIREX20016datasetshowsthatthepmposedadaptive—whitening.basedbeattrackerachievescanperf.omlance锄dmusicbeatitsignifjc卸tlyimpmvet|IeP—scoresformusicsample8试thstrDngly—varyingdynaIIlics.white面ng;onsetdetection;real・timeKeywords:tracking;ad印tive的播放,一旦出现节拍周期变化很大的状况,算法应该能及时0引言实时跟踪音乐节拍是人类的一种自然能力。人们在听音捕捉,反映到节拍的周期输出中。现行的节拍提取算法大致可以分为:a)是对MIDl这种符号化记谱音乐进行节拍分析,应用面相对较窄拉1.b)是直接处乐时会本能地识别音乐的节拍,经常边听音乐边踏脚、拍手或点头,跟着节拍舞动。利用计算机实现音乐节拍的实时自动跟踪具有广泛的应用。例如,在大型的演唱会中,舞台灯光效果往往能给演出锦上添花,歌手在投入演唱时,五光十色的灯光如果能随着音乐节拍自动打开和关闭,可以给观众带来视听的双蕈享受。机器人舞蹈是另外一个有趣的应用,机器人随着音乐的播放,利用接收到的音乐信号分析出音乐节拍,根据节拍强弱做出相应的舞蹈动作,与音乐同舞。其乐无穷。这些应用往往要求节拍提取算法具有实时性或因果性,即能根据已播放的音乐在短时间内预测下一节拍的时刻。利用计算机进行节拍提取分为两个阶段。第一阶段是从输入信号中构建中层表示(middle.representation)或驱动函数(拍ving“nc“on)…。通常不能直接对输入的音乐信号迸行节拍跟踪,一方面是因为原始信号中包含了大量的冗余信息;另一方面,音乐在主观听感上是由一系列的事件组成,节拍就是一种明显的事件,人们在听歌时,会跟踪间断的节拍事件而非连续的音乐旋律,因此需要对信号进行简化,突出事件出现的可能位置。第二阶段是从中层表示中提取节拍周期和进行节拍开始点检测,在音乐开始阶段假定节拍稳定出现,随着音乐收稿臼期:2008-07-13;修回日期:2008—09-2l理波形音频(wavefo咖)的非实时算法,如D如n13’的BeatR00t算法,它通过多代理机系统从产生的候选节拍中提取最有效的节拍;c)是处理波形音频的实时算法,如G(炯卜。的方法能够实时跟踪多个层次的节拍,但它对输入有严格,要求音乐是稳定的4/4拍的节奏,且算法代价大、效率不高。国际音乐信息检索评测MlREX”J,特别针对节拍提取开展年度竞赛,吸引了众多大学和机构的参与。近来,Davies肺。提出了一种基于上下文的节拍实时跟踪算法,该算法用最近6s的音乐信号,预测将来1.5s内音乐的节拍,具有较好的实时性。其中节拍周期和节拍开始点的提取过程相互,计算复杂度低。Da“es的实时算法对输入音乐的节拍没有特殊要求,但对起伏变化很大的音乐,节拍提取的准确性较差,因为其基于触发点检测的中层表示部分容易丢失大量高频信息,造成触发点检测错误,影响节拍周期提取的正确性。本文针对这一问题,在触发点检测之前引入自适应白化算法,通过对频谱能量进行自适应加权,改善起伏较大音乐触发点检测不准的问题,提高实时节拍跟踪效果。在MIREX2006b1标准数据集上进行的实验证明了改进方法的有基金项目:国家教育部高等学校博士点学科专项基金资助项目(20070699015)作者简介:王跃。男,硕士研究生,主要研究方向为音乐信号处理;谢磊,男,副教授,博士后,主要研究方向为多媒体信息检索、语音与语言处理(】【ielei2lst@鲫ail.cⅧ);扬玉莲,女,硕士研究生.主要研究方向为多媒体信息检索、语音与语言处理.万方数据第5期效性。1王跃,等:基于自适应白化的音乐节拍实时跟踪算法・1677・一帧信号的短时傅里叶变换之后,将各个频段与当前频域峰值表中的相应频段进行比对,若小于当前的频谱峰值轮廓相应频段,则进行增鼍相加并进行更新;若大于等于当前的频谱峰值轮廓,则更新为当前的频谱峰值轮廓。该方法可使各个频段保持相似的动态范围。stowell的原始白化算法只采用前一帧的频谱值来表示当前频谱值(cuLmag=口×old—lTlag)。本文同时考虑了当前帧和前一帧的影响,将自适应加权修改为eur二mag=(1一口)×cuLmag+口×old—mag(1)触发点检测存在的问题节拍自动跟踪的中层表示有多种方法,如基于触发点检测的方法"o和多子带分解方法"・等。触发点检测通常应用在音乐的节奏分析中,用来表示音乐事件和可能的音乐节拍点。触发点是指音乐信号的开始点,通常是信号幅值从零到达峰值的点。scheirer指出¨】,节拍点一定是触发点,触发点不一定是节拍点,然而触发点为节拍提取提供了重要线索。触发点检测主要有基于频域能量、基于高频内容、基于相位和基于复频域的检测等方法H]。Davies【61的实验表明,不同类型的触发点检测方法对于节拍跟踪的效果影响较大。其中基于复频域差分的触发点检测方法效果最好,但该方法在音乐信号起伏变化很大,或信号低频段集中大量频谱能量导致muo仃现象时,跟踪效果并不理想。图l(a)示意了《贝多芬第五交响曲》前15s的波形,这段音乐信号开始的能量很高,之后急剧降低,又突然增强,后又急剧减小,这给触发点检测造成了很大的困难。其中对基于频域能量或者频谱能量的检测方法造成的影响较大。起伏变化很大的音乐信号,在进行短时傅里叶变换(sho巾“meFourier其中.:cuLmag为当前帧频谱值;old—mag为前一帧频谱值;Ⅱ为加权系数。实验表明,同时考虑前一帧和当前帧的效果较好。《贝多芬第五交响曲》前15s的波形经过自适应白化的效果如图l(b)和图2(b)所示。白化后的波形图与原波形图相比,在信号强和弱的部分均呈现出相似的动态范围。对于白化后的频谱图,在同一段时间内,高频和低频部分的能蟹差别显著减小。整个频谱能量分布变得较为平坦和均匀,之前提到的训疆现象已基本消除。自适应白化算法伪代码如下:AdapIivewhilening(m—ma印iIude)输入:当前sTFrr变换后的512点幅值输出:经过自适应白化后的512点幅值iffhme8;=’,f打each1<=i<=512tr彻sfo咖,STF’r)之后会出现大量的范围变化很大的峰值。对STF-I'幅值进行限定阈值的归一化,可以在一定程度上提高触发点检测效果,但是对基于能量的触发点检测方法提高效果不明显"J。从图2(a)所示的同一段乐曲的频谱图中可以看出,低频占据了绝大部分频谱能量,低频段信息会“淹没”高频段ifmma鲈itude(i)>threshold//经验值p叩t(i)=m—ma酽itude(i);el∞p8pt(i)=dIreshold;endfbr%dif信息(即mll砸现象),从而导致基于复频域和高频内容的触发点检测方法失效。另一方面,实时节拍分析存在一定的惯性,如果音乐开始的节拍跟踪不准,会引起连锁反应。对于开始能量很强的音乐。在节拍预测时,会默认当前信号的能量很强、节拍很规律,但是当能量随时问急剧衰减时,这样的变化通常不能被有效地检测,最终影响后续节拍检测的准确性。fore∞h1<=;<=512old—mag。pspt(i);cuLmag=m—mag|Iitude(i);ifcuLmag<old一唧喀curm踞=(1一a)・cur-mag+a・old—mag;//a是加权系数endifpspt(i)=curⅡIag;endforf打e∞h1<=i<=512m一删峥litude(i)/=II墩(p8pt(i),th瑚hold);endfor(a)白化前(b)白化后图1‘.《贝多芬第五交响曲》前15s的波形图2.2算法特点自适应白化算法具有以下特点:a)自适应性。自适应白化是针对中层表示的问题提出的,它不同于对每一帧都进行线性加权的高频内容方法,又不(a)白化前(b)白化后同于信号的预加重处理,而是针对当前待处理帧之前的信号进行相应的动态调整和加权。b)实时性。实时节拍跟踪必然要求在进行中层表示时也圈2<贝多芬第五交响曲》前15s的频谱图2基于自适应白化的实时音乐节拍跟踪2.1能实时进行加权,该算法只利用当前信号之前帧的信息进行加权,效率高,能够满足实时性要求。c)低耗性。整个加权过程只需要一个保存当前的频域峰值表的数组。针对当前帧各个频率段的幅值进行频域峰值的更新,即可进行自适应加权。这样的时空代价符合节拍提取的低耗性要求。自适应白化算法为解决音乐信号起伏变化较大引起的触发点检测准确性低的问题,在触发点检测之前,引入Stowell等人¨。的自适应白化算法。每次从音频流读取512个采样点后,进行512点短时傅里叶变换。由于每个点都代表了相应的频段(bin),进行短时傅里叶变换后,保存目前可见的相应频段的最大值,称为当前频域峰值表(presentspectraJpeak3基于自适应白化的实时节拍跟踪算法Davies等人㈤的节拍跟踪算法是基于普通模态和上下文table,PSPT)。当进行下万方数据・1678・计算机应用研究第26卷模态的双模态机制方法,有效地解决了节拍跟踪的惯性问题。算法首先对输入的音乐信号进行加窗和矩时傅里叶变换,然后提取触发点。当音乐信号达到1.5s(128帧)后,将其更新输入到缓冲分析窗(6s),进行节拍周期提取和开始点检测。节拍周期提取和开始点检测由普通模态和上下文模态完成。上下文模态负责维持节拍的连续性;普通模态则负责检测节拍的变化。算法首先进入普通模态,对自相关进行瑞利先验加权和梳状滤波加权,提取周期和节拍开始点,之后检测所提取节拍周期的变化情况。如果连续三个节拍周期起伏较小,就认为音P=l^量1/胛∑。∑.y[n]・aJ[n—m]数;窗口彤用来描述一定的误差,定义为妒=Iound(O.2×medi舳(difr(6nd(a。))))(2)其中:Ⅳ表示样本长度;胛取样本和实际输出节拍更多的节拍(3)P—score越高.表示算法提取的节拍与人工标注越接近。4.3实验结果及探讨考虑到实时性和低耗性,选取基于复频域差分、频谱能量和高频内容三种触发点检测方法对20个样本进行实验,加权系数和阈值设定为经验值O.96和0.5。实验结果如表l所示。乐的节拍比较稳定,应该保持节拍的稳定性和连贯性,进入上下文模态,以上下文模态提取的节拍周期和节拍开始点,计算并输出节拍位置;否则仍然维持在普通模态,根据普通模态提取的节拍周期和节拍开始点计算并输出节拍位置。普通模态和上下文模态是通过不同的概率分布对自相关序列进行加权的,普通模态采用瑞利分布,上下文模态采用高斯分布。本文将前述自适应白化算法引入到节拍跟踪中。自适应白化算法主要关注节拍跟踪算法的中层表示部分,在提取触发点之前,将强弱信号调整到相似的动态范围。在保持原算法剩余部分不变的情况下,首先对窗口化后的短时傅里叶变换进行自适应白化,再进行触发点检测,最后从中层表示中提取节拍周期和进行节拍开始点检测。这样便构成了基于自适应白化的实时节拍跟踪算法,整个算法流程如图3所示。音乐信号输入纂磊埘触发点阀值化r1丰【lj个钳拍蛭化不犬瑞利先验概;靶进行以及梳状滤波器滤血l权田商斯先验概率进{i加甜发梳状滤玻器滤波加带通模态】!工下夏顸悉T—__=;提取节拍周期和节拍开始点,输出节拍图3基于自适应白化的节拍实时跟踪算法4实验4.1数据集实验数据由MIRE)【2006|51提供的公开测试样本构成,涵盖了不同风格、不问语言、不同节奏的音乐。每个样本时长308,单声道,采样率为44.1kHz,量化精度16bit。每个样本由加位专业人士进行人工节拍标注,40组标注好的节拍被当做正确的节拍,作为评判参照。4.2评测标准评测标准采用MIRE)(2006中定义的P—score。对每个音乐样本,忽略其前5s的节拍,对其后25s的节拍构建一个频率为100Hz的脉冲,对每一组人工标注的节拍位置构建脉冲矢量色㈨,s表示第l一40组节拍,n表示该组节拍的第n个拍子。然后用它与实际算法得出的节拍y[几]进行互相关检验,称为P—score,定义如下:万方数据对基于复频域的触发点检测表明,自适应白化后P—score比白化前有略微提高;对基于能量的触发点检测和基于高频内容的出发点检测,自适应白化后的P-score比白化前分别提高2.8%和5.4%左右。对单个样本计算的P-score统计显示,自适应白化使tmin8、妇inl3和t蹦n15三个样本的P—score提高较大,如表2所示。对波形和频谱图的观察表明,这三个样本也正是起伏很大的音乐样本。这验证了自适应白化对起伏较大音乐节拍跟踪的有效性。表l实时节拍跟踪实验结果表2起伏较大音乐的实时节拍《£:!!!熊竖竖壅堕结墨l£:!!!!盟触发点{I自适自适应音乐扯fj适自适应检测力法碰广1化白化样本应n化fLj化■明1丽砑—百面F厂石石丙仃ain80.59820.76l4基丁能量O.4328O.4448廿alnl30.19240.3905基于高频内容O.4258O.4488廿旨iIll5O.27860.39l6另外,№inl、Ⅱ面n8、衄in9和№inll的P-score远远高于其他样本,这些样本音乐节奏性强且节奏适中,为120BPM左右,是人类听觉比较倾向的节奏一J。节奏偏快(如trajnl9和train20)或偏慢(如trainl2)的音乐,其P.score普遍偏低,这是因为Davies算法普通模态中的瑞利先验分布是有偏的,即对于节奏为120BPM左右的音频帧在加权时赋予较大值,而对其他节奏的音频帧赋值较小,尤其是对于偏快和偏慢的节奏,权值接近于零。这导致节奏较快和较慢的样本出现时,节拍跟不上或者节拍太快。需要指出的是,本文实时节拍跟踪算法的P-score与MIRE)(2006评测中提供的算法有一定差距,排在其评测结果的第五名。然而MIRE)(2006评测中的所有算法均为非实时算法,本文算法具有较好的实时性。能够利用过去6s的音乐信号,预测将来1.5g内音乐的节拍。另外Dixon"o的实验表明,MIREx2006为每个样本提供了40个标注者提供的节拍标注,然而从这40个标注者提供的正确节拍中抽取节拍所计算的P-score,取值在0.34~0.73。也就是说,不同的人对于同一首音乐的节拍感觉也相差很大。5结束语本文针对Davies实时节拍提取算法中中层表示存在的问题引入自适应白化方法,改善音乐信号起伏变化较大时触发点的检测效果,从而提高了节拍跟踪的准确性。在MIRE)(2006标准测试数据上的实验表明了改进算法的有效性。根据本文的算法,设计了一个音乐节拍实时跟踪演示系统,如图4所示。今后的工作包括:完善自适应白化算法,减少算法对加权系数和阈值设定这两个参数选择的依赖;针对原有的有偏先验分布估计,引入新的先验估计模型,进一步提高实时节拍跟踪算法的效果。(下转第1684页)・1684・计算机应用研究第26卷器作为提供服务的server。所有设备连接在Cisc03750交换机a)带有动态反馈功能的DwPs算法比wRR更能够提高上,并分配内网IP。设备的硬件配置如表l所示。服务器系统的整体性能,使其具有更高的负载能力。表l测试环境b)在考虑服务器的负载能力和服务类型的情况下,算法的负载均衡性能得到了一定的改善。4结束语本文中实现的是一种基于服务类型动态反馈负载均衡算五台设备采用一样的操作系统RedHatLinux9,内核版本法,反馈机制采用NEcP完成。该算法在仿真测试中体现出了为LinuxKemel2.4,20,其他软件配置包括gcc.3.2.2、gJjbc.一定的优越性,说明具有实际应用的价值,但是还存在需要进2.3.2、GNu—ld-2.14等。客户端也要安装Tomcat5.O和MySQL一步改进的地方。如何更加准确合理地设定权重向量,需要进数据库,用于发布测试的服务。除了这些必需的配置外,系统一步的实验进行验证;在ssG设备上实现负载均衡模块的效进行了最小化安装,从而保证系统运行时的效率。充当ssG率问题也将是进一步研究的内容。设备的服务器上安装实现的负载查询器NEcP∞rver,并在内参考文献:核中实现均衡调度模块,包含经典的wRR算法和本文中采用【1]洪英杰,邵洪钢.业务选择网关在增值业务系统中的应用【j].的DwPs算法,数据包转发采用NAT的方式。每个服务器节现代电信科技。2005(4):32一”.点上安装负载反馈器NEcPagent。[2]cHEN“-chu锄,cHOIHA.Appmxim砸蚴algoritlIm8fordatad沁tributionwit|Iloadbal卸cingofwebserve玮[c]//Pr∞ofthe3rd3.2结果分析IEEEllltemalionalConferenceonClusterCompuljng.Washingt∞测试包括三项内容:a)测试传统的静态wRR算法性能;DC:IEEEC锄puterS0ciety,200l:274-281.b)测试不考虑服务类型和服务器负载能力的DwPs算法性[3]章文嵩.Linux服务器集群系统[EB/OL].(2003一03—24)[2008—能,即将负载能力向量和权重向量设成一样的值;c)测试完整06一加].hnp://www.1inuxvirtuaJserver.ofg.的DwPS算法的性能。测试过程中,后台服务器提供两种服务[4]cAssuccHIOE,TuccIs.s雠icanddyn硼ic卵hedulingalg棚tlIln(分别放到不同的目录下),即发布10KB大小的静态页面,以foI’scal8bleweb∞rver函㈨[c】//Proc0fthe9thIEEEEuromicm及发布能够触发复杂运算的动态页面(JSP文件)。结果如图骚,orkshop蚰P骶aueI锄dDistributedProc酷siIIg.M卸tova:[s.n.】,200l:369—376.4所示。[5]ryENGARA,MAcNAIRE,NGuYENT.An锄alyBiBofweb8erverpe舶m锄ce[c]//Pmc0fGlobalTelecom咖nic撕。啮conference.NewYork:【8.n.],1997:1943—1947.[6]郭成域,晏蒲柳.一种异构w曲服务器集群动态负载均衡算法[J].计算机学报,2005,28(2):179-184.[7]赵大勇.业务选择网管中访问控制机制的研究[D].西安:西安电子科技大学,2008.图3转发概率空间图4测试结果[8]易勤勤.ssG中多优先级队列管理机制的研究与设计[D].西安:西安电子科技大学,2008.从测试结果中可以看出,在访问量不大的情况下,算法之[9]cERPAA,ELsONJ.Thenetworl【elemenIcontmlpHyLocol[EB/间的区别并不明显。随着请求数量的增加,DwPs算法的优势OL】.(2000—09一10)[2008—06—20].hnp://ww.circlemud.oq/一便逐渐体现出来了,并可得出以下结论:jel∞n/wd【ln8∥d阳血一cerpa-necp—03.txt.(上接第1678页)[3]DIx0Ns.Evaluati∞ofthe踟diobeath鼍ckingsystembeatr00t[J].JoumaIofNewMusicResearch,2007,36(1):39.50.[4]GOT0M.An“io—ba8edreal-ti舵bealtracking8ystemformusic“lhorwith伽tdmm-sound8[J].JoumaIofNewMusjcResearch,200l,30(2):159一171.[5]Audjob∞t£HEkjllg[EB/0L].(200r7瑚J02)[2008埘-20].hl-tp://www.muBic・ir.org/mirex/2006/岫d麟.php/Audio—Beat—Tmck・ing.[6]DAV匝sME.Towafds卸t锄aticrhy山nIic∞c鲫p鲫iment【D].图4音乐节拍实时跟踪演示系统QueenMary:Univ∞酊ofL∞d∞,2007.参考文献:[7]scHEJRERED.T锄poandb∞£analyBj导o『acoustjcmus;calsi罢础[1]0VERGoORJ.Anevaluati∞啪thodfor跚diobe毗dete捆[c]//[J].JoumalofAcoustbISocietyofAmenca,1998,103(1):f,r∞0fd忙4t}I7rwentestud朗tconfe”即ceonrr.En∞hede:[s.588-601.n.],2006.【8]s1'owELLD,PLuMBLEYMD.Adaptivewhiten吨forimpmved泓[2]MEuDIcB.Ac卸salalgDritlImforb哪.№ck吨[c]∥P琳0f岫al七meaudioonsetdetecti仰[c]//Pr∞0fIntem“onalcomputer2ndCom唧ce彻Und吣啪dj-lg丑lldC瑚“ngM蚺jc.2002.Mu8icC蚰ference(ICMC’07).200r7.万方数据