本发明涉及音乐推荐技术领域,具体涉及一种音乐智能推荐方法及系统。
背景技术:
随着信息技术和网络技术的发展,音乐库规模呈几何级数增长,音乐歌曲的种类也随之增多,越来越多的用户通过互联网或移动互联网在线收听或下载音乐。用户在点歌时,需要提供音乐的相关信息,例如音乐的名称、作者等,然后服务器返回符合搜索条件的音乐列表供用户选择。此外,用户可能会喜欢某一类的音乐,因此需要将音乐主动推荐给用户。传统的音乐推荐方法仅仅通过音乐相关信息(例如专辑名称、作者、类型等)来进行推荐,例如用户收听了音乐a,音乐a与音乐b属于同一专辑,则认为用户也会喜欢音乐b,因此将音乐b推荐给用户。
然而,传统的这种音乐推荐方法由于仅参考音乐相关信息来进行推荐,但在实际应用中,有些用户的习惯差别很大,往往相关信息相同的两个音乐并不会为用户所喜欢,因此传统的这种音乐推荐方法推荐的准确度不高。
技术实现要素:
本发明提供一种音乐智能推荐方法及系统,能够根据用户所喜爱的歌曲找到能够被用户所喜爱的歌曲并推荐给用户,提高推荐准确度。
第一方面,本发明提供一种音乐智能推荐方法,所述方法包括:
获取用户喜欢的歌曲作为参考歌曲;
提取参考歌曲的旋律特征,提取参考歌曲的类型,提取参考歌曲的歌词;
将参考歌曲的旋律特征与歌曲库中歌曲的旋律特征进行匹配,得到旋律相似度,旋律相似度在高于预设相似度时,从歌曲库中选为候选歌曲;
提取候选歌曲的类型;
从候选歌曲中选择与参考歌曲类型相同的歌曲作为待推荐歌曲;
将参考歌曲的歌词与待推荐歌曲的歌词对比,依据歌词相似度对待推荐歌曲进行排序并呈现给用户。
优选地,所述获取用户喜欢的歌曲作为参考歌曲包括:
选择用户打开音乐软件时所选择播放的歌曲,并且播放频率在n次以上的;或选择用户在佩戴耳机情况下播放次数前三位的歌曲推荐给用户选择,以确定参考歌曲。
优选地,所述旋律特征包括:音符序列表示的旋律特征或基频包络表示的旋律特征;
优选地,所述将参考歌曲的旋律特征与歌曲库中歌曲的旋律特征进行匹配,得到旋律相似度包括,旋律相似度在高于预设相似度时,从歌曲库中选为候选歌曲包括:
对于音符序列表示的旋律特征,利用序列匹配算法计算所述旋律特征与歌曲库中歌曲的旋律特征的相似度;
对于基频包络表示的旋律特征,利用动态时间规整算法计算所述旋律特征与歌曲库中歌曲的旋律特征相似度;
计算所述参考歌曲的音符序列与歌曲库中待匹配歌曲的音符序列的相似度;
计算所述参考歌曲的基频包络与歌曲库中待匹配歌曲的基频包络的相似度;
将所述基频包络的相似度与音符序列的相似度进行融合,并将融合结果作为旋律相似度;
选择旋律相似度大于设定阈值的歌曲作为候选歌曲,或者按照旋律相似度由大到小的顺序选择设定个数的歌曲作为候选歌曲。
优选地,所述从候选歌曲中选择与参考歌曲类型相同的歌曲作为待推荐歌曲包括:
所述参考歌曲类型与所述候选歌曲类型完全相同,或者所述参考歌曲类型与所述候选歌曲类型不完全相同但有一种及以上类型相同。
优选地,所述将参考歌曲的歌词与待推荐歌曲的歌词对比,依据歌词相似度对待推荐歌曲进行排序并呈现给用户包括:
使用分词器将参考歌曲的歌词与待推荐歌曲的歌词分为符合逻辑的词语序列,将参考歌曲的词语序列与待推荐歌曲的词语序列进行遍历比对,得到相同词语数量和不同词语数量;
根据所述相同词语数量和不同词语数量的比值,得出歌词的相似度;
依据歌词相似度对待推荐歌曲按照相似度从高到低的方式进行排序。
第二方面,本发明还提供了一种音乐智能推荐系统,所述系统包括:获取模块,参考歌曲提取模块,选择模块,候选歌曲提取模块,待推荐歌曲模块,排序模块。
获取模块,用于获取用户喜欢的歌曲作为参考歌曲;
参考歌曲提取模块,用于提取参考歌曲的旋律特征、类型和歌词;
选择模块,用于根据所述旋律特征相似度从歌曲库中选择候选歌曲;所述选择模块包括:旋律特征匹配模块,用于将参考歌曲的旋律特征与歌曲库中歌曲的旋律特征进行匹配,得到旋律相似度;候选模块,当旋律相似度在高于预设相似度时,从歌曲库中选为择候选歌曲;
候选歌曲提取模块,用于提取候选歌曲的类型,候选歌曲的类型为两种及以上;
待推荐歌曲模块,用于从候选歌曲中选择与参考歌曲类型相同的歌曲作为待推荐歌曲;
排序模块,用于将参考歌曲的歌词与待推荐歌曲的歌词对比,依据歌词相似度对待推荐歌曲进行排序并呈现给用户。
优选地,所述旋律特征匹配模块包括:
第一计算单元,用于计算所述参考歌曲的音符序列与歌曲库中带匹配歌曲的音符序列中各子音符序列的相似度;
第二计算单元,用于计算所述参考歌曲的基频包络与歌曲库中带匹配歌曲的基频包络的相似度;
融合单元,用于将所述基频包络的相似度与音符序列的相似度进行融合;
输出单元,用于将所述融合单元得到的融合结果作为旋律相似度输出。
所述候选模块,具体为选择旋律相似度大于设定阈值的歌曲作为候选歌曲,或者按照旋律相似度由大到小的顺序选择设定个数的歌曲作为候选歌曲。
本发明提供的一种音乐智能推荐方法及系统,选择用户打开音乐软件时所选择播放的歌曲,并且播放频率较高的歌曲作为参考歌曲,按照日常习惯,该歌曲便是近期最受用户喜爱的歌曲。通过音乐的旋律,类型和歌词同时进行搜索,提高了搜索到的歌曲被用户所喜欢的准确度。
附图说明
图1为本发明提供的音乐智能推荐方法的流程示意图。
图2为本发明提供的音乐智能推荐系统的结构示意图。
图3为本发明提供的音乐智能推荐系统的旋律特征匹配模块的结构示意图
具体实施方式
下面结合附图对本发明作进一步的详细说明。
实施例一
图1示出了本发明实施例一提供的音乐智能推荐方法的流程示意图。所述方法包括
步骤s1,获取用户喜欢的歌曲作为参考歌曲;
步骤s2,提取参考歌曲的旋律特征,提取参考歌曲的类型,提取参考歌曲的歌词;
步骤s3,将参考歌曲的旋律特征与歌曲库中歌曲的旋律特征进行匹配,得到旋律相似度,旋律相似度在高于预设相似度时,从歌曲库中选为候选歌曲;
步骤s4,提取候选歌曲的类型;
步骤s5,从候选歌曲中选择与参考歌曲类型相同的歌曲作为待推荐歌曲;
步骤s6,将参考歌曲的歌词与待推荐歌曲的歌词对比,依据歌词相似度对待推荐歌曲进行排序并呈现给用户。
本发明实施例一的具体技术方案为:
步骤s1,获取用户喜欢的歌曲作为参考歌曲;
选择用户打开音乐软件时所选择播放的歌曲,并且播放频率在3次以上的;或选择用户在佩戴耳机情况下播放次数前三位的歌曲推荐给用户选择,以确定参考歌曲。
步骤s2,提取参考歌曲的旋律特征,提取参考歌曲的类型,提取参考歌曲的歌词;
旋律特征包括:音符序列表示的旋律特征或基频包络表示的旋律特征;
步骤s3,将参考歌曲的旋律特征与歌曲库中歌曲的旋律特征进行匹配,得到旋律相似度,旋律相似度在高于预设相似度时,从歌曲库中选为候选歌曲;
在本发明实施例中,所述旋律特征可以有音符序列或基频包络来表征。
对于音符序列表示的旋律特征,可以利用序列匹配算法,比如ed(editdistance,编辑距离)算法、lcs(longestcommonsubsequence,最长公共子序列)算法等,计算参考歌曲的旋律特征与歌曲库中的歌曲的旋律特征的相似度。
对于基频包络表示的旋律特征,可以利用dtw(dynamictimewarping,动态时间规整)算法计算参考歌曲的旋律特征和歌曲库中的歌曲的旋律特征的相似度。
计算参考歌曲的音符序列与歌曲库中待匹配歌曲的音符序列中各子音符序列的相似度;
计算参考歌曲的基频包络与歌曲库中待匹配歌曲的基频包络的相似度;
将所述基频包络的相似度与对应的最大子音符序列的相似度进行融合,并将融合结果作为旋律相似度;
具体融合方式可以按以下公式进行:
sim=α·s1+β·s2
其中,sim表示旋律特征相似度,s1表示音符序列相似度,s2表示基频包络相似度,α和β为融合系数。
将参考歌曲的旋律特征与歌曲的旋律特征进行匹配,并根据匹配结果从歌曲库中选出一些相似度高的歌曲作为候选歌曲,比如,可以选择旋律相似度大于设定阈值的歌曲作为候选歌曲;或者按照旋律相似度由大到小的顺序选择设定个数(比如20个)的歌曲作为候选歌曲。
步骤s4,提取候选歌曲的类型,在本实施例中,候选歌曲的类型包括现有酷我、酷狗、qq等音乐播放器的分类标准,如“热歌”、“流行歌曲”、“成名曲”、“经典怀旧”、“爵士”、“摇滚”等等,歌曲均有标引与定义多个标签;
候选歌曲的类型为两种及以上,如候选歌曲即为“流行歌曲”也为“80后爱听”。
步骤s5,从候选歌曲中选择与参考歌曲类型相同的歌曲作为待推荐歌曲;
参考歌曲类型与所述候选歌曲类型完全相同,或者所述参考歌曲类型与所述候选歌曲类型不完全相同但有一种及以上类型相同。
步骤s6,将参考歌曲的歌词与待推荐歌曲的歌词对比,依据歌词相似度对待推荐歌曲进行排序并呈现给用户。
使用分词器将参考歌曲的歌词分为符合逻辑的词语序列an={词语a1,词语a2,词语a3,……,词语an};
使用分词器将待推荐歌曲的歌词分为符合逻辑的词语序列bn={词语b1,词语b2,词语b3,……,词语bn};
将参考歌曲的词语序列an与待推荐歌曲的词语序列bn进行遍历比对,得到相同词语数量n和不同词语数量m;
根据所述相同词语数量和不同词语数量的比值(n/m×100%),得出歌词的相似度;
依据歌词相似度对待推荐歌曲按照相似度从高到低的方式进行排序。
基于以上内容,本发明实施例一可以实现的技术效果为:选取用户打开音乐软件时所选择播放的歌曲,并且播放频率较高的歌曲作为参考歌曲,以此快速的找到用户所喜爱的歌曲,并根据该参考歌曲的旋律、类型和歌词为用户快速的从歌曲库中搜索到能够用户喜爱的歌曲,提高音乐推荐的准确度。
实施例二
对本发明实施例一对应地,图2示出了本发明实施例提供的音乐智能推荐系统的结构示意图。所述系统包括:获取模块101,参考歌曲提取模块102,选择模块103,候选歌曲提取模块104,待推荐歌曲模块105,排序模块106。
所述获取模块101,用于获取用户喜欢的歌曲作为参考歌曲。选择用户打开音乐软件时所选择播放的歌曲,并且播放频率在3次以上的;或选择用户在佩戴耳机情况下播放次数前三位的歌曲推荐给用户选择,以确定参考歌曲。
所述参考歌曲提取模块102,用于提取参考歌曲的旋律特征、类型和歌词;
所述选择模块103,用于根据所述旋律特征相似度从歌曲库中选择候选歌曲;所述选择模块包括:
旋律特征匹配模块,用于将参考歌曲的旋律特征与歌曲库中歌曲的旋律特征进行匹配,得到旋律相似度;该模块包括第一计算单元,用于计算所述参考歌曲的音符序列与歌曲库中带匹配歌曲的音符序列中各子音符序列的相似度,利用序列匹配算法,比如ed(editdistance,编辑距离)算法、lcs(longestcommonsubsequence,最长公共子序列)算法等,计算参考歌曲的旋律特征与歌曲库中的歌曲的旋律特征的相似度;第二计算单元,用于计算所述参考歌曲的基频包络与歌曲库中带匹配歌曲的基频包络的相似度,利用dtw(dynamictimewarping,动态时间规整)算法计算参考歌曲的旋律特征和歌曲库中的歌曲的旋律特征的相似度;融合单元,用于将所述基频包络的相似度与音符序列的相似度进行融合,融合公式:sim=α·s1+β·s2,其中,sim表示旋律特征相似度,s1表示音符序列相似度,s2表示基频包络相似度,α和β为融合系数;输出单元,用于将所述融合单元得到的融合结果作为旋律相似度输出。
候选模块,当旋律相似度在高于预设相似度时,从歌曲库中选为择候选歌曲。将参考歌曲的旋律特征与歌曲的旋律特征进行匹配,并根据匹配结果从歌曲库中选出一些相似度高的歌曲作为候选歌曲,比如,可以选择旋律相似度大于设定阈值的歌曲作为候选歌曲;或者按照旋律相似度由大到小的顺序选择设定个数(比如20个)的歌曲作为候选歌曲。
候选歌曲提取模块104,用于提取候选歌曲的类型;在本实施例中,候选歌曲的类型包括现有酷我、酷狗、qq等音乐播放器的分类标准,如“热歌”、“流行歌曲”、“成名曲”、“经典怀旧”、“爵士”、“摇滚”等等,歌曲均有标引与定义多个标签;候选歌曲的类型为两种及以上,如候选歌曲即为“流行歌曲”也为“80后爱听”。
待推荐歌曲模块105,用于从候选歌曲中选择与参考歌曲类型相同的歌曲作为待推荐歌曲;参考歌曲类型与所述候选歌曲类型完全相同,或者所述参考歌曲类型与所述候选歌曲类型不完全相同但有一种及以上类型相同。
排序模块106,用于将参考歌曲的歌词与待推荐歌曲的歌词对比,依据歌词相似度对待推荐歌曲进行排序并呈现给用户。使用分词器将参考歌曲的歌词分为符合逻辑的词语序列an,将待推荐歌曲的歌词分为符合逻辑的词语序列bn;将参考歌曲的词语序列an与待推荐歌曲的词语序列bn进行遍历比对,得到相同词语数量n和不同词语数量m;根据所述相同词语数量和不同词语数量的比值(n/m×100%),得出歌词的相似度;依据歌词相似度对待推荐歌曲按照相似度从高到低的方式进行排序。
基于以上内容,本发明实施例二可以达到的技术效果是:旋律特征匹配模块采用不同的算法计算音符序列的相似度和基频包络的相似度并融合作为旋律相似度,提高了依据旋律相似度搜索的准确度,并利用待推荐歌曲模块筛选出相同类型的歌曲,在通过排序模块对待推荐歌曲进行排序,以便于用户快速听到最为接近的同类型的歌曲。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。