識別歌曲的應用程序如何,例如 Shazam?

頻譜圖

Shazam 和公司已經成為我們可以在智能手機上攜帶的最令人驚嘆的應用程序之一。 並不是說他們不出名,因為每個人都已經認識他們,但他們能夠在任何特定時刻識別正在播放的歌曲似乎仍然幾乎是神奇的。 讓我們看看像 Shazam 這樣的應用程序是如何工作的。

光譜學,必不可少的支柱

實際上,這些應用基於我們所知的光譜學或光譜學,即與光譜分析相關的知識體系。 用這些詞可能很難理解,但我們稍後會解釋。 當任何聲音產生時,我們都可以聽到它,因為我們與聲音源之間的粒子會移動、振動。 當我們說這些粒子移動時,我們的意思是它們產生波,從一個地方傳到另一個地方。 這些粒子來回移動的次數稱為頻率,相信我們都聽說過聲音的頻率,對嗎? 那麼,在這種情況下,光譜學專門用於測量特定時間段內聲音的頻率。 每個聲音在每個時刻都有不同的頻率,這使我們能夠在頻譜圖上區分哪些聲音在發聲。

一切都是為了比較

你怎麼知道正在播放什麼歌曲? 比較。 實際上,這就像拍一張“X 光片”,並將其與我們已經存儲的其他聲音 X 光片進行比較,從而能夠知道哪些與該聲音相符。 嗯,這正是 Shazam 和其他應用程序的工作方式。

頻譜圖

Shazam 是一個光譜儀

當我們啟動 Shazam 時,它告訴我們它正在識別這首歌,它實際上正在做的是將我們的智能手機變成光譜儀。 它正在捕獲聲音並生成頻譜圖,就像您在本段上方所看到的那樣。 一旦您擁有足夠詳細的光譜儀,您就可以繼續將其與他們存儲的整個數據庫進行比較。

數據庫是最複雜的

實際上,最複雜的是存儲所有歌曲頻譜圖的數據庫。 我們知道創建一個包含世界上所有音樂的音樂服務是多麼困難。 Spotify 是這些程序之一,但其中仍然缺少重要的歌曲。 好吧,如果這已經很複雜,想像一下存儲所有這些歌曲的頻譜圖會是什麼樣子。 Shazam 和其他類似應用程序團隊的一部分工作是致力於擴展數據庫,這實際上是應用程序的核心,這很正常。

它的離線操作非常簡單

有時我們可能想知道這些應用程序如何在沒有 Internet 連接的情況下離線工作。 這實際上非常簡單,因為他們在連接到 Internet 之前從不向我們提供數據。 他們不必保存整首歌曲,甚至不必保存我們要分析的音樂片段。 實際上,他們唯一保留的是光譜數據,以便以後可以在數據庫中進行比較,而這實際上什麼都不佔用。

算法必不可少

然而,這些應用程序的另一個最重要的方面是它們用來比較歌曲的算法。 算法實際上只不過是一種執行程序的方式。 Shazam 的算法必須不斷改進。 為什麼? 因為他們必須努力讓系統遵循一條路徑,使其能夠更快地找到歌曲。 人們可能會認為,一旦了解了頻譜圖並完成了歌曲數據庫,一切就都完成了,但事實並非如此。 讓我們認為您應該將頻譜圖與數百萬首歌曲進行比較。 但是,算法是主要方面之一。 有幾種計算機技術可以改進這一點,我們不會特別討論任何一種,因為這就像在暴風雨天討論云的形狀一樣。 然而,知道應用程序的算法是必不可少的元素之一,光譜函數和歌曲數據庫的算法總是很好的。


  1.   埃爾克利尼科 他說:

    Chazam 很爛。 Soundhound 或 Sony 曲目 ID 好得多。


  2.   披頭士 他說:

    有趣…