(原)关于音频onset detection算法的阅读

Posted lihaiping

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(原)关于音频onset detection算法的阅读相关的知识,希望对你有一定的参考价值。

Orgin:Using Audio Onset Detection Algorithms

 

本文档只记录了部分的内容,主要以aubio相关内容为主,并非整个文档的完整内容,记录人:lihaiping1603@aliyun.com

 

QMUL算法: 这个基于信号的算法,它结合了能量(观察信号的能量)和相位(观察FFT状态偏差)所共同构成复域。它包括一个自适应增白组件,该组件平滑了信号的时间和频率变化,从而通过“将每个频段的幅度引入一个类似的动态范围,使振幅较大的峰值更加明显该算法跟进复域内的峰值计算每个频域内发生突发事件的可能性,并使用峰值选取算法来标记onset.

 技术图片

 

Aubio:关于onset detection的算法aubioQMUL算法类似,它改进了onset detection中的自动校正功能,通过计算节拍周期,phase相位对齐方法.主要是根据周期,相位,节拍来做预测。这个算法有两个主要的变量参数值:threshold阀值0.01-0.99(主要用于峰值拾取)onset模式(对于detection功能,包含高频内容,复域,能量和光谱差异)

例如分析下面的长笛音乐,采用了复域的分析方法。然后系统参数变量调优中FFT bin大小为1024,增量大小为512,峰值阀值threshold设置为0.5,寂静阀值设置为-50dB,以及内部最小的onset间隔设置为40ms。由于相位声编码器的存在,窗口大小window设置为1024,跳数hope设置为512. 通过改变峰值选取算法的阀值,越低或者越高,会导致过多或者过小的onset

 技术图片

实际情况和aubioonset算法分析结果的对比展示如上图。在上图可以看出来,在这个音乐中11个真实的onset都被正确的发现了。

 

Pyin算法:它和上述算法的不同之处在于,他的目的是检测音高,而不是显式的onset detection,并且是一种基于概率的方法。它提取给定频域范围内的音高。由于该算法的设计在基频估计的基础上附加了一个时间戳,证明了他是一个有效的onset detection竞争者。同时这个信息可以用于推断音符的onset.

使用示例,系统使用FFT bin 大小为1024个样本,增量大小为512YIN threshold(一组相关概率的音高候选值)全部设置为11,抑制低幅度音高估计值设置为0.1(将振幅抑制在一定值以下),onset的灵敏度设置为0.7(相当于峰值拾取),分析的结果如下图:

 技术图片

 转载请注明出处:https://www.cnblogs.com/lihaiping/p/aubio.html

以上是关于(原)关于音频onset detection算法的阅读的主要内容,如果未能解决你的问题,请参考以下文章

异常检测(anomaly detection)

onSet 函数不会在 div 上触发

微信小程序 (node) warning: possible EventEmitter memory leak detected

在 Python 中检测并录制音频为 PCM 格式

音频处理Loudness Normalization 响度均衡算法简介

音频处理Loudness Normalization 响度均衡算法简介