基于旋律的音频哼唱识别系统
人声哼唱精确识别算法及数字记谱方法与制作流程

本技术公布了一种以相对振幅为依据的直接提取基频方法,建立了频率矩阵和节拍矩阵,实现了有效哼唱音符音长区域切分;技术了一种可变识别区域的精确识别迭代算法,通过引入频率变化率和变化阻尼判定方法,显著减少整个哼唱音频的迭代次数。
对人声哼唱录音的WAV格式音频文件,经过对基频的获取计算、音符音长识别区域切分、可变区域精确识别、国际音高换算四个环节,最后形成数字乐谱输出。
该方法可利用普通智能手机和电脑实现对普通人声哼唱的精确识别并输出相应的数字曲谱,具有简洁、高效、精准、易推广的特色优势。
权利要求书1.人声哼唱精确识别算法及数字记谱方法,其特征在于所述方法包括如步骤:(1)对哼唱录音文件的基频提取,对音频进行离散傅里叶变化(DFT),根据振幅信号值直接提取基频。
(2)音符音长识别区域切分,构建了频率矩阵F和节拍矩阵R,采用了基于海明窗函数的离散傅里叶变化,对音频数字信号的分帧和频率识别,从而实现了对音符音长识别区域的切分。
(3)可变区域音符音高音长的精确识别,对音律按照上述方法进行切分后的区域内,通过改变区域边界,不断迭代计算这个区域内一个发音的频率变化率Δfk,寻找最小点来确定哼唱基频,并以该点出现时的区域所含采样点个数,作为记录该音的音符音长,从而实现对音符音高音长的精确识别。
(4)国际音高换算,采用国际标准音高(Standard Pitch)度量,按照高度顺序分别为A、Bb、B、C、C#、D、Eb、E、F、F#、G、G#,越靠后表示半音高度越高。
2个半音高度(f1,f2)之间的频率关系由公式:计算,由此计算获得所有音高和频率对照表,并进行存储。
(5)乐谱输出,根据国际标准音高度量,进行频率f′k与音高Yk换算后,产生的对应音高Yk存储于矩阵A中,将已经计算获得的音符音长(步骤(2))存储于矩阵R中,根据矩阵相应储值,通过音高和频率对照表输出该哼唱曲调的数字乐谱。
2.根据权利要求1所述的人声哼唱精确识别算法及数字记谱方法,其特征在于步骤(1)提出了相对基频提取方法,包括如下原理及计算公式。
一个基于哼唱的音乐检索系统

—
个基于哼唱的音乐检索系统
鲁 帆 王 民
( 西安 建 筑 科 技 大 学信 控 学 院 计 算 机 应 用 专 业 , 陕 西 西 安 7 0 5 ) 1 0 5
摘
要 :本文在 分析 了音 乐哼唱检 索 系统原理 结构 的基础上 ,采用 头尾 浮动的D w匹配算 法,设计 了一 个通过哼 唱旋律 T
3 特征的提取 3 1哼唱信号的特征提取 .
本 系 统 采 用 音 高 序 列 作 为 旋 律 的特 征 ,音 高是 由基 频
值 得 到 的 。本 文 采 用 中心 消 波 自相 关 提 取 基 频 的方 法 。处
算 法 ( T )可 以有 效 地解 决 两段 旋 律在 时 间上 的对 齐 问 DW
从音 乐数据库 中搜 索 出所 需歌 曲的哼 唱检 索 系统。提 出 了一 种混合 匹配的方法。 关键词 :哼唱检 索 ;D W;音 高轮 廓 ;旋律 匹配 T
D : 1 .9 9 Jin1 71 5 62 1 .401 OI 5 6 / .s.6 —6 9 . 0 0 . 0 s 1 1
Absr c : i ri l r t n l z d t e p i cp e a d s r c u e o u i u mi g r ti v ls s e , e s d a DTW t a tTh s a t e f s l a a y e h rn i l n tu t r fm sc h m c i y n e re a y t m t n u e h
mac n lo i m ih f cu tsi e in n n n Asar s l aQ u r — y H u thig ag rt wh c u t a e n b gn i ga d e d. e ut ey B — mm ig s se whc l wsy u t h l , n y tm ihal o o o
哼唱检索中核心算法的研究及其在系统中的应用

,3 6 % l ; 3 2, 啦
5 % 站 君 0 口
7D , K l 2,
,
6 2,
3
1 5客
7 % 鼹 8 j 7 ' 50 % J/ g o 勰 % '50 % 揪
乐
| .
1 嚣
: 0% ∞ O 5_ % ∞ D ;前 ,
持 君%
l. 8 g
. O %
0 { Oo 6 % ' 2 /
3
:| , % , m 々 6 S .{ 2 0 o g . d ,
3 3% 站 g, ∞ 0 l . / o
5 口% , 3 l
D
lS O
6 % tj 3 . 2
拈 _% 0 3l3 _ ' 。
囱I 装 处
囱
美
I膏件 提敷 取
l
3j 了 % 6 3 剪 ∞ 君 4窘 3
∞S 站 8
.
0 . _ o ^ ∞ 8 %
.
3. t君 . 8 /
l_ 霉g
' B 5
一
4 实验及 结果分 析 实验 环境 : tlPn u D a 2 3 .0 Hz I e e f m u lT 30 16 O 处理 器 ,GB内存 本实 n i 2 验 由5 名非 专业人 士进行 哼唱 录人 , 别哼唱录 入不 同的歌 曲或 同一首歌 曲的 分 不同部 分 , 共计 6 个音 频( 4 包括 哼唱时 间为 5 S,1S 5 、2 S的各 l 个音 0 、15 0 6 频)音 乐数据 处理 模块 中检测 到的音 频文 件共计 2 个。在 malb . 的环境 ; 3 t 70 a 下分 别采用上 述介 绍的 三种音 高值 算法及 三种 匹配 算法 交替组 合进行 匹配检 索, 最后按匹配相似度从高到低排列, 相似度相 同的按歌名字母顺序排列输出 匹配 结果 , 分别取 输 出结果 的前兰 个 、 六个 、 十个 来统计 准确率 。 果如 前 前 结
互联网小工具推荐在线音乐识别工具

互联网小工具推荐在线音乐识别工具互联网小工具推荐:在线音乐识别工具在如今数字化时代,互联网已经成为了人们生活中不可或缺的一部分。
随着科技的迅猛发展,许多小工具应运而生,为我们的生活提供了便利与娱乐。
其中,在线音乐识别工具就是一款备受欢迎的工具。
这些工具能够准确识别出我们听到的音乐,为我们提供了更好的音乐体验,并且方便我们获取更多关于音乐的信息。
本文将会为大家推荐几款值得一试的在线音乐识别工具。
一、ShazamShazam可以说是音乐识别工具中的佼佼者。
它的识别速度快、准确度高,能够在几秒钟之内识别出你正在播放的歌曲。
这款工具支持多平台使用,无论是iOS、安卓还是电脑,只要连接到互联网就能使用。
而且,Shazam还提供了歌曲的歌词、艺术家的相关信息、发布专辑等更多的功能。
你可以通过Shazam轻松地发现新歌曲,了解更多有关你喜欢的音乐的信息。
二、SoundHound与Shazam类似,SoundHound也是一款出色的在线音乐识别工具。
它不仅可以识别歌曲,还能够识别用户通过唱歌或是哼曲的方式传达的信息。
这让它在一些特殊场合或是没有歌曲播放的情况下仍然能够发挥作用。
此外,SoundHound还具备了歌曲识别后的相关搜索功能,可以查找歌曲的歌词、视频、艺术家的其他作品等。
因为其多功能和使用便捷性,SoundHound也是广大音乐爱好者们的首选工具之一。
三、MusixmatchMusixmatch是一款专注于歌词的在线音乐识别工具。
这款工具不仅能够识别歌曲,并显示歌曲的歌词,而且还能够根据你的喜好推荐类似的歌曲。
此外,Musixmatch还提供了歌手的简介、专辑信息以及相关的推荐歌单等功能。
它不仅让你能够更好地欣赏音乐,还能够满足你的好奇心、提供更好的音乐推荐。
四、GeniusGenius是一款集音乐和文化的在线识别工具。
除了能够识别歌曲之外,它还提供了关于歌曲背后的故事和更多的文化信息。
Genius的特点是用户可以通过该平台与其他音乐爱好者交流、分享自己对音乐的理解和感受。
基于DTW算法的哼唱检索系统的设计

法的理 论原 理基 础之 上 ,提 出一 种针 对 MI I 乐的主旋律 提取 方 法 。该 方法 简化 了提 取音 乐特 征 的工作 D音
量, 缩短 了检 索 时间。设 计 实现 了一 个基 于音 乐内容 的哼唱检 索 系统 , 用 包含 20首 乐曲特征 的数据 库对 利 0
该系 统进行验证 。实验结果表 明, 系统具有较 高的检 索命 中率和较快的检 索速度。 该
1 Ml l D 音乐主旋律 音轨提取
M D 文件中包含一个或多个音轨 , II 每个音轨为
一
个独立 的声部[。 引 每条音轨都包含音高 、 音长 、 节 发挥作用 。 此时 , 基于音乐内容的检索方式就显得尤 拍和音强等信息 。在我们哼唱乐曲时一般哼唱的都 为重要【 l 1 。近年来 , 基于内容的音乐检索已成为国内 是乐曲的主旋律 。所 以乐 曲库应该尽可能只包含主 外研究 的热点问题之一翻 引起了众多研究机构和学 旋律音轨的数据。但遗憾的是 。 。 大多数 M D 文件都 II 者的广泛重视。目前较具规模的哼唱检索系统有英 没 有 在 数 据 中标 明 哪 个 音 轨 是 主旋 律 ,所 以要 将
( fr t nI si t f ig oUnv ri , ig oZ ein , 1 2 1 I omai tu eo n b ie s y N n b h j g 3 5 1 ) n o n t N t a
【 bt c]hs rc nl e e uim l yet e xatn t e o i a r lry n A s at iaie a zdt s e d a r etco,h m t dob l f t eia d r T tla y h m c o f u r i e h f ud e u b ra
哼唱识曲 原理

哼唱识曲的原理主要是通过提取哼唱的旋律,与曲库中所有歌曲的旋律进行检索匹配,从而找出相似度最高的歌曲。
这个过程涉及到音频信号处理、模式识别、机器学习等多个领域的知识。
具体来说,哼唱识曲的实现过程大致可以分为以下几个步骤:
1.音频信号预处理:首先对输入的哼唱音频进行预处理,包括降噪、去混响、分帧等操作,以便后续的信号分析和处理。
2.特征提取:对预处理后的音频信号进行特征提取,提取出与歌曲旋律相关的特征,如音高、音强、音色等。
3.匹配检索:将提取出的特征与曲库中的歌曲特征进行匹配检索,找出相似度最高的歌曲。
这个过程通常会使用一些机器学习算法,如K最近邻算法、支持向量机等。
4.结果输出:根据匹配结果,输出最相似的歌曲信息,如歌曲名称、演唱者等。
需要注意的是,哼唱识曲的准确率受到多种因素的影响,如哼唱者的演唱风格、语速、音准等。
因此,在实际应用中,需要根据具体情况对算法进行优化和调整,以提高识别准确率。
互联网小工具推荐在线音乐识别软件
互联网小工具推荐在线音乐识别软件在今天的数字化时代,互联网成为了我们生活中不可或缺的一部分。
通过互联网,我们可以享受到各种各样的便利,其中之一就是在线音乐识别软件。
这些小工具可以帮助我们快速准确地辨识出歌曲信息,满足我们对音乐的需求。
本文将为大家推荐几款优秀的互联网小工具,供大家参考。
1. ShazamShazam是一款非常著名的在线音乐识别软件。
只需将手机麦克风对准正在播放的歌曲,Shazam便能够迅速识别出歌曲的名称、演唱者和专辑等相关信息。
此外,Shazam还提供了与歌曲关联的音乐视频、歌词和相关的推荐歌曲等功能,让用户能够更加全面地了解和欣赏音乐作品。
2. SoundHoundSoundHound是另一款备受欢迎的在线音乐识别工具。
它不仅支持通过麦克风识别正在播放的歌曲,还可以通过用户输入歌曲的部分歌词或者是哼唱的方式来辨识出歌曲信息。
此外,SoundHound还可以提供歌曲的实时歌词显示和一些有趣的音乐挑战游戏,让用户的音乐体验更加丰富多彩。
3. MusixmatchMusixmatch是一款专注于提供歌词服务的在线音乐识别软件。
通过Musixmatch,用户可以识别歌曲并且即时显示其歌词。
此外,Musixmatch还支持歌词翻译功能,允许用户一边欣赏音乐,一边学习外语。
它还可以与各种音乐应用程序和流媒体平台进行集成,提供更加便捷的音乐体验。
4. GeniusGenius是一个专注于提供歌曲解析和歌曲背后故事的在线音乐识别工具。
它不仅能够识别歌曲,还可以提供歌曲的详细解释、背后故事以及歌曲中的名言和流行语等。
用户可以通过Genius深入了解歌曲的创作背景,增加对音乐的理解和欣赏。
综上所述,互联网小工具中的在线音乐识别软件给我们的音乐体验带来了很大的便利。
无论是在咖啡厅、购物中心还是电影院里听到一首好听的歌曲,只需要打开这些小工具,我们就可以迅速地了解到这首歌曲的信息,并更加深入地欣赏和学习其中的精髓。
基于DTW算法的哼唱检索系统的设计
[ ] a e,o e . v l t no me o r eaa n i te ut i a [ . 5 M hr b r C E a a o f t df p r ig g i dd e s nl J R t ui a h os t di z g s]
[ ] lrs,S t A e. dnict no ecnr u u s gtesan r n 3 Cai e . o r Ie t a o f h e t l l s i cn e a d s J o s i f i t asc u n h
M I ]J ra o e r ai o y 1 9 . R [ .o n l f uo d lg . 7 J u N r o 9
表 1 实验结果
用户哼唱片段长度 5 S 1S 0
第一 首 日= 自 U 前 五首 第一首 H = 自 U 前五 首 命中率
7 .% 8 3% 8 . % 7 % 8 .% 9 .% 44 3 71 87 61 07
平均检索时 间
l 2 理示意图 T
22 歌 曲 中 片 段 开 头 和 结 尾 的 选 取 方 法 . 因为音乐特征已经被整合为一维数组的形式 , 而且 音长的特征 已
意。 义o
【 参考文献 】
[] 1李晨周 明全结 合语音识别技术的音乐哼唱检索研究【】西北大 学,08 D, 20. [3 2 t唠. 音乐检索现状及发展趋势研究明. 科技广场 ,0 8 20 .
经 被表示 成音符的重复次数 对于一般用户 . 哼唱片段的最小节拍 其 时间与标 准歌曲库中歌 曲的最小节拍时间肯定不一样 , 但对 于用户 自 己哼唱时的各个音 符之间的时间对应关系还是可 以用公 式( 、5 表 4)( ) 示 的 所以在此假设 长度一样 每次进行 D W 匹配 时、 T 截取 歌曲特征 数 组第一个元素开始与用户哼唱长度一样 的片段 ,构成 一个正方形 , 计 算两片段之间 的距离 为 。然后 每次将正方形 向后 移动一个元素计 算距离 . 直到最后一个 元素结束 一 最后 将这首歌曲 中与哼唱片段距离最短 的片段 作为匹配片段 . 该 距 离为这首歌的匹配距离 将库中所有歌曲与哼 唱片段 的距离排序 . 选 出与哼唱片段最短的 5首歌 . 供用户参考。
一个音乐检索系统的研究与实现
输入 2 种方式 , 根据提交的查询要求 , 提取旋律特
征, 在事先建立的音乐特征库中进行匹配检索 , 输
出查询结果. 其流程如图 1 所示.
数据库 建立
等信息以获得所需乐曲外 , 还需要能够对音乐本身 的特征进行检索 , 也就是基于音乐本身特征的检索 方式 , 在检索者不知道曲名、 作曲者名的情况下也 可 以快速地检索到乐曲_ j J . 现阶段音乐检 索的方法可分为基于 内容和基 于旋律 2 大类. 基于内容的音乐检索主要使用音乐 的平均能量 、 过零率和静音比等相关信息作为特 征 参数进行查询. 基于 内容的音乐检索方式可 以在
能量、 过零率和静音比等特征信息会有不 同程度的 区别.因此 , 基于 内容的音乐检索方式无法从根本 上解决上述问题. 对于音乐而言, 最能够准确反映 其内容特征的就是音乐的旋律了. 由此 ,基于旋律
前研 究的热 点. 随着数字音频文 件在互联网上的
不断增长 , 对海量的无标注信息的数字音频如何进 行有效的检索 , 渐渐成为下一代搜索引擎关注的技
文章编 号 : 0 — 12( 0 7)0 —2 30 1 15 3 2 0 0 30 9 —4
一
个音乐检索系统的研究与实现
徐 霁 , 袁 旭 海 ,王 让 定
( 宁波大学 纵横 智能 软件研究所 ,浙江 宁波 3 5 1 ) 12 1
摘要:在分析音 乐的旋律及其表达的基础上 ,结合现有技 术,挑选合适的音频特征 ,提 出并实
术 热点之 一 _ J I.
的音乐检索已成为众多学者研究的重点之一【 】 4.
本文研 究的系统使用音乐旋律特征来进行音
乐 检 索 .系 统 旋 律 的 输 入 包 括 手 工 输 入 或 者 哼 唱
基于定性映射的哼唱音乐旋律提取
[ ywod iq ai t e p ig a iue o uiggi; rvt u dvs nmoe; oe emett n pthet cin meo ycd Ke r s u l i pn ;t b tc mp t r ga i sb iio dln t g nai ; i r t ; ld o e a t v ma r t n d y i s o c xa o
中图分类号:T31 P9
基于定性 映射 的哼唱音 乐旋律 提取
冯嘉礼,刘文娟
( 上海海事大学信息工程学院 ,上海 2 10 ) 036 摘 要 :根据哼唱旋律提取 的特 点和 定性 映射 的相 关知识 ,结合基本乐理 ,提出哼唱片段旋 律提取 的定性 映射模 型和算法 ,包括哼唱旋律
音符切分阈值的动态定性判定 ,以及音符音高确定 的动态赋权 的定性映射 。实验结果表明 ,该 算法不仅能灵活合理地确定音符切分的定性 判定基准 ,同时能够较准确地提取音符音高 ,并得到哼唱片段的旋律轮廓线。
( ol eo Ifr t nE gneig S a g aM aime iesy S ag a2 10 , hn ) C lg fnomai n ier , h n h i ri v ri , hn h i 0 3 6 C ia e o n t Un t
【 sr cl ae nte hrc r f u Abtat B sdo aat h mmigmeo yet cinadq ai t e p ig c mbnn t emui e r, u la v p ig hc eo n ld r t n u lai pn , o iigwi t sch oy a ai t e xa o t v ma hh t q t i ma pn
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于旋律的音频哼唱识别系统
姓名:王冬
学号:201318001027048
姓名:杨少凡
学号:201318001027058
2014年4月15日
一、任务分工
王冬:设计哼唱旋律特征提取算法及比对算法、撰写终期报告。
杨少凡:音乐库的建立及旋律特征提取,界面设计。
二、背景介绍
音乐库中有多首乐曲,通过哼唱一段旋律,分析频率谱,从多首乐曲中找出相应的曲名,并用乐器正确播放旋律。
三、总体方案设计
3.1开发平台
Python2.7.5.0
3.2功能设计
本次课程项目主要使用Python程序设计语言对实现了基于4首歌的哼唱识别,进行了充分的实验和参数调整,实现了哼唱旋律特征提取、噪声去除、特征值识别及使用乐器播放旋律等课题
选取音乐分帧处理,提取旋律特征建立旋律特征库
去噪
哼唱音乐数据旋律特征提取输出识别歌曲名
并用乐器演奏
与旋律库比对
四、核心算法及结果分析
(1)音乐旋律特征提取
下图是《城里的月光》歌中“城里的月光把梦照亮,请温暖他心房”一句话的旋律特征提取结果。
######分帧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
else:
m=abs(fft_y[0])
frequent[i]=maxx
######平滑处理
for i in xrange(3,len(frequent)-2):
frequent[i]=round((frequent[i-2]+frequent[i-1]+frequent[i]+fr equent[i+1]+frequent[i+2])/5)
(2)哼唱音频旋律提取
下图是哼唱《城里的月光》中“城里的月光把梦照亮,请温暖他心房”一句话的旋律提取结果。
##############低通滤波
Wp = 0.04 # Cutoff frequency
Ws = 0.06 # Stop frequency
Rp = 0.1 # passband maximum loss (gpass)
As = 60 # stoppand min attenuation (gstop)
Filters = {'ellip' : (), 'cheby2' : (), 'butter' : (), 'cheby1' : (), 'bessel' : ()}
# ellip and cheby2 filter design
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)
######分帧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
else:
m=abs(fft_y[0])
frequent[i]=maxx
######平滑处理
for i in xrange(3,len(frequent)-2):
frequent[i]=round((frequent[i-2]+frequent[i-1]+frequent[i]+fr equent[i+1]+frequent[i+2])/5)
(3)旋律比对算法
############哼唱片段切割
ku_l=len(tezheng)
heng_l=len(frequent_fil)
ku_zhidian=zeros(ku_l*heng_l)
heng_zhidian=zeros(ku_l*heng_l)
for i in xrange(heng_l):
for j in xrange(ku_l):
heng_zhidian[i*ku_l+j]=frequent_fil[i]
for i in xrange(ku_l):
for j in xrange(heng_l):
ku_zhidian[i*heng_l+j]=tezheng[i]
heng_qiangcaiyang=zeros(ku_l)
m=0
for i in xrange(len(heng_zhidian)):
j=i%heng_l
if j==0:
m=m+1
heng_qiangcaiyang[m-1]=heng_zhidian[i]
###################匹配算法
quanzhi=0
for i in xrange(len(tezheng)):
quanzhi=quanzhi+heng_qiangcaiyang[i]**2
cor_fenmu=quanzhi
quanzhi=sqrt(quanzhi)
cor=0
for i in xrange(len(tezheng)):
cor=cor+tezheng[i]*heng_qiangcaiyang[i]
a=cor/cor_fenmu
er=0
for i in xrange(len(tezheng)):
er=er+(tezheng[i]-a*heng_qiangcaiyang[i])**2 quan=0
for i in xrange(len(tezheng)):
quan=quan+tezheng[i]**2
er=er/sqrt(quan)
(4)结果分析
设计结果如右图所示
参考文献
[1] 方勇.数字信号处理——原理与实践.第2版.北京:清华大学出版社,2010
[2] 刘任化.基于数字音频信号处理技术的研究.2008
[3] 吴宗济.实验语音学概要.北京:高等教育出版社,1989
[4] 宋德,须德. 音频信息检索的研究及实现[J]. 计算机应用, 2003(12) :52。