标题 | 一种基于哼唱的小规模MIDI音乐检索系统及实现 |
范文 | 肖艳+王虎 【摘要】 本文对基于哼唱的小规模MIDI音乐检索系统的各个模块进行了详细的阐述,匹配模块中以相对音高序列作为音乐旋律的特征进行匹配,并通过实验验证系统的性能。实验表明,该检索系统能取得较满意的结果。 【关键字】 MIDI音乐 相对音高序列 哼唱检索 Abstract: This paper elaborated different modules of small MIDI music retrieval system based on the humming. In the matching module, it used relative pitch sequence as characteristics of the music melody. It also verified the performance of the system through the experiment. And experiments showed that the system can obtain satisfactory results. Key words: The MIDI music; Relative pitch sequence; Hum to retrieve 引言 哼唱检索(QBH)是在歌曲数据库中检索到用户哼唱旋律并将结果反馈给用户的系统。在一个标准的哼唱检索查询中,用户要从一个大型的音乐录音数据库中找到一首歌曲。如果用户不记得歌手或歌曲的名称来进行元数据查询,自然选择对麦克风哼唱,来表现歌曲旋律的一部分,然后使用哼唱检索系统检索歌曲。 MIDI文件记录的是音乐演奏的指令序列,向演奏者标注出演奏时间、乐器、音符和方式。midi作为数字音乐文件,本身只有乐器旋律而没有人声,所以使用midi主旋律就可以表示歌曲旋律,比从WAV中提取的主旋律更准确。WAV格式在本文中只是作为用户哼唱音频的输入格式。 相对音高序列是指序列的后一个音高同前一个音高进行比较,它能反映音符的音高特征。用相对音高序列作为旋律的特征在中小型音乐检索效果方面很不错。 一、基于哼唱的小规模MIDI音乐检索系统框架 本文基于哼唱的小规模MIDI音乐检索系统主要分为四部分:第一部分是MIDI歌曲数据库的建立,即用户哼唱的旋律在检索时所逐一进行匹配的MIDI歌曲数据库;第二部是旋律特征提取,这里的特征提取既包含MIDI歌曲库中的歌曲特征提取又包含用户哼唱时的旋律特征提取;第三部分是特征匹配,是将用户哼唱的旋律特征与MIDI歌曲库中的MIDI歌曲特征进行比较;第四部分是将MIDI歌曲库中和哼唱旋律相似的音乐名称输出。 1.1歌曲库建立 首先在网络上收集10首MIDI格式的音乐构成MIDI歌曲库。当然,对于整个基于哼唱的音乐检索系统来说,10首歌曲是远远不够的,这主要是因为在系统搜索阶段,系统搜索的复杂度和准确度与歌曲数目呈负相关,但是因为本论文主要讨论的是基于哼唱的MIDI音乐检索的整体过程,为部分此方面学习人员提供一个思路,因此10首歌曲和1000或10000首并不会有太大差别。 1.2旋律特征提取 这里的旋律特征提取包含两个方面,分别是MIDI歌曲库中MIDI音乐的特征提取、用户哼唱的旋律特征提取。由于MIDI歌曲库中的歌曲是MIDI格式的,用户哼唱的旋律是wav格式的,所以下面将分开介绍两者的特征提取步骤。由于相对音高序列能够反映音符的音高特征,所以将旋律特征提取转换成求旋律的相对音高序列即可。 用户哼唱的旋律其相对音高序列是通过比较相邻音符的过零率得到的。用户 哼唱的旋律其相对音高序列提取步骤: 1)可调参数。设定计算过零率前加入的白噪声的信噪比、对有毛刺的过零率结果进行的低通滤波器的截止频率、上述低通滤波器的开关、对过零率结果进行门限判决的门限设定。 2)过零率计算。音频频率越高,过零也越高。 3)濁音区间端点检测。首先判断第一个点是高过零点还是低过零点。当第一个点是高过零点时,第一个点被舍弃。始点从第二点开始,终点从第三点开始。认为第一个端点应该是清音或者静音的开始,后面的端点是清音与浊音交替;当第一个点是低过零点时,始点从第一点开始,终点从第三点开始。认为第一个端点应该是浊音段的开始,后面的端点是清音与浊音交替。 4)除野点。将持续时间小于100ms的浊音段认为是野点,忽略掉。 5)求取tempo以及在每个tempo内求一个平均绝对音高(Hz)。 6)转换成相对音高(音阶)。 MIDI歌曲库中MIDI音乐的相对音高序列的提取过程: (1) 验证文件格式。验证MIDI歌曲库中的MIDI音乐是否是单声道的midi format0,然后读取所有音符(包括静音段)的音高、通道、持续时间(即deltatime的值,时钟个数),读取所有的 Note On和Note Off消息。事件的deltatime作为上一个事件的持续时间,我们默认时间都是Note On和Note Off交替进行。如果有几个音符同时发声的情况,第二个音符开始发声时认为前一个音符结束,再遇到它的note off消息时我们将会忽略。note on时间的deltatime表示如果不为0,认为是前面有静音的地方。 2)提取所有音符。 3)统计音符中1/16、1/8、1/4等各种音符的个数。 4)对音符量化。将0音符的音高认为是前一个音符的音高。 5)转为相对音高序列。 6)把文件名和相对音高序列存入库中。 1.3旋律匹配 首先依次读取MIDI歌曲库中的10首歌曲的MIDI音符序列,通过旋律特征提取得到相对音高序列,然后在歌曲中寻找与用户哼唱旋律最小距离的片段即最相似的片段,然后再寻找最相似的片段起始位置并计算错误字符数。 旋律匹配的具体步骤是: 1)依次读取MIDI歌曲库中midi音符序列的相对音高序列。 2)遍历寻找出10首歌曲中与用户哼唱旋律的相对音高序列最低差错的序列。 3)寻找最相似的片段起始位置,并计算错误字符数。 4)显示歌曲名和错误音符数。 二、系统实验验证 在实验中,我们输入哼唱的一小段“北京欢迎你”旋律,导进检索系统过后,系统将检索用户哼唱的歌曲和MIDI数据库中的歌曲进行对比,再按照相似度的大小进行排序 ,把相似度最高的前5首的歌曲名列表返回给检索用户。实验结果是基于Matlab2012b 仿真平台进行的,如下图所示。 三、总结 通过实验结果可以看到,当用户哼唱歌曲“北京欢迎你”的一段旋律时,检索系统将MIDI歌曲库中的“北京欢迎你”等前5首歌曲的名称反馈给用户,并且“北京欢迎你”歌曲名称排列在第一位。此结果表明该系统在小规模数据库中的应用识别率较高。 参 考 文 献 [1]魯帆.基于哼唱的音乐检索系统[D].西安:西安建筑科技大学,2011. [2]郭洪波.音乐哼唱检索关键技术研究[D].西安:西北大学,2004 [3]孙洁.基于哼唱的MIDI音乐检索系统的研究[D].西安:西安建筑科技大学,2013. [4]曹亮.海量音乐的哼唱检索研究[D].北京:北京邮电大学,2015. [5]徐霁,袁旭海.一个音乐检索系统的研究与实现[J].宁波大学学报(理工版),2007,20(3):293-296. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。