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

技术编号:16390172 阅读:23 留言:0更新日期:2017-10-17 08:18
本发明专利技术公开了一种基于动态时间伸缩算法的哼唱旋律识别方法,实现了对哼唱者的哼唱旋律快速准确的识别。首先对哼唱旋律音频信号进行预处理,对语音信号进行降噪处理,去除信号中的杂乱声音。然后对降噪后的信号进行预加重和加窗分帧处理,得到高质量的语音信号。对语音信号进行端点检测和MFCC系数提取等操作,将代表语音信号本质特征的参数抽取出来得到哼唱输入旋律的特征序列。将得到特征序列与歌曲库中的歌曲的特征序列进行对比,根据旋律特征和编辑距离删除一部分曲目。使用改进的动态时间伸缩算法,将剩下的歌曲的特征序列与目标特征序列进行精确匹配,得到候选歌曲,实现了哼唱旋律的识别。

A method of humming melody recognition based on dynamic time warping algorithm

The invention discloses a humming melody recognition method based on dynamic time stretching algorithm, which realizes fast and accurate recognition of humming melody of humming people. Firstly, the melody audio signal is pre processed, and the speech signal is denoised to remove the messy sounds in the signal. Then, the signal is pre weighted and windowed sub frame is processed to obtain high quality speech signals. The endpoint detection and the extraction of MFCC coefficients are carried out, and the parameters which represent the essential features of the speech signal are extracted to get the feature sequence of humming input melody. The feature sequence is compared with the feature sequence of the songs in the song library, and a part of the music is deleted according to the melody features and edit distance. The improved dynamic time warping algorithm is used to match the feature sequence of the remaining songs with the target feature sequence accurately, and the candidate songs are obtained, and the recognition of humming melody is realized.

【技术实现步骤摘要】

本专利技术涉及一种基于动态时间伸缩算法的哼唱旋律识别方法,属于语音识别领域。
技术介绍
在基于内容的音乐信息检索研究中,哼唱旋律识别方法是其核心算法和研究重点,识别方法的性能对识别效率和识别结果有着直接的影响。在对歌曲名或者歌手不熟悉的情况,通过哼唱旋律识别我们可以十分方便快捷的根据个人哼唱查询到相应歌曲。同时它在歌曲的曲调分析和演唱者的演唱水平打分等方面也有十分广泛的应用。在哼唱旋律识别方法中,我们既要考虑哼唱语音中的音符增减与音高偏差现象,又要考虑用户可以在歌曲的任意时段进行哼唱。因此采用适当的识别策略和匹配方法十分重要。
技术实现思路
本专利技术的目的是提供一种基于动态时间伸缩算法的哼唱旋律识别方法,其可以有效地根据哼唱者哼唱的语音信息识别出歌曲的信息。本专利技术采用以下技术方案:一种基于动态时间伸缩算法的哼唱旋律识别方法,包括以下步骤:(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=yED(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本文档来自技高网...
一种基于动态时间伸缩算法的哼唱旋律识别方法

【技术保护点】
一种基于动态时间伸缩算法的哼唱旋律识别方法,其特征在于包括以下步骤:(1)语音信息预处理。将哼唱的语音信息进行去噪,预加重和加窗分帧等操作,提高语音信号的质量,使信号的高频部分变得平坦,语音信号整体平稳,便于后续的分析;(2)特征提取。对经过上述步骤处理过的语音信号进行端点检测和MFCC系数提取等操作,可以把代表语音信号本质特征的参数抽取出来,得到哼唱输入旋律的特征序列;(3)基于旋律特征的快速筛选。本方法根据歌曲的半音差作为特征旋律。首先根据歌曲的音高起伏计算一首歌的最高音和最低音的半音差。删除目标音乐库中与待测旋律半音差相差较大的歌曲。通过此步骤,快速删除一部分歌曲,提高旋律识别过程;(4)基于编辑距离的快速筛选。首先将哼唱输入旋律的特征序列依据音高差,转换成字符串序列,与目标音乐库中经过基于旋律特征快速匹配筛选剩下的歌曲进行计算编辑距离。剔除距离相差较大的歌曲;(5)基于改进的动态时间伸缩算法的精确识别。在哼唱识别中,并不能简单地将哼唱输入旋律的特征序列与目标模板序列进行比较,因为哼唱者在哼唱中可能存在各种各样的哼唱错误,如添加音符,删除音符等,因此对模板进行时间规划十分重要。动态时间伸缩算法通过不断的计算两矢量的距离以寻找最优的匹配路径,所以得到的两矢量是累计距离最小的规整整数,这保证了他们之间存在最大的声学相似特征。但是动态时间伸缩算法存在检索时间慢,所需存储空间大等问题,因此本方法针对上述问题从端点松弛,跨句检索,代价函数等几个方面对动态时间伸缩算法进行改进。通过改进后的动态时间伸缩算法实现了哼唱旋律的精确识别。...

【技术特征摘要】
1.一种基于动态时间伸缩算法的哼唱旋律识别方法,其特征在于包括以下步骤:(1)语音信息预处理。将哼唱的语音信息进行去噪,预加重和加窗分帧等操作,提高语音信号的质量,使信号的高频部分变得平坦,语音信号整体平稳,便于后续的分析;(2)特征提取。对经过上述步骤处理过的语音信号进行端点检测和MFCC系数提取等操作,可以把代表语音信号本质特征的参数抽取出来,得到哼唱输入旋律的特征序列;(3)基于旋律特征的快速筛选。本方法根据歌曲的半音差作为特征旋律。首先根据歌曲的音高起伏计算一首歌的最高音和最低音的半音差。删除目标音乐库中与待测旋律半音差相差较大的歌曲。通过此步骤,快速删除一部分歌曲,提高旋律识别过程;(4)基于编辑距离的快速筛选。首先将哼唱输入旋律的特征序列依据音高差,转换成字符串序列,与目标音乐库中经过基于旋律特征快速匹配筛选剩下的歌曲进行计算编辑距离。剔除距离相差较大的歌曲;(5)基于改进的动态时间伸缩算法的精确识别。在哼唱识别中,并不能简单地将哼唱输入旋律的特征序列与目标模板序列进行比较,因为哼唱者在哼唱中可能存在各种各样的哼唱错误,如添加音符,删除音符等,因此对模板进行时间规划十分重要。动态时间伸缩算法通过不断的计算两矢量的距离以寻找最优的匹配路径,所以得到的两矢量是累计距离最小的规整整数,这保证了他们之间存在最大的声学相似特征。但是动态时间伸缩算法存在检索时间慢,所需存储空间大等问题,因此本方法针对上述问题从端点松弛,跨句检索,代价函数等几个方面对动态时间伸缩算法进行改进。通过改进后的动态时间伸缩算法实现了哼唱旋律的精确识别。2.根据权利要求1所述的...

【专利技术属性】
技术研发人员:郑丽敏程国栋杨璐田立军
申请(专利权)人:中国农业大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1