- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
副歌提取和人声检测设计方案文档工科
音乐主题提取系统设计文档
一. 算法概述
1. 算法流程说明
本算法需要解决的技术问题是,给定一首音频文件,通过对现有音乐信号提取技术的整合及优化,让计算机能够自动识别出副歌的位置。基本的流程图如右图所示。
(1) 读入音频文件
本步骤由用户完成,注意需要读入的是wav文件格式,可以批量读入也可以单个读入。
(2) 节拍追踪
首先进行能量和相位的音符开端检测,接下来使用动态规划算法计算最优节拍序列间隔。
测量的方法是将分帧的音频信号通过短时傅立叶变换映射到频域进行频谱分析得到音符开端包络线,为了保证短时变换中的信号相对稳定,因此首先对音频信号进行固定长度的分帧。选取的帧长为32ms,每次以4ms 为单位进行推进,再对于每一帧进行短时傅立叶变换(Short-time Fourier Transfer)。那么在频域会有n 个bin(n 为该帧短时信号的采样点个数),对于其中的某一帧(该帧的帧数由m 表示)的第k 个bin 可以以复数的形式被表示为:
Skm=Rk(m)ejφk(m)
其中Rk(m)为第m帧中的第k个bin的幅度,Φk (m)为第m帧中的第k个bin的相位。之后可以通过当前一帧对于接下来的一帧进行估计。对于该帧内的每一个bin,其幅度的估计值~Rkm 即为之前一帧与之对应的bin的幅度,即:
~Rkm=Rk(m-1)。
而相位的估计值~φkm则为前一帧与之对应的bin 的相位以及其相位的差分之和。表示为:
~φkm=princarg[2φkm-1-φk(m-2)]
其中函数 princ arg将相位映射到[−π ,π]的范围中。这样就得到了第m帧幅度和相位的估计值。此时可以在复平面上对这两个点求欧几里德距离,用 γk(m) 表示第m帧的第k 个bin的实际值与估计值之间的距离,即:
γkm=[Rkm-~Rkm}2+[φkm-~φk(m)]2
将这 n 个距离相加,就可以得到一个以帧为单位的音符开端检测函数:
Dm=1kγkm
(3) 提取与节拍同步的chroma特征
对音符开端检测的结果应用动态规划的方式进行节拍追踪(Beat Tracking),使得检测出的节拍同时满足以下两个条件:①节拍的开端尽可能与音符开端重合;②两个节拍之间的时间长度恒定。节拍实际上即为固定间隔的时间点序列,并且要让尽可能多的音符开端落在节拍的时间上。动态规划的过程也正是在这两个限制条件下寻求最优的节拍位置以及节拍间隔。用算式表示的目标函数即为:
C{ti}=i=1NDm+ai=2NF(ti,τp)
其中i=2NF(ti,τp)是一个衡量速率的标准。目标是寻找最优的节拍序列{ti} 来使得目标函数(C{ti })最大。
将每一帧内的信号通过傅立叶变换由时域映射到频域,这里分割出的帧就是经过节拍同步后划分的帧长度;将对应于不同八度同一个音名频率内的部分映射到对应的半音音名中,产生一个12维的向量,每一维对应于一个八度中的一个半音;以节拍追踪的结果为依据,在一个节拍之内对属于其中的帧的chroma特征向量进行平均,即可得到与节拍同步的一个chroma特征向量,每个节拍对应一个chroma特征向量。
(4) 计算chroma特征的自距离矩阵
定义自距离矩阵为D[m,m],其中m为整个歌曲的节拍数,则其中矩阵的元素D(i, j)表示第i拍所对应的chroma特征向量与第j拍所对应的chroma特征向量的欧式距离。具体公式如下:
Di,j=0.5(1-Vi,VjVi|Vj|)
其中 Vi 表示第i 个节拍对应的特征向量。使用自距离矩阵,可以对歌曲节拍与节
拍之间的关系进行衡量,并且可以非常直观的反映出歌曲的结构信息。
从自距离矩阵的主对角线开始向左下方平移,计算每一条子对角线所有元素的平均值,并且将得出的结果表示成为一个以k(该子对角线与主对角线相比向左下方平移的长度)为自变量,元素平均值为函数值的函数F(k).具体表示为:
Fk=1M-kc=1M-kD(c+k,c)
其中 M 是整个歌曲的节拍数。可以认为整个子对角线的元素平均值若较小,则说明有可能有重复的段落出现在了这条子对角线所表示的这段音乐中,因此找出函数F (k )的极小值,取出对应于这些极小值的子对角线,则副歌以及其他多次重复的部分(如主歌)就应该会包含在其中。
(5) 自距离矩阵的二值化
设定一个阈值(在实现中此阈值可使80%的元素值取值为1,20%的元素取值为0,该取值通过实验证明可产生较好的结果),将所有这些子对角线中的元素值与阈值进行比较,若大于阈值则该点为1,否则为0。
(6) 打分判断最高分段落为副歌
将所有的可能的副歌段落基于以下几个方面对于可能的副歌段落进行打分:
①段落在歌曲中的位置;
一般来讲,某一类副歌的出现位置都是在一个大约的位置,因此可以对该位置进行估计。基于观察的
文档评论(0)