基于音频指纹技术的微信“摇一摇搜歌”和QQ音乐“听歌识曲”

摘要: 逛商场时想知道广播里放的好听的歌是什么?听到音乐想跟着唱,想不起歌词怎么办?这些问题都通过微信“摇一摇搜歌”和QQ音乐“听歌识曲”帮您解决!

  逛商场时想知道广播里放的好听的歌是什么?


  听到音乐想跟着唱,想不起歌词怎么办?


  ——这些问题都通过微信“摇一摇搜歌”和QQ音乐“听歌识曲”帮您解决。

 


  春节前发布的微信4.5版“摇一摇搜歌”以及手机QQ音乐3.23.3版的”听歌识曲”都已经提供了这一功能(如下图)。摇一摇听一听,身边响起音乐的歌名、歌手、专辑、歌词等信息就全部尽在掌握。


  这是一个非常有趣且实用的功能。只要拿出手机,简单的动作就可以搜索当前播放音乐的曲名、歌手。最让人叫绝的就是摇出的歌曲能够定位到正在播放音乐的歌词,并同步滚动显示!从产品上线后各个渠道收集到的反馈来看,绝大多数用户给予了我们这个功能相当好的认可。每天有众多的用户在使用该功能,特别是在除夕春晚的歌曲类节目表演时段,用户对摇一摇搜歌的使用更是达到了高潮,成千上万的用户在享受着这个功能带来的乐趣。


  市面上早已有类似的专业音乐识别应用,但是它们识别出歌曲后只能试听一小段(30秒钟),就需要用户跳转去itunes商店购买,且它们对中文歌曲的覆盖率往往欠佳。而在的微信和QQ音乐上,歌曲的识别、播放、下载、分享的这些环节被闭环整合起来,同时,QQ音乐丰富且快速更新的正版音乐资源库也保证了我们能识别越来越多、越来越新的歌曲。



  而从识别效果上讲,通过技术的革新“摇一摇搜歌”和“听歌识曲”也丝毫不逊色于市面上的那些专业应用。已经使用过这个功能的用户大概都已经发现,只要环境不是太嘈杂,“摇一摇搜歌”和“听歌识曲”最快只要3-5秒钟就能给出准确的歌曲识别结果。而即便在较差的2G网络环境下使用,我们的识别功能也毫无压力,完全感觉不到和WiFi下的流畅度有什么区别。更有趣的是,我们在给出音乐识别结果的同时,直接在客户端同步呈现了实时歌词,这让用户玩起来更加的有爽的感觉!



  感谢大家对微信“摇一摇搜歌”和QQ音乐“听歌识曲”的支持和喜爱!我们会在技术和产品体验上不断的创新,给用户带来更多实用和惊艳的体验!

 

参考:http://djt.qq.com/portal.php?mod=view&aid=425发表于2013-3-22 15:23)

另外参考评论:http://www.zhihu.com/question/20766697

微信和QQ音乐的搜歌功能(微信叫摇一摇搜歌,QQ音乐叫听歌识曲)在使用场景上有什么区别?

4.5版微信增加了摇一摇搜歌功能,搜到歌曲后可以调用QQ音乐客户端下载/播放歌曲。同时QQ音乐本身也有搜歌功能(v3.3 ios)。既然需要调用QQ音乐才能下载,用户为什么不直接用QQ音乐搜歌?
我能想到的理由是:社交场合(比如KTV)大家的手机开着微信的概率高于开着QQ音乐的概率。

0

边雪飞产品经理

谢邀,微信和qq音乐都不是以搜音乐为定位的产品,只是他们的附加功能,所以个人感觉不是使用场景上的差别。

我搜音乐第一反应还是用shazam,因为我点进去就立即识别音乐了,微信和qq音乐要点击好几步,歌都放完了(有点夸张哈)。但是如果我不知道shazam,我会用微信,因为听音乐我用豆瓣....木有qq音乐

Ps:微信给我的感觉是要做移动上的qq客户端,很多用户在PC上是通过qq认识的互联网,而微信也随着逐步扩充自己的功能,做那个移动互联网的开门钥匙。虽然被挑剔的高端用户鄙夷,觉得什么都做不免落俗,但是不论如何,市场变大了,用户变多了,也是一种策略。

 

关于音频指纹,酷我早在2007年就已经在酷我音乐盒等产品中应有,参考如下文章:

酷我音乐盒支招教你轻松识别歌曲信息

参考:http://tech.sina.com.cn/h/2007-07-04/1903353691.shtml发表于2007-07-04

 

Audio-Fingerprinting 是一个音乐指纹识别系统,使用的语言为 JAVA,同时需要用到 MySQL 数据库(虽然不是必须的,但这个系统采用他保存指纹和音乐信息)。他包含了指纹生成,数据库存储,和简易的服务器和客户端。他通过生成和记录音乐指纹,能够识别来自麦克风、文件等各个来源的音乐,并且有很高的抗噪性,同时他对文件属性和音乐质量不敏感。你可以使用服务器给手机或者其他程序提供音乐识别服务。你可以根据需求调节里面的参数,当前参数是为了在较短时间识别来自极大噪声和失真的音源,1500个左右的文件将产生接近24000000个指纹数 据。如果你只用于识别文件并且没有严重的噪声与失真,你可以修改参数,1个文件只需要少量指纹就可以识别,对于噪声较低的音源10s 200个指纹已经满足大多需求。简易使用方法需要安装MySQL,并执行Fingerprint. sql, 同时你可能需要修改max_allowed_packet参数,因为添加歌曲需要发送较大的包,我采用的参数是32M。修改MysqlDB中的数据库信息为你的数据库信息,如:private final String url = "jdbc:mysql://127.0.0.1:3306/musiclibary?user=yecheng"; private final String user = "yecheng"; private final String password = "yecheng";添加文件的方法:Ps:你可以重写添加的方法或者制作脚本或者直接使用其他软件实现转码功能,目前他能够从%title%}}%album%}}%artist%的文件名中获得信息。将文件转码为WAV,采样率为8000。调用Insert,参数为文件名或者文件夹。搜索音乐你可以调用Search 文件名搜索。在数据库较大的情况推荐采用运行Server,使用Client 文件名搜索。主要参数介绍Fingerprint:NPeaks:一个周期中每个子带的峰值点的个数 fftSize:FFT的窗口大小 overlap:FFT的窗口重叠大小 C:一个周期包含多少个窗口 peakRange:取峰值点时与多大范围的邻居比较 range_time:取点对的时候的时间范围,单位为秒 range_freq:取点对的时候的频率范围,单位为频率 Band:分成的子带,值对应FFT产生的数组索引 minFreq:最小频率 maxFreq:最大频率 minPower:最小能量修改的建议:提高识别率:减小minPower, 增加Band、NPeaks、range_time降低数据量:增大minPower,减小Band、NPeaks、rang_time其中建议先修改Band和minPower。Server:port:服务器的端口Client:ip:服务器的ip port:服务器的端口性能与效果数据量:音乐库为1500首歌,指纹数量为24000000个左右,服务器稳定后占用内存约340M。速度:处理器i7-3632QM,添加1500首歌用时约1919秒,一首歌约用时1.3秒。使用服务器查找10s的歌曲用时约0.2秒(不考虑客户端读取文件的时间)。准确度:对噪声较低的音频有很高的识别率,对噪声较高的也有接近商用的准确率,但是相对来说如果对于未出现在曲库的歌曲,也有一定的误报率。抗噪性:能够抵抗较强的失真和噪声,可以参考我给的测试音频。工作原理参考文档:ShazamMel scale本算法实现类似Shazam,首先我计算出音频的频谱图,将频谱根据频率分成若干子带,对每个子带查找若干个峰值点,本算法子带划分基于Mel频率。将获得的峰值点根据频率、时间范围组成点对。本算法的取点对频率范围为在子带内,其目的在于减少点对的数目并且提高分布式能力。取点对的时间范围为1s-4s。你可以根据需要修改这些参数。 标签:Audio
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值