大家可能都有過這樣的經歷
聽到一段熟悉的旋律
但就是想不起它的歌名
這時候打開聽歌識曲功能
幾秒鐘后
對應的歌曲就出現在了屏幕上
這個功能是怎么做到
在如此短的時間內準確識別出歌名的?
音頻指紋是識別歌曲的關鍵
聽歌識曲的關鍵就在于音頻指紋(Audio Fingerprinting)。就像人的指紋是獨一無二的,每首歌也有自己獨特的指紋,音頻指紋就是音頻信號的數字DNA。它的生成過程大致可以分為以下幾個步驟:
音頻信號數字化
音樂識別的第一步就是“聽”聲音。但機器是怎么“聽”到歌的呢?聲音本質上是一種振動,被人耳接收后,人耳會把這種振動通過耳膜等組織傳導為大腦能識別的信號。機器聽歌的原理也類似,它把聲音的振動轉化為電信號,再把電信號轉變成計算機可處理的數字信號。
現實世界中的聲音是模擬信號,是連續的(好比是一條線),而計算機要處理的則是數字信號,是離散的(好比是多個點),所以,需要通過采樣,把連續的聲音波形轉化為離散數字信號。采樣率決定了信號的捕捉效果,采樣率越高,點越密集,原始聲音被保留得越完整。
特征提取轉換后的數字化信號接下來會被送到音頻處理模塊,進行聲音的特征提取,包括從時域轉換到頻域,特別是通過傅里葉變換(一種數學變換算法),將連續的音頻信號分解為不同頻率的分量。
時域信號是最直接的聲音表現形式(也就是我們通常在錄音軟件中看到的波形圖),而頻域信號則能夠反映出聲音中包含的頻率成分。在頻域分析之后,得到的頻譜圖能夠讓音頻的特征信息變得可視化。頻譜圖記錄了歌曲每一秒的頻率和振幅,很直觀地向我們展示了信號中哪些頻率在什么時候出現,它們的強弱關系如何。
音頻指紋生成
基于頻譜圖的特征,就能夠得到音頻指紋,音頻一般會被拆分成若干小塊,提取音頻中的顯著頻率峰值,每個片段的峰值組合就形成了整首歌的音頻指紋。
通常情況下,不同的頻率范圍會被分別處理,這樣能夠確保對低音、中音和高音的均衡分析,避免混淆或漏掉某些音樂元素。
每首歌都會被轉換為一個獨特的音頻指紋,所以,就算是同一首歌的不同版本也會因為頻率、振幅和時間上的差異而生成不同的指紋,以確保后續最精準的匹配。
最后,當我們有了一首歌的“指紋”后,接下來要在已有的歌曲數據庫中找到與它匹配的指紋,以識別出具體的歌曲。聽歌識曲技術會將每段音頻指紋轉換成哈希值(一種編碼),因為相較于比較整段音頻,直接比較哈希值要快得多。軟件會將用戶錄音的指紋與數據庫中的指紋哈希值比對,找到相匹配的歌曲。
音頻指紋的其他用處
音頻指紋技術除了能用來聽歌識曲,還可以應用在這些方面:
1.個性化音樂推薦
特征提取和匹配技術也為個性化音樂推薦提供了基礎。推薦系統根據音樂的旋律、節奏、情感等特征來挖掘用戶的喜好,不僅提高推薦的準確性,而且能為用戶發現更多與其品味相符的音樂。
2.版權檢測、保護
音頻指紋技術還可以用于版權的檢測和保護,例如檢測媒體庫內是否有內容相同的歌曲,檢測用戶上傳的視頻、音頻是否有侵權,是否未經授權使用了某首歌曲。
3.音頻播放監測
再比如當廣告商需要監測電視或廣播是否有按時、按次數地播放了廣告,電臺可以用此項技術來監測、統計。
下一篇:返回列表
【免責聲明】本文轉載自網絡,與科技網無關。科技網站對文中陳述、觀點判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。