
基于旋律的音频嗡嗡声识别系统名称: 王栋学生ID: 201318001027048名称: 杨少凡学生ID: 201318001027058 2014年4月15日I.任务划分王栋: 设计嗡嗡声旋律特征提取算法和比较算法,最后编写定期报告. 杨少凡: 建立音乐库和旋律特征提取,界面设计. 2.背景介绍音乐库中有很多歌曲. 通过哼唱旋律,分析频谱,从多首歌曲中找到相应的歌曲名称,然后使用乐器正确播放旋律. 3.总体方案设计3.1开发平台Python2.7.5.0 3.2功能设计该课程项目主要使用Python编程语言实现基于4首歌曲的嗡嗡声识别,进行了充分的实验和参数调整,并实现了嗡嗡声唱歌旋律功能提取,噪声消除,特征值识别,并使用乐器播放旋律和其他主题,选择音乐帧处理,提取旋律特征,建立旋律特征库,对嗡嗡作响的音乐数据进行降噪,提取旋律特征,输出并识别歌曲名称,然后播放与乐器和旋律库的比较4.核心算法和结果分析(1)音乐旋律特征提取下图是歌曲“歌曲中的月光照亮梦想,请温暖他的心”这句话的旋律特征提取结果. 城市的月光”. ###### xrange(nframes / 1024)中i的子帧fft提取频率: xrange(1024)中j的j: y [j] = int(pianduan [j + i * 1024])fft_y = fft(y, xrange(1024)中j的2048): 如果j> 0: 如果abs(fft_y [j])> m: m = abs(fft_y [j])maxx = j else: m = abs(fft_y [0])频繁[i] = maxx在xrange(3,len(frequent)-2)中为i进行平滑处理: 频繁[i] = round((frequent [i-2] + frequent [i-1] + frequent [i] + frequent [i + 1] + frequent [i + 2])/ 5)(2)嗡嗡声的音乐旋律提取下图是“城市的月光”在“城市的月光”中的梦想照亮,请温暖他的心房. ”

##############低通滤波器Wp = 0.04#截止频率Ws = 0.06#停止频率Rp = 0.1#通带最大损耗(gpass)As = 60#阻滞最小衰减( gstop)Filters = {'ellip': (),'cheby2': (),'butter': (),'cheby1':(),'bessel': ())#ellip和cheby2过滤器设计Filters ['ellip '] = fd.iirdesign(Wp,Ws,Rp,As,ftype ='ellip')Filters ['cheby2'] = fd.iirdesign(Wp哼唱识曲,Ws,Rp,As,ftype ='cheby2')filtered_sig1 = lfilter( Filters ['ellip'] [0],Filters ['ellip'] [1],pianduan)#x#(nframes / 1024)中i的子帧fft提取频率: xrange(1024)中j的子帧fft提取频率: y [j] = int(pianduan [j + i * 1024])fft_y = fft(y,2048)for xrange(1024)中的j: 如果j> 0: 如果abs(fft_y [j])> m: m = abs(fft_y [j])maxx = j else: m = abs(fft_y [0])frequency [i] = maxx ######在xrange(3,len(frequent)-2)中为i平滑[i] = round((frequent [i-2] + frequent [i-1] + frequent [i] + frquent [i + 1] + frequent [i + 2])/ 5)(3)旋律比较算法############剪切记录段ku_l = len(tezheng)heng_l = len(frequent_fil)ku_zhi dian = zeros(ku_l * heng_l)heng_zhidian = zeros(ku_l * heng_l)对于xrange中的i(heng_l): 对于xrange中的j(ku_l): heng_zhidian [i * ku_l + j] = frequent_fil [i] for i in xrange( ku_l): 对于xrange(heng_l)中的j: ku_zhidian [i * heng_l + j] = tezheng [i] heng_qiangcaiyang = zeros(ku_l)m = 0对于xrange(len(len(heng_zhidian))中的i: j = i%heng_l j == 0: m = m + 1 heng_qiangcaiyang [m-1] = heng_zhidian [i] ####################的匹配算法quanzhi = 0 for xrange(len (tezheng)): quanzhi = quanzhi + heng_qiangcaiyang [i] ** 2 cor_fenmu = quanzhi quanzhi = sqrt(quanzhi)cor = 0 for xrange(len(tezheng))中的i: cor = cor + tezheng [i] * heng_qiangcaiyang [ i]对于xrange(len(tezheng))中的i,a = cor / cor_fenmu er = 0: er = er +(tezheng [i] -a * heng_qiangcaiyang [i])** 2 quan = 0对于xrange中的i len(tezheng)): quan = quan + tezheng [i] ** 2 er = er / sqrt(quan)(4)结果分析设计结果显示在右侧. 参考文献[1]方勇. 数字信号处理原理与实践. 第二版. 北京: 清华大学出版社,2010 [2]刘仁研究. 基于数字音频信号处理技术. 2008 [3]吴宗吉. 实验语音摘要. 北京: 高等教育出版社,1989 [4]宋德哼唱识曲,徐德. 52音频信息检索的研究与实现[J]. 计算机应用,2003(12):
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-280051-1.html