loading...

中国电信爱音乐网推出哼唱搜索功能

作者:sluke 发布时间:November 3, 2010 分类:闲言碎语

先上链接
http://search.118100.cn/singsearch/index.html

因为爱音乐网的手机客户端有这样的应用,所以可以确定这个网页上的哼唱搜索是来源于同一个技术,我估计是找科大讯飞外包的技术。

有百度之前的哼唱搜索刚下线,电信又跟着发布,那厢还有盛大说要开源哼唱搜索,实力的企业都在涉足哼唱搜索,这个应用真是热了,

爱情买卖,十年网络流行歌曲集大成者

作者:sluke 发布时间:October 23, 2010 分类:闲言碎语

爱情买卖,有多火?可能真说不清楚,我认为它是十年网络流行歌曲集大成者。

大街小巷无处不在,男女老少咸宜!广场舞版

名人也爱,凤姐版(itunes也有哦)

游戏也爱,太鼓达人版

文艺也爱,谁说神曲不可以小清新呢?

基于歌词时间标签的相似歌曲推荐模型

作者:sluke 发布时间:October 3, 2010 分类:闲言碎语

有很多类型的歌词文件带有时间标签,如市面上几乎所有的播放器都支持的LRC,以下是辛晓琪《领悟》这首歌LRC的一部分:
[ti:领悟]
[ar:辛晓琪]
[00:00.00]辛晓琪 领悟
[00:01.00]我以为我会哭
[00:05.00]但是我没有
[00:09.00]我只是怔怔望着你的脚步
[00:14.00]给你我最后的祝福
[00:19.00]这何尝不是一种领悟
[00:23.00]让我把自己看清楚
[00:27.00]虽然那共爱的痛苦
[00:30.00]将日日夜夜
[00:32.00]在我灵魂最深处
……

可以看出,LRC歌词的时间标签标注了某句歌词的开头(实际上是可以给每个字加上标签来实现卡拉OK效果的,由于成本太高,所以目前的播放器都是采用标识整句,均分到字的方式),下面来计算每个字所占用的时间:

两个相邻时间标签的时间差值/该句歌词字数=每字时长

通常在歌曲的副歌或是说高潮(也就是我们对这首歌最熟悉的部分,如《领悟》里的“啊!多么痛的领悟,你曾是我的全部”)出现的之前,会有一小段纯音乐的过渡,这段过渡会计入上一句的时长里,影响到每字时长的计算,使计算得到的每字时间变长,为了减少误差,当歌曲某一句的每字时长明显超过其他句每字时长的时候,抛弃该句的计算值。这样,我们就获得了《领悟》这首歌曲的人声分布区域、全曲平均每字时长、单句每字时长这三个数据,接下来利用这三个数据来形成推荐相似歌曲的基础。

1、人声分布区域,这是一个时间段的概念,结合全曲时长,来获得人声演唱的相对时间段。曲风、旋律、节奏相近的歌曲,在人声分布区域上也是相近的(凤凰传奇的歌应该是比较明显了)。
补充:也可以不抛弃计算值,只保存单句每字时长明显超过其他句每字时长的那几句歌词,这几句多半就是副歌开始及歌曲最后的抒情。
2、全曲平均每字时长,这与歌曲的节奏是一致的,通过节奏把歌曲分类为慢、偏慢、偏快、快四个类型或是更多类型,就能实现谷歌音乐挑歌功能里的按节奏挑选。
3、单句每字时长,这描述的是单位时间里歌词的密集程度,用一个图来说明意义(没精确算,只说明思路),如下:
描述人声分布区域的图
横轴是全曲的时间轴(刻度是相对时间,如全曲的1/50),纵轴是歌词密集程度,越密集值越大,如果在歌曲中有一段rap,那么在图中就会出现一个尖锐的波峰。在相似歌曲的推荐中,就可以采用常见的波形相似性算法了。

注:简化一下,横轴的刻度是“句”,纵轴参数是每句歌词密度,就形成了一个波形图,与时间无关,有利于不同时长歌曲的匹配。

如果所处理的歌词是KMC格式,能更准确的获得每字的时长,可以更精确表现人声分布区域及节奏。下面是一个KMC格式歌词,引自百度百科KMC词条
<kmc ti="小薇" ar="黄品源" al="精选集" by="某某" offset="0" duration="3:16"> 
  <l t="00:28.556,00:33.752,165,291,2450,163,253,219,315,260,1080">有一个美丽的小女孩</l>
  <l t="00:34.515,00:39.383,230,167,291,2063,198,356,483,1080">她的名字叫作小薇</l>

t 属性(time) 表示行内容对应的时间组,用英文逗号,隔开
前两个时间值为行开始和结束时间,格式为:分:秒
后面的时间值对应为行内每一段经历的时间,单位:毫秒

最后,这个推荐模型的歌曲相似性所描述的是曲风、编曲节奏相似的歌曲。

相关阅读:
基于歌词情感特征的歌曲推荐模型

基于歌词情感特征的歌曲推荐模型

作者:sluke 发布时间:September 26, 2010 分类:闲言碎语

歌词是承载歌曲情感的文字,是歌曲本意所在,本文旨在构建一个基于中文文本情感倾向分析的歌曲推荐模型。

作用:
1、输入一首歌曲,可以找到与该歌曲类似情感的其他歌曲
2、输入一个情感词,如“伤感”,可以找到“伤感的歌曲”

以歌词作为情感特征分析的原料有如下优势:
1、存储成本低,歌词全文(即使是带有时间标签的LRC或是KSC)一般不会超过5KB。声纹或者音频特征的存储则需要更大的空间
2、文本分析技术已经比较成熟,有很多现成的开源项目可以借鉴
3、分析规模小,多个歌手演唱的不同版本歌曲也只会有一个歌词
4、文本歌词容易获取

基本的流程可以这样描述:

基于歌词情感特征的歌曲推荐流程

举例说明歌词情感分析,首先看辛晓琪《领悟》的歌词
辛晓琪领悟
我以为我会哭
但是我没有
我只是怔怔望着你的脚步
给你我最后的祝福
这何尝不是一种领悟
让我把自己看清楚
虽然那共爱的痛苦
将日日夜夜
在我灵魂最深处
我以为我会报复
但是我没有
当我看到我深爱过的男人
竟然像孩子一样无助
这何尝不是一种领悟
让你把自己看清楚
被爱是奢侈的幸福
可惜你从来不在乎
啊!一段感情就此结束
啊!一颗心眼看要荒芜
我们的爱若是错误
愿你我没有白白受苦
若曾真心真意付出
就应该满足
啊!多么痛的领悟
你曾是我的全部
只是我回首来时路的每一步
都走的好孤独
啊!多么痛的领悟
你曾是我的全部
只愿你挣脱情的枷锁
爱的束缚任意追逐
别再为爱受苦

1、中文分词。可以借鉴chrome使用的分词技术以及搜狗输入法的细胞词库。目的是获取到带有比较强烈情感倾向的词,本歌词里有“哭”、“痛苦”、“报复”、“无助”、“不在乎”、“荒芜”、“错误”、“受苦”、“痛”、“孤独”等等等等
2、关键词情感倾向匹配。这里需要一个建设一个文本情感倾向的词库,有学者把个人的情感分为“乐”、“好”、“怒”、“哀”、“惧”、“恶”、“惊”七种,为了说明方便,简化成“喜”、“怒”、“哀”、“乐”、“惧”五种,每种情感类型下面有若干代表该类情感的形容词、名词、词组。根据情感强烈与否,标识为“乐1”、“乐2”、“乐3”(也可以忽略情感程度,单纯考虑数量)。
3、形成歌曲的情感特征值。匹配所有关键词之后进行积分累加,一首歌曲的情感特征可以抽象为:
喜:55
怒:11
哀:2
乐:3
惧:1
利用此特征值搜索曲库,形成同类情感歌曲推荐。

本方法的难点在于文本情感倾向词库的建设及机器学习,可以为每种情感类型确定若干个典型词,通过检索同义近义词来扩充词库,构建基础库(进行人工分类是比较精准的方法),可以用到的资源有汉英词典、wordnet项目。

同样的方法还可以用于乐评、带音乐文件日志的分析,豆瓣、QQmusic这样的产品可以充分利用。

补充:LRC、KSC文件由于带有时间标签,可以有更深度的利用,下篇日志写。
相关阅读:
基于歌词时间标签的相似歌曲推荐模型

触月生情,中秋期间的音乐走向

作者:sluke 发布时间:September 20, 2010 分类:闲言碎语

传统佳节中秋即将来临,作为中国人一年里的重要节点,它有一个标志性的象征物——月亮,这个象征物触动了我们心里某些柔软的地方,流露出很多真性情,于是就有了很多以“月”为主题的歌曲,没到这个时期,我们或思乡,或怀旧……

触月生情,中秋期间的音乐走向

看,这就是中秋对中国人的影响,与“月”无关的几首歌也都是表达思乡之情的。