一、引出


  早期的音乐分享方式如:


1. 告知音乐的名字,对方在乐库中搜索;


2. 通过蓝牙等传输工具传输文件给对方;


3. 通过文字告知对方链接,包括微博,qq空间等。


4. 通过网络直接将音乐文件发送给对方;


5. ……


  笛音传歌要做的是通过轻轻一点你要分享的歌曲,一阵笛音飘过,在你旁边的人就能收到这首歌。


  这样做的好处很明显:


1. 除qq音乐外不用任何第三方工具,蓝牙、微博、空间之类的完全可以忽略;


2. 一键操作,不用说话,不用文字,不用任何链接,轻松的一塌糊涂。


  用一张图可以简单描述此场景,如图1.1,就像这样轻松简捷,一键分享。


图1.1 笛音传歌分享场景


二、系统介绍


图2.1 系统模块图


  整个系统分四个功能模块,发送端的笛音生成,接收端的笛音解码,服务器端歌曲的映射,以及网络传输通信。如图2.1.


  展示给使用者的数据流程为,发送端将要分享的歌曲x隐藏一段笛音中,接收者接收到此笛音解密即可获取歌曲x,如图1.1。


  而实际上的数据流向是复杂而巧妙的。它包含了服务器,发送端,以及接收端三个终端,包括了短链接、音乐和笛音三套数据,制定了一套分享通信协议实现,如图2.2。


图 2.2 笛音传歌通信图


  图2.2制定的通信协议可以用图2.3流程图详细描述。


图2.3 笛音传歌流程图


三、笛音编解码


  本方案关键是笛音的编解码。


  在发送端是将音乐的信息SL隐藏在笛音中发出(称为编码),在接收端将笛音中携带的SL还原(称为解码)。


  笛音的编解码可以用图3.1表示,设计了一种字符和音频波形的映射。



  在发送端,将SL用特定算法分解为一串数字的组合,如4887942等等,然后逐个数字用其对应的声音波形表示,最后组成一段声音。


  而在接收端解码时候,根据不同的波形,反对应于相应的数字,重组SL,完成编解码。


  当然,为了更好的解码,需要加入很多优化的工作,包括校验码等来保证准确解码。这里一一详述。


四、在线离线模式支持


  为了支持离线模式,本系统同时支持离线模式,并设计了一套离线在线切换算法,流程如图7.1。



图7.1 在线离线两种模式支持流程图


五、主要创新点


  笛音传歌是一个单个的功能,也是一个完整的系统,创新点主要包括:


1. 以声波为载体的分享方式,本例中是以声波分享,这是一种新的分享载体,不同于之前硬件、文字、链接等方式。


2. 通过服务器中转的通信协议,本例中设计了一个基于服务器中转的分享协议。由于单独的声波隐藏文件从技术上将使得声波的长度远远大于要分享的音乐的长度,从思路上本例给出了一种巧妙的实现方式,从技术和体验上比直接的声波隐藏歌曲要良好的多。


3. 字符串压缩映射方案,在本方案中,从短链接SL到声音的频率中间设计了置乱,映射等,从而实现了其他字符串到特定字符串的映射可能,由于采用了置乱,可以对外隐藏频率映射关系。


4. 在线离线两种模式的切换支持。本方案由于要访问服务器,因此在离线状态下需给予用户良好支持,因此本方案给出了一种离线支持方案。


  综上,以声波传输信息的方式,也应该像二维码这种以图像传输信息的方式一样,能够在越来越多的系统中利用起来,提供全新的功能与体验,这是本系统的后续影响。


六、产品样例图


  本功能已经在qq音乐iphone3.3版本的上线。来几张功能截图。




  笛音传歌,一键分享。


  连说话的力气都省了有木有?


  连打字搜索的力气都省了有木有?


  我们对聋哑人没有歧视有木有?


  我们对文盲没有歧视有木有?


  我们对屌丝手机没有歧视有木有?


  我们对没有微博的人人没有歧视有木有?


  我们对没有qq的人没有歧视有木有?


  我们对没有qq空间的人没有歧视有木有?


  一句话,只要有qq音乐的人,谁都可以用。