基于旋律的音频哼唱识别系统.doc: .
基于旋律的音频哼唱识别系统
基于旋律的首频哼唱识别系统
姓名:王冬学号:姓名:学号:
2014年4月15日
一、 任务分工
王冬:设计哼唱旋律特征提取算法及比对算法、撰写终期报告。杨少凡:咅乐库的建 立及旋律特征提取,界面设计。
二、 背景介绍
音乐库中有多首乐曲,通过哼唱一段旋律,分析频率谱,从多首乐曲中找出相应的曲 名,并用乐器正确播放旋律。
三、 总体方案设计
3. 1开发平台
Python2. 7. 5. 0
3. 2功能设计
本次课程项目主要使用Python程序设计语言对实现了基于4首歌的哼唱识别,进行了 充分的实验和参数调整,实现了哼唱旋律特征提取、噪声去除、特征值识别及使用乐器播 放旋律等课题
选取音乐
)
分帧处理,提取旋律特征
去噪
哼唱音乐数押
旋律特征提取
与旋律库比对I
\ )
四、核心算法及结果分析
(1) 音乐旋律特征提取
下图是《城里的月光》歌中“城里的月光把梦照亮,请温暖他心房” 一句话的旋律特征 提取结果。
40
5 o
3 3
Auualnbal上
25
2Oo
100
200 300
zhen
400
500
######分帧fft提取频率
for i in xrange(nframes/1024):
for j in xrange (1024):
y[j]=int(pianduan[j+i*1024])
fft_y=fft(y, 2048)
for j in xrange(1024):
if j>0:
if abs(fft_y[j])>m:
m二abs(fft y[j])
maxx二j
0
50
100
150 200
zhen
250 300 350
45
40
30
25
20
15
else:
m=abs(fft_y[0])
frequent[i]二maxx
######平滑处理
for i in xrange(3, len(frequent)-2):
frequen t [i] pound ((freque nt [i-2] +frequen t [i-
1] +frequent [ i] +freque nt [ i+1] +freque nt [i+2]) /5)
60
55
50
(2) 哼唱音频旋律提取
下图是哼唱《城里的月光》中“城里的月光把梦照亮,请温暖他心房” 一句话的旋律提 取结果。
############## 低通滤波
Wp 二 0. 04 # Cutoff frequency
Ws 二 0. 06 # Stop frequency
Rp 二 0. 1 # passband maximum loss (gpass)
As 二 60 # stoppand min a/ttenuation (gstop)
F订ters 二{'ellip' : (), ,cheby2, : (), 'butter' : (), ' chebyl':(), 'bessel' :
基于旋律的音频哼唱识别系统 来自淘豆网www.taodocs.com转载请标明出处.