aubio 是一个用于标记音乐和声音的库。它监听音频信号并尝试检测事件。例如,当一个鼓被敲击时,音符的频率是多少,或节奏旋律的速度是多少。
其功能包括在每个攻击之前分割声音文件、执行音高检测、敲击节拍并从实时音频生成 midi 流。
aubio 提供了几个算法和例程,包括
aubio 的名称来自 audio 中的一个打字错误:结果中可能存在一些错误。
还提供了一个用于访问库函数的 Python 模块。有关如何使用它的更多信息,请参阅文件 python/README
。
库中包含一些简单的命令行工具
aubioonset
输出检测到的音符攻击的时间戳aubiopitch
尝试为输入声音的每个帧识别基音,或音高aubiomfcc
计算梅尔频率倒谱系数aubiotrack
输出检测到的节拍的时间戳aubionotes
输出类似 midi 的音符,包括攻击、音高和持续时间aubioquiet
提取安静和响亮区域此外,Python 模块附带以下脚本
aubiocut
在攻击或节拍时间戳处切割声音文件该库是用 C 编写的,针对速度和可移植性进行了优化。
C API 的设计如下
aubio_something_t * new_aubio_something (void * args);
audio_something_do (aubio_something_t * t, void * args);
smpl_t aubio_something_get_a_parameter (aubio_something_t *t);
uint_t aubio_something_set_a_parameter (aubio_something_t *t, smpl_t a_parameter);
void del_aubio_something (aubio_something_t * t);
为了性能和实时操作,在 _do
方法中不进行内存分配或释放。相反,内存分配应始终在 new_
方法中执行,而释放操作则在 del_
方法中进行。
最新版本的文档可以在以下位置找到
http://aubio.org/documentation
许多发行版已经包含aubio。请检查您的首选包管理系统,或者查看下载页面。
aubio使用waf配置、编译和测试源代码
./waf configure
./waf build
sudo ./waf install
aubio可以在Linux、Mac OS X、Cygwin和iPhone上编译。
该库汇集了数字音乐中心和其它地方设计的音乐信号处理算法。该项目是在伦敦玛丽女王大学数字音乐中心的科研基础上开发的。大部分的C代码均由我编写,始于已发表的论文和现有代码。每个算法的表头文件包含简要描述和对相应论文的引用。
特别感谢Juan Pablo Bello、Chris Duxbury、Samer Abdallah、Alain de Cheveigne对他们的帮助和出版物。还要感谢Miguel Ramirez和Nicolas Wack对bug修复的贡献。
有关算法及其评估的大量信息收集在以下文献中:
以下论文中讨论了使用该软件获得的其他结果
P. M. Brossier和J. P. Bello和M. D. Plumbley,音乐信号中音符对象的实时时间分割,在国际计算机音乐会议论文集,2004,美国佛罗里达州迈阿密,ICMA
P. M. Brossier和J. P. Bello和M. D. Plumbley,音乐信号中音符对象的快速标注,在国际音乐信息检索研讨会论文集,2004,西班牙巴塞罗那
该项目的首页可在http://aubio.org/找到。
欢迎提问、评论、建议和贡献。使用邮件列表:[email protected]。
要订阅列表,请使用mailman表单:http://lists.aubio.org/listinfo/aubio-user/
或者,您可以直接联系作者。
版权(C)2003-2013 Paul Brossier [email protected]
aubio是免费软件:您可以在自由软件基金会发布的GNU通用公共许可证下重新分发和/或修改它,许可证版本为3,或(根据您的选择)该许可证的任何较新版本。