一种基于二分逼近动态时间归整匹配的音乐哼唱检索方法

文档序号:6516458阅读:188来源:国知局
一种基于二分逼近动态时间归整匹配的音乐哼唱检索方法
【专利摘要】本发明公开了一种基于二分逼近动态时间归整匹配的音乐哼唱检索方法,所述【技术领域】涉及音频检索和哼唱检索技术,该方法包括两部分,一是通过MIDI音乐文件来构建音乐数据库。二是提取哼唱片段的特征,并与音乐数据库模型进行基于二分逼近动态时间归整的匹配并返回检索结果。包括以下步骤:首先对哼唱片段进行归一化、带通滤波、预加重、加窗分帧等处理;接着进行滤除静音段、基音检测、中值平滑等处理;最后进行基于二分逼近动态时间归整的匹配,根据匹配率由大到小排序并返回结果。本发明的优点是解决了音乐检索的音符序列时间点对齐问题和音符相对音高两大难题;能显著提高检索命中率。
【专利说明】—种基于二分逼近动态时间归整匹配的音乐哼唱检索方法【技术领域】
[0001]本发明涉及一种基于二分逼近动态时间归整匹配的音乐哼唱检索方法,属于音频检索和哼唱检索【技术领域】。
【背景技术】
[0002]传统的检索音乐的方法是基于文本的检索,当前主流的搜索引擎,如Baidu、Yahoo和Google等,在文本检索领域非常強大,但检索多媒体数据使用的是基于文本检索的方法。研究更加高效的、基于人类交流习惯的多媒体信息检索技术,是信息技术发展的必然趋势。音频检索作为多媒体信息检索的重要组成部分之一,是国内外信息检索【技术领域】关注的重要课题。
[0003]哼唱检索是音频检索的ー个分支。当用户利用搜索引擎检索一首音乐时,如果用户忘记了该音乐的歌曲名和歌手名等信息,将很难通过搜索引擎找到这首音乐,这时用户可以哼唱这首音乐在用户脑海中印象最深刻的一段旋律,使用在线哼唱检索系统来找到这首音乐,这种检索的方法是哼唱检索。哼唱检索是ー种基于内容的音频检索,用户通过麦克风哼唱一段音乐片段作为输入,哼唱检索系统对输入的音乐片段与数据库模板音乐进行匹配,检索出音乐片段所对应的歌曲。相对于传统的基于文本的音乐检索方法,哼唱检索更加自然高效,更加符合人对音乐的印象,相比于歌曲名和歌手名等文字信息,人更加容易记住音乐的旋律,特别是音乐的高潮旋律部分。
[0004]哼唱检索进行较早研究的Asif Ghias和R.J.McNab等人,采用时域上的自相关法提取音高,根据音高差用符号串(U,D,S)来表示旋律,采用近似字符串算法来进行音乐哼唱片段和音乐数据库模板的匹配,这种方法解决了音符相对音高的问题,但插入音符和丢失音符等会造成较大的误差,因此该方法无法解决音符的时间伸展问题。
[0005]Lie Lu和Hong You等人,`用基音轮廓、音程、基音持续时间表示旋律特征,提出了一种两级匹配的算法,先用动态规划(Dynamic Programming, DP)算法对齐音高轮廓,过滤一些误差大于等于规定阈值的音乐数据库模板,而对于误差小于规定阈值的音乐数据库的模板,再使用更加精确的算法比较对应的音程和基音持续时间,从而筛选出音乐,他们要求用户按照“DaDa…”来发音。该算法同样存在Asif Ghias和R.J.McNab等人所使用算法的问题,即无法解决音符的伸展问题,而且需要用户按照“DaDa…”来发音,使得用户在哼唱时很不自然,在不经过哼唱学习的情况下,容易在哼唱的时候出错。
[0006]William Rand和Wi 11 lam Birmingham等人提出了利用Markov统计模型进行旋律相似性的比较,因为他们的系统是对频率符号进行建模,所以他们的方法对哼唱的音高比较敏感,但较好地解决插入和丢失音符等造成的哼唱误差。Markov统计模型方法解决了音符的伸展问题,但无法解决音符相对音高的问题。
[0007]Mai din等人提出一种基于音高轮廓几何相似性的匹配方法,根据音乐哼唱片段提取音高,并按时间的变化画出音高曲线,而后在二维空间中比较两条音高曲线的几何相似性。通过在音高轴上的平移对齐音乐哼唱片段和音乐数据库模板的平均音高,再通过计算夹在两条曲线间的面积,判断两段旋律的匹配相似程度,面积越小相似度越高。音高轮廓几何相似性的匹配算法解决了音符相对音高问题,但无法解决音符序列时间点对齐问题,对插入音符和丢失音符等误差较大。
[0008]台湾清华大学的张智星等人采用时间上限定音符的方法,采取避开音符切分的策略,避免因错误的音符切分对旋律匹配造成负面影响。他们以每I / 16秒对音高旋律特征进行采样,然后采用两层匹配算法对提取的音高值进行匹配处理。这样首先排除掉一部分候选音乐,然后采用动态时间归整算法进行精确匹配。这种方法避免了音符切分带来的错误,但同时也导致了匹配速度的不足。动态时间归整算法解决了音符序列时间点对齐问题,但是无法解决音符相对音高问题。
[0009]因此,有必要设计一种新型的音乐哼唱检索方法。

【发明内容】

[0010]本发明所要解决的技术问题是提供一种基于二分逼近动态时间归整匹配的音乐哼唱检索方法,该基于二分逼近动态时间归整匹配的音乐哼唱检索方法易于实施,而且检索命中率高。
[0011]发明的技术解决方案如下:
[0012]一种基于二分逼近动态时间归整匹配的音乐哼唱检索方法,包括以下步骤:
[0013]步骤1:原始数据的获取;
[0014]从用户哼唱的音乐片段中,提取所有的采样电平数据,并将采样电平数据进行归一化处理,得到归一化数据;
[0015]归一化过程为:`
[0016]首先将每个电平数据除以32768.0f,接着找出进行了除法运算操作的所有数据中的最大值,最后将所有的数据乘以“0.9 /最大值”;
[0017]步骤2:预处理;
[0018]对所述的归一化数据采用巴特沃斯带通滤波器滤除量化噪声;【用于去除工频干扰、混叠干扰等】;
[0019]再进行预加重处理;【用于提升频率的高频部分,恢复原来的信号功率分布】;
[0020]最后采用汉明窗对音乐信号进行加窗和分帧处理;【使得帧与帧之间的平滑过渡保持连续性;】
[0021]步骤3:过滤静音段;
[0022]采用公式EnergyVec[i]= V fabs(samplc[i]) S/tv卜:V 计算每一数据帧的平



i—s
均能量值;
[0023]其中EnergyVec[i]为第i数据帧的平均能量值;N为每一数据帧的数据个数,即帧长,Len为采样点的总个数;
[0024]并由此得出所有数据帧的平均能量值fMeam,取阈值threshold=。.3f*fMean,【0.3f中的f表示浮点数】将小于该阈值的数据帧舍弃掉,小于该阈值的数据帧为静音帧,从过过滤静音段,得到了音乐信号samplew[i];步骤4:频率转换;
[0025]采用峰值检测来提取每一帧数据的基音周期,从而获得基音频率;再采用中值平滑方法来滤除频率提取造成的误差,最后将音乐哼唱片段的基音频率利用频率转换函数转换到音乐数据库音高的同一水准;即:
[0026]转换后的音高为semttone=12*log2(fy(n) / 440)+69,其中fy (n)是音乐哼唱片段的基音频率【进行转换的目的是使得整体音高轮廓曲线接近音乐数据库模板的音高轮廓曲线,因而可以忽略不同的起调造成的整体音高偏高或偏低的影响,解决了音符相对音高问题。
[0027]对原来的samplew[i]几乎没有影响,调用频率转换函数即可。】
[0028]步骤5:数据匹配,返回结果:
[0029]从经过频率转换后的哼唱片段中提取出音高轮廓曲线,采用二分逼近的动态时间归整方法对该哼唱片段和音乐数据库中的音乐模板一一进行匹配,并根据匹配率进行排序,最后返回结果,完成首乐哼唱的检索。
[0030]步骤4中,定义Samplew[i]的自相关函数Rw[k]为:
[0031]
【权利要求】
1.一种基于二分逼近动态时间归整匹配的音乐哼唱检索方法,其特征在于,包括以下步骤: 步骤1:原始数据的获取; 从用户哼唱的音乐片段中,提取所有的采样电平数据,并将采样电平数据进行归一化处理,得到归一化数据; 归一化过程为: 首先将每个电平数据除以32768.0f,接着找出进行了除法运算操作的所有数据中的最大值,最后将所有的数据乘以“0.9 /最大值”; 步骤2:预处理; 对所述的归一化数据采用巴特沃斯带通滤波器滤除量化噪声; 再进行预加重处理; 最后采用汉明窗对音乐信号进行加窗和分帧处理; 步骤3:过滤静音段; 采用公式
2.根据权利要求1所述的基于二分逼近动态时间归整匹配的音乐哼唱检索方法,其特征在于,步骤4中,定义Samplew[i]的自相关函数Rw[k]为:

3.根据权利要求2所述的基于二分逼近动态时间归整匹配的音乐哼唱检索方法,其特征在于,步骤2中的巴特沃斯带通滤波器,其上下截止频率分别是fH=1000hz和f!=60hz ; 预加重处理通过采用具有6dB /倍频程的提升高频特性的预加重数字滤波器来实现, 预加重数字滤波器数学表达式如下: sample [i] = sample [i] - a *sample [i_l」 其中,a =0.97, sample[i]表示第i个点的采样值,sample[i_l]表示第i_l个点的采样值。
4.根据权利要求3所述的基于二分逼近动态时间归整匹配的音乐哼唱检索方法,其特征在于,步骤4中中值平滑处理的窗ロ大小为3或5。
5.根据权利要求3所述的基于二分逼近动态时间归整匹配的音乐哼唱检索方法,其特征在于,步骤5中的匹配过程为: al:对哼唱旋律片段进行处理提取出该哼唱旋律片段对应的音高轮廓曲线,哼唱旋律片段的音高轮廓曲线上有效点的数量为m ; 音高轮廓曲线为音高在时间上的变化,音高轮廓曲线是在一个二维坐标系中的曲线,横轴表示时间,纵轴表示音高; 有效点的数量为以IOms为单位划分得到的音高点的总数量;10ms为姆ー帧所对应的时间长度; a2:从音乐数据库文件中获取一首歌曲的音高轮廓曲线,该首歌曲的音高轮廓曲线上有效点的数量为n ;
a3:初始化阈值 fCenter=0.0f, fSpan=0.4f, fMinDist=2147483647 ;其中 fCenter 表不哼唱旋律片段音高轮廓曲线在纵向上偏移的距离;fSpan表示哼唱旋律片段音高轮廓曲线相对于fCenter的偏移距离;fMinDist表示哼唱旋律片段与该首歌曲的最小动态时间归整值; a4:将哼唱旋律片段的初始音高加上fCenter+fSpan,根据动态时间规整采用迭代计算的方式计算状态转换方程计算D[n,m]的值;状态转换方程为:D[n,m]=min{D[n-2,m-l],D[n-1, m-1], D[n-1, m_2]}+d[n, m],初始化公式为D(I, l)=d(l, I),迭代运算采用动态时间归整的状态转移方程来进行运算,終止运算为D(T,R)=D[n, m],T=观测序列长度,R为对应的具体位置;其中d[n,m]为音乐数据库模板位置n与哼唱片段位置m处音高的欧氏距离;上规整值Dup=D [n,J ; a5:将哼唱旋律片段的初始音高加上fCenter,计算中心动态时间归整值; Dcentel=DDi, m];再将哼唱旋律片段的初始音高加上fCenter-fSpan,计算下动态时间归整值 Ddwn=D [n, m]; a6:将 fMinDist 置为 fMinDist、Dup, Duenter 和 Dd_4 个值中的最小值; a7:将fCenter置为Dup、Dcenter, Ddown三者中的最小值并减去偏移值; a8:设置fSpan=fSpan / 2,如果fSpan > 0.01,则跳到a4继续执行,否则跳到a9执行; a9 JffMinDist的值置为哼唱旋律片段与该首歌曲音高轮廓曲线的二分逼近动态时间归整值;alO:将音乐数据库里面的每首歌曲与哼唱旋律片段进行a3到a9的匹配,根据fMinDist的值由小到大排列,越排前面的歌曲表示匹配率越高,最后将结果进行返回。fMinDist的值越小表示该动态时间归整的值越小,表示匹配率越高。
6.根据权利要求1-5任一项所述的基于二分逼近动态时间归整匹配的音乐哼唱检索方法,其特征在于,所述音乐数据库的构建方法为:以多首MIDI歌曲为基本素材,按照MIDI的文件格式进行解析,将解析获得的每首歌曲音高轮廓曲线作为高级特征,并将每首歌曲的高级特征存放在文件中作为音乐数据库文件,以便进行基于二分逼近动态时间归整的音乐检索。
【文档编号】G06F17/30GK103559232SQ201310505428
【公开日】2014年2月5日 申请日期:2013年10月24日 优先权日:2013年10月24日
【发明者】邹北骥, 周义洪, 王磊 申请人:中南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1