基于哼唱的音乐检索系统的研究与实现
【摘要】:基于哼唱的音乐检索技术是近些年兴起的一项有着广阔应用前景的技术本文的目标在于构建一个完整的基于哼唱的音乐检索系统
基于哼唱的音乐检索系统的研究工作,重点集中在两个大的方面第一个方面是对哼唱音频的处理以及旋律特征的提取第二个方面是旋律匹配算法的研究这两个方面是哼唱检索系统最核心的部分,也是本文的研究重点
对于第一个方面的研究,本文首先对从麦克风录入的音频信号进行预处理,预处理的过程包括噪音去除,预加重以及加窗分帧噪音的去除我们采用了设定音量阈值和谱减法结合的方法,预加重我们通过一个高通滤波器来实现,加窗分帧采取较常用的海明窗我们采用现有的方法,实现了音频的预处理的过程而对于旋律特征提取,我们做了大量的研究工作,进行大量的仿真实验,研究了现有的各种旋律提取算法最后选择了在经典的ACF自相关方法之上加以改进,并实现了我们自己的旋律特征提取过程同时,为了构建一个可用的音乐特征库,我们还研究了MIDI音乐的旋律提取技术,结合了几种常用算法的优点,实现了一个MIDI旋律特征提取的模块,并生成了可用的库文件
对于第二个方面,本文做了重点的研究首先分类的研究了现有的基于字符串的旋律匹配算法,线性伸缩的旋律匹配算法以及基于统计的旋律匹配算法最后,结合我们的需要,本文选择了一种基于动态规划技术的动态时间伸缩旋律匹配算法,并在大量仿真实验的基础上,对其进行了改进,提出了自己改进后的动态时间伸缩算法并进行实现在实际的哼唱检索系统中应用了这个算法
最后,本文完整的架构了一个基于哼唱的音乐检索系统,在VS2008平台上以c语言实现系统实现后,我们做了大量的实验和数据分析该系统完成了哼唱检索的功能,表现了较好的性能,达到了我们的预期效果