2014-04-25 87 views
1

我需要一個基於Java的特徵提取庫並找到Sphinx,但不知道如何使用。 基本上,我需要將一個wav文件轉換爲MEL係數。 一旦我在Matlab中完成了這些工作,但由於我對Java不熟悉,所以無法掌握如何使用它們的代碼並提取功能。順便說一句,如果您有任何機會知道另一個能夠快速完成這個任務的開源庫,那將非常有幫助。如何使用Sphinx從波形文件中獲取MEL係數

更新: 由於我打算在Android上使用它,我發現使用PocketSphinx可能是一個更好的主意。 (我試着下載他們的demo app,但它沒有運行在我的設備上(Nexus 5),它試圖打開一個活動,但立即關閉。)我也跟着these steps,但沒有增益。

如果有人能幫我弄清楚如何設置它,那將是美好的。 我需要知道: 1-應使用哪些模塊, 2-如何將庫用於我自己的項目? 3如何設置庫:應使用哪些功能以及如何使用。

在此先感謝。

是否有一個一步一步的指導使用

+1

請在發生錯誤時分享LogCat的部分。演示應該在Android> = 2.3的所有設備上運行。 –

回答

3

可以肯定,它是可以計算與sphinx4 MFCC的功能。但不會說它會很快。在sphinx4中有一個前端的概念,它負責處理輸入數據。典型前端看起來像這樣:

<component name="liveFrontEnd" type="edu.cmu.sphinx.frontend.FrontEnd"> 
    <propertylist name="pipeline"> 
     <item>dataSource </item> 
     <item>dataBlocker </item> 
     <item>speechClassifier </item> 
     <item>speechMarker </item> 
     <item>nonSpeechDataFilter </item> 
     <item>preemphasizer </item> 
     <item>windower </item> 
     <item>fft </item> 
     <item>autoCepstrum </item> 
     <item>liveCMN </item> 
     <item>featureExtraction </item> 
     <item>featureTransform </item> 
    </propertylist> 
    </component> 

前端的每個元件從先前元素讀取數據時,以某種方式處理它,並傳遞到下一個。這裏dataSource接受原始音頻輸入並且autoCepstrum輸出MFCC係數。其他一切都與語音識別器的特定設置有關。現在,如果您想使用sphinx4來計算MFCC,您應該自己設置類似的前端來分別實例化和調整每個組件,或者可以使用ConfigurationManager來編寫XML配置並實例化前端。

+0

謝謝!我想首先嚐試使用ConfigurationManager會更容易。這是使用ConfigurationManager的正確方法嗎? ConfigurationManager cm = new ConfigurationManager(myXML.xml); 那我該如何檢索係數? –

+0

您應該從配置管理器獲取前端實例並讀取其數據。使用'ConfigurationManager#lookup(String)'來獲取實例和'FrontEnd#getData()'來讀取數據。有各種類型的數據,請參閱'Data'的實現列表以獲取更多信息。 –

相關問題