O
o0-Alex-0o
Gast
Hallo,
ich versuche gerade den Beispielcode von dieser Seite zu implementieren. Er soll es ermöglichen einige vordefinierte Wörter per Spracherkennung zu erkennen und auszugeben.
Hier zur besseren Übersicht nochmal der Quelltext, so wie ich ihn implementiert habe (er entspricht dem Original, bis auf einen try-catch-Block um rec.deallocate(); und dem Namen der von mir erstellten JSGF-Datei im Konstruktor des FileReaders:
Das ganze lässt sich problemlos compilieren, jedoch erhalte ich beim Ausführen eine NullPointerException bei rec.allocate();
Hat jemand eine Idee, woran das liegen könnte? Ich habe mich bis jetzt noch nie mit Spracherkennung oder ähnlichem in Java befasst und kenne mich daher auf diesem Gebiet nicht aus. Für Ratschläge und Tipps wäre ich sehr dankbar
Gruß Alex
ich versuche gerade den Beispielcode von dieser Seite zu implementieren. Er soll es ermöglichen einige vordefinierte Wörter per Spracherkennung zu erkennen und auszugeben.
Hier zur besseren Übersicht nochmal der Quelltext, so wie ich ihn implementiert habe (er entspricht dem Original, bis auf einen try-catch-Block um rec.deallocate(); und dem Namen der von mir erstellten JSGF-Datei im Konstruktor des FileReaders:
Java:
import javax.speech.*;
import javax.speech.recognition.*;
import java.io.FileReader;
import java.util.Locale;
public class HelloWorld extends ResultAdapter {
static Recognizer rec;
// Receives RESULT_ACCEPTED event: print it, clean up, exit
public void resultAccepted(ResultEvent e) {
Result r = (Result)(e.getSource());
ResultToken tokens[] = r.getBestTokens();
for (int i = 0; i < tokens.length; i++)
System.out.print(tokens[i].getSpokenText() + " ");
System.out.println();
// Deallocate the recognizer and exit
try {
rec.deallocate();
} catch (Exception e2) {
e2.printStackTrace();
}
System.exit(0);
}
public static void main(String args[]) {
try {
// Create a recognizer that supports English.
rec = Central.createRecognizer(
new EngineModeDesc(Locale.ENGLISH));
// Start up the recognizer
rec.allocate();
// Load the grammar from a file, and enable it
FileReader reader = new FileReader("grammar.jsgf");
RuleGrammar gram = rec.loadJSGF(reader);
gram.setEnabled(true);
// Add the listener to get results
rec.addResultListener(new HelloWorld());
// Commit the grammar
rec.commitChanges();
// Request focus and start listening
rec.requestFocus();
rec.resume();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Das ganze lässt sich problemlos compilieren, jedoch erhalte ich beim Ausführen eine NullPointerException bei rec.allocate();
Hat jemand eine Idee, woran das liegen könnte? Ich habe mich bis jetzt noch nie mit Spracherkennung oder ähnlichem in Java befasst und kenne mich daher auf diesem Gebiet nicht aus. Für Ratschläge und Tipps wäre ich sehr dankbar
Gruß Alex