音乐结构分析之系统探究
音乐信息分析子问题:
- 结构分割
- 边界检测
- 结构分类
- 模式发现
- 节奏追踪
1、特征:
- 音色特征描述:CQT 、MFCCs
- 音高特征描述:表示和弦的特征{PCPs(和弦特征)、Tonnetz(音调中心)}
- 混合特征:和弦、音色、响度混合特征{CQT}
总结:
- 边界检测中音色特征效果比较好,结构聚类则音高特征比较好用。
- Structure Features 算法使用CQT特征在边界检测中取得较好效果。Convex NMF两个在边界检测和结构聚类中分别取得第三名、第二名,算是表现较好吧。
2、常用工具包
2.1 librosa
librosa库是LABROSA实验室MacFee大神主导一个音乐和音频分析开源Python项目,librosa主要是面向音乐信息检索方向的一个工具包,包含有特征提取、节拍追踪(beat tracking)、触发点检测(onset detection)、时间分割(Temporal segmentation)等各领域。具体功能可以参考官方文档
2.2 msaf
msaf(音乐结构分析框架)是MIR界学术新星nieto大牛写的一个专门进行音乐结构分析的python包,利用msaf可以快速开展音乐结构分析实验。msaf具有很好的扩展性,可以很方便的将自己的特征提取算法、音频结构分析算法、新的数据集以及新的评价方法放进框架开展实验。msaf包含的主要功能如下:
(1)音乐特征提取
msaf的特征提取主要是调用librosa库的特征提取函数实现的。目前(0.1.4)支持提取的特征有:CQT、MFCC、PCP、TonnetZ、Tempogram。msaf也可以很方便的添加新的特征提取方法。只用在 Features.py文件,按照api封装标准将新特征提取算法添加进去即可。
(2)音乐结构边界检测和特征分类
msaf框架包含算法:
算法名字 | 边界检测 | 结构分类 |
---|---|---|
2D-Fourier Magnitude Coeffs | 不支持 | 支持 |
Checkerboard Kernel | 支持 | 不支持 |
Constrained Cluster | 支持 | 支持 |
Convex NMF | 支持 | 支持 |
Laplacian Segmentation | 支持 | 支持 |
Ordinal LDA | 支持 | 不支持 |
Shift Invariant PLCA | 支持 | 支持 |
Structural Features | 支持 | 不支持 |
算法分析:
1. 部分结构算法对边界检测结果具有鲁棒性。
2. 最优的边界检测算法结果并不一定使结构分类算法性能最优。
3. 结构算法的性能依赖于边界划分的好坏。
(3)评价算法
Colin Raffel、MCfee、Nieto等众位大神在14年第15届ISMIR大会上提出的一个包含MIR各子领域评价方法的一个评价库,不同子领域的评价方法有所不同。通过mir_eval库可以很方便的对MIR各子领域的算法效果做出评价。msaf评价模块就是该库中音乐结构分析领域的评价方法,在边界检测中用的评价方法是F测量、在结构分类中用的是Pairwise Classification Precision(成对分类精度)召回率、F测量以及NCE方法。
(4)数据集调用
MSAF的数据库模块可以很方便的调用数据集进行算法效果测试。每个数据集可以包含音频文件夹、特征文件夹、标注文件夹等。音频文件夹主要存储原始音频文件如MP3、wav等。特征文件夹可以用来存放特征提取算法的计算结果或者别人对该数据集已经提取好的相关特征。标注文件夹主要存放该数据集的标注文件。
音乐结构分析已经有许多公开的和非公开的标记数据库,可以用来进行结构划分和结构分类。MSAF框架里面用到的数据库有以下几个:
- 共用数据库:Isophonics、SALAMI、Beatles TUT 、SPAM;
- 私有数据库:Cerulean 、 Epiphyte ;
关与msaf更多信息请参考官方文档
2.3、 Essntia
Eessentia是庞培法布拉大学MTG实验室开发的一个用于音频分析和音频音乐信息检索方面研究的开源c++库。Essentia包含了一系列比较成熟的音频音乐分析算法,利用C++优异的计算速度,实现当前比较成熟的算法,并对这些算法的鲁棒性和性能进行最大的优化。Essentia具有很好的兼容性,提供了丰富的接口,如python、Matlab、sonic bisuliser的插件。不过python接口目前不支持windows系统。Essentia包含的算法主要分为标准模式和流模式。流模式可以实现音频信息的实时处理。
音乐结构分析之系统探究相关推荐
- 计算机音乐夜空,星空音乐在线点播系统
内容介绍 原文档由会员 yzys7979 发布 39页 1.6万字 摘要 随着计算机和计算机网络的飞速发展,人们对计算机网络的依赖是越来越大.人们在网上聊天交友,在网上请教问题,查阅资料,还在网上玩游 ...
- C/C++简单音乐播放器系统
C/C++简单音乐播放器系统 程序设计题 1:简单音乐播放器系统 出题人:吴敏 面向专业:计算机科学与技术 难度等级:4 1 问题描述 编写一个简单音乐播放器软件,实现歌单文件的浏览,点歌,加入收藏夹 ...
- 树莓派打造一个适合音乐制作的系统(效果器部分)
我打算挂载LV2插件将树莓派作为效果器使用,之前我们已经创建好了I2S二进二出声卡,请详见树莓派打造一个适合音乐制作的系统(声卡部分)_huanghaoAudio的博客-CSDN博客 1.下载安装LV ...
- 计算机定时播放音乐,智能音乐定时播放系统 MP3音乐定时播放工具
您是否想实现音乐定时播放呢?虽然用windows的计划任务可以实现但是不是很好用,本次发布的这款智能音乐定时播放系统支持排列音乐播放顺序,定时播放,最多支持100个定时任务运行,可用于定时播放上.下课 ...
- 【Python程序设计】基于Flask的音乐在线网站/系统/平台
基于Flask的音乐在线网站/系统/平台 零.项目获取 一.项目简介 二.开发环境 三.项目技术 四.系统架构 五.用户流程 六.运行截图 零.项目获取 获取方式(点击下载):是云猿实战 项目经过多人 ...
- 基于javaweb的音乐专辑商城系统(java+ssm+jsp+jquery+mysql)
基于javaweb的音乐专辑商城系统(java+ssm+jsp+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myecl ...
- java毕业设计爱音乐网站Mybatis+系统+数据库+调试部署
java毕业设计爱音乐网站Mybatis+系统+数据库+调试部署 java毕业设计爱音乐网站Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软 ...
- 最新依米花H5音乐播放器系统源码+Thinkphp内核
正文: 最新依米花H5音乐播放器系统源码+Thinkphp内核,源码0加密,如果无法发送邮箱和短信啥的,就是你没配置好,自己去检查. 安装环境: 国内外服务器都可以用 主机无法运行 需求环境 php7 ...
- 微信小程序017音乐播放器系统 php java
小程序前端框架:uniapp 小程序运行软件:微信开发者 后端技术:java+Ssm(Spring+SpringMVC+MyBatis)+vue.js 后端开发环境:idea/eclipse 数据库: ...
最新文章
- java linux mysql数据库_Linux Java连接MySQL数据库
- 如何将注册中心从 Consul 平滑的迁移到 Nacos ?
- hdu3400 两重三分
- 网络操作系统 第四章 磁盘管理
- Hive在linux上的部署
- 打不开文件F:\vmware -副本\Ubuntu 16.vmdk:该虚拟机的磁盘已经由虚拟机或者快照使用
- [转]百度地图的一些应用方法
- Vue实现的问题解决方案的查询文库
- mysql 原来用的引擎_MySQL 的常用引擎
- UnityWebPlayer使用(2) 动态改变src
- 计算机408考研专业课思维导图(计算机组原理、数据结构、操作系统、计算机网络)
- HSQL之窗口-聚合-分析函数
- ies4linux 本地安装,Linux下离线安装ies4linux
- linux下的chm阅读器?
- 计算机专业29岁研究生毕业,26岁,你还会考研吗?毕业后都奔三了!_计算机考研科目...
- python Numpy 中的矩阵向量乘法(np.multiply()、np.dot()、np.matmul() 和 星号(*)、@)
- 多任务学习(Multi-task Learning)方法总结
- 关于maven的plugin插件问题(踩坑)
- 也谈一个苦逼程序员是如何学好英语的这件小事
- 饥荒专属服务器证书过期,饥荒TGP版存档丢失及证书不存在解决方法介绍