2013-04-15 25 views
0

我一直在Java中制作一个语音识别程序,以了解它是如何工作的。直到一天前,这一切都运转良好。我不知道发生了什么,因为我没有更改我的代码中的任何内容。狮身人面像词法错误解析语法文件

因为它正在出现一个词法错误,我想我只需要粘贴我的语法文件。

controls.gram:

#JSGF V1.0; 

grammar controls; 

public <intro> = "Computer"; 

public <statement> = <open> | <ignore>; 

public <open> = "open" ("chrome" | "word"); 

public <navigate> = "navigate" "to" (("face" book") | ("stack" "overflow")); 

public <ignore> = ("don't" "worry") | ("never" "mind"); 

public <thanks> = "thanks"; 

错误日志:

Exception in thread "main" edu.cmu.sphinx.jsgf.parser.TokenMgrError: Lexical error at line 11, column 77. Encountered: "\r" (13), after : "\"));" 
at edu.cmu.sphinx.jsgf.parser.JSGFParserTokenManager.getNextToken(JSGFParserTokenManager.java:1197) 
at edu.cmu.sphinx.jsgf.parser.JSGFParser.jj_ntk(JSGFParser.java:1012) 
at edu.cmu.sphinx.jsgf.parser.JSGFParser.item(JSGFParser.java:643) 
at edu.cmu.sphinx.jsgf.parser.JSGFParser.sequence(JSGFParser.java:568) 
at edu.cmu.sphinx.jsgf.parser.JSGFParser.alternatives(JSGFParser.java:484) 
at edu.cmu.sphinx.jsgf.parser.JSGFParser.item(JSGFParser.java:676) 
at edu.cmu.sphinx.jsgf.parser.JSGFParser.sequence(JSGFParser.java:568) 
at edu.cmu.sphinx.jsgf.parser.JSGFParser.alternatives(JSGFParser.java:484) 
at edu.cmu.sphinx.jsgf.parser.JSGFParser.item(JSGFParser.java:676) 
at edu.cmu.sphinx.jsgf.parser.JSGFParser.sequence(JSGFParser.java:568) 
at edu.cmu.sphinx.jsgf.parser.JSGFParser.alternatives(JSGFParser.java:484) 
at edu.cmu.sphinx.jsgf.parser.JSGFParser.RuleDeclaration(JSGFParser.java:450) 
at edu.cmu.sphinx.jsgf.parser.JSGFParser.GrammarUnit(JSGFParser.java:313) 
at edu.cmu.sphinx.jsgf.parser.JSGFParser.newGrammarFromJSGF(JSGFParser.java:128) 
at edu.cmu.sphinx.jsgf.parser.JSGFParser.newGrammarFromJSGF(JSGFParser.java:241) 
at edu.cmu.sphinx.jsgf.JSGFGrammar.loadNamedGrammar(JSGFGrammar.java:697) 
at edu.cmu.sphinx.jsgf.JSGFGrammar.commitChanges(JSGFGrammar.java:613) 
at edu.cmu.sphinx.jsgf.JSGFGrammar.createGrammar(JSGFGrammar.java:300) 
at edu.cmu.sphinx.linguist.language.grammar.Grammar.allocate(Grammar.java:116) 
at edu.cmu.sphinx.linguist.flat.FlatLinguist.allocate(FlatLinguist.java:300) 
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 [MY PACKAGE].Utils.<init>(Utils.java:23) 
at [MY PACKAGE].Launcher.<clinit>(Launcher.java:8) 

我曾尝试删除所有空格字符,在ANSI编码它,UTF(有或没有BOM)。所有这些都无济于事...

任何人都可以帮我吗?

+0

您缺少一个报价: public =“navigate”“to”((“face”'''book“)|(”stack“”overflow“)); –

+0

BOOYAH!Thanks!: D Blimey我一直在绞尽脑汁想这么久,如果你回答这个问题,我会给你一些代表 – Kezz101

+0

句法高亮实际上在这里给出了答案...... :) – Dariusz

回答

3

你有一个失踪报价:

公共= “导航”, “为”(( “脸” "书 “)|(” 堆栈”, “溢出”));

这应该修复它:-)