随着生死水平的极大进步,人们在很多状况下都会边听音乐边做一些事情,好比在健身房、出行路上等,越来越多的人也开端慢慢走在Hifi发烧友的这一条不归路上,频繁地换耳机、换功放等,小编在这里劝一下大家不要向某米公司的为发烧而生,要学习某米公司的高性价比,发烧永无止境,适可而止就好。 那大家有没有关注一些音乐APP呢,国内做的好的音乐APP有网易云、虾米音乐及QQ音乐等,我们会发现这些APP中都会有两个相似的功用——我喜欢的音乐及每日歌曲引荐,其中我喜欢的音乐这个功用会记载你喜欢的音乐,而每日歌曲引荐是依据你喜欢的音乐作风来引荐给你一些你不曾听过的音乐,看起来是不是很黑科技呢?其实这种技术早就存在,被称作引荐算法,在生活中随处可见。 依据百度百科的定义:引荐算法是计算机专业中的一种算法,经过一些数学算法,推测出用户可能喜欢的东西,目前应用引荐算法比较好的中央主要是网络中。所谓引荐算法就是应用用户的一些行为,经过一些数学算法,推测出用户可能喜欢的东西。好比淘宝购物、页面定位广告等。 随着大数据时期的到来,我们的个人数据会被巨头公司以各种方式获取,获取的数据越多,对我们的剖析也就越分明,引荐得也愈加精确,有时分以至算法做出的引荐选择比我们自己都愈加分明自己内心想法,这点在婚恋交友网站上可能会有大的突破,剖析彼此的性格,好比说剖析两个男人的条件,最后引荐最合适你的对象。未来的世界里,数据就是上帝,你我都避免不了自己的数据被人搜集,只能说应用好巨头公司提供的各种效劳吧。 言归正传,本文将应用深度学习向读者展示一个音乐引荐系统的搭建,感兴味的读者能够入手尝试下。国外的音乐获取没有国内这么方便及免费,这也阐明国外的月亮一定比国内圆,国内的有些效劳的确比国外做的方便。本文作者(后续将以“我”替代)最近几年曾经在junodownload网站花了很多钱,主要是置办置办mp3音乐,该网站是一个主要用于DJ数字下载网站,并且是一个庞大的销售与跟踪平台。
从图上看该网站是一个丰厚的音乐资源分享网站,他们为每一首出卖的歌曲提供大方的2分钟试听MP3文件(国内还是良知)。独一遇到的问题是当在该网站上寻觅一个不是最新的或目前不在销售排行榜的音乐真的很难。 该网站主要偏重于推行新的内容,并以为新的音乐会产生最多的收益,但关于网站上的99%其他销售能全部跟踪吗? 音乐引荐
该网站目前曾经有了一些跟踪倡议。在主页上还有销售列表、新发布的歌单和由人员及DJ谋划的大量的引荐列表。 最重要的是,在每个单独的跟踪/单网页,窗口的右侧会“举荐买了这首歌曲的也会买那首歌(相似于亚马逊网站卖电子书籍)”、“艺术家的其他版本”和“其他版本的家唱片公司”,这些也是有用的。 但关于这样一个大型的音乐数据库,我觉得还是短少依据用户目前正在听一的歌曲引荐一些可能也会喜欢歌曲的、倡议一些相似的歌曲类型,这也会增加到购物车中的机遇等。 假如你能发现音乐是几年前发布的,并且相似于你喜欢的一个新的歌曲,会不会很酷?当然,Juno网站错过了不提供这种类型的引荐带来的潜在销售的。 遭到最近阅读的一篇博客的启示,对自己的音乐库中的歌曲中止音乐流派的分类,我决议尝试用相似的措施来树立一个音乐引荐系统。 完成过程 完成这一目的需求采集大量数据、处置和模型锻炼等步骤。下面是一切触及的步骤: 下载MP3文件 首先要做的第一件事就是下载大量样本的MP3文件。 该网站上有超越400000的音乐文件可供销售,随意选择了9种不同的音乐流派,然后从每种流派中都随机选择1000首。 9种流派:
在接下来的几天日子里,我下载了这些流派总共9000个MP3文件。 转换音频频谱图 一个音频文件包含的数据太多,所以在这部分的整个过程中的很大一部分实质上是试图将信息从音乐中浓缩、提取主要特征并消弭一切的“噪音”。它实质上是一个降维的预处置,这第一阶段是将音频转换成图像格式。 应用离散傅里叶变换将音频信号转换到频域上,处置搜集的9000个MP3音频文件,每首歌保存为光谱图像。光谱图是一种表示声音的频谱随时间变更的可视化,图片上颜色的强度代表该频率的声音振幅。 本文选择创建成单色光谱图,如下图所示:
上图是20秒左右的嘻哈音乐产生的声音。X轴表示时间,Y轴表示声音的频率。 分割图像为256×256 为了对这些数据锻炼一个模型,需求将一切的图像统一为相同的尺寸,所以将一切的光谱图分割为256×256大小。
切割完图片后,总共得到185000多张图片,每一张图像都标记与它所代表的音乐流派的标签。 下面将数据集分为锻炼集120000张、考证集45000张和测试集20000张。 锻炼一个卷积神经网络 应用上部分中的图像数据锻炼一个卷积神经网络,该网络要学习不同类型的音乐对应的频谱图像,所以运用类型标签并锻炼该网络能从图像中辨认出音乐的类型。
上图是本文搭建的卷积神经网络模型,能够看到,左上边的光谱图像将图像转换成一个表示每个像素的颜色的数字矩阵;之后数据经过卷积层、池化层以及全衔接层等处置后送入到右下角的softmax分类器,分类器给出一个9位数的矢量,其中每位分别对应着9种音乐流派的概率,最后选择其中最大约率位置的流派为最终辨认流派。 卷积神经网络的表示如何呢? 本文搭建的卷积神经网络模型能够以75%的精度分类出歌曲的音乐流派,我个人以为结果还是比较好(后续能够调参及调整网络模型进步辨认精度),这是音乐是客观的,一首歌曲常常会有一个及以上的类型。 下面是每种类型歌曲的分类精度的细致状况:
从结果中能够看到在分类迷幻电音时分表示优秀,而分类嘻哈/ RB音乐时效果不是很好,可能的缘由是数据集之间有一些交叉可能招致分类精度较低,好比嘻哈、碎拍和舞厅比较相似。而迷幻电音完整不同于其他8个类型的音乐,这可能是其表示优秀的缘由吧。 关于音乐引荐系统 往常有了锻炼好的神经网络,该网络能够“看清”音乐的频谱图,因而我们不再需求softmax分类器,所以移除模型中的全衔接层。 每个图像代表超越5秒的音频信息,而每个MP3文件大约有2分钟时长,因而每个音乐文件大约对应着23张图像,即取得23个特征向量;然后计算这23个特征向量的均值向量,总共得到9000的特征向量;每个特征向量对应着之前下载的9000首歌曲。 回想整个过程–开端搜集9000个音频文件,并将其转化为9000个频谱图,然后将频谱图分红185000个更小的频谱图,并应用这些图像锻炼搭建的卷积神经网络。最后从一切这些图像中提取185000个特征向量并计算其均值得到9000个对应原始音频文件的平均向量。 基于曾经从音乐文件中提取的128个特征,这些特征能够肯定音乐所属的类型。为了创建有着相似特征的引荐歌曲,所以需求找到最相似的向量。为此,计算出9000个向量之间的余弦相似性。 引荐例子 最后一步是随意选择一首歌,然后锻炼好的模型从9000首歌曲集中引荐一首与之最相似的音乐(最大的余弦相似性)。 下图是引荐的几个例子,播放的第一首歌是随机选择的,第3个例子取得了最相似的引荐。由于网络受限,播放需求经过外网,图片下面对应着播放链接。
(https://youtu.be/H1cN4uzxZZw)
(https://youtu.be/cPHpr_u62ZM)
(https://youtu.be/cizXW9vvoRA)
(https://youtu.be/VDuOu4BMDz8)
(https://youtu.be/7M5_TKOOGBg)
(https://youtu.be/PnK8pX8f9A4) 整个过程完整是无监视的,这点是很凶猛的。想象一下,假如听完这9000首歌后并评价这些歌曲的不同的特征和类别需求花多少时间。相似的工作也在潘多拉中止,曾经开端尝试这种“音乐基因工程”。依据这篇文章,25个音乐剖析师听完并对10000首歌中止分类所花的时间是一个月,而本文的整个项目从开端到完成仅破费三个星期,并提取了多达450个不同的音乐特征。该模型的表示与人类的表示相似,并且在查找歌曲时不需求任何人预先听段音频,此外破费极少的时间。 总的来说,本系统上手不太复杂,搜集音乐并对音乐文件中止预处置需求破费一些时间,感兴味的读者能够依照这个思绪入手完成一些其他相似的引荐系统,也能够制造成一款APP哦,相比国内的音乐APP而言,国外的是不是弱爆了?赶紧开发一款在海外市场发行吧。 相关代码 https://github.com/mattmurray/juno_crawler https://github.com/mattmurray/music_recommender 作者信息 Matthew Murray:数据科学家和剖析师 个人主页:http://mattmurray.net/ Linkedin:https://www.linkedin.com/in/mattsrm/ Github: https://github.com/mattmurray 本文由北邮@爱可可-爱生活教员引荐,阿里云云栖社区组织翻译。 文章原题目《Building a Music Recommender with Deep Learning》,作者:Matthew Murray,译者:海棠,审阅:李烽 -END- ID:yunqiinsight |
万奢网手机版
官网微博:万奢网服务平台