2010-05-12 124 views
12

我不想聲音到文本軟件。我需要的是以下幾點:聲音樣本識別庫/代碼

  • 我會記錄多個(比如50歲以上)的音頻流(電臺錄音)
  • 從錄音,我會標示出有趣的音頻剪輯 - 其長度範圍從2到60秒 - 將會有數千個這樣的音頻片段
  • 庫應該能夠從記錄的聲音流中找到相同音頻片段的其他實例
  • 應該將信心因子報告給使用和附加輸入以便識別下次可能表現更好

你知道這樣的軟件庫嗎? LGPL對我來說最有價值,但我也可以申請商業授權。

音頻剪輯將同時包含音樂,文字,效果或其任意組合。所以,TEXT識別是不可能的。

架構:C++,C#for glue,CUDA如果可能的話。

+1

音頻剪輯是否包含語音,聲音,音樂,所有這些? – mdma 2010-05-15 02:28:02

+2

您是否有特定的語言或處理器架構? – 2010-05-15 04:55:32

+0

順便說一句,我創建了自己的實現,經過2年的發展,它可用於商業exploatation :) http://www.videophill.com/index.php?page=playkontrol – 2012-04-03 19:05:23

回答

9

我還沒有發現任何庫(還),但兩個有趣的論文,這可能會給您的術語和背景優化搜索:

編輯:搜索「音頻fingerprinti ng「來到了一個實現頁面,包括開源和商業。

這裏是一個introduction to Audio fingerprinting

+0

您的第一個建議看起來很有希望,而且我知道Picard,但我不確定這適用於「流式樣」檢測。 – 2010-05-16 15:03:22

0

看看微軟語音API(SAPI):
http://msdn.microsoft.com/en-us/library/ee125077%28VS.85%29.aspx

所有您列出的其他要求,基本上實現細節,你必須對你自己來實現。例如,當軟件解釋音頻流時,它可以將它們存儲在帶有全文索引的SQL服務器中......從中進行搜索以找到相似/相同的音頻剪輯。

當然還有實現的其他方式,而這只是一個想法:-)

+0

那麼,因爲我的問題明確指出,我不想聲音到文本的識別,因爲我沒有用它來尋找叮噹聲或其他類型的聲音,我必須在此放棄-1。 – 2010-05-16 14:35:42

7

你所描述是matched filter和所有你需要的是一個cross-correlation功能應該是任何合理的DSP庫的一部分。根據您選擇的處理器體系結構和語言,您甚至可以找到可以更高效地執行此操作的矢量化庫。

如果你真的不關心性能,你可以使用Python ...

$ python 
Python 2.6.4 (r264:75706, Dec 7 2009, 18:45:15) 
[GCC 4.4.1] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import scipy 
>>> interesting_clip = [ 5, 7, 2, 1] 
>>> full_stream = [ 1, 5, 7, 2, 1, 4, 3, 2, 4, 7, 1, 2, 2, 5, 1] 
>>> correlation = scipy.correlate (full_stream, interesting_clip) 
>>> print correlation 
[56 79 55 28 41 49 44 53 73 48 28 35] 
>>> for offset, value in enumerate(correlation) : 
...  if (value > 60) : 
...   print "match at position", offset, "with value of", value 
... 
match at position 1 with value of 79 
match at position 8 with value of 73 

我上面的閾值是任意的。您應該通過實驗確定適合您的內容。

請記住,「有趣的剪輯」越長,計算相關所需的時間就越長。雖然較長的片段可以幫助實際比賽更好地從非比賽中脫穎而出,但您可能不會超過幾秒鐘。

+1

好吧,相關似乎不夠好,但在什麼特徵空間?你會建議什麼? – 2010-05-16 14:34:13

4

AudioDB是一個開源的C++項目,它搜索類似的音頻部分,並處理噪聲流,並且可以給你一個相似性度量。它可以作爲客戶端/服務器運行,但我相信你可以做一個獨立的程序。
有關dsp相關性的其他答案是正確的,但通常這些dsp算法要比較具有相同部分重疊的兩個相同長度的流。
你需要什麼需要它在流的任意部分工作;這是AudioDB的目的。 (其中一個應用是查找隱藏的參考文獻/採樣或明顯的版權濫用。)我使用它來查找向後播放的聲音,並且還發現引入了一些噪音或語音變化的情況。
請注意,即使主頁上的日期似乎關閉,它仍在開發中。我會訂閱郵件列表,詢問目前的狀態以及如何整合它。

0

我會去與Tim Kryger的答案一致,並使用簡單的統計相關函數,因爲你想保持內容不可知論。

至於功能,我肯定會嘗試MFCC,因爲它用於語音處理和音樂識別(流派,歌曲)。您可以在優秀的開源Vamp plugins(或其更高級別的軟件包,名爲Sonic Annotator的程序)或Marsyas框架中找到MFCC和豐富的其他音頻功能。