「MIR-02_4」音频特征小全之提取工具
工欲善其事必先利其器,可自动提取音频特征的工具有哪些?
♬ 本文为MIR音乐信息检索系列的第2.5篇文章 ♬
♬ 该文与之前2.1概览+2.2时域特征+2.3频域特征及+2.4乐音特征共同组成音频特征小全 ♬
本文将大致介绍以下特征提取工具:
-
基于Python
-
基于Matlab
-
其他Toolbox
『基于Python的工具』
☞ LibROSA | 算是最常用的音乐音频工具,可做各种时频变换并画图,也能提相应的频域特征,此外还能做基本的音符起始点检测、节拍检测、乐音与噪声分离等等。
➥ https://librosa.github.io/librosa
☞ Madmom | 和LibROSA类似,但更针对于音符起始点和节拍检测等时域相关的MIR任务。
➥ https://madmom.readthedocs.io
还有一些Python包支持某特定的MIR任务,如:
☞ MSAF | 可做歌曲结构的分析。
➥ https://github.com/urinieto/msaf
☞ Muda | 可用于扩增音频数据量,方便用于深度学习。
☞ 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任务。
☞ Marsyas | 基于C++,可用其界面或命令行进行实时特征提取。
☞ YAAFE | 基于C++,也可在Python和Matlab里调用,主要提取底层的特征。
➥ http://yaafe.github.io/Yaafe/
☞ aubio | 基于C,也可在Python里调用,可做音高追踪、节拍追踪等。
☞ 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,主要用于网页端提取底层音频特征的开发。