使用sphinx 4的Java语音文本 [英] Java speech to text using sphinx 4
本文介绍了使用sphinx 4的Java语音文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在使用Sphinx库运行程序时遇到问题,错误是:
I am facing problems in running a program using Sphinx library, the error is:
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)
我的hello world文件是
My hello world file is
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配置文件
Hello world config file
<!--
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>
Grammar file
Grammar file
#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 i need help , its my project
Plz i need help , its my project
推荐答案
{absoluteBeamWidth}\" />
<property name=\"relativeBeamWidth\" value=\"
{absoluteBeamWidth}" /> <property name="relativeBeamWidth" value="
{relativeBeamWidth}\" />
</compon ent>
<component name=\"trivialPruner\">
type=\"edu.cmu.sphinx.decoder.pruner.SimplePruner\"/>
<component name=\"threadedScorer\">
type=\"edu.cmu.sphinx.decoder.scorer.ThreadedAcousticScorer\">
<property name=\"frontend\" 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=\"
{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="
这篇关于使用sphinx 4的Java语音文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文