Note that there are some explanatory texts on larger screens.

plurals
  1. POCMU-Sphinx : NullPointerException at recognizer.allocate()
    primarykey
    data
    text
    <p>I've been trying to set up CMU-Sphinx4 on my PC in order to make an application using speech Recognition. I was able to setup most of the parts and configuration and trying to run the HelloWorld application provided by Sphinx, but stuck with <code>NullPointerExcetption</code> at <code>recognizer.allocate();</code>.</p> <p>Complete Stack Trace :</p> <pre><code>12:34:45.501 WARNING dictionary Missing word: &lt;sil&gt; 12:34:45.517 WARNING jsgfGrammar Can't find pronunciation for &lt;sil&gt; 12:34:45.517 WARNING dictionary Missing word: &lt;sil&gt; 12:34:45.517 WARNING jsgfGrammar Can't find pronunciation for &lt;sil&gt; Exception in thread "main" java.lang.NullPointerException at edu.cmu.sphinx.linguist.flat.SentenceHMMState.collectStates(SentenceHMMState.java:635) at edu.cmu.sphinx.linguist.flat.FlatLinguist.compileGrammar(FlatLinguist.java:452) at edu.cmu.sphinx.linguist.flat.FlatLinguist.allocate(FlatLinguist.java:304) at edu.cmu.sphinx.decoder.search.SimpleBreadthFirstSearchManager.allocate(SimpleBreadthFirstSearchManager.java:646) at edu.cmu.sphinx.decoder.AbstractDecoder.allocate(AbstractDecoder.java:87) at edu.cmu.sphinx.recognizer.Recognizer.allocate(Recognizer.java:168) at com.cmu.sphinx.HelloWorld.main(HelloWorld.java:42) </code></pre> <p><strong>Code:</strong></p> <pre class="lang-java prettyprint-override"><code> package com.cmu.sphinx; 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; public class HelloWorld { public static void main(String[] args) { ConfigurationManager cm; if (args.length &gt; 0) { cm = new ConfigurationManager(args[0]); } 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) ( Bhiksha | Evandro | Paul | Philip | Rita | Will )"); // loop the recognition until the programm 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"); } } } } </code></pre> <p><strong>Config File :</strong></p> <pre class="lang-xml prettyprint-override"><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!-- Sphinx-4 Configuration file --&gt; &lt;!-- ******************************************************** --&gt; &lt;!-- an4 configuration file --&gt; &lt;!-- ******************************************************** --&gt; &lt;config&gt; &lt;!-- ******************************************************** --&gt; &lt;!-- frequently tuned properties --&gt; &lt;!-- ******************************************************** --&gt; &lt;property name="logLevel" value="WARNING"/&gt; &lt;property name="absoluteBeamWidth" value="-1"/&gt; &lt;property name="relativeBeamWidth" value="1E-80"/&gt; &lt;property name="wordInsertionProbability" value="1E-36"/&gt; &lt;property name="languageWeight" value="8"/&gt; &lt;property name="frontend" value="epFrontEnd"/&gt; &lt;property name="recognizer" value="recognizer"/&gt; &lt;property name="showCreations" value="false"/&gt; &lt;!-- ******************************************************** --&gt; &lt;!-- word recognizer configuration --&gt; &lt;!-- ******************************************************** --&gt; &lt;component name="recognizer" type="edu.cmu.sphinx.recognizer.Recognizer"&gt; &lt;property name="decoder" value="decoder"/&gt; &lt;propertylist name="monitors"&gt; &lt;item&gt;accuracyTracker &lt;/item&gt; &lt;item&gt;speedTracker &lt;/item&gt; &lt;item&gt;memoryTracker &lt;/item&gt; &lt;/propertylist&gt; &lt;/component&gt; &lt;!-- ******************************************************** --&gt; &lt;!-- The Decoder configuration --&gt; &lt;!-- ******************************************************** --&gt; &lt;component name="decoder" type="edu.cmu.sphinx.decoder.Decoder"&gt; &lt;property name="searchManager" value="searchManager"/&gt; &lt;/component&gt; &lt;component name="searchManager" type="edu.cmu.sphinx.decoder.search.SimpleBreadthFirstSearchManager"&gt; &lt;property name="logMath" value="logMath"/&gt; &lt;property name="linguist" value="flatLinguist"/&gt; &lt;property name="pruner" value="trivialPruner"/&gt; &lt;property name="scorer" value="threadedScorer"/&gt; &lt;property name="activeListFactory" value="activeList"/&gt; &lt;/component&gt; &lt;component name="activeList" type="edu.cmu.sphinx.decoder.search.PartitionActiveListFactory"&gt; &lt;property name="logMath" value="logMath"/&gt; &lt;property name="absoluteBeamWidth" value="${absoluteBeamWidth}"/&gt; &lt;property name="relativeBeamWidth" value="${relativeBeamWidth}"/&gt; &lt;/component&gt; &lt;component name="trivialPruner" type="edu.cmu.sphinx.decoder.pruner.SimplePruner"/&gt; &lt;component name="threadedScorer" type="edu.cmu.sphinx.decoder.scorer.ThreadedAcousticScorer"&gt; &lt;property name="frontend" value="${frontend}"/&gt; &lt;/component&gt; &lt;!-- ******************************************************** --&gt; &lt;!-- The linguist configuration --&gt; &lt;!-- ******************************************************** --&gt; &lt;component name="flatLinguist" type="edu.cmu.sphinx.linguist.flat.FlatLinguist"&gt; &lt;property name="logMath" value="logMath"/&gt; &lt;property name="grammar" value="jsgfGrammar"/&gt; &lt;property name="acousticModel" value="wsj"/&gt; &lt;property name="wordInsertionProbability" value="${wordInsertionProbability}"/&gt; &lt;property name="languageWeight" value="${languageWeight}"/&gt; &lt;property name="unitManager" value="unitManager"/&gt; &lt;/component&gt; &lt;!-- ******************************************************** --&gt; &lt;!-- The Grammar configuration --&gt; &lt;!-- ******************************************************** --&gt; &lt;component name="jsgfGrammar" type="edu.cmu.sphinx.jsgf.JSGFGrammar"&gt; &lt;property name="dictionary" value="dictionary"/&gt; &lt;property name="grammarLocation" value="resource:/com/cmu/sphinx/"/&gt; &lt;property name="grammarName" value="hello"/&gt; &lt;property name="logMath" value="logMath"/&gt; &lt;/component&gt; &lt;!-- ******************************************************** --&gt; &lt;!-- The Dictionary configuration --&gt; &lt;!-- ******************************************************** --&gt; &lt;component name="dictionary" type="edu.cmu.sphinx.linguist.dictionary.FastDictionary"&gt; &lt;property name="dictionaryPath" value="resource:/edu/cmu/sphinx/model/acoustic/WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz/dict/cmudict.0.6d"/&gt; &lt;property name="fillerPath" value="resource:/edu/cmu/sphinx/model/acoustic/WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz/dict"/&gt; &lt;property name="addSilEndingPronunciation" value="false"/&gt; &lt;property name="allowMissingWords" value="false"/&gt; &lt;property name="unitManager" value="unitManager"/&gt; &lt;/component&gt; &lt;!-- ******************************************************** --&gt; &lt;!-- The acoustic model configuration --&gt; &lt;!-- ******************************************************** --&gt; &lt;component name="wsj" type="edu.cmu.sphinx.linguist.acoustic.tiedstate.TiedStateAcousticModel"&gt; &lt;property name="loader" value="wsjLoader"/&gt; &lt;property name="unitManager" value="unitManager"/&gt; &lt;/component&gt; &lt;component name="wsjLoader" type="edu.cmu.sphinx.linguist.acoustic.tiedstate.Sphinx3Loader"&gt; &lt;property name="logMath" value="logMath"/&gt; &lt;property name="unitManager" value="unitManager"/&gt; &lt;property name="location" value="resource:/edu/cmu/sphinx/model/acoustic/WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz"/&gt; &lt;property name="modelDefinition" value="etc/WSJ_clean_13dCep_16k_40mel_130Hz_6800Hz.4000.mdef"/&gt; &lt;property name="dataLocation" value="cd_continuous_8gau/"/&gt; &lt;/component&gt; &lt;!-- ******************************************************** --&gt; &lt;!-- The unit manager configuration --&gt; &lt;!-- ******************************************************** --&gt; &lt;component name="unitManager" type="edu.cmu.sphinx.linguist.acoustic.UnitManager"/&gt; &lt;!-- ******************************************************** --&gt; &lt;!-- The frontend configuration --&gt; &lt;!-- ******************************************************** --&gt; &lt;component name="frontEnd" type="edu.cmu.sphinx.frontend.FrontEnd"&gt; &lt;propertylist name="pipeline"&gt; &lt;item&gt;microphone &lt;/item&gt; &lt;item&gt;preemphasizer &lt;/item&gt; &lt;item&gt;windower &lt;/item&gt; &lt;item&gt;fft &lt;/item&gt; &lt;item&gt;melFilterBank &lt;/item&gt; &lt;item&gt;dct &lt;/item&gt; &lt;item&gt;liveCMN &lt;/item&gt; &lt;item&gt;featureExtraction &lt;/item&gt; &lt;/propertylist&gt; &lt;/component&gt; &lt;!-- ******************************************************** --&gt; &lt;!-- The live frontend configuration --&gt; &lt;!-- ******************************************************** --&gt; &lt;component name="epFrontEnd" type="edu.cmu.sphinx.frontend.FrontEnd"&gt; &lt;propertylist name="pipeline"&gt; &lt;item&gt;microphone &lt;/item&gt; &lt;item&gt;dataBlocker &lt;/item&gt; &lt;item&gt;speechClassifier &lt;/item&gt; &lt;item&gt;speechMarker &lt;/item&gt; &lt;item&gt;nonSpeechDataFilter &lt;/item&gt; &lt;item&gt;preemphasizer &lt;/item&gt; &lt;item&gt;windower &lt;/item&gt; &lt;item&gt;fft &lt;/item&gt; &lt;item&gt;melFilterBank &lt;/item&gt; &lt;item&gt;dct &lt;/item&gt; &lt;item&gt;liveCMN &lt;/item&gt; &lt;item&gt;featureExtraction &lt;/item&gt; &lt;/propertylist&gt; &lt;/component&gt; &lt;!-- ******************************************************** --&gt; &lt;!-- The frontend pipelines --&gt; &lt;!-- ******************************************************** --&gt; &lt;component name="dataBlocker" type="edu.cmu.sphinx.frontend.DataBlocker"&gt; &lt;!--&lt;property name="blockSizeMs" value="10"/&gt;--&gt; &lt;/component&gt; &lt;component name="speechClassifier" type="edu.cmu.sphinx.frontend.endpoint.SpeechClassifier"&gt; &lt;property name="threshold" value="13"/&gt; &lt;/component&gt; &lt;component name="nonSpeechDataFilter" type="edu.cmu.sphinx.frontend.endpoint.NonSpeechDataFilter"/&gt; &lt;component name="speechMarker" type="edu.cmu.sphinx.frontend.endpoint.SpeechMarker" &gt; &lt;property name="speechTrailer" value="50"/&gt; &lt;/component&gt; &lt;component name="preemphasizer" type="edu.cmu.sphinx.frontend.filter.Preemphasizer"/&gt; &lt;component name="windower" type="edu.cmu.sphinx.frontend.window.RaisedCosineWindower"&gt; &lt;/component&gt; &lt;component name="fft" type="edu.cmu.sphinx.frontend.transform.DiscreteFourierTransform"&gt; &lt;/component&gt; &lt;component name="melFilterBank" type="edu.cmu.sphinx.frontend.frequencywarp.MelFrequencyFilterBank"&gt; &lt;/component&gt; &lt;component name="dct" type="edu.cmu.sphinx.frontend.transform.DiscreteCosineTransform"/&gt; &lt;component name="liveCMN" type="edu.cmu.sphinx.frontend.feature.LiveCMN"/&gt; &lt;component name="featureExtraction" type="edu.cmu.sphinx.frontend.feature.DeltasFeatureExtractor"/&gt; &lt;component name="microphone" type="edu.cmu.sphinx.frontend.util.Microphone"&gt; &lt;property name="closeBetweenUtterances" value="false"/&gt; &lt;/component&gt; &lt;!-- ******************************************************* --&gt; &lt;!-- monitors --&gt; &lt;!-- ******************************************************* --&gt; &lt;component name="accuracyTracker" type="edu.cmu.sphinx.instrumentation.BestPathAccuracyTracker"&gt; &lt;property name="recognizer" value="${recognizer}"/&gt; &lt;property name="showAlignedResults" value="false"/&gt; &lt;property name="showRawResults" value="false"/&gt; &lt;/component&gt; &lt;component name="memoryTracker" type="edu.cmu.sphinx.instrumentation.MemoryTracker"&gt; &lt;property name="recognizer" value="${recognizer}"/&gt; &lt;property name="showSummary" value="false"/&gt; &lt;property name="showDetails" value="false"/&gt; &lt;/component&gt; &lt;component name="speedTracker" type="edu.cmu.sphinx.instrumentation.SpeedTracker"&gt; &lt;property name="recognizer" value="${recognizer}"/&gt; &lt;property name="frontend" value="${frontend}"/&gt; &lt;property name="showSummary" value="true"/&gt; &lt;property name="showDetails" value="false"/&gt; &lt;/component&gt; &lt;!-- ******************************************************* --&gt; &lt;!-- Miscellaneous components --&gt; &lt;!-- ******************************************************* --&gt; &lt;component name="logMath" type="edu.cmu.sphinx.util.LogMath"&gt; &lt;property name="logBase" value="1.0001"/&gt; &lt;property name="useAddTable" value="true"/&gt; &lt;/component&gt; &lt;/config&gt; </code></pre> <p><strong>Grammar</strong></p> <pre><code>#JSGF V1.0; /** * JSGF Grammar for Hello World example */ grammar hello; public &lt;greet&gt; = (Good morning | Hello) ( Bhiksha | Evandro | Paul | Philip | Rita | Will ); </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload