音频特征提取

问题描述 投票:23回答:6

我有兴趣了解并编写一个系统,该系统将从音频文件(mp3,wav等)中提取功能,这些功能以后可用于任何目的。在未来,我希望用它来编写一些音乐相似度的软件。

是否有任何库可以提供帮助?我知道libxtract,但还没有使用它。

此外,是否有任何低级c / c ++库可以处理音频流?我根本就没有这方面的经验。

谢谢您的帮助,

埃里克

audio fft feature-extraction
6个回答
15
投票

Marsyas是一个非常完整的框架,也提供音频特征提取。 它是用C ++编写的,并提供“修补”机制,允许您将预定义的组件插入到一起。 该框架附带了几个例子。 查看源代码以了解如何创建自定义提取器。 Marsyas附带的bextract命令行工具可以提取:

  • 的MFCC
  • 过零率
  • 光谱质心
  • ...

Marsyas支持多种平台,包括Windows,Linux和Mac OS X(我还看到一篇文章提到它也适用于iPhone)


18
投票

为了完整起见,这是我所知道的选项:

Yaafe和libXtract可能是性能方面最优化的(参见下面的基准测试)。它们都在特征提取器之间共享中间计算。例如,它们每个窗口只运行一个FFT,然后任何需要FFT的提取器才会引用该FFT。更高级别的功能也是如此。提到的其他提取器并不真正这样做,因为它们依赖于插件架构 - 即每个提取器都需要独立。

Sonic Annotator和朋友可以从插件架构中受益,因此您可以享受各种第三方功能提取器(包括libXtract,aubio和Essentia)。 Vamp插件生态系统非常多样化和精彩。 Vamp Plugin SDK中有完整的示例代码,用于构建插件主机。

我对Essentia知之甚少,除了它比其他人更新,来自Pompeu Fabra的优秀音乐科技集团。这似乎是一个庞大而组织良好的项目。文档非常好。他们在大型音乐分析项目(如Freesound和AcousticBrainz)上使用它。项目重点似乎是性能和正确性。绝对值得一看。

MARSYAS是整个框架,而不仅仅是库。文档非常好。它正在积极开发中,并且是由George Tzanetakis在UVic定期提供的MOOC的一部分。似乎有很多围绕MARYSYAS构建的应用程序和项目。

CAMEL,Maaate和FEAPI似乎处于休眠状态 - 分别于2010年,2012年和2013年未发布新版本。

这是一个基准(以秒为单位)比较Sonic Annotator,Marsyas和YAAFE在40小时的32 KHz单声道wav文件上进行特征提取:

            S.A.    Marsyas     YAAFE
MFCC        1506       1168       142
Centroid    724         942       235
Rolloff     731         951       194
ZCR         221         620        57
Total       3182       3681       628

值得注意的是,您可以从C ++运行Matlab代码,这开启了使用的可能性:

  • MIR工具箱
  • Timbre Toolbox

2015年还有一个有趣的调查或特征提取器,包含有关性能,功能,生态系统等的大量信息:

https://www.ntnu.edu/documents/1001201110/1266017954/DAFx-15_submission_43_v2.pdf/06508f48-9272-41c8-9381-7639a0240770


6
投票

还有libxtract,它提供了一整套50多种音频功能,专为实时使用而设计。它是一个具有最小依赖性的“精益”库,并为Python和Java提供绑定。还有一个“外部对象”,它使纯数据实时计算机音乐环境中的libxtract功能可用。

libxtract的规范参考是this paper


4
投票

虽然这是一个非常古老的帖子,但也许有人会在谷歌搜索后到达这里。现在有一些非常好的工具包可用于音频分析:

  1. TarsoDSP https://github.com/JorenSix/TarsosDSP
  2. OpenSmile http://www.audeering.com/research/opensmile
  3. CMU Sphinx http://cmusphinx.sourceforge.net/

3
投票

首先,阅读有关FFT和数字信号处理的内容。接下来,获得一本关于语音识别的教科书,因为它基于你想要做的事情 - 语音识别引擎从音频中提取“特征”以确定所说的内容。

我发现Cepstral Coefficients在机器学习意义上具有很好的“特性”。


2
投票

看看网站http://www.audiocontentanalysis.org/。在“软件”部分下,您将找到包含与音频信号处理,特征提取和音乐信息检索相关的不同库的列表。此外,网站(及其书籍)似乎是深入了解整个主题的一个非常好的起点。

© www.soinside.com 2019 - 2024. All rights reserved.