一种基于动态时间伸缩算法的哼唱旋律识别方法与流程

文档序号:11516177阅读:987来源:国知局
一种基于动态时间伸缩算法的哼唱旋律识别方法与流程

本发明涉及一种基于动态时间伸缩算法的哼唱旋律识别方法,属于语音识别领域。



背景技术:

在基于内容的音乐信息检索研究中,哼唱旋律识别方法是其核心算法和研究重点,识别方法的性能对识别效率和识别结果有着直接的影响。在对歌曲名或者歌手不熟悉的情况,通过哼唱旋律识别我们可以十分方便快捷的根据个人哼唱查询到相应歌曲。同时它在歌曲的曲调分析和演唱者的演唱水平打分等方面也有十分广泛的应用。在哼唱旋律识别方法中,我们既要考虑哼唱语音中的音符增减与音高偏差现象,又要考虑用户可以在歌曲的任意时段进行哼唱。因此采用适当的识别策略和匹配方法十分重要。



技术实现要素:

本发明的目的是提供一种基于动态时间伸缩算法的哼唱旋律识别方法,其可以有效地根据哼唱者哼唱的语音信息识别出歌曲的信息。本发明采用以下技术方案:

一种基于动态时间伸缩算法的哼唱旋律识别方法,包括以下步骤:

(1)语音信息预处理。将哼唱的语音信息进行去噪,预加重和加窗分帧等操作,提高语音信号的质量,使信号的高频部分变得平坦,语音信号整体平稳,便于后续的分析;

(2)特征提取。对经过上述步骤处理过的语音信号进行端点检测和mfcc系数提取等操作,可以把代表语音信号本质特征的参数抽取出来,得到哼唱输入旋律的特征序列;

(3)基于旋律特征的快速筛选。本方法根据歌曲的半音差作为特征旋律。首先根据歌曲的音高起伏计算一首歌的最高音和最低音的半音差。删除目标音乐库中与待测旋律半音差相差较大的歌曲。通过此步骤,快速删除一部分歌曲,提高旋律识别过程;

(4)基于编辑距离的快速筛选。首先将哼唱输入旋律的特征序列依据音高差,转换成字符串序列,与目标音乐库中经过基于旋律特征快速匹配筛选剩下的歌曲进行计算编辑距离。剔除距离相差较大的歌曲;

(5)基于改进的动态时间伸缩算法的精确识别。在哼唱识别中,并不能简单地将哼唱输入旋律的特征序列与目标模板序列进行比较,因为哼唱者在哼唱中可能存在各种各样的哼唱错误,如添加音符,删除音符等,因此对模板进行时间规划十分重要。动态时间伸缩算法通过不断的计算两矢量的距离以寻找最优的匹配路径,所以得到的两矢量是累计距离最小的规整整数,这保证了他们之间存在最大的声学相似特征。但是动态时间伸缩算法存在检索时间慢,所需存储空间大等问题,因此本方法针对上述问题从端点松弛,跨句检索,代价函数等几个方面对动态时间伸缩算法进行改进。通过改进后的动态时间伸缩算法实现了哼唱旋律的精确识别。

本发明的优点:

1、本发明引入了跨句检索和尾端点松弛,减少了动态时间伸缩算法所需时间的20%。

2、本发明在动态时间伸缩算法的代价函数计算中引入了音长的特征,使命中率在原有的基础上提高了5%。

3、本发明在不限制用户哼唱方式或者节奏较不准确的情况下,相较于原算法具有更好的鲁棒性。

4、本发明针对传统的动态时间伸缩算法在跨句检索,端点松弛等方面进行了改进,并在算法的代价函数计算中引入了音长特征,从整体上提高了哼唱旋律识别算法的性能,提高了识别效率。

附图说明

图1为本发明的方法流程图。

图2为本发明动态时间伸缩算法原理图。

图3为本发明计算所需网格示意图。

图4为本发明尾端点松弛路径图。

具体实施方式

为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的其具体实施方式、结构、特征及其功效,详细说明如后。

如图1所示,一种基于动态时间伸缩算法的哼唱旋律识别方法,包括以下步骤:

(1)语音信息预处理。将哼唱的语音信息进行去噪,预加重和加窗分帧等操作,提高语音信号的质量,使信号的高频部分变得平坦,语音信号整体平稳,便于后续的分析;

(2)特征提取。对经过上述步骤处理过的语音信号进行端点检测和mfcc系数提取等操作,可以把代表语音信号本质特征的参数抽取出来,得到哼唱输入旋律的特征序列;

(3)基于旋律特征的快速筛选。本方法根据歌曲的半音差作为特征旋律。首先根据歌曲的音高起伏计算一首歌的最高音和最低音的半音差。删除目标音乐库中与待测旋律半音差相差较大的歌曲。通过此步骤,快速删除一部分歌曲,提高旋律识别过程;

(4)基于编辑距离的快速筛选。首先将哼唱输入旋律的特征序列依据音高差,转换成字符串序列,与目标音乐库中经过基于旋律特征快速匹配筛选剩下的歌曲进行计算编辑距离。剔除距离相差较大的歌曲;

(5)基于改进的动态时间伸缩算法的精确识别。在哼唱识别中,并不能简单地将哼唱输入旋律的特征序列与目标模板序列进行比较,因为哼唱者在哼唱中可能存在各种各样的哼唱错误,如添加音符,删除音符等,因此对模板进行时间规划十分重要。动态时间伸缩算法通过不断的计算两矢量的距离以寻找最优的匹配路径,所以得到的两矢量是累计距离最小的规整整数,这保证了他们之间存在最大的声学相似特征。但是动态时间伸缩算法存在检索时间慢,所需存储空间大等问题,因此本方法针对上述问题从端点松弛,跨句检索,代价函数等几个方面对动态时间伸缩算法进行改进。通过改进后的动态时间伸缩算法实现了哼唱旋律的精确识别。

上述步骤(4)基于编辑距离的快速筛选原理如下:

首先将哼唱输入旋律的特征序列依据音高差,转换成包含(e,u,x,s,d,b,t)的字符串序列,与目标音乐数据库中经过基于旋律特征快速筛选剩下的歌曲计算编辑距离。编辑距离是一种基于动态规划思想的方法,其原理是特征序列x与特征序列y的编辑距离,定义为从x变换到y所需的最少基本操作数,这里的基本操作包括:

(a)替换x中一个字符被y中对应字符串替换掉;

(b)插入y中一个字符插入到x中,使x长度加1;

(c)删除x中一个字符,是x长度减1。

具体计算公式如下所示:

ed(a(i),b(j))=ed(a,b)ifx=y

ed(a(i),b(j))=min(ed(a(i),b(j))+2,ed(a(i-1),b(j))+1,ed(a(i),b(j-1))+1)

ifx≠y

其中a,b为两特征字符串,ed试计算a,b减累计距离的矩阵。

上述步骤(5)基于改进的动态时间伸缩算法的精确识别原理如下:

动态时间伸缩算法通过不断的计算两矢量的距离以寻找最优的匹配路径,所以得到的两矢量是累计距离最小的规整整数,这保证了他们之间存在最大的声学相似特征。动态时间伸缩算法原理如图2所示。但由于在实际的匹配过程中很多实际的网格点是不需到达的,因此图2的菱形是一种路径限制的方式,这样在菱形之外的格点所对应的匹配距离是不需要计算的,另外也没有必要保存相应的数据,可以减少所需的存储空间。同事,威力进一步减少所需的计算量,每一个格点所需的匹配计算只用到了前一列的三个网格,如图3所示。这里假设有两个特征序列需进行动态时间伸缩算法计算,待匹配特征序列为

x={x1,x2,·,xn},模板特征序列为y={y1,y2,·,yn},d为代价函数,具体计算公式如下:

d(i,j)=min(d(i-2,j-1)+di-2,j-1,d(i-1,j-1)+di-1,j-1,d(i-1,j-2)+di-1,j-2)

上述公式中d是代价韩式,具体计算公式如下:

di-1,j-1=abs(xi-yj)

di-2,j-1=abs(xi-1+xi-yj)+c1

di-1,j-2=abs(yj-1+yj-xi)+c2

其中,d为计算x与y之间积累距离的矩阵,c1,c2为平衡因子,目的是平衡插入或删除音符所带来的代价。

当两个模板进行匹配后,即从距离累积矩阵中的最后一行的最小值进行回溯,从该最小值往前一次找到每一次所累积的前面三点的最小值,当返回起始匹配点时,则产生了一条最佳匹配路线。而匹配矩阵的最后一行的最小值,就是两个模板的距离。

传统的动态时间伸缩算法都是对语音进行头对头,尾对尾的匹配,但是用户哼唱的旋律可能存在音符插入或者缺失的情况,因此无法确定明确的尾端点。本文提出了尾端点松弛的方法,具体原理如下:

设p为首端点未知,n为哼唱输入旋律特征序列包含的特征个数,w1,w2分别为在长度为n的情况下所允许插入音符和删除音符的错误个数。在首端点确定的情况下,尾端点区间为{(p+n-w2),(p+n+w1)},增加路径限制条件,计算(p+n-w2)和(p+n+w1)位置之间的两特征向量距离,选择之间最小值并记录,尾端点松弛路径如图4。

传统用于哼唱识别的动态时间伸缩算法只考虑了音高的特征,而忽略了音长的特征。本方法为了提高哼唱识别的识别率,同时考虑到哼唱者哼唱歌曲是可能会出现哼唱节奏对于标准库中的歌曲节奏或快或慢的情况,将音长引入了代价函数的计算。

设哼唱输入旋律的特征序列为x={(tx1,ty1)(tx2,ty2)·(txm,tym)},目标数据库中的歌曲特征序列为y={(rx1,ry1)(rx2,ry2)·(rxn,ryn)},txi,rxj为对应的音高差序列,tyi,ryj为对应的音长比序列。改进的代价函数计算如下:

di-1,j-1=u*abs(txi-rxj)+(1-u)*abs(tyi-ryj)*km

di-2,j-1=u*abs(txi-1+txi-rxj)+(1-u)*abs((tyi*tyi-1)/(1+tyi-1)-ryj)*km+c3

di-1,j-2=u*abs(rxj-1+rxj–txi)+(1-u)*abs((ryj*ryj-1)/(1+ryj-1)-ryi)*km+c4

其中c3,c4为平衡因子,u为引入的权值。本方法发现音高特征比音长特征更为准确,所以设定u>0.5。km为平均音高差与平均音长比的比值。

上面所述的实施方式仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神前提下,本领域普通工程技术人员对本发明方案做出的各种变形和改进,均应落入本发明的权利要求书确定的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1