aubio lib document-Main page

翻译 ALLEN ⋅ 于 2019-08-02 22:48:51 ⋅ 32 阅读

概要

Aubio 是一个从音频信号中提取注释的库:它提供了一组以音频信号作为输入,以音调估计、attack 次数(起音)、节拍位置估计和其他注释信息为输出的函数。

基本用法

Aubio 中的所有对象结构都具有与函数相同的前缀和后缀:

  • new_aubio_foo 创建对象 foo
  • aubio_foo_do 执行对象 foo
  • del_aubio_foo 销毁对象 foo

所有的内存分配和释放都发生在以 new_ 和 del_ 为前缀的函数中。或者,可以用多个以 _do 为后缀的函数。可使用以下方法来调整和观察额外参数:
aubio_foo_get_param,getter 函数,获取一个参数的值
aubio_foo_set_param,setter 函数,更改参数值
除非在文档中有特殊说明,否则在 getter 函数中不会有内存操作发生。然而,内存大小调整可以发生在 setter 函数中。

向量

在 aubio 库中有两个基本的结构体在使用: fvec_t 和 cvec_t。fvec_t 结构体用于存储浮点指针的向量。 cvec_t 用于存储复数, 它们是作为范数和相位元素的两个向量。

另外,lvec_t 结构体用于存储双精度的浮点数。它们主要是用于存储滤波系数,来避免不稳定性。

可用的对象

以下是 aubio 库最常用的对象列表:

// fast Fourier transform (FFT)
aubio_fft_t *fft = new_aubio_fft (winsize);
// phase vocoder
aubio_pvoc_t *pv = new_aubio_pvoc (winsize, stepsize);
// onset detection
aubio_onset_t *onset = new_aubio_onset (method, winsize, stepsize, samplerate);
// pitch detection
aubio_pitch_t *pitch = new_aubio_pitch (method, winsize, stepsize, samplerate);
// beat tracking
aubio_tempo_t *tempo = new_aubio_tempo (method, winsize, stepsize, samplerate);

见 typedefs 完整对象列表。

例子

现在有个简单的例子,该例创建了一个权重滤波器(A-Weighting filter)并应用到一个向量中。

// set window size, and sampling rate
uint_t winsize = 1024, sr = 44100;
// create a vector
fvec_t *this_buffer = new_fvec (winsize);
// create the a-weighting filter
aubio_filter_t *this_filter = new_aubio_filter_a_weighting (sr);
while (running) {
  // here some code to put some data in this_buffer
  // ...
  // apply the filter, in place
  aubio_filter_do (this_filter, this_buffer);
  // here some code to get some data from this_buffer
  // ...
}
// and free the structures
del_aubio_filter (this_filter);
del_fvec (this_buffer);

C 程序的几个例子放在源码目录的 examples/ 和 tests/src 文件夹中。

一些例子:

spectral/test-fft.c
spectral/test-phasevoc.c
onset/test-onset.c
pitch/test-pitch.c
tempo/test-tempo.c
test-fvec.c
test-cvec.c

不稳定的 API

还有几个函数用在 aubio 库中,但是这里没有文档说明。这既因为这些函数对用户来说不是有用的,也是因为它们在将来需要更改。然而,它们可以通过定义 AUBIO_UNSTABLE 为 1 之后包含头文件来使用:

#define AUBIO_UNSTABLE 1
#include <aubio/aubio.h>

aubio 库的将来版本会对这些函数不兼容,并且没有警告信息。如果你选择使用 AUBIO_UNSTABLE 的这些函数,那么你只能靠自己来兼容aubio 库。

资源下载

最新 aubio 库版本,更多的文档、例子、wiki 和 邮件地址列表可在以下网址找到: https://aubio.org/ .


原文地址:https://aubio.org/doc/latest/...

译文地址:...

追求梦想,做最好的自己

附言 0  ·  2019-08-03 10:19:12

这是一篇 aubio 库的基本介绍

回复数量: 0
    暂无评论~~
    • 请注意单词拼写,以及中英文排版,参考此页
    • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
    • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
    • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
    • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
      请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
    Ctrl+Enter