Abstract:

重复的副歌识别对音乐理解的计算模型(computational model)至关重要,应用层面有:音乐副歌识别预览,音乐检索等。

传统检测的难点:变调,起始点和结束点(both ends)检测。

作者提出的方法RefrailD,可双端检测所有副歌,引入perceptually motivated acoustic feature可以检测变调的chorus

在流行歌曲数据集中测试100首歌曲,正确识别80首

同时 paper还介绍了基于该方法的一个应用,可直接跳转到chorus进行播放的软件

关键词

chorus detection,chroma vector,music-playback interface,music structure,music understanding

introduction

没啥干货

related work

【3】-【5】提取指定长度的副歌,【3】采用clustering techniques和HMMs根据声学特征来categorize 1m的片段,most frequent category被视为副歌,【4】采用相似度在节奏段中进行比较,【5】计算了similarity matrix of acoustic features of short frames。以上方法计算出来的副歌长度都是给定的。

其他paper bla bla bla

以上所有方法都不能将所有chorus检测出来,也不能对变调的chorus进行处理

chorus section detection problem

作者提出的fact:chorus sections are usually the most repeated sections of a song. 问题在于计算机无法识别重复段落(总会有差异)

问题一:acoustic features and similarity

判断一个section是否重复可以基于提取的acoustic feature来比较相似度(排除乐器变换)。simple power spectrums信号或者MFCC不能满足这个条件。

问题二:重复度判定规则

相似度要达到多少,才能判定其为重复段落,可根据歌曲类型动态设置

问题三:判断重复段落的起始位置:

歌曲结构ABCBCC 不能判定为BC,而是C

问题四:检测变调段落

常规acoustic feature会因为变调而改变

method

首先分窗口提取chroma vector,chrome vector对乐器改变健壮性强。对这些vector进行相似度判定。chrome vector的每个元素对应12平分律当中的一个音,并且频率量级的计算横跨6个8度音阶(解决问题一)

借鉴【17】提出的discriminant criterion采用动态自适应的threshold判定并列举出所有重复段落 (解决问题二)

为了将重复段落分组并识别出both ends,需要分析段落与整首歌曲的对应关系(解决问题三)

由于chroma vector的元素对应了 一组类别的音符,所以变调前和变调后差别不大(解决问题四)

最后对所有成组的重复段落进行判定,副歌概率最高的被识别为副歌

A. 提取声学特征

提取chroma vector的流程如下所示,作者描述它是perceptually-motivated的【18】:

乐器改变和变调等因素对chroma vector影响很小,【22,23】用其来识别和弦

B 相似度判定

C 列举出重复段落

中可以提取出成对的重复段落。将绘制在等腰直角三角形的坐标系中,坐标轴分别为time和lag

平行于time轴的线段表示了高相似度的    T1和T2之间的时间段表示为[T1,T2],则线段(T1,L1)到(T1,L2)即(t=[T1,T2],l=L1)表示[T1,T2]的内容与[T1-L1,T2-L1]的内容是相似的。

我们需要找出坐标图中所有的平行线段,对于给定的lag l,我们通过下面公式计算其在时间区间t=[T1,T2]上包含平行线的可能性:

计算之前,首先将坐标图上的相似度点做normalize,减去一个局部均值消除噪音。

1.对坐标中每个点,延展(这里取15个点,1.2s)计算其6个方向的均值何最大最小值

2. 如果左,右均值就是最大值,则该点可判定为在平行线上,并将其减去的最小值以突出

3.否则是噪音,将其减去的最大值以降噪

然后从中寻找导数改变符号的极值点(从正到负)

Ksize设置为4(0.32s),计算前的预处理涉及一些通道计算,没看太明白

 D. 重复段落分组 integrate repeated sections

设想一个段落如果重复了n次(n>=3),则分组中的线段数量应为(n-1)*n/2。分组遵循规则:

1.两个线段包含相同的片段[Tsi,Tei]

2. 两个端点的时间差异性要小于一定阈值threshhold

每个group表示为

副歌判定选取规则:

副歌得分判定公式为:

Vi作为$lamdaij$的总和(以segmentation的长度加权计算)。Dlen为常数(1.4s)。$lamdaij$作为片段是否为副歌的概率,其估算遵循以下猜想:

1. 副歌长度符合一定规则,一般为7.7s-40s,不在此范围内,则$lamdaij$设为0

2. 副歌组中一般会有一段更接近结尾,如果是,则该组的$lamdaij$翻倍

3.副歌中一般含有两段子重复段落,如果是的话,$lamdaij$加权 

chroma抽取:

最终得到二维向量shape[12,sample_num],sample_num和fft时的FFT窗口值有关

矩阵构建:

time-time矩阵 shape [sample_num,sample_num] , 值为时间点两两对应相似度(斜线)

time-lag矩阵 shape [sample_num,sample_num],值为相对于i滞后j个sample的对应相似度(水平线)

矩阵去噪:

计算候选row:

利用公式计算每个时刻t的归一化均值Rall,然后找出波峰值,即均值从小变大(导数平滑从positive到negative)的值

《A chorus section detection method for musical audio signals and its application to a music listening section》的更多相关文章

  1. 论文学习笔记--无缺陷样本产品表面缺陷检测 A Surface Defect Detection Method Based on Positive Samples

    文章下载地址:A Surface Defect Detection Method Based on Positive Samples 第一部分  论文中文翻译 摘要:基于机器视觉的表面缺陷检测和分类可 ...

  2. 优化系统资源ulimit《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》

    优化系统资源ulimit<高性能Linux服务器构建实战:运维监控.性能调优与集群应用> 假设有这样一种情况,一台Linux 主机上同时登录了10个用户,在没有限制系统资源的情况下,这10 ...

  3. 优化Linux内核参数/etc/sysctl.conf sysctl 《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》

    优化Linux内核参数/etc/sysctl.conf  sysctl  <高性能Linux服务器构建实战:运维监控.性能调优与集群应用> http://book.51cto.com/ar ...

  4. 学习PHP爬虫--《Webbots、Spiders和Screen Scrapers:技术解析与应用实践(原书第2版)》

    <Webbots.Spiders和Screen Scrapers:技术解析与应用实践(原书第2版)> 译者序 前言 第一部分 基础概念和技术 第1章 本书主要内容3 1.1 发现互联网的真 ...

  5. 《TCP-IP详解卷3:TCP 事务协议、HTTP、NNTP和UNIX域协议》【PDF】下载

    TCP-IP详解卷3:TCP 事务协议.HTTP.NNTP和UNIX域协议>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230062539 ...

  6. 转自《https安全链接的配置教程:startSSl免费证书申请与nginx的https支持配置》

    一.什么是 SSL 证书,什么是 HTTPS 网站? SSL证书是数字证书的一种,类似于驾驶证.护照和营业执照的电子副本.SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(Secu ...

  7. 《疯狂iOS讲义(下)——iPhone/iPad高级应用与手游开发(含CD光盘1张)》

    <疯狂iOS讲义(下)——iPhone/iPad高级应用与手游开发(含CD光盘1张)> 基本信息 作者: 李刚    肖文吉 出版社:电子工业出版社 ISBN:9787121224379 ...

  8. 《jQuery判断radio、checkbox、select 是否选中和设置选中问题以及获取选中值》总结

    <form> <input type="radio" name="gender" id="man" value=" ...

  9. 《慕客网:IOS动画案例之会跳动的登入界面(下)》学习笔记 -Sketch的使用

    导出选中的一个图片,比如这里我们选中background,然后点击软件的右下角,可以设置导出的尺寸: 然后添加1倍,2倍,3倍的尺寸,因为在ihpne6之后就需要这三个尺寸倍数的UI,以适应不同设备的 ...

随机推荐

  1. 【NOIP2016提高A组模拟7.17】寻找

    题目 Bob和Alice出去度蜜月,但Alice不慎走失,Bob在伤心过后,决定前去寻找Alice. 他们度蜜月的地方是一棵树,共有N个节点,Bob会使用下列DFS算法对该树进行遍历. startin ...

  2. linux运维、架构之路-HAProxy反向代理

    一.HAProxy介绍          专业反向代理,支持双机热备支持虚拟主机,配置简单,拥有非常不错的服务器健康检查功能,当其代理的后端节点出现故障, HAProxy会自动将该服务器摘除,故障恢复 ...

  3. Python pdfkit

    序言 住在地下室的人,依然有仰望星空的权利. pdfkit python使用pdfkit中,如果使用pdfkit.fromurl 或者pdfkit.fromstring等,就会出现上述错误.而且如果你 ...

  4. Codeforces 878A - Short Program(位运算)

    原题链接:http://codeforces.com/problemset/problem/878/A 题意:给出n个位运算操作, 化简这些操作, 使化简后的操作次数不多于5步. 思路:我们可以对二进 ...

  5. 01 Netty是什么?

    01 Netty是什么? IO编程 我们简化下场景:客户端每隔两秒发送一个带有时间戳的 "hello world" 给服务端,服务端收到之后打印. 为了方便演示,下面例子中,服务端 ...

  6. 纯CSS写的各种小三角和小箭头

    头朝下的小三角 width:0; height:0; border:50px solid transparent; //所有border都是透明的, border-top-color:black; / ...

  7. android中使用Application

    在android开发过程中,我们可能存储一些全局的变量,最好在正在app的任何一个activity或者service中都可以访问到,这时我们可以使用application. 我们的一个应用就叫appl ...

  8. [CSP-S模拟测试]:计数(DP+记忆化搜索)

    题目描述 既然是萌萌哒$visit\text{_}world$的比赛,那必然会有一道计数题啦!考虑一个$N$个节点的二叉树,它的节点被标上了$1\sim N$的编号.并且,编号为$i$的节点在二叉树的 ...

  9. Redis之Java客户端Jedis

    导读 Redis不仅使用命令客户端来操作,而且可以使用程序客户端操作. 现在基本上主流的语言都有客户端支持,比如Java.C.C#.C++.php.Node.js.Go等. 在官方网站里列一些Java ...

  10. Retrotranslator使用简介(JDK1.5->1.4)

      Retrotranslator是一个可以把JDK1.5(6)下编译的类(或包)转译成JDK1.4下可以识别的类(包)的工具. 为现在还用JDK1.4呢?我想无非是现在的大部分Java Web应用是 ...