0

我试图运行 Sphinx 的 HelloWOrd 程序,它需要一个 .jar 文件才能工作。

我试图在类路径中添加一个 jar 文件,但我遇到了一些错误

竞争.util 不存在导入 edu.cmu.sphinx.frontend.util.Microphone;^ home/karen/workspace/hola/src/hola/HelloWorld.java:4: 包 edu.cmu.sphinx.recognizer 不存在导入 edu.cmu.sphinx.recognizer.Recognizer; ^ home/karen/workspace/hola/src/hola/HelloWorld.java:5: 包 edu.cmu.sphinx.result 不存在 import edu.cmu.sphinx.result.Result; ^ home/karen/workspace/hola/src/hola/HelloWorld.java:6: 包 edu.cmu.sphinx.util.props 不存在导入 edu.cmu.sphinx.util.props.ConfigurationManager;^ home/karen/workspace/hola/src/hola/HelloWorld.java:11:找不到符号符号:类 ConfigurationManager 位置:类 hola。HelloWorld 配置管理器厘米;^ home/karen/workspace/hola/src/hola/HelloWorld.java:14:找不到符号符号:类 ConfigurationManager 位置:类 hola.HelloWorld cm = new ConfigurationManager(args[0]); ^ home/karen/workspace/hola/src/hola/HelloWorld.java:16:找不到符号符号:类 ConfigurationManager 位置:类 hola.HelloWorld cm = new ConfigurationManager(HelloWorld.class.getResource("helloworld.config.xml" )); ^ home/karen/workspace/hola/src/hola/HelloWorld.java:19:找不到符号符号:类识别器位置:类hola.HelloWorld识别器识别器=(识别器)cm.lookup(“识别器”);^ home/karen/workspace/hola/src/hola/HelloWorld.java:19:找不到符号符号:类识别器位置:类hola.HelloWorld识别器识别器=(识别器)cm.lookup(“识别器”);^ home/karen/workspace/hola/src/hola/HelloWorld.java:23:找不到符号符号:类麦克风位置:类hola.HelloWorld麦克风麦克风=(麦克风)cm.lookup(“麦克风”);^ home/karen/workspace/hola/src/hola/HelloWorld.java:23:找不到符号符号:类麦克风位置:类hola.HelloWorld麦克风麦克风=(麦克风)cm.lookup(“麦克风”);^ 家/卡伦/工作区/hola/src/hola/HelloWorld。java:36:找不到符号符号:类结果位置:类hola.HelloWorld结果结果=recogner.recognize();^ 12 个错误

我的问题是:我必须添加所有需要我的项目的包还是只添加 jar 文件和主类?

请建议!

这是 HelloWord 程序:

包好啦;

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 HelloWorld {
    public static void main(String [] args){
        System.out.println("VIcente y karen");
        ConfigurationManager cm;
        System.out.println("Karen entiende esto");
                if (args.length > 0) {
                    cm = new ConfigurationManager(args[0]);
                } 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 programm 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) ( Bhiksha | Evandro | Paul | Philip | Rita | Will )");

                // loop the recognition until the programm 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");
                    }
                }
    }

}

4

1 回答 1

0

很可能您没有在程序中导入正确的类或包(包名称是否正确?似乎编译器无法从前几行错误行中识别它们)。

即使您的类路径中有包含类的 JAR 文件,您仍然必须将它们导入您的特定类中,以便编译器知道您需要哪些外部类。

您还必须为内置的 Java 类(java.util.ArrayList例如)执行此操作。如果您提供您的程序,我们将能够更好地帮助您。

如果您拥有的 Jar 文件还依赖于其他库,那么也必须提供它们。

使用 zip 程序(例如 winrar)打开您的 JAR 文件并检查您正在导入的包是否存在。您应该会看到一个名为 edu 的文件夹,其中包含更多文件夹 cmu/sphinx/frontend/util,然后是 Microphone.class。同样对于带有文件 Recognizer.class 的 edu.cmu.sphinx.recognizer。

如果您使用的是 IDE(例如 Eclipse、Netbeans 或 IntelliJ IDEA),请确保将 jar 文件添加到项目库列表中。

对于 Eclipse,您必须按照此处的程序进行操作

于 2012-11-11T00:54:30.883 回答