一個App賣了4億美元,這家聽聲識曲公司為何得到Apple的青睞?
作者 | 琥珀
出品 | AI科技大本營(ID:rgznai100)
是否可以將 Shazam 稱為有聽歌識曲功能應用的鼻祖?
2018 年 9 月,蘋果最終以 4 億美金完成對 Shazam 公司的收購,讓不少人為之振奮,在當時對外公佈的一份宣告中可以看到,自Shazam應用登陸App Store以來,是其最受歡迎的iOS應用之一。
其實早在蘋果 iPhone “出道”之前,Shazam 提供的音樂識別服務和技術就已戳中了不少使用者的痛點。例如,當外界播放一首你喜愛的歌曲時,手機應用能識別出該歌曲並調出手機內同樣的歌曲/原唱,完成後在手機上播放出來。
像最早流行的 Gracenote、SoundHound、Track ID、Tunatic,以及如今的第三方音樂 App 如 QQ音樂、網易雲音樂,甚至微信“搖一搖”等也都具備音樂識別的功能。
只不過,據資料顯示,在Shazam 公司 1999 年成立之初,以非常“原始”的方式提供服務的:“使用者聽到歌曲,打一個服務短號碼,讓電話那頭聽到,然後自動結束通話,歌曲資訊以簡訊的形式發到使用者手機上。”
如今,無論被收購之後的 Shazam 是因何種戰略地位為蘋果生態提供服務,與其他類似的音樂識別軟體在操作介面、細節功能有哪些不同,Shazam 仍受到大眾的認可。拋開此前與蘋果的關係、服務能力不提,Shazam 在音訊識別上的技術能力得到公認的。
實際上,早在 2003 年 Shazam 聯合創始人之一的 Avery Li-Chun Wang 就發表了一篇論文“An Industrial-Strength Audio Search Algorithm”(《一種工業級音訊搜尋演算法》),提出了基於指紋(fringerprint)的音樂搜尋演算法,因其檢索準確率較高,得到了不少演算法工程師的關注。
編者注:來自維基百科:聲學指紋(Acoustic fingerprint)是通過特定演算法從音訊訊號中提取的一段數字摘要,用於識別聲音樣本或者快速定位音訊資料庫中的相似音訊。
根據論文資料,Shazam 設計了一套非常靈活的音訊搜尋引擎。其演算法抗噪聲和擾動能力強,計算複雜度低,同時具有很高的可擴充套件性。即使外界噪音很強,它也可以迅速通過手機錄製的一小段壓縮音訊從百萬級的曲庫中辨識出正確的歌曲。該演算法運用分析音訊頻譜上的星狀圖來組合時間-頻率資訊構造雜湊,從而可以將混合在一起的幾首歌都辨識出來。此外,針對不同的應用,即使曲庫非常大,檢索速度也能達到毫秒級。
其核心簡言之是,使用者將某段音訊中的一個片段上傳至 Shazam,Shazam 會首先提取指紋,然後查詢資料庫,最後利用其精準的識別演算法返回歌名。指紋可以看做該音訊的雜湊值(Hash),一個帶有時間屬性的數字集合。
2015 年,一位名叫 Christophe 的工程師寫了篇萬字長文,完整分析了Shazam的原理是什麼,並表示,在過去的三年時間裡,他用了大概 200 個小時來理解訊號處理的概念,其背後的數學原理,並製作了自己的Shazam原型。他甚至直言:“寫這篇文章是因為此前從沒有找到一篇真正理解 Shazam 的文章”。
那麼,如何更快更好理解 Shazam 背後的演算法奧祕呢?前不久,YouTube上一個專門普及工程知識的頻道 Real Engineering 上傳了一段 10 分鐘視訊,可幫助人們快速 Get 到相關知識點。
傳送門:https://www.youtube.com/watch?v=kMNSAhsyiDg
相比起人類,計算機對音樂沒有直觀的理解,它只能將歌曲與其資料庫中的其他歌曲進行對比匹配。為此,視訊中 Real Engineering 重點提及了兩個概念:“星狀圖”和“雜湊函式”,並對基於“指紋”的搜尋演算法進行了通俗化解釋。
例如,人類大腦可很容易區分鋼琴和吉他的音色,但對計算機來講,就需要一種能夠量化這些特徵以便進行識別的方法,即頻譜圖,一種聲音的視覺顯示。
在視訊中,研究者嘗試用一張三維圖來表示:x 軸代表時間,y 軸代表頻率,z 軸代表振幅/響度(通常用某種顏色表示)。
如此,計算機就可以通過這個三維圖來識別聲音並儲存資料。不過,會有個問題:頻譜圖中有大量這樣的資料,而且資料越多,需要通過計算匹配的時間就越長。
所以,減少計算時間的第一步就是減少分類歌曲的資料。
Shazam 採用的稱之為“指紋”的技術,可將這些頻譜圖轉換成看起來像的“星狀圖”。
每顆星星代表特定時間最強的頻率。如此,不僅降低了頻譜圖的維度,還減少了圖表上資料點的數量。
然後,Shazam 資料庫中的每首單曲都以“指紋”的形式儲存起來。
當使用者開啟 Shazam 應用時,後臺將訪問手機的麥克風,並建立一組接收到的聲波“指紋”。不過,這種方式也有助於應用過濾噪聲,因為它只會建立突出頻率的資料點。
音訊建立完成,並將其傳送到伺服器。此時,Shazam的識別過程正式開始,即“快速組合雜湊”(Fast Combinatorial Hashing)。
論文連結:https://www.ee.columbia.edu/~dpwe/papers/Wang03-shazam.pdf
Shazam 會將“指紋”進行分類,並搜尋在該音訊中的某個特定時間點裡分別存在哪幾個音符,這也是雜湊表的可搜尋地址。
注:在計算機領域,雜湊和雜湊函式應用十分廣泛。例如,在谷歌的搜尋引擎演算法中就應用了雜湊函式,以確保檔案可被下載。一句話解釋就是,任意長度的輸入通過雜湊函式變換成固定長度的輸出,該輸出就是雜湊值。
實踐中,輸入可以是一小段文字如密碼,也可以是像整部電影一樣的長資料流。
為免枯燥乏味,視訊裡還舉了個生動的例子:在圖書館如何通過搜尋書的標題確定書的位置?
可以通過雜湊函式來決定,書的標題為輸入,書架的位置為輸出。在這個過程中,我們會遇到書籍不均勻分佈、書目衝撞、以及如何快速找到所需書目的問題。
例如,如果圖書館只有兩個架子,那麼書目衝撞(一個書架上有相同標題的書)的問題將十分突出;但如果圖書館有十億書架,那雜湊函式得出的書目衝撞結果應該會很小。
回到以上提到的案例,如果通過雜湊函式,選擇兩組頻率資料,分別除以時間並作為輸入,輸出的數字介於 1 至 10 億之間。
首先,計算機將瀏覽歌曲資料庫並計算每個錨點(anchor point)的雜湊;一首歌曲將包含多個錨點,將有助於計算機對音訊片段按錨點、後面的以及之間的頻率進行分類。
然後,對每個錨點按雜湊進行排列。
這些地址同樣以歌曲 ID 和時間戳進行分類。
如此,便可以更快定位,並找到本來需要多個錨點才能找到的音樂。
以上只是大致介紹,想要了解 Shazam 聽歌識曲背後的詳細原理,可以檢視Christophe 寫的萬字長文。
傳送門:http://coding-geek.com/how-shazam-works/
(本文為AI科技大本營原創文章,轉載請微信聯絡 1092722531)
精彩推薦
推薦閱讀:
相關文章
- 技術簡歷這樣寫,才能得到BAT面試官的青睞BAT面試
- 不走尋常路,敏捷管理為何受青睞?敏捷
- 為何google並不青睞招聘名校畢業生Go
- 技術簡歷寫這麼寫,才能得到BAT面試官們的青睞BAT面試
- 賣了19.5億美元!這家休閒遊戲公司背後的“運營門道”拆解遊戲
- 開源自定義表單系統為何獲得青睞?
- 什麼樣的專案會得到客戶的青睞 (轉)
- 為什麼戰棋遊戲又受到玩家們的青睞了?遊戲
- 百慕大區塊鏈戰略不僅僅為了贏得新公司的青睞區塊鏈
- 聲紋識別在智慧家居中備受青睞,但還面臨一些“困擾”
- 國產網路卡為什麼受到越來越多的企業青睞了?
- 線上遊戲為何青睞雲端計算?揭祕手遊雲端計算架構遊戲架構
- 機甲魂悄然升溫?小眾遊戲為何總被市場青睞遊戲
- 為什麼2000家金融機構都青睞阿里金融雲?阿里
- 你有 Apple Watch嗎? 這個用處可大了APP
- 這個備受海外玩家青睞的題材,會是國產遊戲下一個戰場嗎?遊戲
- 蘋果Apple Watch去年賣了1160萬塊!蘋果APP
- 一款遊戲 4 年賺 31 億美元,這家遊戲公司做對了什麼?遊戲
- 明明賺了一大筆錢,為何這些遊戲公司還是「虧損」?遊戲
- 誕生快十年了 iPhone為何還能賣這麼貴呢?iPhone
- 這家融資了5000萬美元的遊戲公司,下載量已超5億次遊戲
- Python 人氣王,JS 比 Java 更受公司青睞PythonJSJava
- 滴滴又成立一家自動駕駛子公司,意欲何為?自動駕駛
- 在web開發中,為什麼前端比後端更得到轉行程式設計師的青睞?必看!Web前端後端行程程式設計師
- 在辭職後的旅途中:我寫了個 App 創立了一家公司APP
- 在創業公司,產品汪、程式猿、運營喵哪個更受人青睞?創業
- 家教app開發能贏得使用者青睞的原因APP
- 這周為公司擼了一個「自動分配任務系統」
- 為何IBM一定要得到TelelogicIBM
- 成立40年依舊屢創新高,這家僅50人的遊戲公司為何這般深入人心?遊戲
- 這家賣出3.75億美元的工作室,能否成為賽車手遊市場的No.1?
- 為什麼釣魚郵件備受駭客青睞
- 蘋果要轉型了 Apple Store零售店改名為Apple蘋果APP
- 遊戲開發者為何選擇Apple Arcade平臺?遊戲開發APP
- 蘋果投資滴滴10億美元 為Apple Car鋪路蘋果APP
- Supercell投資一覽,獲得青睞的團隊都有哪些?
- 最新調查:各行各業的僱主青睞這些程式語言
- 一線網際網路大廠青睞的web前端程式設計師,90%滿足這3個條件Web前端程式設計師