共计 4023 个字符,预计需要花费 11 分钟才能阅读完成。
简介: 前几天小伙伴们是不是都被魔性的「蚂蚁呀嘿」刷屏了?其实背地的技术含量并不简单,次要依附的是换脸技术和主动节奏检测,算法会找到节奏点,在这些节奏点摇脸换表情,这样一支魔性而上头短视频就诞生了。明天为大家一一解构那些网络神曲,分享音乐信息检索算法,带你感性看神曲,或者下一个网络神曲缔造者就是你!
_** 作者:意姝
___审核:泰一_**_
什么是音乐?
《礼记》里说,“凡音者,生人心者也,情动于中,形于声,声成文,谓之音”,音是表情达意的一种形式。从乐理上讲,通常音乐是由节奏、旋律、和声这三要素形成的,十二平均律这些律式和数学严密相干。所以咱们能够说,音乐是一个理性与感性融合的产物。而明天要介绍的音乐信息检索(Music Information Retrieval,MIR),便是从音乐里提取“信息”,用算法将音乐中感性的一面开掘进去。
哪些是音乐的信息?
1. 节奏
首先咱们来听一首抖音神曲:《鳌拜鳌拜鳌拜拜》
https://y.qq.com/n/yqq/song/000ZCScz4g4BuM.html
歌曲中让你忍不住跟着一起点头抖腿的强烈的鼓点,就是节奏点,这是对节奏一种理性的认知。
严格来说,节奏是被组织起来的音的长短关系,它像是音乐的骨架,把音乐撑持了起来。譬如下图乐谱上的“4/4”是拍号,代表着这首曲子的音长的组织模式为:以四分音符为一拍,每大节 4 拍。每大节的第一拍往往为强拍(downbeat),这里的“down”和指挥的手势统一。
其它常见的拍号还有:2/4,3/4 等,这些都是单拍子(simple meter),也就是每拍天然二等分的节奏。除此之外还有复拍子(compound meter),指的是每拍天然三等分的节奏,如 6/8,复二拍子,读作“一二三,二二三,一二三,二二三”。
爵士乐、灵魂乐的魅力很多都在于对节奏的使用,遗憾的是,相当一部分华语流行歌曲都是 4/4 拍子的,导致听感上有很多雷同之处。
2. 音高
音乐是一种声音,所以也是由物体触动产生的,音的高下是由振动频率决定的。乐器收回的声音或人声,个别都不会只蕴含一个频率,而是能够分解成若干个不同频率的音的叠加。
这些频率都是某一频率的倍数,这一频率就称作基频,也就决定了这个音的音高。下图为一段男声朗诵的音频的语谱图,最上面蓝色框出来的局部就是以后时刻的基频。通常人声的音高在 100Hz~200Hz 左右。
对于流行歌曲而言,音高经常指的是它的主旋律,也就是人声唱的局部。
3. 和弦
古代音乐概念外面,由多个不同的音高同时发声就叫和声,三个或三个音以上的和声就叫做和弦。当这些音同时弹奏时,叫做柱式和弦,而当它们先后奏出时,便叫做合成和弦。
不过,并不是轻易按下几个音,都能够带来悦耳的听感。由十二平均律可知,一个八度均匀分成十二等份,每份称为半音,每个半音的频率为前一个半音的 2 的 12 次方根。常见的有三(个音的)和弦,七(度音的)和弦,根本的三和弦的组成如下图所示。
4. 段落
像文章一样,音乐也能够划分为一个个段落,让情感的表白有了起承转合。段落的组织模式多种多样,常见的有如下几种:
- AAA 一段旋律的反复,简洁明了,常见于宗教音乐。
https://y.qq.com/n/yqq/song/004Yc5sF3Rq7Wn.html
- ABAB 两段旋律穿插反复。
https://y.qq.com/n/yqq/song/000aKduC3mu0IL.html
钢铁侠出场音乐
- AABA 在反复的旋律中增加一段不太一样的,防止乏味感,如这首圣诞歌曲。
https://y.qq.com/n/yqq/song/002zL7ur42FYtK.html
- 古典音乐
一些古典音乐有本人的内容组织模式,如奏鸣曲式(sonata form),它的构造由呈示部、展开部、再现部三大段依序组成。
- 流行音乐
大家比拟相熟的构造是“前奏、(主歌 – 副歌)*n、尾奏”,当然流行音乐的创作比拟自在,有时创作者会在两段副歌之间增加桥段来防止枯燥,或在主歌与副歌之间增加过渡段,使得情绪过渡更为天然。
如何提取这些信息
传统的办法是“提特色 + 分类器”,这些特色包含时域和频域的。
音频信号经常用二维的特色来表征:一维频率、一维工夫。这样咱们能够用看待图像的形式,将音频特色输出到分类器中。不过音频特色和图像也有所区别,图像具备部分相关性,即相邻的像素点特色比拟靠近,而频谱的相关性,体现在各个泛音之间,部分的相似性比拟弱。
举个栗子,咱们用周杰伦《简略爱》的前 10s 的和弦(C,G,Am,F)渲染出一段音频,下图所示的 4 个频谱类的特色,从左上到右下别离为:短时傅立叶变换、Mel-Spectrogram、Constant-Q Transform、Chromagram,前三个都能够了解为通过滤波器组把原始的音频信号做拆分。
在提取特色的过程中,一些形象的、暗藏在音乐信号中的语义便浮出水面。在 Chromagram 中,纵轴是 Pitch Class(音高汇合,e.g.“音高汇合 C”蕴含了 C1,C2,C3….)。从图中能够看出,0s~3s 最亮的三个音别离是 C、E、G,能够揣测出这是一个 C 和弦,适合的特色让“和弦检测”这个分类工作的难度有所升高。
随着深度学习在各个领域的蓬勃发展,深度网络也逐步成为“分类器”的首选,不过也要“就地取材”,像节奏这种对音乐上下文有所依赖的音乐“信息”,RNN 类的网络往往成果更佳。
咱们当初能做到哪些
因为咱们的利用场景同时蕴含了实时与离线,所以下列算法很多都有实时的版本,可用在实时音视频通信等场景。
1. 节奏检测
如上文所述,节奏点就是歌曲拍子所在的地位。前阵子比拟火的“蚂蚁呀嘿”,照片中头动起来的样子十分魔性,这些动作就是依照歌曲的节奏点来设计的。上面咱们把利用算法检测进去的节奏,用相似于节拍器的声音出现进去,学过乐器的同学应该对这“嗒嗒嗒”的声音有印象。通过节奏检测的算法自动识别出其余歌曲的节奏点,咱们也能够制作本人的“蚂蚁呀嘿”模板。
上文还提到了“强拍”,能够用来辨别大节。咱们的办法除了检测出 beat,还能辨别出 downbeat,上面的视频展现出了“蚂蚁呀嘿”里的 downbeat:
有同学可能会好奇,你们的算法检测出 beat、downbeat 有什么用啊,不就是一些工夫点嘛?
其实能够衍生出很多音乐的玩法,譬如说前几年很火的音乐游戏,节奏巨匠,一个跟着旋律、节奏来疯狂输入的游戏。
咱们在公开数据集(GTZAN)和由 100 首流行歌曲形成的外部数据集上,评测了咱们的办法,后果如下表所示。咱们的办法在两个数据集上均有 0.8 以上的 F 值,具备肯定的鲁棒性。
2. 实时音高检测
咱们的办法能够做到输出一帧音频,而后输入以后帧的音高,以赫兹为单位。
下面这句话看上去仿佛有些干瘪,那这些数字有哪些作用呢?
举个栗子,很多 K 歌软件里都有下图中红框中的内容,它们是歌曲的音高线。掂量歌唱得准不准,次要就是看演唱者的音高、节奏和原曲的匹配水平。
在这个场景下,咱们的音高检测算法能够实时地剖析用户的演唱程度,并给出分数。
除此之外,实时音视频通信中的一些场景也依赖音高检测,如 Voice Activity Detection (VAD),如果以后帧有音高的话,阐明有人声。
3. 段落检测
流行音乐常见的段落类型有:前奏、主歌、过渡段、副歌、间奏、桥段、尾奏这 7 种。
咱们调研了市面上做段落检测的办法,很多都是基于自相似矩阵(Self-Similarity Matrix, SSM),对音乐构造做了 segmentation,也即它们仅仅能划分工夫区间,而无奈给出具体的段落类型;Ullrich et al. 提出了基于 CNN 的有监督学习的办法,能够检测出不同粒度下段落的边界。除了“segmentation”,咱们的办法还能够做到“classification”,即能够给出每个段落的工夫区间和类型(上述 7 种)。
咱们选取了音乐软件上热门榜单里的前 100 首歌曲,来作为咱们的评测样本集,评测后果及指标含意如下所示:
这 100 首中蕴含了 19 首土味 DJ remix 歌曲,因为这些歌曲动静范畴较小,能量很强,“动词打次”的声音覆盖了很多原曲的特质,所以在这类歌曲上,段落检测算法体现较弱。刨除这些 DJ 歌曲后,算法的 F\_pairwise\_chorus 能够达到 0.863。
思考到当初对音乐的生产越来越快餐,而且有时候为了给视频配乐,须要截取音乐的片段,而副歌往往是一首流行乐最“抓耳”的局部,咱们将算法封装为“副歌检测”的性能,一键帮用户筛选出流行歌里所有的副歌,具体的调用形式在这里。
这里以周杰伦的《说好的幸福呢》为例,算法的输入后果如下图所示,工夫单位为秒,大家能够边观赏 MV、边感触副歌的情感与能量~
4. 实时声音场景辨认
上文提到了一些 MIR 算法的成果及利用,不过在哪些场景下能够应用它们呢?也即如何辨别出音乐场景呢?
针对这个问题,咱们提供有声音场景辨认的算法能力,能够辨认出以后是“语音、音乐、噪声”中的哪一种,而且针对语音,能够进一步辨别性别(男 | 女)。
上面是一段《新闻联播》的音频,声音场景辨认算法标记出了其中的音乐、男声、女声,以及无声音(也即没有能量)的局部。
对于咱们
阿里云视频云 – 语音与音乐算法团队,次要为视频时代的娱乐、教育等场景提供语音音乐等音频的解决方案。在这里你能够理解到更多前沿的音频算法利用,欢送与咱们一起打造更好的音频世界!
「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实际技术文章,在这里与音视频畛域一流工程师交换切磋。
版权申明: 本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。