【解決方法】Sphinx 4を使用したJava音声からテキストへ


Sphinx ライブラリを使用してプログラムを実行する際に問題に直面しています。エラーは次のとおりです。

class not found !java.lang.ClassNotFoundException: edu.cmu.sphinx.model.acoustic.WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz.Model
Exception in thread "main" Property exception component:'flatLinguist' property:'acousticModel' - component 'wsj' is missing
edu.cmu.sphinx.util.props.InternalConfigurationException: component 'wsj' is missing
	at edu.cmu.sphinx.util.props.PropertySheet.getComponent(PropertySheet.java:289)
	at edu.cmu.sphinx.linguist.flat.FlatLinguist.setupAcousticModel(FlatLinguist.java:278)
	at edu.cmu.sphinx.linguist.flat.FlatLinguist.newProperties(FlatLinguist.java:244)
	at edu.cmu.sphinx.util.props.PropertySheet.getOwner(PropertySheet.java:505)
	at edu.cmu.sphinx.util.props.PropertySheet.getComponent(PropertySheet.java:287)
	at edu.cmu.sphinx.decoder.search.SimpleBreadthFirstSearchManager.newProperties(SimpleBreadthFirstSearchManager.java:182)
	at edu.cmu.sphinx.util.props.PropertySheet.getOwner(PropertySheet.java:505)
	at edu.cmu.sphinx.util.props.PropertySheet.getComponent(PropertySheet.java:287)
	at edu.cmu.sphinx.decoder.AbstractDecoder.newProperties(AbstractDecoder.java:65)
	at edu.cmu.sphinx.decoder.Decoder.newProperties(Decoder.java:37)
	at edu.cmu.sphinx.util.props.PropertySheet.getOwner(PropertySheet.java:505)
	at edu.cmu.sphinx.util.props.PropertySheet.getComponent(PropertySheet.java:287)
	at edu.cmu.sphinx.recognizer.Recognizer.newProperties(Recognizer.java:90)
	at edu.cmu.sphinx.util.props.PropertySheet.getOwner(PropertySheet.java:505)
	at edu.cmu.sphinx.util.props.ConfigurationManager.lookup(ConfigurationManager.java:161)
	at com.xebia.speech.HelloWorld.main(HelloWorld.java:28)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

私のハローワールドファイルは

Java
package com.xebia.speech-to-text-converter ; 
 
import java.io.IOException;
import java.net.URL;
 
import edu.cmu.sphinx.frontend.util.Microphone;
import edu.cmu.sphinx.recognizer.Recognizer;
import edu.cmu.sphinx.result.Result;
import edu.cmu.sphinx.util.props.ConfigurationManager;
import edu.cmu.sphinx.util.props.PropertyException;
 
/**
 * A simple HelloWorld demo showing a simple speech application built using Sphinx-4. This application uses the Sphinx-4
 * endpointer, which automatically segments incoming audio into utterances and silences.
 */
public class HelloWorld {
 
    public static void main(String[] args) throws IOException, PropertyException, InstantiationException {
        ConfigurationManager cm;
 
        if (args.length > 0) {
            URL url = new URL(args[0]);
            cm = new ConfigurationManager(url);
        } else {
            cm = new ConfigurationManager(HelloWorld.class.getResource("helloworld.config.xml"));
        }
 
        Recognizer recognizer = (Recognizer) cm.lookup("recognizer");
        recognizer.allocate();
 
        // start the microphone or exit if the program if this is not possible
        Microphone microphone = (Microphone) cm.lookup("microphone");
        if (!microphone.startRecording()) {
            System.out.println("Cannot start microphone.");
            recognizer.deallocate();
            System.exit(1);
        }
 
        System.out.println("Say: (Good morning | Hello) (( Winfred | Evandro | Paul | Philip | Will )");
 
        // loop the recognition until the program exits.
        while (true) {
            System.out.println("Start speaking. Press Ctrl-C to quit.\n");
 
            Result result = recognizer.recognize();
 
            if (result != null) {
                String resultText = result.getBestFinalResultNoFiller();
                System.out.println("You said: " + resultText + '\n');
            } else {
                System.out.println("I can't hear what you said.\n");
            }
        }
    }
}

Hello world 設定ファイル

XML
<!--
   Sphinx-4 Configuration file
-->
<!-- ******************************************************** -->
<!--  an4 configuration file                                  -->
<!-- ******************************************************** -->
<config>        
    
    <!-- ******************************************************** -->
    <!-- frequently tuned properties                              -->
    <!-- ******************************************************** --> 
    <property name="logLevel" value="WARNING" />
    
    <property name="absoluteBeamWidth" value="-1" />
    <property name="relativeBeamWidth" value="1E-80" />
    <property name="wordInsertionProbability" value="1E-36" />
    <property name="languageWeight" value="8" />
    
    <property name="frontend" value="epFrontEnd" />
    <property name="recognizer" value="recognizer" />
    <property name="showCreations" value="false" />
    
    
    <!-- ******************************************************** -->
    <!-- word recognizer configuration                            -->
    <!-- ******************************************************** --> 
    
    <component name="recognizer" type="edu.cmu.sphinx.recognizer.Recognizer">
        <property name="decoder" value="decoder" />
        <propertylist name="monitors">
            <item>accuracyTracker </item>
            <item>speedTracker </item>
            <item>memoryTracker </item>
        </propertylist>
    </component>
    
    <!-- ******************************************************** -->
    <!-- The Decoder   configuration                              -->
    <!-- ******************************************************** --> 
    
    <component name="decoder" type="edu.cmu.sphinx.decoder.Decoder">
        <property name="searchManager" value="searchManager" />
    </component>
    
    <component name="searchManager">
        type="edu.cmu.sphinx.decoder.search.SimpleBreadthFirstSearchManager">
        <property name="logMath" value="logMath" />
        <property name="linguist" value="flatLinguist" />
        <property name="pruner" value="trivialPruner" />
        <property name="scorer" value="threadedScorer" />
        <property name="activeListFactory" value="activeList" />
    </component>
        
    <component name="activeList">
             type="edu.cmu.sphinx.decoder.search.PartitionActiveListFactory">
        <property name="logMath" value="logMath" />
        <property name="absoluteBeamWidth" value="${absoluteBeamWidth}" />
        <property name="relativeBeamWidth" value="${relativeBeamWidth}" />
    </component>
    
    <component name="trivialPruner">
                type="edu.cmu.sphinx.decoder.pruner.SimplePruner"/>
    
    <component name="threadedScorer">
                type="edu.cmu.sphinx.decoder.scorer.ThreadedAcousticScorer">
        <property name="frontend" value="${frontend}" />
        <property name="isCpuRelative" value="true" />
        <property name="numThreads" value="0" />
        <property name="minScoreablesPerThread" value="10" />
        <property name="scoreablesKeepFeature" value="true" />
    </component>
    
    <!-- ******************************************************** -->
    <!-- The linguist  configuration                              -->
    <!-- ******************************************************** -->
    
    <component name="flatLinguist">
                type="edu.cmu.sphinx.linguist.flat.FlatLinguist">
        <property name="logMath" value="logMath" />
        <property name="grammar" value="jsgfGrammar" />
        <property name="acousticModel" value="wsj" />
        <property name="wordInsertionProbability">
                value="${wordInsertionProbability}"/>
        <property name="languageWeight" value="${languageWeight}" />
        <property name="unitManager" value="unitManager" />
    </property></component>
     
    <!-- ******************************************************** -->
    <!-- The Grammar  configuration                               -->
    <!-- ******************************************************** -->
            
    <component name="jsgfGrammar" type="edu.cmu.sphinx.jsapi.JSGFGrammar">
        <property name="dictionary" value="dictionary" />
        <property name="grammarLocation">
             value="src/main/java/com/hi/open_name_speech_to_text_convertor/"/>
        <property name="grammarName" value="hello" />
	<property name="logMath" value="logMath" />
    </property></component>
            
    <!-- ******************************************************** -->
    <!-- The Dictionary configuration                            -->
    <!-- ******************************************************** -->
    
    <component name="dictionary">
        type="edu.cmu.sphinx.linguist.dictionary.FastDictionary">
        <property name="dictionaryPath">
	 value="resource:/edu.cmu.sphinx.model.acoustic.WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz.Model!/edu/cmu/sphinx/model/acoustic/WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz/dict/cmudict.0.6d"/>
        <property name="fillerPath">
	 value="resource:/edu.cmu.sphinx.model.acoustic.WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz.Model!/edu/cmu/sphinx/model/acoustic/WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz/dict/fillerdict"/>
        <property name="addSilEndingPronunciation" value="false" />
        <property name="allowMissingWords" value="false" />
        <property name="unitManager" value="unitManager" />
    </property></property></component>
    <!-- ******************************************************** -->
    <!-- The acoustic model configuration                         -->
    <!-- ******************************************************** -->
    <component name="wsj">
      type="edu.cmu.sphinx.model.acoustic.WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz.Model">
        <property name="loader" value="wsjLoader" />
        <property name="unitManager" value="unitManager" />
    </component>
    <component name="wsjLoader">
               type="edu.cmu.sphinx.model.acoustic.WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz.ModelLoader">
        <property name="logMath" value="logMath" />
        <property name="unitManager" value="unitManager" />
    </component>
    
    <!-- ******************************************************** -->
    <!-- The unit manager configuration                           -->
    <!-- ******************************************************** -->
    <component name="unitManager">
        type="edu.cmu.sphinx.linguist.acoustic.UnitManager"/>
    <!-- ******************************************************** -->
    <!-- The frontend configuration                               -->
    <!-- ******************************************************** -->
    
    <component name="frontEnd" type="edu.cmu.sphinx.frontend.FrontEnd">
        <propertylist name="pipeline">
            <item>microphone </item>
            <item>premphasizer </item>
            <item>windower </item>
            <item>fft </item>
            <item>melFilterBank </item>
            <item>dct </item>
            <item>liveCMN </item>
            <item>featureExtraction </item>
        </propertylist>
    </component>
    
    <!-- ******************************************************** -->
    <!-- The live frontend configuration                          -->
    <!-- ******************************************************** -->
    <component name="epFrontEnd" type="edu.cmu.sphinx.frontend.FrontEnd">
        <propertylist name="pipeline">
            <item>microphone </item>
            <item>speechClassifier </item>
            <item>speechMarker </item>
            <item>nonSpeechDataFilter </item>
            <item>premphasizer </item>
            <item>windower </item>
            <item>fft </item>
            <item>melFilterBank </item>
            <item>dct </item>
            <item>liveCMN </item>
            <item>featureExtraction </item>
        </propertylist>
    </component>
    <!-- ******************************************************** -->
    <!-- The frontend pipelines                                   -->
    <!-- ******************************************************** -->
    
    <component name="speechClassifier">
               type="edu.cmu.sphinx.frontend.endpoint.SpeechClassifier">
        <property name="threshold" value="13" />
    </component>
    
    <component name="nonSpeechDataFilter">
               type="edu.cmu.sphinx.frontend.endpoint.NonSpeechDataFilter"/>
    
    <component name="speechMarker">
               type="edu.cmu.sphinx.frontend.endpoint.SpeechMarker" >
        <property name="speechTrailer" value="50" />
    </component>
        
    <component name="premphasizer">
               type="edu.cmu.sphinx.frontend.filter.Preemphasizer"/>
    
    <component name="windower">
               type="edu.cmu.sphinx.frontend.window.RaisedCosineWindower">
    </component>
    
    <component name="fft">
            type="edu.cmu.sphinx.frontend.transform.DiscreteFourierTransform">
    </component>
    
    <component name="melFilterBank">
        type="edu.cmu.sphinx.frontend.frequencywarp.MelFrequencyFilterBank">
    </component>
    
    <component name="dct">
            type="edu.cmu.sphinx.frontend.transform.DiscreteCosineTransform"/>
    
    <component name="liveCMN">
               type="edu.cmu.sphinx.frontend.feature.LiveCMN"/>
        
    <component name="featureExtraction">
               type="edu.cmu.sphinx.frontend.feature.DeltasFeatureExtractor"/>
       
    <component name="microphone">
               type="edu.cmu.sphinx.frontend.util.Microphone">
        <property name="closeBetweenUtterances" value="false" />
    </component>
    
    <!-- ******************************************************* -->
    <!--  monitors                                               -->
    <!-- ******************************************************* -->
    
    <component name="accuracyTracker">
                type="edu.cmu.sphinx.instrumentation.AccuracyTracker">
        <property name="recognizer" value="${recognizer}" />
        <property name="showAlignedResults" value="false" />
        <property name="showRawResults" value="false" />
    </component>
    
    <component name="memoryTracker">
                type="edu.cmu.sphinx.instrumentation.MemoryTracker">
        <property name="recognizer" value="${recognizer}" />
	<property name="showSummary" value="false" />
	<property name="showDetails" value="false" />
    </component>
    
    <component name="speedTracker">
                type="edu.cmu.sphinx.instrumentation.SpeedTracker">
        <property name="recognizer" value="${recognizer}" />
        <property name="frontend" value="${frontend}" />
	<property name="showSummary" value="true" />
	<property name="showDetails" value="false" />
    </component>
    
    
    <!-- ******************************************************* -->
    <!--  Miscellaneous components                               -->
    <!-- ******************************************************* -->
    
    <component name="logMath" type="edu.cmu.sphinx.util.LogMath">
        <property name="logBase" value="1.0001" />
        <property name="useAddTable" value="true" />
    </component>
    
</component></component></component></component></component></component></component></config>

文法ファイル

#JSGF V1.0;
/**
* JSGF Grammar for Hello World example
*/
grammar hello;
 
public <greet> = (Good morning | Hello) <name>;
<name> = ( Winfred | Evandro | Paul | Philip | Will );</name></name></greet>

Plz私は助けが必要です、それは私のプロジェクトです

解決策 1

エラーメッセージはかなり明確に見えます:

class not found !java.lang.ClassNotFoundException: edu.cmu.sphinx.model.acoustic.WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz.Model

スペル、クラスパスなどを確認し、以下も参照してください。 Sphinx プログラマーズ ガイド[^].

解決策 6

class not found !java.lang.ClassNotFoundException: edu.cmu.sphinx.decoder.search.WordPruningBreadthFirstSearchManag er
Exception in thread "main" Property exception component:'decoder' property:'searchManager' - component 'wordPruningSearchManager' is missing
edu.cmu.sphinx.util.props.InternalConfigurationException: component 'wordPruningSearchManager' is missing
	at edu.cmu.sphinx.util.props.PropertySheet.getComponent(PropertySheet.java:289)
	at edu.cmu.sphinx.decoder.AbstractDecoder.newProperties(AbstractDecoder.java:65)
	at edu.cmu.sphinx.decoder.Decoder.newProperties(Decoder.java:37)
	at edu.cmu.sphinx.util.props.PropertySheet.getOwner(PropertySheet.java:505)
	at edu.cmu.sphinx.util.props.PropertySheet.getComponent(PropertySheet.java:287)
	at edu.cmu.sphinx.recognizer.Recognizer.newProperties(Recognizer.java:90)
	at edu.cmu.sphinx.util.props.PropertySheet.getOwner(PropertySheet.java:505)
	at edu.cmu.sphinx.util.props.ConfigurationManager.lookup(ConfigurationManager.java:161)
	at afoqasspechbased.HelloWorld.main(HelloWorld.java:39)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

解決策 2

このエラーは、edu.cmu.sphinxackage に「model.acoustic」パッケージと「WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz.Model」が含まれていないために発生します。 sphinx.jar ファイルを確認してください

解決策 4

このコードは機能しましたか? コードを共有していただけませんか? wasim@gmail.comにメールしてください

解決策 5

こんにちは、インドのマハラシュトラ州アウランガーバード出身の Akash Kumawat です。

このエラーの直接的な解決策を提供します。
このエラーを解決するには、次の手順に従ってください。
1.このリンクをコピー “https://code.google.com/p/motenav/downloads/detail?name=WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz-1.12_r8.jar&can=2&q=
2.ダウンロード WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz-1.12_r8.jar.
このファイルサイズは約 10.6MB.
3.ダウンロードしたファイルを解凍します。
4.行く 教育/cmu/スフィンクス 抽出されたファイルに。
5.コピーする ‘モデル’ ディレクトリ。
6.に行く sphinx4-1.0beta6/lib ディレクトリ。
7.開く Sphinx4.jar ファイル。
8.行く 教育/cmu/スフィンクス jarファイルに。
9.上記のコピーしたディレクトリを貼り付けます。
10.あなたの仕事は終わりです。

最後に、My Eclipse でプロジェクト ファイルを更新し、ファイルを再度実行します。
あなたのプロジェクトを頑張ってください。

コメント

タイトルとURLをコピーしました