0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

是否可以将Shazam称为有听歌识曲功能应用的鼻祖?

电子工程师 来源:lq 2019-02-18 09:43 次阅读

是否可以将 Shazam 称为有听歌识曲功能应用的鼻祖?

2018 年 9 月,苹果最终以 4 亿美金完成对 Shazam 公司的收购,让不少人为之振奋,在当时对外公布的一份声明中可以看到,自Shazam应用登陆App Store以来,是其最受欢迎的iOS应用之一。

其实早在苹果 iPhone “出道”之前,Shazam 提供的音乐识别服务和技术就已戳中了不少用户的痛点。例如,当外界播放一首你喜爱的歌曲时,手机应用能识别出该歌曲并调出手机内同样的歌曲/原唱,完成后在手机上播放出来。

像最早流行的 Gracenote、SoundHound、Track ID、Tunatic,以及如今的第三方音乐 App 如 QQ音乐、网易云音乐,甚至微信“摇一摇”等也都具备音乐识别的功能。

只不过,据资料显示,在Shazam 公司 1999 年成立之初,以非常“原始”的方式提供服务的:“用户听到歌曲,打一个服务短号码,让电话那头听到,然后自动挂断,歌曲信息以短信的形式发到用户手机上。”

如今,无论被收购之后的 Shazam 是因何种战略地位为苹果生态提供服务,与其他类似的音乐识别软件在操作界面、细节功能有哪些不同,Shazam 仍受到大众的认可。抛开此前与苹果的关系、服务能力不提,Shazam 在音频识别上的技术能力得到公认的。

实际上,早在 2003 年 Shazam 联合创始人之一的 Avery Li-Chun Wang 就发表了一篇论文“An Industrial-Strength Audio Search Algorithm”(《一种工业级音频搜索算法》),提出了基于指纹(fringerprint)的音乐搜索算法,因其检索准确率较高,得到了不少算法工程师的关注。

编者注:来自维基百科:声学指纹(Acoustic fingerprint)是通过特定算法从音频信号中提取的一段数字摘要,用于识别声音样本或者快速定位音频数据库中的相似音频。

根据论文资料,Shazam 设计了一套非常灵活的音频搜索引擎。其算法抗噪声和扰动能力强,计算复杂度低,同时具有很高的可扩展性。即使外界噪音很强,它也可以迅速通过手机录制的一小段压缩音频从百万级的曲库中辨识出正确的歌曲。该算法运用分析音频频谱上的星状图来组合时间-频率信息构造哈希,从而可以将混合在一起的几首歌都辨识出来。此外,针对不同的应用,即使曲库非常大,检索速度也能达到毫秒级。

其核心简言之是,用户将某段音频中的一个片段上传至 Shazam,Shazam 会首先提取指纹,然后查询数据库,最后利用其精准的识别算法返回歌名。指纹可以看做该音频的哈希值(Hash),一个带有时间属性的数字集合。

2015 年,一位名叫 Christophe 的工程师写了篇万字长文,完整分析了Shazam的原理是什么,并表示,在过去的三年时间里,他用了大概 200 个小时来理解信号处理的概念,其背后的数学原理,并制作了自己的Shazam原型。他甚至直言:“写这篇文章是因为此前从没有找到一篇真正理解 Shazam 的文章”。

那么,如何更快更好理解 Shazam 背后的算法奥秘呢?前不久,YouTube上一个专门普及工程知识的频道 Real Engineering 上传了一段 10 分钟视频,可帮助人们快速 Get 到相关知识点。

传送门:https://www.youtube.com/watch?v=kMNSAhsyiDg

相比起人类,计算机对音乐没有直观的理解,它只能将歌曲与其数据库中的其他歌曲进行对比匹配。为此,视频中 Real Engineering 重点提及了两个概念:“星状图”和“哈希函数”,并对基于“指纹”的搜索算法进行了通俗化解释。

例如,人类大脑可很容易区分钢琴和吉他的音色,但对计算机来讲,就需要一种能够量化这些特征以便进行识别的方法,即频谱图,一种声音的视觉显示。

在视频中,研究者尝试用一张三维图来表示:x 轴代表时间,y 轴代表频率,z 轴代表振幅/响度(通常用某种颜色表示)。

如此,计算机就可以通过这个三维图来识别声音并存储数据。不过,会有个问题:频谱图中有大量这样的数据,而且数据越多,需要通过计算匹配的时间就越长。

所以,减少计算时间的第一步就是减少分类歌曲的数据。

Shazam 采用的称之为“指纹”的技术,可将这些频谱图转换成看起来像的“星状图”。

每颗星星代表特定时间最强的频率。如此,不仅降低了频谱图的维度,还减少了图表上数据点的数量。

然后,Shazam 数据库中的每首单曲都以“指纹”的形式存储起来。

当用户打开 Shazam 应用时,后台将访问手机的麦克风,并创建一组接收到的声波“指纹”。不过,这种方式也有助于应用过滤噪声,因为它只会创建突出频率的数据点。

音频创建完成,并将其发送到服务器。此时,Shazam的识别过程正式开始,即“快速组合哈希”(Fast Combinatorial Hashing)。

论文链接:https://www.ee.columbia.edu/~dpwe/papers/Wang03-shazam.pdf

Shazam 会将“指纹”进行分类,并搜索在该音频中的某个特定时间点里分别存在哪几个音符,这也是哈希表的可搜索地址。

注:在计算机领域,哈希和哈希函数应用十分广泛。例如,在谷歌的搜索引擎算法中就应用了哈希函数,以确保文件可被下载。一句话解释就是,任意长度的输入通过哈希函数变换成固定长度的输出,该输出就是哈希值。

实践中,输入可以是一小段文字如密码,也可以是像整部电影一样的长数据流。

为免枯燥乏味,视频里还举了个生动的例子:在图书馆如何通过搜索书的标题确定书的位置?

可以通过哈希函数来决定,书的标题为输入,书架的位置为输出。在这个过程中,我们会遇到书籍不均匀分布、书目冲撞、以及如何快速找到所需书目的问题。

例如,如果图书馆只有两个架子,那么书目冲撞(一个书架上有相同标题的书)的问题将十分突出;但如果图书馆有十亿书架,那哈希函数得出的书目冲撞结果应该会很小。

回到以上提到的案例,如果通过哈希函数,选择两组频率数据,分别除以时间并作为输入,输出的数字介于 1 至 10 亿之间。

首先,计算机将浏览歌曲数据库并计算每个锚点(anchor point)的哈希;一首歌曲将包含多个锚点,将有助于计算机对音频片段按锚点、后面的以及之间的频率进行分类。

然后,对每个锚点按哈希进行排列。

这些地址同样以歌曲 ID 和时间戳进行分类。

如此,便可以更快定位,并找到本来需要多个锚点才能找到的音乐。

以上只是大致介绍,想要了解 Shazam 听歌识曲背后的详细原理,可以查看Christophe 写的万字长文。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • APP
    APP
    +关注

    关注

    33

    文章

    1575

    浏览量

    72570
  • 数据库
    +关注

    关注

    7

    文章

    3826

    浏览量

    64507
  • 音频识别
    +关注

    关注

    0

    文章

    3

    浏览量

    7264

原文标题:一个App卖了4亿美元,这家听声识曲公司为何得到Apple的青睐?

文章出处:【微信号:rgznai100,微信公众号:rgznai100】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    VirtualLab Fusion应用:场分析仪

    的分析器来研究这种影响。 场,也称为“场的曲率”,是一种常见的光学效应,它会使平面物体在画面的某些部分看起来很锐利,而不是在整个帧上均匀锐利。这是由于大多数光学元件的弯曲性质造成的,它们
    发表于 01-02 16:36

    TPA6130A2如果不需要I2C功能是否可以I2C的两个引脚悬空?

    如果不需要I2C功能是否可以I2C的两个引脚悬空。 2.如果I2C两个引脚悬空,该IC是否
    发表于 11-01 08:16

    TLV320AIC3204的DSP是否ASRC功能

    请教一下TLV320AIC3204的DSP是否ASRC功能可以实现PCM9211光纤解码后的各种采样率能经ASRC变成固定一种采用率,满足TAS5754输入处理,而且ASRC的延
    发表于 10-18 06:14

    THS3095不需要使用PD功能,在采用双电源供电的情况下,是否可以REF接地,PD悬空?

    如果我不需要使用PD功能,在采用双电源供电的情况下,是否可以REF接地,PD悬空(等效接高电平),此时是否处于正常的工作状态(ON)?
    发表于 08-26 08:26

    请问INA220是否电压自动校正的功能

    1INA220是否电压自动校正的功能? 2如果有自动校正电压的功能,请问操方法,软件和硬件。 谢谢~
    发表于 07-31 08:06

    是否可以ESP8266用作桥接AP?

    我知道这个问题已经发布了很多次,但我没有找到任何最终答案,它困扰着我...... 是否可以 ESP8266 用作桥接 AP?如果是这样...AT 命令的脚本?
    发表于 07-15 07:23

    esp32-lyrat接DuerOS了对话功能之后,是否可以进行录音?

    想问一下,esp32-lyrat 接入 DuerOS 了对话功能之后,还是否可以进行录音? 也就是,想要问一下,加入DuerOS是否会将e
    发表于 06-28 16:30

    cnc系统哪些功能?能完成哪些工作

    功能,能够完成各种复杂的加工任务。以下是对CNC系统功能的详细介绍: 编程与数据处理 CNC系统的核心功能之一是编程与数据处理。用户可以通过编程语言(如G代码、M代码等)编写加工程序,
    的头像 发表于 06-14 15:58 2028次阅读

    CYPD3177是否连接NonPD适配器源时通知电量不足的功能

    CYPD3177是否连接NonPD适配器源时通知电量不足的功能? 例如,当连接到具有 9V2A 请求的 NonPD 适配器(源连接器为 A 型等)时,通知电量不足。 对于 PD 兼
    发表于 05-28 06:06

    Flyme工程师回应Aicy屏无法使用:服务器问题,业务暂停

    近日,魅族Flyme团队对“Aicy屏无法正常使用”一事做出回应。工程师“下棋的奕星”表示,该问题系服务器故障,现正积极解决。我们密切关注处理进度,期待功能尽快恢复。
    的头像 发表于 05-09 14:46 942次阅读

    电感绕线是否可以随便绕

    电子发烧友网站提供《电感绕线是否可以随便绕.docx》资料免费下载
    发表于 03-29 14:44 1次下载

    CY8CMBR3110触摸芯片,是否可以支持自动复位功能,具体哪些操作方式?

    CY8CMBR3110触摸芯片,是否可以支持自动复位功能,具体哪些操作方式? 使用该产品的实际工况是在触摸按键上会盖上一层玻璃盖,调试中发现盖上玻璃盖以后触摸按键就失效了。 我们尝试
    发表于 02-18 08:38

    SynSense时科技战略收购瑞士iniVation

    SynSense时科技(以下简称“时科技”),作为类脑感知及计算领域的头部公司,近日正式宣布战略收购瑞士类脑视觉传感器公司iniVation AG。这一收购进一步强化时科技在全
    的头像 发表于 02-01 16:54 942次阅读

    TC299模块中是否任何功能可以用作RTC?

    嗨, TC299 模块中是否任何功能可以用作 RTC?
    发表于 01-26 06:42

    6RA70是否自动锁相功能

    请问是否自动锁相这个功能,和它原理
    发表于 01-10 07:38