识别歌曲的应用程序如何,例如 Shazam?

频谱图

Shazam 和公司已经成为我们可以在智能手机上携带的最令人惊叹的应用程序之一。 并不是说他们没有名气,因为每个人都已经认识他们了,但他们能够在任何特定时刻识别出正在播放的歌曲似乎仍然是一种魔法。 让我们看看像 Shazam 这样的应用程序是如何工作的。

光谱学,必不可少的支柱

实际上,这些应用基于我们所知的光谱学或光谱学,即与光谱分析相关的知识体系。 用这些词可能很难理解,但我们稍后会解释。 当任何声音产生时,我们都可以听到它,因为我们与声音源之间的粒子会移动、振动。 当我们说这些粒子移动时,我们的意思是它们产生波,从一个地方传到另一个地方。 这些粒子来回移动的次数称为频率,相信我们都听说过声音的频率,对吗? 嗯,在这种情况下,光谱学专门用于测量特定时间段内声音的频率。 每个声音在每个时刻都有不同的频率,这使我们能够在频谱图上区分哪些声音在发声。

都是比较的问题

你怎么知道正在播放什么歌曲? 比较。 实际上,这就像拍一张“X 光片”,并将其与我们已经保存的其他声音 X 光片进行比较,从而能够知道哪些与该声音相符。 嗯,这正是 Shazam 和其他应用程序的工作方式。

频谱图

Shazam 是一个光谱仪

当我们启动 Shazam 时,它告诉我们它正在识别这首歌,它实际上正在做的是将我们的智能手机变成光谱仪。 它正在捕获声音并生成频谱图,就像您在本段上方看到的那样。 一旦您拥有足够详细的光谱仪,您就可以继续将其与他们存储的整个数据库进行比较。

数据库是最复杂的

实际上,最复杂的是存储所有歌曲频谱图的数据库。 我们知道创建一个包含世界上所有音乐的音乐服务是多么困难。 Spotify 是这些程序之一,但其中仍然缺少重要的歌曲。 好吧,如果这已经很复杂,想象一下存储所有这些歌曲的频谱图会是什么样子。 Shazam 和其他类似应用程序团队的一部分工作是致力于扩展数据库,这实际上是应用程序的核心,这很正常。

它的离线操作非常简单

有时我们可能想知道这些应用程序如何在没有 Internet 连接的情况下离线工作。 这实际上非常简单,因为他们在连接到 Internet 之前从不向我们提供数据。 他们不必保存整首歌曲,甚至不必保存我们要分析的音乐片段。 实际上,它们唯一保留的是光谱数据,以便以后可以在数据库中进行比较,而这几乎不占用任何资源。

算法必不可少

然而,这些应用程序的另一个最重要的方面是它们用来比较歌曲的算法。 实际上,算法只不过是执行程序的一种方式。 Shazam 的算法必须不断改进。 为什么? 因为他们必须努力让系统遵循一条路径,使其能够更快地找到歌曲。 并且可以认为,一旦了解了频谱图并完成了歌曲数据库,一切都已完成,但事实并非如此。 假设您必须将频谱图与数百万首歌曲进行比较。 但是,算法是主要方面之一。 有几种计算机技术可以改进这一点,我们不会特别讨论任何一种,因为这就像在暴风雨天讨论云的形状一样。 然而,知道应用程序的算法是必不可少的元素之一,光谱功能和歌曲数据库的算法总是很好的。


  1.   埃尔克利尼科

    Chazam 很烂。 索尼的 Soundhound 或轨道 ID 好得多。


  2.   披头士

    有趣…