一种基于最长匹配子序列算法的哼唱计算机音乐检索方法

文档序号:2836018阅读:1194来源:国知局
专利名称:一种基于最长匹配子序列算法的哼唱计算机音乐检索方法
技术领域
本发明涉及一种基于最长匹配子序列算法的哼唱计算机音乐检索方法,属于基于音乐信息内容检索的计算机应用技术领域。
背景技术
近年随着hternet的发展,音频数据呈几何级数增长。传统的基于文字标注的检索方法已经不能满足海量多媒体数据的检索需要,因此基于内容的音乐信息检索(Music Information Retrieval,MIR)技术已经成为信号处理、模式识别和数据挖掘等领域的热点技术之一。基于内容的多媒体信息检索技术的研究主要集中在图像和视频方面,目前,国内外应用在音频检索上的技术还不多见。随着用户对网络分类和检索的兴趣提升,使得建立音频web数据检索机制至关重要。制约基于内容音乐检索技术发展的关键技术问题是如何提取音频特征实现音乐内容表征并描述音乐特征以及用何种方法进行特征匹配。旋律特征的提取和表达是基于内容的音乐检索中的基础环节,从音乐片段中提取的旋律特征的能否客观、准确的表达音乐的语义信息,决定着音乐特征的正确传递,直接关系到后续的匹配和检索是否切实有效;音乐片段的相似度计算算法以及相应的匹配机制能否符合普遍的听觉、心理感受,是决定检索结果是否准确的关键因素。因此旋律特征的提取表达与相似度的计算评估是影响一个哼唱检索或内容的音乐检索系统性能的最重要环节。
对于声学信号而言,其听觉上的音高是由其基音频率序列(Fundamental Frequency)所决定的。音高提取的目是把用户的输入的声学信号转化成基音频率序列。 目前,在特征提取方面的常见算法如自相关函数算法(Autocorrelation)、倒谱分析法 (Cepstral Analysis)、交叉相关函数算法(CCF)、平均幅度差函数算法(AMDF)、标准化交叉相关函数算法(NCCF)、整合音高提取算法(Integrated Pitch Tracker),但随着相关技术的发展在很多应用场景中,这些算法的处理效果已经达不到应用的要求,极易造成特征表达与真实音乐语义内容的偏差和模糊。
目前在特征表达方面的常见方法及缺点如下所示
1、音高轮廓表达法无法对音高变化进行量化,易造成特征表达与真实音乐语义内容模糊,随着歌曲样本扩张,极易出现音高轮廓相同但实际旋律相差很大的情况。
2、MIDI音符近似表达法将用户哼唱的自然音高近似归一到离散的MIDI音符的整数值,会产生旋律表达不准确的问题。如图1所示,展示的是同一段旋律在C大调和A大调中的表达,两段旋律片段所有对应音的MIDI音高值完全不同,但给人的听觉和音乐认知上感受却是几乎完全一致。在合理的特征表达方法中,应视这两段旋律具有相同的旋律特征; 基于这一点就体现出MIDI音符近似表达法显得不够恰当与全面。
3、绝对音高表达法虽然解决了近似化产生的表达错误的问题,但配合串比较类和一些动态规划的相关算法时所产生的音高纵向整体偏移(Pitch Shiftiness)会带来严重的匹配误差,所以这种特征表达方法并不适合一般的相似度计算机制。
4、调内音级表达法虽然避免了音高整体偏移和不同调式哼唱所带来的影响。但该方法需要加入调式主音和调式属性作为附加信息,而在哼唱应用的使用场景中,绝大多数情况下主音和调式的属性无法直接获得,在哼唱片段较短、包含信息不够丰富的情况下,该方法可能出现很大偏差。如图2所示,这是一段C大调的旋律片段,但同时也符合G大调的调式属性。这是由于G大调的音节相对于C大调只存在一个变化音# 。所以,当旋律片段中未出现这个变化音时或其还原音时,由其他音符组成的旋律片段符合C大调和G大调两个调式的属性。这会导致利用调式内每个音符到主音的度数(Degrees of the Scale from the Tonic)定音方法的失效。且许多音乐风格在创作的过程中频繁采用包含转调、调外音等打破单一调式属性的音乐创作技巧,在这些情况下,采用该方法进行哼唱检索会产生很大误差。
5在传统的三重旋律表达法中,音程这一属性表达的是相邻音符之间的频率变化幅度,以赫兹为单位。音乐体系中所使用的音高单位是半音,尽管半音与赫兹成正相关但并非是线性相关,半音与赫兹呈现对数关系,因此在不同的音高区域,相差相等单位的半音的两个音之间对应的频率之差不同。如果采用频率之差作为相邻两个音之间音程衡量标准, 这将导致同一旋律在不同音高区域产生不同的音程序列,进而出现严重音乐特征扭曲,例如图4所示旋律1和旋律2包含相同的旋律特征,但在不同的调式下哼唱,其各个自然音在频率维度上分布的差别鲜明,使得三重旋律表达法无法客观表示旋律特征。
目前在相似度计算方面的现有方法如下
1、编辑距离算法
传统的编辑距离算法,编辑距离是用来计算两个字符串之间,把一个字符串A转换到另一个字符串B的最小操作代价。朴素的编辑距离算法(Levenshtein Distance)只适用于字符串之间的计算,无法直接应用与构成音乐旋律的相似度计算。而拓展后的编辑距离算法可以用于实数串的距离计算,这种方法的优势是可以量化比较相互匹配的两个实数序列之间的转化代价,以衡量两个实数序列所代表的两段旋律间的相似度。但这种拓展到实数范围的编辑距离算法更适用于全局比较,作为输入的两个旋律序列间不匹配时,其相似性计算性能明显降低。例如当用户哼唱的某乐句片段与一首音乐的完整信息进行匹配时,编辑距离算法会计算大量插入元素或删除元素所带来的额外代价,这会使得旋律相似度大大降低,从而导致算法失效。如图5虚线圈定的部分所示,尽管旋律B与旋律A的局部具有很高的相似度,可视为匹配的旋律片段。但由于旋律B被机械的与旋律A的整体进行相似度计算,其相似度被大大降低,这也是编辑距离算法的缺陷所在。
2、最长公共子序列算法
最长公共子序列算法的作用和优势在于,该算法可以从两个字符串A、B中找到相互匹配的子序列,从而可以用来实现从两段旋律中取得匹配的片段。但由于最长公共子序列算法不考虑元素插入和删除的代价,因此,当用户哼唱的某乐句片段与一首音乐的完整旋律信息进行匹配时,用户输入的较短的旋律序列会被无限制的拉伸,两段毫不相关的旋律通过把其中一段强行拉伸的进行匹配。这种匹配方式极大地扭曲了音乐旋律的特征,即便两段旋律经过拉伸得以匹配,但是这种方法实际上已经失效。
3、动态时间规整算法
用户哼唱的语音信号具有很强的随机性,不同的发音习惯,发音时所处的环境不同都会导致发音持续时间长短不一的现象。动态时间规整算法是把语音信号伸长或缩短,直到与标准模式的长度一致期间,未知单词的时间轴会产生扭曲或弯折,以便其特征量与标准模式对应。该算法特征使序列可以在时间轴上进行伸缩,从而使相似的轮廓能够对相互对齐,因此被广泛应用于基于内容的音乐检索、信号处理、语音识别等领域。但是,该算法同样有一些缺点,首先是时间复杂度太高,在对不定长的整句进行匹配且整句音符相差不多时,容易造成匹配结果区分度不高的问题。
4、隐马尔可夫模型
隐马尔可夫模型(Hidden Markov Model, HMM)是一种统计分析模型,可用于非特定人的语音识别中。在哼唱检索领域,由于用户输入的哼唱旋律本身也是语音信号,可以作为隐马尔科夫模型的观测向量,而旋律特征数据库中的音高特征序列特征具有概率统计特性,可以作为模型的隐状态。在实现中,通过对不同歌曲的旋律特征进行建模构成检索空间,并对模型进行相应的训练;在检索过程中,可以反馈用户哼唱的语音信号和检索空间内的歌曲模型相互匹配的概率。基于隐马尔可夫模型实现的哼唱检索系统,对于不同演唱水平的用户均能返回查准率良好的结果。但同时其也有不可避免的缺点隐马尔可夫模型对于音乐特征数据库中的每条记录,需要分别建立相应的训练模型,随着特征库容量增长,训练的工作量将会十分庞大,因此隐马尔可夫模型实用性较差。发明内容
本发明的目的在于提供一种能够克服上述技术问题的使计算机主动识别音乐音调变化的基于最长匹配子序列算法的哼唱计算机音乐检索方法。本发明的基本技术思路是在分析对目前音乐特征提取与表达方法的基础上,确定以相邻音之间的半音音程构成的特征序列;采用RAPT算法实现音乐基音频率的提取;在技术效果上避免了在不同调式哼唱的造成的特征提取偏差,为旋律特征的准确提取创造了前提和基础。在旋律特征表达方面,以十二平均律作为生律基础,将基频轮廓序列经过对数变换,转化为以半音为单位的音程序列,避免了不同用户在调式哼唱时对旋律特征的影响,同时实现对MIDI问题特征提取的归一化,以MOMEL算法实现宏观旋律轮廓建模,并以基于十二平均律的对数转化作为技术实现的特征提取与表达方法,使原本长度IO3数量级基频序列,在不丢失旋律特征的前提下,排除了歌词、语调对宏观旋律基频信号的波动影响,并使得到基频轮廓序列的长度缩减为10数量级,为进一步提高整体系统的匹配速度提供了重要支持。在相似度计算方面,采用基于最长匹配子序列(Longest Matched Subsequence,LMS)的相似度计算机制与传统串匹配计算方法相结合的方法,有效地避免了其它相关算法在应用中的局限性。
本发明的主要步骤为
(1)基音频率提取;通过音频处理,采用RAPT算法进行基音频率提取、采用低通滤波器和高通滤波器进行基音频率序列规整、采用中值滤波和线性平滑进行基音频率序列平滑、采用MOMEL算法进行旋律建模的步骤实现将用户哼唱的语音信号转化为基音频率轮廓序列。
(2)音乐特征数据库的构建;将数据库中所有歌曲的MIDI文件进行预处理,提取出其中的MIDI音高序列,并以独立字段存入音乐特征数据库,在后续的检索环节中省去了 MIDI文件处理的步骤,而是直接从特征数据库中提取音高序列。
(3)特征表达实现;将从音频处理模块得到的基音频率轮廓序列和音乐特征数据库提取的MIDI音高序列,转化为统一旋律音程序列,分别代表用户哼唱和数据库记录的旋律特征。
(4)检索匹配;将从用户哼唱音频提取的旋律特征序列分别与检索空间中的所有音乐特征序列进行相似度计算,并按照最长匹配子序列(LMS)算法机制,将每次匹配的结果进行相似度排序。
本发明的优点是,提升了相似度计算的总体速度,提高了搜索引擎的搜索效率,为卡拉OK和基于内容搜索网络引擎及多功能智能移动终端平台构建了精确的音乐检索平台;可广泛地应用在网络搜索引擎的相关插件等领域,本发明所提供的音乐特征的提取、音乐特征的表达以及相似度的精确计算方法可提供哼唱检索系统的准确计算,使音乐的检索准确、轻松、愉快,具有较强的实用价值和现实意义。


图1是同一段旋律分别在C大调和G大调中的表达示意图2是同时符合C大调和G大调调式属性的一段旋律示意图3是半音与赫兹的数值关系示意图4是相同旋律在不同调式下的频率变化曲线示意图5是局部旋律与整体旋律进行匹配示意图6是本发明的音频特征提取总体流程示意图7是相同旋律在不同音高区域的音程曲线
图8是本发明的基于MOMEL算法的旋律建模示意图9是本发明的基于LMS算法的相似度计算流程图。
具体实施方式
下面结合附图和实施例对本发明进行详细描述。本发明的主要步骤为
(1)基音频率序列提取及处理
在基于音乐信息内容检索的技术中,对音频输入的特征提取的准确性对于音乐信息检索系统的整体性能起着至关重要的作用。理想的音频特征提取需要客观准确地表达用户所输入的音频检索信息中的音乐旋律,为提升检索准确率和检索效率,本发明提出了一种包含基音频率提取、频域滤波、中值滤波、旋律建模等多步骤的结合的旋律特征提取流程,本发明的基音频率序列提取及处理总体流程如图6所示
1)对输入的WAV波形文件应用RAPT算法进行基音频率提取,从而得到基音频率序列;
2)将原始的基音频率序列将经过高通滤波器和低通滤波器处理,去除毛刺和噪声点,平滑基频曲线。人类的音域宽度范围一般在E2 (82Hz) C6(1047Hz)之间,根据人类自然发声范围,将高通滤波的阈值设置为80Hz,低通滤波的阈值设置为1100Hz,用以除去处在高低阈值之外的基频值;
3)用线性平滑处理对基音频率序列进行线性滤波处理,去除基音频率序列中的噪声点并且对基音频率序列的曲线轮廓进一步平滑。在本发明的实施例中,滤波窗口设置为 50毫秒。
4)将所得到的基音频率序列,通过中值滤波去除噪声点,有效地去除了基音频率序列中的噪声点,且完好地保留基音频率序列中连续曲线之间的阶跃变化。在本发明的实施例中,经过基音频率提取后的到基音频率序列采样率为100点/秒,中值滤波窗口设置为 77毫秒。
(2)音乐特征表达
1)基音频率曲线的特征表达
以半音作为单位,以相邻两个音之间的音程所构成的序列作为旋律特征。包含η 个自然音符的旋律片断,可被表达为η-1个实数构成的音程序列,以量化的方式表达旋律特征,不同旋律的音乐特征具有区分度,为后续的相似度计算提供有效的结果;对整体音高整体偏移不敏感,允许用户在任意调式中哼唱,相同的旋律特征仍能被提取;具有良好的稳定性,即使在旋律信息有限的情况下,特征表达方法仍然不会失效等优点。对用户通过哼唱输入的音频信息,音程计算定义如公式(1)所示(frea λ「00451 Pitch Interval =12* Iog2 J Hn+lV fre(h J (1)
根据以上定义,可将音高频率序列h = (freQl, freq2, freq3, ... , freqn)映射至丨J 音禾呈序列 Pi = (pitch_interval1, pitch_interval2, pitch_interval3,…,pitch_ Interval^1)。
对于音乐特征数据库中存储的MIDI文件,需要采用同样的旋律特征表达方式,使得从用户输入端和从数据库端提取的旋律特征具有相同的格式。对MIDI文件,音程计算定义如公式(2)所示,其中MIDI_noten+1和MIDI_noten代表MIDI文件中的音高值
Pitch Intervaln = MIDI_noten+1_MIDI_noten (2)
经过以上转化,可将不同调式下的同一旋律特征进行归一化,同时消除了不同哼唱调式对旋律特征提取的影响,如图7所示,显然两条曲线的对应点已经完全重合,不同调式中同一旋律的特征被成功的以归一化的方式提取出来。基于相同的特征表达方式可以设计一个相似度评价机制,来完成检索信息与数据库中的特征信息的匹配,对经过处理的基音频率序列进行旋律建模,得到一组由离散点构成的旋律骨架;旋律骨架经过对数转化,输入的相邻音之间音程被提取出来,并以此作为输入音频的特征序列,最终提取出的旋律特征,被送入匹配模块与音乐特征数据库中的信息进行相似度计算,得到匹配结果。
2)旋律的特征表达
通过基音频率提取、滤波的得到基音频率轮廓曲线,可被拆分成为两种相互独立旋律成份的组合宏观旋律成份和微观旋律成份。其定义分别如下
宏观旋律成份反应语音信息中的声调模式,与基音频率的全局音高变化密切相关。
微观旋律成份反应语音信息中的音素成份,影响基音频率曲线的局部变化。
同理,哼唱信息作为语音信息的一种,亦可视为两种旋律成份的组合。对于人声哼唱的音乐旋律,音高变化只和其基频曲线的宏观旋律成份相关,而哼唱的音标、歌词等音素信息,则由其基音频率曲线微观旋律成份决定,利用二次样条函数,通过插值近似得到基音频率曲线的宏观旋律。所得到的宏观旋律以离散目标点序列的形式呈现,并代表了该基音频率序列对应的音高旋律特征,哼唱旋律特征基于音高序列而与音标、音素信息无关。所以,利用MOMEL算法对经过滤波的基音频率轮廓曲线进行处理,可以获取基音频率轮廓曲线中的宏观旋律序列,并作为后续旋律特征表达的基础。
如图8所示的是MOMEL算法的处理的一个实例。经过旋律建模,基音频率轮廓曲线(上方)的宏观旋律(下方)被成功的提取出来。然而,MOMEL算法输出的直接结果对于后续的旋律特征表达仍存在明显不足。例如,图8中基音频率轮廓曲线最后两段中,代表一个音高的基音频率轮廓曲线被标记出两个数值十分相近的目标点。为解决此类问题,本发明设置一个参数化的阈值,用以控制相邻音之间的音程。当两个音之间的音程低于此阈值的时候,这个音程会基于具体情况被删除或者与其他相邻音程进行合并。
(3)相似度计算-检索匹配算法
(a)最长匹配子序列算法(Longest Matched Subsequence, LMS)
基于本发明中的特征提取方法所获得的旋律特征是一组实数序列,而音乐特征数据库中存储的旋律特征均为整数序列。此时,如果机械的利用最长公共子序列算法计算两个序列的相似度,那么很多原本可以匹配的元素可能被遗漏。
最长匹配子序列算法正可解决最长公共子序列算法(LCQ在应用中存在问题。最长匹配子序列算法作为对最长公共子序列算法的一种改进,其输出结果是独立的两个子序列A’、B’,分别是输入序列A、B的子序列。
按照如下方式定义最长匹配子序列
给定输入序列A= (al, a2, a3,…,an)和 B = (bl, b2, b3,…,bm),
即产生子序列A,= (a,1,a,2,a,3,...,a,1)和 B,= (b,1,b,2,b,3,· · ·, b,1)。
子序列A’、B’满足如下条件
1)子序列A’、B’中的每个元素都在另一子序列中有与之匹配的元素,且符合如下条件
在子序列A,、B,中
A’的元素a’ k对应A的元素ai ;
B’的元素b’ k对应B的元素bj。
满足LD(ai,bj) ( δ,其中δ为给定局部相似度最大值。
2)子序列Α’和B’分别在各自的原始序列中相对连续,即符合如下条件
在子序列Α,、B,中
Α,的元素a’ k对应A的元素ai,Α’的的元素a’ k+1对应A的元素as ;
B’的元素b’ 1对应B的元素bj,B,的的元素b’ 1+1对应B的元素at ;
满足s-i < L且t-j < L,其中L为子序列中允许插入元素的最大值。
3)子序列A’和B’具有相同的长度。并且A’、B’分别是A、B所有满足条件1)和 2)的子序列中最长的,即 |A' I = |B' I =max{|Ak|, |Bl|}。
在最长匹配子序列算法中,元素相等的概念被匹配的概念所替换。与最长公共子序列算法不同,A’与B’并非机械地完全相等,而是A、B所有子序列中最长且拥有相似度最高的一组。
(b)局部相似度计算
作为最长匹配子序列算法的基础,下面就局部相似度的计算方式进行介绍。
首先,定义实数序列的编辑距离算法
对给定输入的实数序列=X= (xl,x2,x3,· · ·,xm)、Y = (yl, y2, y3, . . . , yn)。
按照公式3定义实数序列中元素之间相互转化的权值,其中δ为判定相等的阈值
权利要求
1. 一种基于最长匹配子序列算法的哼唱计算机音乐检索方法,其特征在于,包括以下步骤(1)基音频率序列提取及处理;1)对输入的WAV波形文件应用RAPT算法进行基音频率提取,从而得到基音频率序列;2)将原始的基音频率序列将经过高通滤波器和低通滤波器处理,去除毛刺和噪声点, 平滑基频曲线,人类的音域宽度范围一般在E2(82Hz) C6(1047Hz)之间,根据人类自然发声范围,将高通滤波的阈值设置为80Hz,低通滤波的阈值设置为1100Hz,用以除去处在高低阈值之外的基频值;3)用线性平滑处理对基音频率序列进行线性滤波处理,去除基音频率序列中的噪声点并且对基音频率序列的曲线轮廓进一步平滑;4)将所得到的基音频率序列,通过中值滤波去除噪声点,有效地去除了基音频率序列中的噪声点,且完好地保留基音频率序列中连续曲线之间的阶跃变化;(2)音乐特征表达;1)基音频率曲线的特征表达;以半音作为单位,以相邻两个音之间的音程所构成的序列作为旋律特征。包含η个自然音符的旋律片断,可被表达为η-1个实数构成的音程序列,以量化的方式表达旋律特征, 不同旋律的音乐特征具有区分度,为后续的相似度计算提供有效的结果;对整体音高整体偏移不敏感,允许用户在任意调式中哼唱,相同的旋律特征仍能被提取;具有良好的稳定性,对用户通过哼唱输入的音频信息,音程计算定义如公式(1)所示
2.根据权利要求1所述的一种基于最长匹配子序列算法的哼唱计算机音乐检索方法, 其特征在于,所述最长匹配子序列算法的具体步骤如下(1)给定输入旋律特征序列Α、B,采用LMS算法计算取得A、B之间彼此相似度最高的子序列Α’、B’,即最长匹配子序列;(2)通过原始特征序列Α、Β的长度和匹配子序列A’、Β’的长度计算出原始特征序列Α、 B之间的匹配部分所占比率;(3)采用实数域的编辑距离算法计算Α’、B’之间编辑距离;(4)对检索过程中每一组参与匹配的特征序列,以A、B之间的匹配部分所占比率作为第一关键字进行降序排列,Α’、Β’之间编辑距离作为第二关键字进行升序排列,对其相似度进行排序,构成相似度降序列表。
全文摘要
本发明公开了一种基于最长匹配子序列算法的哼唱计算机音乐检索方法,主要包括以下步骤(1)基音频率提取;(2)音乐特征数据库的构建;(3)特征表达实现;(4)检索匹配;本发明的优点是提升了相似度计算的总体速度,提高了搜索引擎的搜索效率,为卡拉OK和基于内容搜索网络引擎及多功能智能移动终端平台构建了精确的音乐检索平台;可广泛地应用在网络搜索引擎的相关插件等领域,本发明所提供的音乐特征的提取、音乐特征的表达以及相似度的精确计算方法可提供哼唱检索系统的准确计算,使音乐的检索准确、轻松、愉快,具有较强的实用价值和现实意义。
文档编号G10L15/08GK102521281SQ201110382159
公开日2012年6月27日 申请日期2011年11月25日 优先权日2011年11月25日
发明者周明全, 武仲科, 王醒策, 陈卓然 申请人:北京师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1