2011-11-27 37 views

回答

18

這可能與該工具包喊:http://shout-toolkit.sourceforge.net/index.html

它是用C++編寫,併爲Linux測試,但它也應該在Windows或OSX下運行。

該工具包是我的博士研究自動語音識別(ASR)的副產品。將它用於ASR本身可能並不那麼簡單,但對於語音活動檢測(SAD)和diarization(查找某個特定人員的所有語音)來說,使用它非常容易。這裏是一個例子:

  1. 創建一個16KHz,16位,小端,單聲道無標題PCM音頻文件。我使用ffmpeg創建原始文件:ffmpeg -i [INPUT_FILE] -vn -acodec pcm_s16le -ar 16000 -ac 1 -f s16le [RAW_FILE]以小端編碼文件大小(4字節)爲前綴無標頭數據。確保該文件具有.raw擴展名,因爲shout_cluster根據擴展名檢測文件類型。

  2. 執行語音/非語音分割: ./shout_segment -a [RAW_FILE] -ams [SHOUT_SAD_MODEL] -MO [SAD_OUTPUT] 輸出文件將提供在其中某人正在講話片段(標記當然,因爲這一切都是自動完成的,所以系統可能會出錯......),其中有聲音不是語音(「聲音」)或靜音(「靜音」)。

  3. 執行diarization: ./shout_cluster -a [RAW_FILE] -mo [DIARIZATION_OUTPUT] -mi [SAD_OUTPUT] 使用shout_segment的輸出,它會嘗試確定多少個揚聲器的記錄活躍,標記每個揚聲器(「SPK01」,「SPK02」等),然後查找每個揚聲器的所有語音段。

我希望這會有所幫助!

+0

謝謝您的回答,Marijn,併爲您的步驟上市!這種語言是否獨立,即可以用希伯來語,日語等工作?(令人驚訝的是,這些「可能選擇爲這個例子,因爲他們是如此奇特的語言」正是所需的語言:) – Avi

+0

我剛剛使用這個命令和終端只是凍結在第二個命令。 Ubuntu 17.10。也許這是因爲我對這條指令沒有做任何事情:「以小端編碼文件大小(4字節)爲前綴無標頭數據」。是這樣嗎?我怎麼做? – Roman

2

儘管上述答案是準確的,但我在Linux上安裝SHOUT時遇到了安裝問題的更新。 undefined reference to pthread_join解決方案我發現是從喊安裝拉鍊打開configure-make.sh並修改該行

CXXFLAGS="-O3 -funroll-loops -mfpmath=sse -msse -msse2" LDFLAGS="-lpthread" ../configure 

CXXFLAGS="-O3 -funroll-loops -mfpmath=sse -msse -msse2" LDFLAGS="-pthread" ../configure 

注意lpthread來改變在Linux系統上的pthread

操作系統:Linux Mint的18 了聲版:發佈2010年版,0-3

+0

感謝您的回答,男士!你最終設法成功識別了什麼? – Roman

+0

使用SHOUT-no,我切換到Python,因爲它對音頻分析有更好的支持。 –