音乐自动剪辑算法

音乐自动剪辑算法

前言

随着移动互联网在国内的飞速发展,移动音乐作为国内最受欢迎的娱乐休闲方式之一也得到飞速的发展,有包括酷狗、QQ、酷我等在内的全用户覆盖的音乐软件,又有像网易云、虾米等在内的有着较高用户针对性的产品。移动音乐是指依托手机、平板电脑等可移动设备,通过移动通讯网络或互联网进行传输的音乐,以app为载体的移动音乐涵盖音乐播放器、音乐电台、音乐铃声、音乐娱乐、音乐学习等层面以及游戏、秀场等领域。

据中国产业调研]网发布的中国移动音乐行业现状研究分析及市场前景预测报告(2020年)显示,在各类应用的使用率排行中,音乐类应用在休闲娱乐类的软件中排在第一位。排在前三名的依次是即时通讯89.3%、搜索引擎80.3%和新闻资讯79.6%。除却网民在移动互联网上的交互和资讯获取等基本需求外,网民对于音乐的需求较高。

除开普通用户对于音乐的需求,现兴起的短时频、直播行业同样对音乐有着很大的需求因此对于音乐售卖方,能够提供一个片段让用户进行试听选择的功能至关重要。音乐自动剪辑功能的目的就是剪辑出一个高潮片段来供用户试听缩小选择音乐所需的时间,且还能够提供彩铃的功能。

实现原理

副歌(英文为Refrain或Chorus)是歌曲中一句或一段重复的歌词。通常出现在几段正歌(英文Verse;中文又称作主歌)之间。叫副歌,因为有个相对的“正歌”,不管是长度还是内容上来说,副歌在长度、旋律、节奏和情感上均与正歌形成反差。为歌曲曲调提供变化性。

副歌与正歌一起组成正副歌形式,作为流行音乐中最重要最常用的音乐形式之一 。副歌采用重复的形式,在歌曲中通常位于情感上的高潮部分,以其概括性令听者易于记忆。一般作曲者也会先写出副歌部分,再进行正歌的创作。为了让整体的关系更加紧密,许多流行曲也会编写导歌(英文Pre-Chorus)作为两者之间的联系,即由正歌至导歌后才到副歌,作为副歌预先作好铺排,从而丰富副歌歌词所表达的内在含意。

因此对于一般的流行音乐高潮部分一般位于歌曲的副歌中,本文以一种由相似矩阵查找副歌的开始时间,进而使用能量窗口挑选出高潮片段。

具体实现

副歌定位

首先将音频文件读取到内存中,并提取音频的色谱图(chromagram),如下图所示:

image

假设我们拥有一首5分钟的音频文件,设置0.2秒为一帧。那么我们会得到一个1500 x 12的二维矩阵,它代表该音频的色谱图

image

此时我们将歌曲转变为一个包含12个音符的帧的集合,所以我们需要一个相似性函数来比较任何给定的歌曲帧。如果 V1V2 是这首歌任意两个例子中的12个音符向量,那么我们将使用以下相似函数:
sim(V_1,V_2)=1-{||V_1-V_2||\over 12}

这样我们将2帧之间的相似度限制在0-1区间内,且相似度越大代表这2帧越相似。

通过相似函数我们就可以对整个色谱图构造出一个按照时间维度上的相似矩阵M
M[x][y]=sim(x,y)

矩阵M还有以下2个特征:

  1. 该矩阵以对角线对称相等,也就是说有
    M[x][y]=M[y][x]
  1. 对角线的值都是1,因为对角线上是该帧与自己的相似度计算因此都是1

M[x][x] = 1

如下图,排除大矩阵对角线外的直接外拥有高亮直线的地方都代表了相似如框中02:30-03:0000:45–01:15存在相似。

image

在矩阵运算中,对角线相对比较难判断。因此采用一个延时矩阵T通过线性变换将斜线变为直线:
T[x][y]=M[x][x-y]=sim(x,x-y)

最终我们得到延时矩阵T,再经过去噪(指定一个阈值过滤低于该阈值的值)和平滑处理后可以得到包含多条高亮直线的直方图,下图展示的是图4中区间中局部结果,可以发现原本对称的高亮斜线已经被拉伸为直线。

image

最后,我们需要挑选出一个最佳的副歌区域。

将所有直线按照时间点进行统计,如果某一时刻出现的线条数按照加权和计算最终得到每一条直线的权重,并最终选择权重最大的那一条作为副歌区域。

假设一条直线从x开始y结束每一个时间点含有的重叠线条数为nn\in[j,k]。定义每一条直线的权重值为δ
W_(x,y)=\sum_{i=x}^y \sum_{n=j}^k δ
通过上述算式就能够查找到副歌区域。但是该算法不适用于节奏不一致的音乐,例如早期没有节拍器由由鼓手来计时的音乐,歌手主歌副歌歌唱速度不一致或者副歌部分很短的歌曲等。针对这种情况我们将不能获得副歌的起始位置只能跳过该步骤直接查找高光片段。

检索高光片段

检索高潮片段的原理很简单:我们采用加窗比较窗口中能量大小得到能量最大的片作为高潮片段,然后再用小窗口对起点进行微调。

假设文件采样率fs、原始信号为S,使用最小切片时长t,得到窗口大小设为Ws
W_s=t*f_s*\alpha
其中α是一个大于1的常量,这里我们设置为1.5也就是说窗口大小应该大于剪辑限制因为我们还需要对起始位置进行微调。

首先将信号S按照窗口大小划分为多个片段然后计算每一个窗口中能量我们的平均能量值
E = \frac {\sum_{i=n}^{n+W_s}||S||} {W_s}
最终选择平均能量值最大的那个窗口为高潮片段得到高潮部分的起始时间点S_E ,使用一个小窗口对起始时间点前后进行微调。使用小窗口的目的是为了检测一句话或一个旋律的开始部分它应该是一个短暂的停顿因此这里我们使用长度为0.5秒的窗口。
W_q=\beta *f_s, \beta=0.5
检测范围为[S_E-r,S_E+r],其中r代表滑动检测区域。按照上述计算平均能量的方式计算每个小窗口的平均能量。但不同的是这次取平均能量的最小值作为按照能量微调后的起始时间点。

按照上述方法在高能量片段起始点检测平均能量最小点作为一段旋律的开始点,并按照该方法检索结束位置即可。

结论

综上,我们使用副歌查找加高光片段检索的方式来实现了歌曲自动剪辑功能。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容