我目前正在尝试使我的java代码(使用eclipse)执行某些功能(如果说了某件事)。我正在使用Sphinx4库,这是我目前拥有的:
我想做的是在它说的那行:
IF (TRUE) someFunction();
Run Code Online (Sandbox Code Playgroud)
如果我的发言是Hello Computer,Hello Jarvis,Good Morning Computer或Good Morning Jarvis,则运行该功能。或者换句话说,如果语音与.gram文件中的“ public <greet>”行匹配,请运行该函数。更具体地说,如果我的讲话符合该语法规则,则返回“ greet”。对不起,如果这没有道理...
这是我的listener.java文件:
package speechRecognition;
import java.io.File;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
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 Listener {
public void someFunction(){
System.out.println("Did Something");
}
public static void main(String[] args) {
ConfigurationManager cm;
if (args.length > 0) { cm = new ConfigurationManager(args[0]);
} else { cm = new ConfigurationManager(Listener.class.getResource("configurations.config.xml")); }
Recognizer recognizer = (Recognizer) cm.lookup("recognizer");
recognizer.allocate();
Microphone microphone = (Microphone) cm.lookup("microphone"); …
Run Code Online (Sandbox Code Playgroud) 我有API Sphinx4的问题,我无法弄清楚为什么它不起作用.
我尝试写一个小类来捕获用户的声音并在文件上写下他的发言.
1)我在Eclispe上创建了一个新的java项目.
2)我创建了TranscriberDemo类.
3)我创建了一个文件夹"file".
4)我在文件夹"file"上复制文件夹"en-us"和文件"cmudict-en-us.dict","en-us.lm.dmp","10001-90210-01803.wav" .
5)我不使用maven,所以我只包含jar文件"sphinx4-core-1.0-SNAPSHOT.jar"和"sphinx4-data-1.0-SNAPSHOT.jar".
你可以在这里下载它们:
核心:https://1fichier.com/?f3y6vqupdr
数据:https://1fichier.com/?lpzz8jyerv
我知道源代码可用
这里:https://github.com/erka/sphinx-java-api
或者在这里:http://sourceforge.net/projects/cmusphinx/files/sphinx4
但我不使用maven所以我无法编译它们.
我的课:
import java.io.InputStream;
import edu.cmu.sphinx.api.Configuration;
import edu.cmu.sphinx.api.SpeechResult;
import edu.cmu.sphinx.api.StreamSpeechRecognizer;
import edu.cmu.sphinx.result.WordResult;
public class TranscriberDemo
{
public static void main(String[] args) throws Exception
{
System.out.println("Loading models...");
Configuration configuration = new Configuration();
// Load model from the jar
configuration.setAcousticModelPath("file:en-us");
configuration.setDictionaryPath("file:cmudict-en-us.dict");
configuration.setLanguageModelPath("file:en-us.lm.dmp");
StreamSpeechRecognizer recognizer = new StreamSpeechRecognizer(configuration);
InputStream stream = TranscriberDemo.class.getResourceAsStream("file:10001-90210-01803.wav");
stream.skip(44);
// Simple recognition …
Run Code Online (Sandbox Code Playgroud) java speech-recognition speech-to-text voice-recognition sphinx4
我正在尝试CMUSphinx,但我很难过.我已经在Eclipse中包含了jar core
和data
jar,我从这里下载了它
我试着像教程中提到的那样进行实时语音识别,但是当我尝试运行它时,控制台上充满了某些类似的错误The dictionary is missing a phonetic transcription for the word '....'
.
码:
import edu.cmu.sphinx.api.Configuration;
import edu.cmu.sphinx.api.LiveSpeechRecognizer;
import edu.cmu.sphinx.api.SpeechResult;
public class Hello {
public static void main(String[] args) throws Exception {
Configuration configuration = new Configuration();
configuration.setAcousticModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us");
configuration.setDictionaryPath("resource:/edu/cmu/sphinx/models/en-us/cmudict-en-us.dict");
configuration.setLanguageModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us.lm.bin");
LiveSpeechRecognizer recognizer = new LiveSpeechRecognizer(configuration);
while(true)
{
System.out.println("Start speaking...");
recognizer.startRecognition(true);
SpeechResult result = recognizer.getResult();
System.out.println("result: "+result.getHypothesis());
recognizer.stopRecognition();
}
}
}
Run Code Online (Sandbox Code Playgroud)
安慰:
23:15:07.552 INFO unitManager CI Unit: *+NSN+
23:15:07.556 INFO unitManager …
Run Code Online (Sandbox Code Playgroud) 目前,我们正在研究使用sphinx4进行语音识别.我们正在尝试为听写类型应用程序实现良好的响应.输入是一个wav文件,我们希望转录它.我查看了Sphinx4提供的LatticeDemo和Transcriber演示.当我使用相同的配置时,响应非常差.我试图调整配置文件,但它根本无法识别单词.提供的转录器演示是为数字,我修改了配置文件以理解单词.但我不确定我是否遗漏了一些东西.我已经附加了配置文件.请提出可以进行的任何改进.
<config>
<!-- ******************************************************** -->
<!-- frequently tuned properties -->
<!-- ******************************************************** -->
<property name="absoluteBeamWidth" value="500"/>
<property name="relativeBeamWidth" value="1E-60"/>
<property name="absoluteWordBeamWidth" value="20"/>
<property name="relativeWordBeamWidth" value="1E-40"/>
<property name="wordInsertionProbability" value="1E-16"/>
<property name="languageWeight" value="7.0"/>
<property name="silenceInsertionProbability" value=".1"/>
<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>
<item>recognizerMonitor </item>
</propertylist>
</component>
<!-- ******************************************************** -->
<!-- The Decoder configuration --> …
Run Code Online (Sandbox Code Playgroud) 运行流或实时识别器时如何禁用红色 INFO 消息?我正在使用配置,而不是 ConfigurationManager 否我无法修改 default.config.xml