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

最新文章

  1. Lambert(朗伯)光照模型 和Half Lambert的区别
  2. codevs 1490 【CTSC2008】 网络管理
  3. Lind.DDD~实体属性变更追踪器的实现
  4. Loadrunner不能调用IE解决方法大全
  5. javaweb写的在线聊天应用
  6. eclipse 新建 java 文件时自动生成注释
  7. php 运行客户提交代码(攻击)和运行图片中的代码
  8. eclipse中安装svn插件实现版本控制
  9. CentOS 6.6下JDK1.7安装与配置(Linux)经典入门详解案例
  10. 设计模式 -- 迭代器模式(Iterator)
  11. Linux常用的工具软件安装
  12. vue中引入vux
  13. System.ServiceModel.CommunicationException: 接收HTTP 响应时错误发生
  14. Ajax跨域CORS
  15. EGit系列第二篇——关联远程仓库
  16. css零零散散的笔记
  17. CTF-练习平台-Misc之 隐写2
  18. [WINCE|VS2008] 用在PC上调试WINCE程序
  19. Custom Settings.ini 和 bootstrap.ini 配置
  20. 无法查找或打开 PDB 文件

热门文章

  1. JS实现俄罗斯方块
  2. c小例子 10个数找出第一名
  3. python基础语法13 内置模块 subprocess,re模块,logging日志记录模块,防止导入模块时自动执行测试功能,包的理论
  4. spark——故障排除
  5. 如何使用h5py读入数据
  6. NSKeyedArchiver : NSCoder
  7. 【转】FIddler+Proxifer工具对windows PC客户端进行抓包
  8. [PHP] Laravel 5.5 使用备注
  9. A1136 | 字符串处理、大整数运算
  10. 解决linux环境下nohup: redirecting stderr to stdout问题