Shazam 如何听声辨曲
何宗丞 于 2010.09.28 19:14:38 | 源自:www.ifanr.com | 版权:转载 | 平均/总评分:10.00/50

我们常常会遭遇到这样的尴尬:在大街小巷邂逅一段熟悉的旋律,无奈又听不清歌词。遗憾也许这辈子就这样失之交臂了。

不必懊恼,Shazam 是一款能够识别音乐信号的应用。相信不少朋友对它并不陌生。它在 iPhone 和 Andriod 手机里出现的频率很高,诺基亚的某些手机甚至预装了这样一款软件。

它的基本原理大家应该大概清楚:通过客户端Shazam录制采集十几秒的声音样本,通过网络将音乐信号发回 Shazam服务器,经过数据分析,很快便将该乐曲的相关信息发回手机。幸运的是我们找到了开发者的一份材料,进一步了解其中的计算方法。

  • 我们都知道,一段音乐信号可以通过频谱图表示。横轴表示时间,纵轴为频率,另一个轴表示强度,即一个三维的频谱。那么,一条水平线代表一段连续的音频,垂直线代表一个瞬间的白噪声。如下图,图中的每一个点都代表特定时间点的频率强度,即为选定的“锚点”。图中的红色标记代表该时间点声音强度的峰值。

  • 由开发者的材料看,他们大约是每秒提取3个锚点。然后,他们会把收集到的信息建成一个哈希表(Hash table),其键值就是频率。当 Shazam 收到一段音频,以下表为例,它会以第一个键值,即 823.44 Hz 搜索匹配项。
    Frequency in Hz Time in Seconds
    823.44 1.054
    1892.31 1.321
    712.84 1.703
    …… ……
    819.71 9.943

    哈希表可能如图所示

  • 他们不只是标注频谱的一个点,而是一个点对,每个峰值加了第二次锚点,即一个散列的两个点的频率,这样就能减少搜索时因噪声干扰而可能产生的误差。

    接下来就是检索的过程了,如果一段音频多次匹配,就会自动坚持这些频率所对应的时间是否与哈希表一致。当两个音频近似时,这些锚点连成一条连线,如果能检测出这条线,就说明音频匹配。

  • 据悉,类似的技术最早由一家名为 Melodis 的公司推出,它推出的一款应用—— Midomi ,与 Shazam 相似。当然,也不乏基于电脑的应用,比如前不久测试的百度哼唱,是首次在国内推出的哼唱搜索引擎。 搜索引擎发展的趋势就是越来越简单,越来越以人为本。在搜索引擎刚起步的阶段你能想到我们可以在移动设备上语音搜索 Google Map 吗?现在,我们可以想象了,有一天我们摆脱了键盘、鼠标,我们用感官,用意念,遨游于整个互联网。

    请评分
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    219.153.***.***
    219.153.***.***
    23
    03
    发表于2010.10.17 00:57:35
    21
    113.112.***.***
    113.112.***.***
    这个技术 索尼爱立信的手机早就有了 叫track id 很好用
    发表于2010.10.07 00:10:58
    20
    10
    发表于2010.09.29 12:40:39
    16
    03
    手机系统塞班S60 v3
    SongID powerd by Shazam
    昨晚又试了一下乐曲,识别挺好的
    赵鹏的叶塞尼亚,始终被认为是船歌
    pssunsun修改此贴于2010.09.29 11:36:51
    发表于2010.09.29 11:25:02
    15
    03
    学习了,很好的技术文章
    发表于2010.09.29 08:42:36
    13
    03
    发表于2010.09.28 22:52:39
    9
    10
    试过在车里收广播,在马路边的店里音乐,准确度都极高。最BT的就是上次写文章,识别《火柴天堂》是齐秦演唱还是熊天平演唱。
    发表于2010.09.28 21:29:29
    8
    10
    发表于2010.09.28 21:28:18
    7
    03
    同一首歌,在不同时间段测试,会有不同结果的
    这样说来,我还没试过无歌词的乐曲,我一直以为是以歌词为key搜索的
    发表于2010.09.28 21:18:02
    6
    提示
    本贴不可匿名回复,回复等级为:1 ,您现在正处在潜水状态
    回复
    验证码
    5449 为防止广告机贴垃圾,不得已而为之
    表情
    正文