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
如果目录中没有找到waf,您可以使用以下命令下载和安装它
make getwaf
aubio支持在Linux、Mac OS X、Cygwin和iOS上进行编译。
这个库汇集了在数字音乐中心和其它地方设计的音乐信号处理算法。该项目是在伦敦玛丽女王大学数字音乐中心进行的科研背景下开发的。大部分的C代码都是我根据发表的论文和现有代码编写的。每个算法的头文件包含简要描述和对应论文的引用。
特别感谢Juan Pablo Bello, Chris Duxbury, Samer Abdallah, Alain de Cheveigne提供的帮助和出版物。还要感谢Miguel Ramirez和Nicolas Wack在错误修复方面的贡献。
有关算法及其评估的大量信息收集在以下文献中
以下论文中讨论了使用此软件获得的额外结果
P. M. Brossier和J. P. Bello和M. D. Plumbley,《Real-time temporal segmentation of note objects in music signals》,收录于《国际计算机音乐会议论文集》,2004年,佛罗里达州迈阿密,ICMA
P. M. Brossier和J. P. Bello和M. D. Plumbley,《Fast labelling of note objects in music signals》,收录于《国际音乐信息检索研讨会论文集》,2004年,西班牙巴塞罗那
本项目的主页可以在以下地址找到: http://aubio.org/
欢迎提问、评论、建议和贡献。使用邮件列表:[email protected]
要订阅列表,请使用mailman表单:http://lists.aubio.org/listinfo/aubio-user/
或者,您可以直接联系作者。
版权所有(C) 2003-2013 Paul Brossier [email protected]
aubio是自由软件:您可以在免费软件基金会发布的GNU通用公共许可证的条款下重新分配和/或修改它,许可证版本为3,或(根据您的选择)任何更新的版本。