100 likes | 200 Views
Die Anbindung. Wortschatz. eingeschränkt. Akustisches Modell. Speech2Chess. Sphinx. Syntax. Schachprogramm. Logik. Xboard Engine. Dreamchess. Sphinx. Java-Library Einfache Einbindung in Java Applikationen Macht alles von Aufnahme durch Mikrophone Anwendung der Sprachmodelle
E N D
Die Anbindung Wortschatz eingeschränkt Akustisches Modell Speech2Chess Sphinx Syntax Schachprogramm Logik Xboard Engine Dreamchess
Sphinx • Java-Library • Einfache Einbindung in Java Applikationen • Macht alles von • Aufnahme durch Mikrophone • Anwendung der Sprachmodelle • Entfernen von Füllwörtern (z.B. nun, gar, also) • Rückgabe des erkannten Textes mit Bewertung
Sphinx • Initialisierung ConfigurationManagercm = newConfigurationManager(„chess.config.xml“); Recognizerrecognizer = (Recognizer) cm.lookup("recognizer"); Microphone microphone = (Microphone) cm.lookup("microphone"); • Erkennung microphone.startRecording() Resultresult = recognizer.recognize(); String resultText = result.getBestFinalResultNoFiller();
Eingeschränkte Wortschatz • Felder • A1 – H8 • Figuren • Bauer • Turm • … • Kontrollbefehle • Ja, Nein • Spiel beenden • usw.
Das Schachprogramm - Dreamchess • OpenSource / GPL • Programmiersprache: C • Ursprung: Linux • Grafische Library: SDL -> 3D OpenGL • Kompilierbar unter Win mit MinGW • Lauffähig unter Win, Linux, Mac • Schach Engine: XboardProtokoll • Oberfläche: Komplett anpassbar
Das Schachprogramm - Dreamchess • Dreamchess
Speech2Chess • Programmiersprache: Java • Bindet Sphinx ein • Folgert Zug aus erkannten Satz • Überprüft Logik des erkannten Zugs • Baut Verbindung zum Schachprogramm auf • Kommunikation über TCP Sockets (WinSockets / Unix Sockets) • Steuert Spielverlauf
Ablauf • Sphinx: Bewege Bauer von a2 nach a4 • SyntaxParser: src=a2, dst=a4, srcOpt=bauer • if not srcanddst: • {…} • ifsrcanddst: • Schach Logik klärt ob gültiger Zug • if True: • Führe Zug aus
Ablauf • Sphinx: Bewege Turm nach a4 • SyntaxParser: src=?, dst=a4, srcOpt=bauer • if not srcanddst: • Versuche Feld über optionale Informationen zu finden. • Z.b. Wenn nur noch ein Turm vorhanden ist • ifsrcanddst: • {…}