【问题标题】:sphinx grammarLocation can't locate resourcesphinx 语法位置找不到资源
【发布时间】:2013-04-01 08:18:10
【问题描述】:

使用 ant 构建 JSGFDemo 时,一切正常。运行 JSGFDemo.jar 构建工件没有任何错误。但是,当使用 eclipse 中导入的源文件夹,并将 lib/ 目录中的 jars 添加到构建路径时,程序错误并显示以下消息:

Problem configuring recognizerProperty exception component:'jsgfGrammar' property:'grammarLocation' - Can't locate resource:/edu/cmu/sphinx/demo/jsapi/jsgf/
edu.cmu.sphinx.util.props.InternalConfigurationException: Can't locate resource:/edu/cmu/sphinx/demo/jsapi/jsgf/

由于某种原因,在 ConfigurationManagerUtils.resourceToURL(String location) 中对 ConfigurationManagerUtils.class.getResource(resourceName); 的调用似乎会为 location = "resource:/edu/cmu/sphinx/demo/jsapi/jsgf/" 返回不同的结果。 (null,或有效的 URL 对象)

作为旁注,我认为 getResource("/path/to/a/dir/not/file/");解析为 jar 内的路径时无效。

我已经为此苦苦挣扎了一段时间,看不出我做错了什么。

【问题讨论】:

  • 缺少资源的唯一原因是缺少资源。此错误意味着您的类路径中没有相应的路径。可能您对包的命名不同,并且没有更改 config.xml 文件中的路径。您需要提供更多关于您的项目布局、项目的文件结构等信息,以便获得更有意义的答案。
  • @NikolayShmyrev 据我所知,这些罐子具有相同的文件结构。如果需要,请查看它们:docs.google.com/file/d/0B4ayCXFZPsx8aU5DeGRXb1VpNm8/edit 但是,如果我附加某些特定文件的文件名,则不会出现错误,例如资源:/edu/cmu/sphinx/demo/jsapi/jsgf/commands.gram,但显然这在 sphinx 尝试引用资源时不起作用:/edu/cmu/sphinx/demo/jsapi/jsgf/command.gram/command.gram

标签: build cmusphinx sphinx4


【解决方案1】:

我相信已经找到了问题所在。默认情况下,Eclipse 似乎以不同的方式构建 jar,省略了目录条目。

使用 unzip -v 调查档案会发现一些有趣的细节。

使用 Ant 构建的文件:

Archive:  JSGFDemo.jar
 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
       0  Stored        0   0% 2013-03-31 03:13 00000000  META-INF/
     284  Defl:N      210  26% 2013-03-31 03:13 ddd976ff  META-INF/MANIFEST.MF
       0  Stored        0   0% 2013-03-31 03:08 00000000  edu/
       0  Stored        0   0% 2013-03-31 03:08 00000000  edu/cmu/
       0  Stored        0   0% 2013-03-31 03:13 00000000  edu/cmu/sphinx/
       0  Stored        0   0% 2013-03-31 03:12 00000000  edu/cmu/sphinx/demo/
       0  Stored        0   0% 2013-03-31 03:13 00000000  edu/cmu/sphinx/demo/jsapi/
       0  Stored        0   0% 2013-03-31 03:13 00000000  edu/cmu/sphinx/demo/jsapi/jsgf/
    7391  Defl:N     3501  53% 2013-03-31 03:13 938438dd  edu/cmu/sphinx/demo/jsapi/jsgf/JSGFDemo.class
     798  Defl:N      326  59% 2013-03-31 03:13 647722fc  edu/cmu/sphinx/demo/jsapi/jsgf/books.gram
     204  Defl:N      140  31% 2013-03-31 03:13 789bb514  edu/cmu/sphinx/demo/jsapi/jsgf/commands.gram
    9295  Defl:N     1500  84% 2013-03-31 03:13 3b519044  edu/cmu/sphinx/demo/jsapi/jsgf/jsgf.config.xml
    1589  Defl:N      473  70% 2013-03-31 03:13 60075af0  edu/cmu/sphinx/demo/jsapi/jsgf/movies.gram
     299  Defl:N      195  35% 2013-03-31 03:13 42e94d32  edu/cmu/sphinx/demo/jsapi/jsgf/music.gram
     666  Defl:N      288  57% 2013-03-31 03:13 ca4b72f9  edu/cmu/sphinx/demo/jsapi/jsgf/news.gram
--------          -------  ---                            -------
   20526             6633  68%                            15 files

使用eclipse导出的jar:

Archive:  JSGFDemo-eclipse.jar
 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
     180  Defl:N      134  26% 2013-03-31 23:35 1e681d3b  META-INF/MANIFEST.MF
    7338  Defl:N     3537  52% 2013-03-31 23:29 ed8c4c3f  edu/cmu/sphinx/demo/jsapi/jsgf/JSGFDemo.class
     798  Defl:N      326  59% 2013-03-31 13:21 647722fc  edu/cmu/sphinx/demo/jsapi/jsgf/books.gram
     204  Defl:N      140  31% 2013-03-31 13:21 789bb514  edu/cmu/sphinx/demo/jsapi/jsgf/commands.gram
    9295  Defl:N     1500  84% 2013-03-31 13:21 3b519044  edu/cmu/sphinx/demo/jsapi/jsgf/jsgf.config.xml
    1589  Defl:N      473  70% 2013-03-31 13:21 60075af0  edu/cmu/sphinx/demo/jsapi/jsgf/movies.gram
     299  Defl:N      195  35% 2013-03-31 13:21 42e94d32  edu/cmu/sphinx/demo/jsapi/jsgf/music.gram
     666  Defl:N      288  57% 2013-03-31 13:21 ca4b72f9  edu/cmu/sphinx/demo/jsapi/jsgf/news.gram
--------          -------  ---                            -------
   20369             6593  68%                            8 files

在快速谷歌之后,我在 Eclipse 的 jar 导出向导中找到了“添加目录条目”选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-12
    • 2015-01-28
    • 2016-10-31
    • 2020-01-17
    • 2012-12-07
    • 2014-07-29
    • 2015-05-03
    • 2013-01-03
    相关资源
    最近更新 更多