2011-11-17 68 views
4

我正在幫助一個農場根據它們的擁擠情況將這些公雞聚集在一起,使得擁有類似擁擠的公雞能夠一起生活。這位農民說,他想知道雞是否會從別人那裏學到任何行爲,如果是這樣,每當他有一隻小雞時,他會把它放入一個好的雞羣中,並希望它能給這隻新的小雞帶來一些好的影響。我的工作是記錄每個組的相似性,並在幾周後比較結果,並看到組中的任何增加的相似性。語音的分段

我的想法是編寫一個程序,給出兩個輸入wav文件的相似性分數,因此每個公雞都可以找到它最相似的室友,並將其配對成組,然後將相似的組分組,最後分組成多個組。

我已經由3個旋塞得到了一些crowings,並用分析譜圖(每個雞叫兩次):

旋塞A:

first crowing from cock Asecond crowing from cock A

公雞B:

first crowing from cock Bsecond crowing from cock B

cock C:

second crowing from cock Cfirst crowing from cock C

之前計算相似度,我想分裂雞鳴成段,使得每個段保留一定程度的頻率的(其將在稍後用於計算相似性)。我目前的解決方案是:

第一步:當強度線不連續時,聲音會被縫隙分割;
步驟2:當存在頻率的臨界變化,該時間將被視爲一個段

我想的上述步驟的邊界是充足與否。我希望其他人有更好的建議,我應該如何改善細分。有什麼方法或算法適合我的情況嗎?謝謝!

+0

也許你應該看看[DTW(http://en.wikipedia.org/wiki/Dynamic_time_warping)算法。 – akademi4eg

回答

1

去年我們有幾個語音相關的項目。這可能有點相似。我記得使用機器學習工具和庫是非常有用的,例如weka,rapidminer,encog。它的價值在於使用交叉驗證來測試示例。可能值得測試的參數:MFCC,YIN。我認爲所有相關的語音識別主題可能對你有用:)

+0

謝謝你的建議。實際上,我想爲此編寫一個Android應用程序。我試過用java編寫的weka,但是恐怕對於android應用來說太重了。現在我正在使用一個輕量級圖書館:http://code.google.com/p/musicg-sound-api/ –

2

最好的方法是使用一些語音識別技術。我用這個項目來識別鳥類歌曲。就我而言,我使用HTK(隱馬爾可夫工具包)來構建可識別小鳥唱歌的HMM。 您可以將梅爾尺度更改爲與您的案例更相似。梅爾量表(來自MFCC)與人類語音有關。如果您在Google中搜索,則會有一些與鳥類相關的文章改變Mel或Bark(PLP)音階來匹配動物聲道。

您將需要許多樣本來穩健訓練HMM參數並分析有多少個狀態是最好的。我建議這三首歌中的每一首都至少有100個樣本,並使用3個發射HMM狀態。 我可以幫你建立一個HMM系統。請聯繫我。

路易斯Uebel ASR實驗室 www.asrlabs.com.br

+0

感謝您的建議。順便說一句,我不認爲我可以收集這樣的數量樣本(至少100),所以它可能不適合我。 –