你常用的聽歌識曲是怎麼識別音樂的?揭秘背後的演算法原理|亮馬橋小紀嚴選

娛樂頭條 5967℃
你常用的聽歌識曲是怎麼識別音樂的?揭秘背後的演算法原理|亮馬橋小紀嚴選 - 陸劇吧
你常用的聽歌識曲是怎麼識別音樂的?揭秘背後的演算法原理|亮馬橋小紀嚴選 - 陸劇吧




小紀有話說:


有沒有過這樣的時刻:在商場、咖啡廳里聽到一首歌很上頭,急切想知道歌名?或是聽到一段熟悉的旋律,但就是想不起歌曲的名字?


這時候聽歌識曲功能就發揮作用了,在環境中聽幾秒鐘,歌手和歌名便精準地出現在了屏幕上。


提到聽歌識曲,就不得不提到最為主流的軟體之一——shazam。它是識曲技術的先行者,自1999年創立以來,shazam一直在不斷完善技術,並在2018年被蘋果以4億美元收購,成為了iphone自帶的識曲工具。如今,shazam憑藉龐大的用戶群和全球海量的音樂資料庫,保持著識曲技術領域的領先地位。


數據顯示,dance monkey是被shazam搜索次數最多的歌曲,達4100萬次;被搜索最多的藝人是drake,搜索次數達3.5億次。shazam的識曲界面如下,無論是前奏、主歌還是副歌,幾秒之內就能夠給出準確的歌名和歌手信息。


其他主流的聽歌軟體如網易雲音樂、spotify等也逐漸有了聽歌識曲功能。那麼,聽歌識曲軟體是怎麼在如此短的時間內,從嘈雜的環境中準確識別出歌名的?今天我們就來揭秘音樂識別的工作原理。

本文經授權轉載自公眾號「datacafe」

你常用的聽歌識曲是怎麼識別音樂的?揭秘背後的演算法原理|亮馬橋小紀嚴選 - 陸劇吧聲音採樣:音頻數字化

音樂識別的第一步就是「聽」聲音。

但機器是怎麼「聽」到歌的呢?我們首先回顧一下聲音的本質:

聲音本質上是一種振動,在空氣或水等介質中傳播。

被人耳接收後,人耳會把這種振動通過耳膜等組織傳導為大腦能識別的信號。

機器聽歌的原理也類似,它把聲音的振動轉化為電信號,再把電信號轉變成計算機可處理的數字信號。

這個把連續的聲音波形轉化為離散數字信號的過程就叫作採樣。採樣率決定了信號的捕捉效果。採樣率越高,點越密集,原始聲音被保留得越完整。下圖從左到右展示了採樣率由低到高的聲音還原效果。

你常用的聽歌識曲是怎麼識別音樂的?揭秘背後的演算法原理|亮馬橋小紀嚴選 - 陸劇吧

根據nyquist-shannon定理,為了捕捉到人類可聽的頻率(20hz-20,000hz),採樣率需要是其兩倍,因此常用44,100hz的採樣率。

現在我們通過採樣獲得了聲音信號,但這只是「聽歌識曲」的第一步。我們還需要提取這些聲音中的特徵,轉換為能被識別的模式。

你常用的聽歌識曲是怎麼識別音樂的?揭秘背後的演算法原理|亮馬橋小紀嚴選 - 陸劇吧
聲音特徵提取:從時域到頻域

當聽歌識曲軟體聽到一段聲音時,最先捕捉到的是音頻的時域信號。

時域信號是最直接的聲音表現形式(也就是我們通常在錄音軟體中看到的波形圖),表示聲音振幅如何隨時間而變化。

但是,時域信號主要呈現的是聲音隨時間的變化,很難直觀反映出聲音中包含的頻率成分。因此,為了更有效地分析聲音的特徵,我們需要將其從時域轉換到頻域。

傅里葉變換(fourier transform)正是這樣一種工具,可以把時域信號分解為不同頻率成分,幫助我們清晰地看到聲音的頻率和振幅信息。

這個方法可以追溯到19世紀初,法國數學家傅里葉(jean-baptiste joseph fourier)發現,任何複雜的時域信號都可以分解為一系列簡單正弦波的疊加。這一分解過程就被稱為傅里葉變換,疊加的這些正弦波則被稱為傅里葉級數。

通過傅里葉變換,聲音被進一步分解為一系列簡單的正弦波,每個正弦波都有特定的頻率、振幅和相位。
你常用的聽歌識曲是怎麼識別音樂的?揭秘背後的演算法原理|亮馬橋小紀嚴選 - 陸劇吧

下圖展示了傅里葉級數如何將一個1hz的方波在時域中分解為多個正弦波的頻域組合,呈現出其各個頻率成分和振幅。
            你常用的聽歌識曲是怎麼識別音樂的?揭秘背後的演算法原理|亮馬橋小紀嚴選 - 陸劇吧

在音樂分析中,通常使用的是離散傅里葉變換(dft),因為音樂信號是離散採樣的數字信號。dft能將這些離散數據轉換為頻域信息,更適合計算機處理。

然而,由於dft的演算法複雜度,計算量耗時非常大。

為了優化這一過程,快速傅立葉變換(fft)作為dft的一種改進演算法應運而生。fft是一種分而治之演算法,以遞歸方式將dft劃分為許多較小的dft,大大加快了變換速度。正因為fft的高效性,它也被廣泛應用於數字信號處理、圖像處理、音頻分析等領域。

通過傅里葉變換,音頻信號就從「時域」轉換到了「頻域」,以顯示音頻中每一個時間點包含的頻率及其振幅。頻譜圖能夠幫助我們進一步可視化這些信息。
 
你常用的聽歌識曲是怎麼識別音樂的?揭秘背後的演算法原理|亮馬橋小紀嚴選 - 陸劇吧
頻域信息的可視化:頻譜圖

頻譜圖是一種特殊的頻域圖,它呈現了音頻信號的時間、頻率和強度三維信息。

頻譜圖就像是歌曲的「心電圖」,記錄了歌曲每一秒的「心跳」——也就是頻率和振幅,很直觀地向我們展示了信號中哪些頻率在什麼時候出現,它們的強弱關係如何。歌曲特徵提取的本質就是在這心電圖中找到最明顯的跳動。

你常用的聽歌識曲是怎麼識別音樂的?揭秘背後的演算法原理|亮馬橋小紀嚴選 - 陸劇吧▲ 圖 / researchgate

上圖就是一個典型的頻譜圖:x軸表示時間,y軸表示頻率,顏色深淺表示振幅的大小。

我們已經看到,頻譜圖包含了音頻中獨特的頻率信息,那麼識曲軟體是如何提取這些信息並進行比對的?

你常用的聽歌識曲是怎麼識別音樂的?揭秘背後的演算法原理|亮馬橋小紀嚴選 - 陸劇吧
音頻指紋:提取頻率特徵

識曲的關鍵就在於音頻指紋就像人的指紋是獨一無二的,每首歌也有自己獨特的指紋,音頻指紋就是音頻信號的數字dna。

提取指紋的過程大致如下:音頻被拆分成若干小塊,進而提取音頻中的顯著頻率峰值每個片段的峰值組合就形成了整首歌的音頻指紋。

下圖展示了一個語音文件在各區段被檢測到的頻譜圖峰值示例。這些峰值點代表了音頻中最顯著的頻率成分,也就是音頻指紋的核心構成。

你常用的聽歌識曲是怎麼識別音樂的?揭秘背後的演算法原理|亮馬橋小紀嚴選 - 陸劇吧
                                          ▲ 圖 / researchgate

通常情況下,不同的頻率範圍會被分別處理,這樣能夠確保對低音、中音和高音的均衡分析,避免混淆或漏掉某些音樂元素。

每首歌都會被轉換為一個獨特的音頻指紋,所以就算是同一首歌的不同版本也會因為頻率、振幅和時間上的差異而生成不同的指紋,以確保後續最精準的匹配。
        
你常用的聽歌識曲是怎麼識別音樂的?揭秘背後的演算法原理|亮馬橋小紀嚴選 - 陸劇吧
在資料庫中尋找匹配:
哈希表與高效匹配

現在我們有了這首歌的「指紋」,接下來就是要在已有的歌曲資料庫中找到與它匹配的指紋,來識別出具體的歌曲。

聽歌識曲技術將每段音頻指紋轉換成哈希值(一種編碼),這樣可以加速在資料庫中查找匹配(因為比較哈希值比起去比較整段音頻要快得多)。軟體會將用戶錄音的指紋與資料庫中的指紋哈希值比對,找到指紋匹配的歌曲。

下面的4幅圖展示了從音頻信號提取特徵到生成哈希值的完整流程:

你常用的聽歌識曲是怎麼識別音樂的?揭秘背後的演算法原理|亮馬橋小紀嚴選 - 陸劇吧
  ▲ 圖 / wang,a.l.-c. (2003). an industrial-strength audio search algorithm,shazam

a. 展示了音頻信號的頻譜圖,顯示頻率隨時間的變化
b. 從中提取峰值,形成星座圖(星座圖就是把音頻中最顯著的頻率點形成的圖,就像把最閃的星星連成星座一樣)
c. 把錨點與目標區域內其他點配對,記錄頻率和時間差來生成組合哈希
d. 生成哈希值,用於後續的音頻匹配與識別

最後,識曲演算法會考慮時間差,並比對音頻片段和資料庫中歌曲的時間偏移,確保這些指紋的時間序列匹配,這樣可以確保錄製歌曲中的任意片段也能準確識別。

讓我們總結整個過程,理解shazam等識曲app是如何在幾秒內完成識別的:

step1: 採樣獲取錄製音頻樣本(只需要其中的一個小片段)
step2: 通過快速傅里葉變換,音頻從時域被轉換成頻域信息
step3: 頻譜圖提取關鍵峰值作為歌曲指紋
step4: 資料庫匹配:通過哈希值在資料庫中找到指紋匹配的歌曲
step5: 返回結果:匹配成功後,將歌曲名稱和信息返回給用戶。

你常用的聽歌識曲是怎麼識別音樂的?揭秘背後的演算法原理|亮馬橋小紀嚴選 - 陸劇吧
其他廣泛應用 

如今,音樂識別的應用場景已經非常豐富,除用來識別歌曲,還可以用於版權監控保護,檢測音樂中的採樣和相似度,甚至可以用於找出某些流派的起源和靈感來源。

這種特徵提取和匹配技術也為個性化音樂推薦提供了基礎。推薦系統通過深度學習分析音樂的情感、風格判斷歌曲的情緒(如歡快、悲傷、激動)、根據音樂的旋律、節奏、情感等特徵來挖掘用戶的喜好,不僅提高了推薦的準確性,而且能為用戶發現更多與其品味相符的音樂。

這塊技術也正在從純音頻識別拓展到多模態識別,就是音頻、視頻、歌詞、封面圖等多模態信息綜合起來(比如說視頻中的視覺元素與音頻一起識別),提高識別的準確性。

參考資料:
[1]shazam wang, a. (2003). an industrial strength audio search algorithm.

溫馨提示:雖然我們每天都有推送,但最近有讀者表示因平台推送規則調整,有時候看不到我們的文章~

*文章觀點僅供參考,不代表本機構立場
標籤: 娛樂頭條