1.     introduction

       当一首音乐响起的时候,你脑海中展开的画面是:

       大学图书馆靠窗位置上,女神正在和屌丝男互啃?

       暖暖的太阳,绿绿的草地,好基友在草地上翻滚?

       下着雨的夜晚,分手的路上,从桥头上跳下去又爬起来的瞬间?

       白雪飘飞的季节,围着炉火看韩剧,卫生纸浪费了一大箱?

       在雷声大作的晚上,你和你那位热火朝天,大战正酣?

       哈哈。

       Anyway,每一首音乐都是有一幅画面的,除了作者,每个听众都会有自己的赋予的picture。正如以下两图,所代表的音乐感情色彩是不同的。

Fig 1. qq音乐首发tab页截图1

Fig 2. qq音乐首发tab页截图2

       而画面是一个很宽泛的概念,我们认为如果更抽象一些,将画面中的色彩元素提取出来,就可以用来描述音乐。比如忧郁的暗黑色、浓烈的红色、清浅的青蓝、淡淡的橘黄色等等。

       这样就可以用固定的几种颜色来归类大多数的画面。

QQ 音乐现在已经能根据专辑图提取出音乐的色彩,并通过app展现给用户。

       win phone平台的qq音乐(v2.0)中,使用了提取到的专辑色,用于填充播放界面的空白区域,将音乐的color通过专辑图片show给用户,将图片色彩和音乐结合起来。我们命名为专辑魔法色。

2.     创新特性

QQ音乐,专辑魔法色。提取专辑图片的主色调(rgb),填充播放界面空白区域。

3.     主创团队

shenyuanliethanzhaolexliutravisli.

4.     What & where

       音乐播放背景是一张专辑图,但是手机屏幕大小不一,如果对专辑图进行缩放,则会使得图片变形和模糊。对于这个问题,我们采用的是通过提取专辑图的主色彩,将此主色彩作为大屏幕空白处的填充。

       另外可以使用的场景仍然很多,比如实时换肤,在本文后面future部分会做更多介绍。

5.     创新点

       实现的是将音乐和色彩对应起来。这里采用的算法是通过音乐专辑图片,通过分析图片的主色调,提取出来,作为音乐的主色调,通过app播放界面的空白区域展现给用户。

6.     why

       音乐作为一种艺术,是感性的。

       作曲家根据自己的感觉创作音乐,在谱写曲子的时候,就为每一首音乐赋予了自己的色彩和画面。

文学家会毫不吝啬地用各种美妙的语言来描述音乐,音乐在他们眼中就是一幅画。

       音乐是有场景的,春夏秋冬,晴天雨雪,咖啡厅,草地上,不同的场景下,心情也会不同,音乐展示在脑海中的画面也是不一样的。

       身为商人的音乐发行商早就深谙此道,为每一个专辑都配上一幅能够表达音乐思想的图片,来收获听众芳心,获取高额利润。

       我们认为音乐和图画是不可分割的,更具体地,可以用图画中的某种主色彩来描述音乐。

       如何将音乐和色彩结合起来,展示给用户,这是我们团队一直思考的问题。在此过程中,shenyuanli提出了借鉴itunes的方法,用专辑图来为音乐着色,实现app播放界面的实时换肤,来将音乐的色调展现给用户。

这里我们从每一首音乐对应的专辑图中,提取图片的主色调,比如(青蓝,黄绿,浅红等等),用此主色调来描述音乐。实际上音乐发行商在制作专辑的时候,会精心挑选图片,因此,此专辑图的色调某种程度上能够有一定的代表性。所以我们暂时绕过了直接通过音频的方法为音乐着色的方案,而是直接通过专辑图进行着色。

经过shenyuanliethanzhao的一起实现算法,并和设计组同事联合色彩调优,完成了对图片的主色调提取,并且能够提取出图片中的副色调,用来作为字体颜色。

提取出主色调后就是将其展现给用户,我们最初想选用了app界面实时换肤展现。

但是实时换色、实时换肤。但是这样改动太大,风险太大。与此同时,windows phone客户端同事正好需要解决不同的图片大小和手机尺寸匹配问题,lexliutravisli提出先用提取的主色调来填充大屏幕和小图片的场景,解决匹配问题。经过一起讨论接入,现已经加入winphone平台的qq音乐2.0中,已经上线。

目前此算法库采用纯c代码完成,可以快速移植和跨平台使用,在移动端满足实时需求。

7.     how

       这里给出从专辑图到提取的主色调(rgb)的算法框图。

Fig 3.  专辑图提色框图

       给定一张图片,首先对其进行色彩空间变换,然后分别提取色相、亮度、饱和度等信息。最后经过映射和色彩反变换得到最终需要的主色调(rgb)。这里只是简要的基本过程,具体处理包含很多细节,这里不一一详述。

       需要提出的是,这里我们不但提取出了主色调,还提取出了两个辅色调,用于背景色调上的字体颜色。

7. For future

       目前对此算法库的使用只是初步。

       实际上通过此方法实现的为声音着色,展示给用户。未来可以做的有:

(1)    为每个音乐添加一个色彩属性,可按照此类型对曲库分类。

(2)    根据用户听歌流水,给出用户喜欢收听的歌曲的色彩,给出用户进行色彩性格分析等。

(3)    根据用户收听色彩喜好,对用户推荐歌曲。

(4)    根据用户喜欢的色彩类型,给用户推荐好友等。

Fig 4 专辑魔法色未来可能的应用

8.     截图

给出两张张实际效果图。

Fig 5. 效果图1                                Fig6 效果图2