基于色度特征和动态时间卷曲算法的音频与乐谱对位
张苾荍, 韩圣龙
北京大学信息管理系 北京 100871
摘要

提出基于色度特征和动态时间卷曲算法,实现MIDI、MusicXML两种乐谱格式与WAV、MP3两种音频格式间的对位,并使用真实录音作为音频进行实验,采用人工标注正确时间的方式评估结果,使得对算法效果的评价更接近现实情况。实验结果显示该算法基本能够达到预期效果。

关键词: 音频与乐谱对位; 色度特征; 动态时间卷曲算法
Audio to Score Alignment Based on Chroma Features and Dynamic Time Warping Algorithm
Zhang Biqiao, Han Shenglong
Department of Information Management, Peking University, Beijing 100871, China
Abstract

This paper accomplishes the alignment between two kinds of score format—MIDI and MusicXML, and two kinds of audio format—WAV and MP3 based on chroma features and dynamic time warping algorithm. In addition, in the process of experiment and evaluation, this paper uses historical recordings as audio materials and labels the ground truth of measures manually in order to know the true effect of the algorithm in real world. The results of the experiment show that the algorithm has achieved the desired effect basically.

Keyword: Audio to score alignment; Chroma features; DTW algorithm
1 引 言

基于内容的音乐信息检索技术可以按其处理对象分为两类:应用于基于乐谱的符号化格式(简称乐谱),运用在基于声学波形信号的音频格式(简称音频)上[ 1],两类技术各有优势和不足。一方面,由于乐谱所记录的不是声音信号, 而是音符、控制参数等指令,获取音高、节奏等音乐特征更加容易,因此在如旋律提取、和弦检测等研究领域中,前者的效果往往会优于后者;另一方面,由于乐谱输出的声音与自然演奏、演唱有一定差距,因此无法在音乐情绪分类、演奏者识别等领域中作为研究样本。

音频与乐谱对位目的是比较分别来自音频文件和乐谱文件的两段音乐,找到二者在时间上的对应关系。用这种方式将音频与乐谱之间以对位和同步的方式建立联系,则可以将现有的基于音频的技术与基于乐谱的技术结合起来,进而简化算法并改善其效果。

2 相关工作

音频与乐谱对位最初在20世纪80年代以辅助自动伴奏的形式出现。Bloch等[ 2]分别从乐谱和演奏中提取音符序列或复合事件序列作为所使用的音乐特征以进行比较,但是对多声部音乐效果不佳。近10年来,研究者更倾向于使用低层音乐特征作为比较对象,Logan[ 3]使用了梅尔倒频谱系数,Tzanetakis[ 4]使用了音高直方图, Hu等[ 5]提出可以使用色度图谱作为特征。Dwert等[ 6]使用色度特征和音符始点组成的复合向量序列作为所使用特征。Devaney等[ 7]使用了峰频谱差异作为声乐作品的特征。Ewert等[ 8]将色度向量和频谱流量结合生成了DLNCO特征。

对位使用的主流算法与语音识别类似,主要为隐马尔科夫(Hidden Markov Model,HMM)模型和动态时间卷曲(Dynamic Time Warping,DTW) 算法两种。Raphael[ 9],Cano等[ 10]以及Orio等[ 11],分别在其研究中使用了HMM完成实时的乐谱跟踪。而在非实时的对位中,由于隐马尔科夫模型需要通过训练提高准确率,因此DTW算法更有优势。近年来,一些学者对这些算法进行了改进和融合。Dixon[ 12]提出了即时的DTW算法,并将其运用到实时对位中。Cont[ 13]提出了隐马尔科夫/半马尔科夫模型。Devaney等[ 7]在DTW计算结果的基础上使用了HMM模型,以改善对声乐的对位效果。Cont[ 14]在其研究中提出了音符隐马尔科夫模型(SHMM),Niedermayer 等[ 15, 16]在DTW算法结果的基础上使用非负矩阵分解(Non-negative Matrix Factorization,NMF)进行修正,使结果能够识别同一和弦中不同音符。

研究使用的音乐格式多为MIDI和WAV格式,对其他的音频和乐谱格式少有涉及,目前国内尚未见相关研究。

3 音频与乐谱对位的实现
3.1 音乐特征的选取

色度特征是色度向量(Chroma Vector)和色度图谱(Chromagram)的统称。色度向量是一个含有12个元素的向量,这些元素分别代表一段时间(如1帧)内12个音级中的能量,不同八度的同一音级能量累加,色度图谱则是色度向量的序列。使用色度特征代表一段音乐既有理论支持,也在实践中被证明简便易行,其优势主要有:

(1)色度特征独立于节奏等高层的音乐特征,只需考虑音乐的频率,获取难度较低;

(2)色度特征的基础并非音乐的频谱形状,而是能量处于支配地位的音高及和声,因此当音响结构由单声部变为复杂多声时所受影响很小,不会像音乐旋律特征的提取一样对音响的复杂度的变化极其敏感;

(3)八度变化不会改变音乐的和声特征,从本质上来讲,音乐的色度图谱就是以帧为单位的和声进行序列,独特性很强,能够代表一段音乐。

3.2 音乐格式的选取

WAV格式是最早的数字音频格式,编码、解码简单,且被多种程序和编程语言支持,因此是非常理想的分析和处理对象,但其也有占据存储空间大、不适宜在网络上传播的缺点;MIDI虽然为最通用的结构化音乐格式,但其包含的信息量大小与制作者水平密切相关,进一步利用的价值可能有限。

因此,笔者增加了对网络中广泛使用的音频格式MP3格式和以XML标记的乐谱格式MusicXML格式的支持,以使算法具有更好的通用性。

3.3 从音乐文件中提取色度特征

笔者使用Matlab语言分别从乐谱和音频两类文件中提取色度特征,其操作方式略有不同,过程如图1所示:

图1 色度特征提取过程

(1)从乐谱中提取色度特征

①获取音符矩阵

从乐谱中提取色度特征,首先要取得记录音乐文件中每个音符的音高、开始时间、结束时间、响度等信息的音符矩阵。从MIDI格式音乐中获取音符矩阵可以利用Eerola等[ 17]编写的MIDI工具箱中的函数实现;而对于MusicXML,情况则较为复杂,代码编写过程中使用了Nichols等[ 18]所编写的MusicXML工具箱,获取音符矩阵的大致步骤如下:

1)判断XML文件是否为乐谱,如果是则取出每个小节;

2)根据乐谱提供的信息判断需要反复的段落,并记录反复后的小节次序;

3)取出每个音符,以节拍为单位记录其开始时间、终止时间和音高;

4)取出乐谱的速度信息,如果没有则指定默认速度;

5)将音高换算为MIDI标准的音高(21至108之间),将节拍换算为秒,赋予每个音符默认响度127,形成音符矩阵。

②将音符矩阵转化为音高图谱

在取得记录音符信息的音符矩阵之后,将绝对时间按照所选窗的长度转换为帧,并将每一个音高在每一帧内的能量记录下来,成为音高图谱。主要代码如下:

n1 = round(Notes(:,onset)/ts)+1;

n2 = round(Notes(:,release)/ts)+1;

length = max(n2(:));

PR = zeros(128,length);

%vals = ones(Nnotes,1);

vals = Notes(:,velocity); % velocity

for i=1:Nnotes

if Notes(i,notenumber)~=0;

f_pitch(Notes(i,notenumber), n1(i):n2(i)) = vals(i);

end;

end

f_pitch=f_pitch';

③将音高图谱转化为标准化的色度图谱

在音高图谱的基础上,将同一时间、同一音级、不同八度的音符的能量(以响度计)叠加到色度向量内该音级的元素上,成为色度图谱。由于乐谱与音频对能量的计量有所区别,而不同的音频录音之间能量的范围也可能差别很大,因此笔者将色度图谱标准化,即将每个色度向量的长度化为1。由于能量过低的向量一般为噪音或泛音,笔者还在此过程中加入了控制,将最大能量小于阈值的向量替换为零向量,具体实现如下:

seg_num = size(f_pitch,1);

f_chroma = zeros(seg_num,12);

for p=parameter.midi_min:parameter.midi_max

chroma = mod(p,12)+1;

f_chroma(:,chroma) = f_chroma(:,chroma)+f_pitch(:,p);

end;

f_chroma_norm = zeros(seg_num,12);

unit_vec = zeros(1,12);

for k=1:seg_num

n = norm(f_chroma(k,:),2);

if n

f_chroma_norm(k,:) = unit_vec;

else

f_chroma_norm(k,:) = f_chroma(k,:)/n;

end;

end;

(2)从音频中提取色度特征

从音频格式中提取色度特征的不同之处在于从文件到音高图谱的过程。笔者将WAV或MP3文件读取到Matlab中,将其分解到音高从A0到C8(音乐作品中使用的全音域),即从21到108的88个MIDI频带上,根据给定的取样率和窗口大小计算各频带的短时均方能量(STMSP)。计算后,可以得到一个行数等于总帧数目、列数等于128(MIDI的总频带数量)的矩阵,矩阵的每个点记录该音高在这一帧的时间内的平均能量。在获得音高图谱后,将其转化为标准化的色度图谱的过程与乐谱相同。编写代码时使用了Müller等[ 19]提供的Chroma工具箱。从音频生成的色度图谱如图2所示:

图2 从音频生成的色度图谱

3.4 使用DTW算法计算对位路径

DTW算法由Sankoff等[ 20]提出,是一种衡量两个在时间和速度上有差别的序列之间的相似性的算法,其目的是让计算机能够在一定的限制下找到两个序列之间的最优对应关系。本文运用了DTW算法计算音频和乐谱之间的对应关系。步骤如下:

(1)计算相似度矩阵。笔者选取了欧氏距离作为衡量两向量差异的标准,距离越小则表示二者相似度越高;生成的相似度矩阵中,第i行第j列表示来自乐谱文件第i个向量与来自音频文件的第j个向量间的距离。

(2)根据相似度矩阵生成距离矩阵D。该矩阵中,每一个元素(i, j)表示从(0,0)到(i, j)的最短总路径,其值等于相似度矩阵M中M(i,j)的值与D(i-1, j)、D(i-1, j-1)、D(i, j-1)三个元素中的最小值之和;路径矩阵中则记录了以(i,j)元素为终点的最短路径的前一元素的位置。

(3)通过距离矩阵和路径矩阵回溯找到最短路径。

由两个色度图谱所计算出的相似度矩阵如图3所示:

图3 相似度矩阵与对位结果

其中,每个方格在纵轴上对应的是乐谱中这一色度向量所在帧的编号,在横轴上对应的则是音频中的帧编号。色度向量间的距离越小,相似度越高,方格颜色就越深。图3中可以看到一条明显的黑色对角线,在这条线上,色度向量间的距离非常小;还有另外4条与最优路径平行的颜色较深的路径,这是由于乐曲中存在重复乐段所致。计算出的最优路径与相似度最高的路径基本重合。

4 实验及效果评估

在以往的研究中,大部分个人研究者为方便评估算法结果,一般采用将MIDI文件经过一定的变换后转换为WAV文件进行对位。但是,即使进行了混音、添加音乐表情等处理,MIDI音乐的效果还是与真实演奏的录音有差别,若将其作为音频素材,评价的结果可能与真实情况有差距。本文采用著名音乐家的真实演奏录音作为音频素材,在软件帮助下手工标注正确音符始点,并与实验结果进行对比,进而做出评价。

4.1 实验素材

笔者从巴赫的法国组曲第一组(作品BWV812)至第三组(作品BWV814)中选择了5首曲目。这主要是由于巴赫的法国组曲为复调钢琴音乐,音色单一,噪音较少,同时又具有一定的音响复杂性,且乐曲均为不同国家的民间舞曲,速度、节奏、风格各不相同,比较具有代表性。

实验所用的音频均为著名钢琴家真实演奏的录音,从FLAC或APE等无损格式导出为WAV格式。为保证实验结果不受钢琴家演奏风格和录音质量的影响,每首乐曲挑选了三个不同的版本。实验所使用的MIDI文件和MusicXML乐谱来自http://www.hausmusik.ch。为便于评估,每首乐曲只取前8小节。

乐谱的帧长度为0.05s,即特征采样率为20Hz;音频的采样率为22 050Hz,帧长度为2 205,半重叠,即特征采样率也为20Hz,与乐谱相同。

4.2 结果评估方式

实验采取人工标注的方式确定正确对应时间,并与对位结果比较,标注所采用的辅助软件为Cool Edit,该软件可以显示音乐的能量变化情况。由于多声部乐曲的复杂性,无法准确标注每个音符,因此笔者以每小节的第一拍的起始音符作为标注点,与实验结果中该音符在音频中被对应到的位置比较,计算其偏移时间。

实验主要关注的结果为对位的总体准确度及不同格式音乐之间(WAV与MIDI、WAV与MusicXML)对位准确度的差别。准确度以总体偏移时间均值和方差为标准。

4.3 实验结果

所选样本的实验结果如表1所示:

表1 实验结果

两种乐谱格式分别与音频的对位结果误差均值都在0.1秒以下,基本达到了预期效果,但还有提升的空间,MIDI作为乐谱的效果要略好于MusicXML。

由于所选定的特征取样率为每秒20Hz,因此最理想的结果中,对位误差应在0.05秒之内,而本实验的误差略高于该值,笔者认为与以下两点有关:

(1)音频格式的一开始会有0.1-1.0秒不等的空白,而在实验中,通常开始位置对位结果的偏移时间最大,个别音乐中可达0.1秒以上。因此,这段空白可能对对位产生了负面影响。

(2)在专业软件的帮助下手工标注准确的音符始点虽然准确度相对较高,但在波形清晰度不够的情况下仍不能避免0.02秒以内的误差,因而对结果也会有一定影响。

5 结 语

本文基于色度特征和动态时间卷曲算法,实现了MIDI、MusicXML两种乐谱格式与WAV、MP3两种音频格式间的对位,在以往研究的基础上增加了支持的格式。另外,本文使用真实录音作为音频进行实验,采用人工标注正确时间的方式评估结果,使得对算法效果的评价更接近现实情况。实验结果显示算法基本达到了预期效果。

笔者认为还有以下内容需要进一步改进:

(1)加强算法对音频和乐谱有差别的情况的支持。由于色度图谱的基础是音级,因此移调对于算法准确性的影响是致命的。另外,由于DTW算法的路径连续,因此段落的重复和跳过也会造成结果的偏误。因此,有必要进一步研究在音频与乐谱调性、段落有差别的情况下,如何使算法有效。

(2)改善算法的效率。由于DTW算法时间复杂度很高,如果窗口较小且音乐较长,那么算法所需的时间相当可观,甚至会造成溢出,因而降低算法的时间复杂度也是亟待考虑的问题。

参考文献
[1] Orio N. Music Retrieval: A Tutorial and Review[J]. Foundations and Trends in Information Retrieval, 2006, 1(1): 1-90. [本文引用:1]
[2] Bloch J, Dannenberg R B. Real-time Accompaniment of Polyphonic Keyboard Performance[C]. In: Proceedings of the International Computer Music Conference, San Francisco, USA. 1985: 279-290. [本文引用:1]
[3] Logan B. Mel Frequency Cepstral Coefficients for Music Modeling[C]. In: Proceedings of the International Society for Music Information Retrieval, Plymouth, Massachusetts, USA. 2000. [本文引用:1]
[4] Tzanetakis G, Ermolinskyi A, Cook P. Pitch Histograms in Audio and Symbolic Music Information Retrieval[C]. In: Proceedings of the International Society for Music Information Retrieval, Paris, France. 2002: 31-38. [本文引用:1]
[5] Hu N, Dannenberg R B, Tzanetakis G. Polyphonic Audio Matching and Alignment for Music Retrieval[C]. In: Proceedings of the IEEE Workshop on Applications of Signal Processing to Audio and Acoustics, New Paltz, NY, USA. 2003. [本文引用:1]
[6] Ewert S, Müller M, Grosche P. High Resolution Audio Synchronization Using Chroma Onset Features[C]. In: Proceedings of the IEEE International Conference on Acoustics, Speech, and Signal Processing, Taipei, China. 2009. [本文引用:1]
[7] Devaney J, Mand el M I, Ellis D P W. Improving MIDI-Audio Alignment with Acoustic Features[C]. In: Proceedings of the IEEE Workshop on Applications of Signal Processing to Audio and Acoustics, New Paltz, NY, USA. 2009. [本文引用:2]
[8] Ewert S, Müller M. Refinement Strategies for Music Synchronization[C]. In: Proceedings of the 5th International Synposium on Computer Music Modeling and Retrieval, Coperhagen, Denmark. 2008. [本文引用:1]
[9] Raphael C. Automatic Segmentation of Acoustic Musical Signals Using Hidden Markov Models[J]. IEEE Transactions on PAMI, 1999, 21(4): 360-370. [本文引用:1]
[10] Cano P, Loscos A, Bonada J. Score-Performance Matching Using HMMs[C]. In: Proceedings of the International Computer Music Conference, San Francisco, USA. 1999: 441-444. [本文引用:1]
[11] Orio N, Dechelle F. Score Following Using Spectral Analysis and Hidden Markov Models[C]. In: Proceedings of the International Computer Music Conference, San Francisco, USA. 2001: 151-154. [本文引用:1]
[12] Dixon S. Live Tracking of Musical Performances Using On-line Time Warping[C]. In: Proceedings of the 8th International Conference on Digital Audio Effects, Madrial, Spain. 2005: 92-97. [本文引用:1]
[13] Cont A. A Coupled Duration-focused Architecture for Realtime Music to Score Alignment[J]. IEEE Transaction on PAMI, 2010, 32(6): 974-987. [本文引用:1]
[14] Cont A. Realtime Audio to Score Alignment for Polyphonic Music Instruments Using Sparse Non-negative Constraints and Hierarchical HMMs[C]. In: Proceedings of the IEEE International Conference on Acoustics, Speech, and Signal Processing, Toulouse, France. 2006. [本文引用:1]
[15] Niedermayer B. Improving Accuracy of Polyphonic Music-to-Score alignment[C]. In: Proceedings of the International Society for Music Information Retrieval, Kobe, Japan. 2009: 585-590. [本文引用:1]
[16] Niedermayer B, Widmer G. A Multi-pass Algorithm for Accurate Audio-to-Score Alignment[C]. In: Proceedings of the International Society for Music Information Retrieval, Utrecht, Netherland s. 2010: 417-422. [本文引用:1]
[17] Eerola T, Toiviainen P. MIDI Toolbox: MATLAB Tools for Music Research[EB/OL]. [2011-08-17]. http://www.jyu.fi/hum/laitokset/musiikki/en/research/coe/materials/miditoolbox/. [本文引用:1]
[18] Nichols E, Morris D, Basu S. Relationships Between Lyrics and Melody in Popular Music[C]. In: Proceedings of the International Society for Music Information Retrieval, Kobe, Japan. 2009: 471-476. [本文引用:1]
[19] Müller M, Ewert S. Chroma Toolbox: MATLAB Implementations for Extracting Variants of Chroma-based Audio Features[C]. In: Proceedings of the International Conference on Music Information Retrieval, Miami, Florida. 2011: 215-220. [本文引用:1]
[20] Sankoff D, Kruskal J B. Time Warps, String Edits, and Macromolecules: The Theory and Practice of Sequence Comparison[M]. Addison Wesley, 1983. [本文引用:1]