2014-08-27 122 views
1

我發現了一些關於這個主題,但沒有密切相關,所以沒有找到答案。Java - Wav音頻分割

我正在將我爲音高識別開發的現有JAVA項目擴展爲簡單的單聲道音樂識別,但我堅持使用波形文件分割。所以,我明白了,我應該在我的波形(一座「山」)中探測到大能量的存在,但我還不確定如何知道「山」在哪裏開始?有時候他們不夠清楚。音符播放速度不是很快,但信號很少下降到零。它可能會下降一半。

如果分割算法丟失一個音符或兩個音符就沒有問題,那麼之後我會有模式匹配算法。 我只需要想法如何迭代樣本(窗口或一個接一個)以及如何決定陣列的哪些部分調用基音檢測。 如果有這種請分享任何開源實現...

在此先感謝

回答

1

如果使用非JAVA工具都OK,你可以使用sphinx_cont_fileseg。它是Sphinx語音識別系統的一部分,它位於市電Linux發行版的回購站(或者您可以編譯源代碼!)。

sphinx_cont_fileseg生成一個文本文件,其中包含音頻文件中的所有「語音」片段。你可以從你的JAVA代碼運行它,然後解析結果。 這不是最優的,但它可能比編寫自己的VAD好。