2016-11-23 40 views
1

我需要創建一個合作音樂識別服務。每個用戶都可以選擇指紋歌曲並使用其元信息發送給服務器。在開始時,服務數據庫將是空的,並且每當音樂指紋將被接收時,歌曲的元數據將被更新(如果不同的用戶將發送不同的信息給用戶,服務器將基於多數選擇將元數據分配給指紋相同的指紋)。如何選擇音頻指紋算法來創建合作音樂數據庫?

我需要計算整首歌曲的指紋,我不需要從一小部分中識別出一首歌。

指紋不應100%準確。如果兩個歌曲文件將使用不同的壓縮率編碼,我會很高興,如果兩個歌曲文件將收到相同的指紋。低噪聲獨立性將是一個優點。我們應該使用標準的靜音抑制算法(在這種情況下,不需要非常精確的結果)將它們刪除,但是在歌曲的乞討或結束時不會出現問題。

我知道有一些開源庫,如:http://echoprint.me/https://acoustid.org/,但thees庫對我的需求是excessive,因爲如果我正確地認爲它可以從一個部分識別歌曲,這將創建一個沉重的數據庫。我需要一種算法,可以爲整首歌曲提供一個不會太重(大約kb)的指紋。

女巫是我可以使用的最簡單快速的算法嗎?

感謝所有

+0

這個問題實際上要複雜得多似乎比。 Google在他們的內容ID算法中投入了相當多的資金,這個算法可以處理視頻中使用的音樂。它仍然是時常相當不準確的。 – Philipp

+0

也許這[音頻Fingerprinting軟件寫在C#/NET](https://github.com/nelemans1971/AudioFingerprinting)有幫助。 – wp78de

回答

2

我建議你使用AcoustID項目。您的描述在很多方面與此項目相匹配。只有他們的一些方法與你的建議不同。

該服務可以識別短音頻片段嗎?

不,它不能。該服務旨在識別完整音頻文件 。我們希望最終也支持這個用例,但目前它不是優先級。請注意,即使這將實現 ,它仍將用於匹配原始音頻 (例如,爲了追蹤長音頻流的目的),而不是音頻 與錄製在電話上的背景噪聲。

看一看他們的郵件列表,一些更好的解釋:https://groups.google.com/forum/#!forum/acoustid