我目前正在尝试使我的java代码(使用eclipse)执行某些功能(如果说了某件事)。我正在使用Sphinx4库,这是我目前拥有的:
我想做的是在它说的那行:
IF (TRUE) someFunction();
如果我的发言是Hello Computer,Hello Jarvis,Good Morning Computer或Good Morning
Jarvis,则运行该功能。或者换句话说,如果语音与.gram文件中的“ public
这是我的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");
if (!microphone.startRecording()) {
System.out.println("Cannot start microphone.");
recognizer.deallocate();
System.exit(1);
}
while (true) {
Result result = recognizer.recognize();
if (result != null) {
String resultText = result.getBestFinalResultNoFiller();
if (resultText != "" && resultText != null) {
IF (TRUE) someFunction();
}
} else {
System.out.println("I can't hear what you said.\n");
}
}
}
}
这是我的dictionary.gram:
#JSGF V1.0;
grammar dictionary;
public <greet> = (Hello | Good Morning) (Jarvis | Computer);
您可以这样做,但是唯一的事情是您需要在sphinx4中启用OOG发现。基本上以任何sphinx4语法示例为例,并根据此wiki页面在配置文件中启用OOG:
<component name="flatLinguist"
type="edu.cmu.sphinx.linguist.flat.FlatLinguist">
....
<property name="addOutOfGrammarBranch" value="true"/>
<property name="outOfGrammarProbability" value="1E-20"/>
<property name="phoneInsertionProbability" value="1E-10"/>
<property name="phoneLoopAcousticModel" value="wsj"/>
...
</component>
之后,<unk>
如果只记录了随机单词,它将返回您的单词,如果记录了您语法中的单词,它将返回您的关键短语。
您需要调整outOfGrammar概率以获得可靠的检测。有关更多详细信息,请参见
http://cmusphinx.sourceforge.net/wiki/sphinx4:rejectionhandling
问题内容: 是一样的“和”,是一样的PHP“或”? 我已经进行了一些测试,看来它们的行为相同。有什么区别吗? 如果不是,是否还有其他具有单词等效功能的PHP标志,您认为它使代码更易于阅读吗? 问题答案: 并且具有 更高的 优先级比和。更准确地说,它的优先级比赋值运算符()的优先级更高,而和则更低。
下面是 Java 里面的关键字。不能使用以下任一作为您的程序标识符。关键字 const 和 goto 语句被保留,即使他们目前尚未使用。true, false, 和 null 似乎是关键字,但它们实际上是字面值;你不能使用它们作为你的程序标识符。 abstract continue for new switch assert*** default goto*
关键字是不能做为变量的。Lua 的关键字不多,就以下几个: and break do else elseif end false for function if in local nil not or repeat return then true until while
模型 21.1 model 视图 21.1 view 处理器方法 21.1 handler method 处理器 21.1 handler 控制器 21.1 controller 命令对象 21.1 command object 表单返回对象 21.1 form-backing object 响应 21.1 response 视图解析器 21.1 view resolver 验证器 21.1.1
智能合约使用的语言为golang定制版,屏蔽了部分golang关键字。 package、import: 谨慎使用,所有的import的模块都只能是链上的模块,不支持引用外部模块,会校验import的模块是否在链上。代码打包成交易时,会自动删除package和import,并将import按照规则转化为数组,最终的交易里是不允许包含这两个关键字的。 go/select: 由于该操作会出现并发,导致数
关键字,C的关键字共有32个 数据类型关键字(12个) char,short,int,long,float,double,unsigned,signed,struct,union,enum,void 控制语句关键字(12个) if,else,switch,case,default,for,do,while,break,continue,goto,return 存储关键字(5个) auto,exte