Orgin:Using Audio Onset Detection Algorithms

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

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

Aubio:关于onset detection的算法aubio和QMUL算法类似,它改进了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。

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

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

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

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

(原)关于音频onset detection算法的阅读的更多相关文章

  1. 结合Python代码介绍音符起始点检测 (onset detection)

    本文由 meelo 原创,请务必以链接形式注明 本文地址 音符起始点检测介绍 音符起始点检测(onset detection)是音乐信号处理中非常重要的一个算法.节拍和速度(tempo)的检测都会基于 ...

  2. 【转】DM8168添加DSP音频编解码算法--集成现有voice或audio codec

    本文根据“How to integrate audio/voice in RPE in EZSDK.pdf”整理,建议读者直接下载,参考原文件.原文件下载链接: http://download.csd ...

  3. 社区发现(Community Detection)算法 [转]

    作者: peghoty 出处: http://blog.csdn.net/peghoty/article/details/9286905 社区发现(Community Detection)算法用来发现 ...

  4. 社区发现(Community Detection)算法(转)

    作者: peghoty 出处: http://blog.csdn.net/peghoty/article/details/9286905 社区发现(Community Detection)算法用来发现 ...

  5. linux音频alsa-uda134x驱动文档阅读之一转自http://blog.csdn.net/wantianpei/article/details/7817293

    前言 目前,linux系统常用的音频驱动有两种形式:alsa oss alsa:现在是linux下音频驱动的主要形式,与简单的oss兼容.oss:过去的形式而我们板子上的uda1341用的就是alsa ...

  6. 社区发现(Community Detection)算法

    作者: peghoty 出处: http://blog.csdn.net/peghoty/article/details/9286905 社区发现(Community Detection)算法用来发现 ...

  7. 基于高斯分布的异常检测(Anomaly Detection)算法

    记得在做电商运营初期,每每为我们频道的促销活动锁取得的“超高”销售额感动,但后来随着工作的深入,我越来越觉得这里面水很深.商家运营.品类运营不断的通过刷单来获取其所需,或是商品搜索排名,或是某种kpi ...

  8. ios原声音频播放AVAudioSession 总结

    //音频播放/*英译:record:录音 */ 1 导入头文件#import<AVFoundation/AVFoundation.h>//AVAudioSession是一个单例模式.在IO ...

  9. Tarjan算法【阅读笔记】

    应用:线性时间内求出无向图的割点与桥,双连通分量.有向图的强连通分量,必经点和必经边. 主要是求两个东西,dfn和low 时间戳dfn:就是dfs序,也就是每个节点在dfs遍历的过程中第一次被访问的时 ...

随机推荐

  1. SpringCloud2.0 Eureka Server 服务中心 基础教程(二)

    1.创建[服务中心],即 Eureka Server 1.1.新建 Spring Boot 工程,工程名称: springcloud-eureka-server 1.2.工程 pom.xml 文件添加 ...

  2. X509Certificate 类

    地址:https://docs.microsoft.com/zh-cn/dotnet/api/system.security.cryptography.x509certificates.x509cer ...

  3. DFS 算法模板

    dfs算法模板: 1.下一层是多节点的dfs遍历 def dfs(array or root, cur_layer, path, result): if cur_layer == len(array) ...

  4. httprunner学习6-参数化(引用外部csv数据)

    前言 上一篇已经实现参数化,但是数据是放在.yml文件里面,当测试数据非常多的时候,我们希望把测试数据写到csv文件. httprunner==1.5.8 独立参数 对于已有参数列表,并且数据量比较大 ...

  5. 火鸡堂 对 基于云的胜利冲锋队 为了交项目干杯 的 Beta 产品测试报告

    基于云的胜利冲锋队 第一次上手 第一次上手体验感觉如何?能否正常运行? 不错,学生端和老师端各功能很清晰,大部分功能正常运行,但添加班级之类的部分功能页面暂时无响应 看到千帆竞发图泪流满面,图表中有各 ...

  6. Discuz! 3.3全站帖子自动添加图片alt标签

    网站想要更好的适应搜索引擎的话,就要把最基础的一些小优化标签做好, 虽然说现在搜索都很厉害能够识别图片,但是除非的你的图片每一张都是周杰伦.范冰冰等知名图片... 不然你还是要给你自己的图添加alt标 ...

  7. public static void Swap2

    public class Swap2 { public static void Swap2 (IDemo a, IDemo b) { int temp = a.i; a.i = b.i; b.i = ...

  8. Spring中AOP方式实现多数据源切换

    作者:suroot spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性.而这样的方案就会不同于常见的单一数据实例的方案,这就要 ...

  9. react native redux 草稿

    Provider > Provider > 使组件层级中的 方法都能够获得 Redux store.正常情况下,你的根组件应该嵌套在 Provider 中才能使用 方法. 如果你真的不想把 ...

  10. LeetCode 1062. Longest Repeating Substring

    原题链接在这里:https://leetcode.com/problems/longest-repeating-substring/ 题目: Given a string S, find out th ...