← 返回 无痛入门音乐科技

「MIR-02_4」音频特征小全之提取工具

2019年11月13日 10:11 · 无痛入门音乐科技

工欲善其事必先利其器,可自动提取音频特征的工具有哪些?

♬ 本文为MIR音乐信息检索系列的第2.5篇文章 ♬

♬ 该文与之前2.1概览+2.2时域特征+2.3频域特征及+2.4乐音特征共同组成音频特征小全 ♬

本文将大致介绍以下特征提取工具:


『基于Python的工具』

LibROSA | 算是最常用的音乐音频工具,可做各种时频变换并画图,也能提相应的频域特征,此外还能做基本的音符起始点检测、节拍检测、乐音与噪声分离等等。

https://librosa.github.io/librosa

Madmom | 和LibROSA类似,但更针对于音符起始点和节拍检测等时域相关的MIR任务。

https://madmom.readthedocs.io

还有一些Python包支持某特定的MIR任务,如:

MSAF | 可做歌曲结构的分析。

https://github.com/urinieto/msaf

 Muda | 可用于扩增音频数据量,方便用于深度学习。

https://muda.readthedocs.io

 mir_eval | 可用于计算常见MIR任务相关算法的评估分数。

https://github.com/craffel/mir_eval


『基于Matlab的工具』

 MIRtoolbox | 可提取乐音特征,如音频里的调性等。

https://www.jyu.fi/hytk/fi/laitokset/mutku/en/research/materials/mirtoolbox

 Chroma Toolbox | 可提取和音高有关的诸多色度特征(chroma)。

https://www.audiolabs-erlangen.de/resources/MIR/chromatoolbox

 Constant-Q Toolbox | 可做常数Q变换并基于此改变输入音频中的音高。

https://www.cs.tut.fi/sgn/arg/CQT

 Tempogram Toolbox | 可提取用于做节拍检测的不同tempogram。

http://resources.mpi-inf.mpg.de/MIR/tempogramtoolbox


『其他Toolbox』

 Essentia | 基于C++,可提取各种音频底层高层、时域频域等诸多特征,也可直接运行一些MIR任务。

http://essentia.upf.edu/

 Marsyas | 基于C++,可用其界面或命令行进行实时特征提取。

http://marsyas.info/

 YAAFE | 基于C++,也可在Python和Matlab里调用,主要提取底层的特征。

http://yaafe.github.io/Yaafe/

 aubio | 基于C,也可在Python里调用,可做音高追踪、节拍追踪等。

https://aubio.org/

 LibXtract | 杂糅了C/Max-MSP/Pure Data/Super Collider/Vamp可实时提取底层特征。

http://jamiebullock.github.io/LibXtract/documentation/

 jAudio | 基于Java可批量提取特征并输出为XML和ARFF格式。

http://jaudio.sourceforge.net/

 jMIR | 基于Java,主要用于音乐分类任务的研究。除了可处理音频,也提供分析乐谱/歌词等其他音乐信息的功能。

http://jmir.sourceforge.net/

 Meyda | 基于Javascript,主要用于网页端提取底层音频特征的开发。

https://meyda.surge.sh/


另外推荐使用Sonic Visualiser来“可视化”被提取出的特征随当前播放音频的变化,特征可使用Sonic Annotator中集成的Vamp Plugins提取,也可自己编译Plugin进行提取!
https://www.sonicvisualiser.org/
https://vamp-plugins.org/sonic-annotator/
https://vamp-plugins.org/index.html

上文回顾: