Speech Recognition Java /Processing

Willkommen in der Transport Fever Community

Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.

 

Die Registrierung und Nutzung ist selbstverständlich kostenlos.

 

Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.

Das Team der Transport-Fever Community


  • Hallo Ihr lieben, da ich weiss dass hier im Forum einige unterwegs sind, die sich etwas mit Programmiersprachen auskennen, möchte ich fragen ob mir jemand evt bezüglich eines Studiumsprojektes helfen kann.


    Ziel ist es eine Spracherkennung über Google Chrome in Processing 3.1 zu erzielen. Der ganze Code basiert auf Java.


    Ich habe bereits einige Recherche getrieben und bin auf folgende Quellen gestossen:
    http://florianschulz.info/stt/
    Diese Library möchte ich nutzen um die Spracherkennung zum laufen zu kriegen. Ich habe diese und auch die notwendigen Library bereits installiert, jedoch funktioniert dieser Code:


    bei mir nicht. Er schmeisst bei mir folgende Fehlermeldungen hin:



    The class "WebSocketP5" does not exist The class "WebSocketP5" does not exist





    Da ich mich mit classes gar nicht auskenne in Java wäre ich sehr dankbar wenn jemand mir schritt für schritt erläutern könnte, wie ich diesen Code zum laufen Krieg und wie und wo ich muthesius.net und org.webbitserver nutzen kann. Auch habe ich noch nicht verstanden was ich mit dem 2ten angegebenen html code anfangen soll:


    Diese Anfrage richtet sich selbstverständlich nur an jene welche bereits Erfahrung mit Java und oder html besitzen, und vorzugsweise auch bereits mit Processing gearbeitet haben.



    Für Hilfe bin ich sehr dankbar


    Viele Liebe Grüsse

  • Die beiden Fehlermeldungen kommen sicher aus den Zeilen 3 und 5. Deine imports scheinen nicht zu funktionieren, damit kennt er auch den Krams da nicht. Leider bin ich auch etwas aus Java raus ^^ Ich glaube import muthesius.net.*; hieß soviel wie "importiere alle (das Sternchen) Klassen aus dem "Pfad" muthesius->net". Und dieser "Pfad" könnte eine Klassenhirarchie darstellen oder so. Junge junge, versumpft mal mal im Modding, bekommt man nix mehr hin xD


    Falls nich wer schneller ist, versuch ich mich mal wieder bissl einzulesen.


    Edit @SwissCH: http://www.dpunkt.de/java/Die_…mmierung_mit_Java/31.html Ahja, das waren Pakete, also .pkg Dateien oder sowas mit Klassendefinitionen darin, wenn ich mich nicht täusche. Jetzt bleibt nach diesem Artikel bei mir die Frage zurück, wo diese pkg Dinger hinmüssen ^^ Da scheint mir diese Seite recht vierlversprechend: http://www.fredosaurus.com/not…uage/10basics/import.html *les*

  • @SwissCH, hast Du dir auch die WebSocketP5-Bibliothek geholt? (Link: https://github.com/muthesius/WebSocketP5)
    Oder nur die stt.jar aus deinem ersten Post?


    Habe in die stt.jar mal kurz reingschaut. Wenn ich es nicht übersehen habe, sind die WebSocketP5 dort nicht enthalten...


    Edith klugscheißt:
    Ein Java-Package ist das selbige eine, was in anderen Programmiersprachen ein Namespace iss bzw. was auch ein UML-Package iss.
    Hat mit 'ner bestimmten Windows-File-Extension nüscht zu tun.

  • Bei der Extension gings einzig und allein darum, dass man den Krempel auch packen lassen kann und DIESE Dateien haben dann eben wohl dieses Format auf das ich nich mehr kam. Aber völlig falsch lag ich nicht wies schien ^^


    Edit: Und in deinem Post bestätigst du ja nur das jar Format. Keiner wird einzelne Verzeichnisse ins Netz stellen und um nix anderes ging es mir (wo muss dieses "Package" -> jar hin usw usf).

  • Jo, JARs sind einfache ZIP-Archive mit den Verzeichnissen (entspr. einem Java-Package) und Kompilaten der Java-Klassen und noch ein bisschen mehr - je nach Art des Java-Archivs.
    Erspart das Handieren mit dutzenden Verzeichnissen und noch mehr Dateien (xcopy).


    Wo das Paket liegt, ist egal - solange es im "classpath" angegeben ist, damit Compiler und Laufzeit das Ding finden.


    Java-IDEs vereinfachen das, in dem ein Verweis auf ein JAR-Archiv per Dialog zum Projekt hinzugefügt werden kann.
    Um den Klassenpfad kümmert sich dann die IDE...

  • Processing scheint da eh ein wenig anders zu sein, nutzt keine jars sondern entpackte zips X/


    So, da Swiss jetzt in Steam offline ist schreib ichs mal hier:

    • Java Programm starten (run drücken in Processing)
    • HTML öffnen oder einfach neuladen (am einfachsten Rechtsklick und öffnen mit Chrome wählen [k.A. wie das auf Mac heisst])
    • In der Console von Processing müsste dann stehen "A client joined"
    • sollte laufen

    Das der Parameter con nicht verwendet wird ist schon ok so, kannst du ignorieren


    @Tom gelernter Programmierer, Hobby oder bist du einfach allwissend? ;)

  • Wo das Paket liegt, ist egal - solange es im "classpath" angegeben ist, damit Compiler und Laufzeit das Ding finden.


    Java-IDEs vereinfachen das, in dem ein Verweis auf ein JAR-Archiv per Dialog zum Projekt hinzugefügt werden kann.
    Um den Klassenpfad kümmert sich dann die IDE...

    Genau sowas hab ich mir gedacht, danke für die Ausführung :)

  • Jop Danke an alle die mir geholfen haben. Es funktioniert nun soweit über den local host welcher ich mit MAMP gemacht habe. Nun habe ich aber das Problem, dass ich gerne visuelle änderungen an meinem Sketch haben möchte, und diese funktionieren leider nicht so richtig.


    Jedes mal wenn ich das Wort Hallo sagen (was ja background zu weiss stellen sollte, stürtzt processing ab mit der aussage null :)

  • Funktioniert println()? Wo schreibt das hin? Funktioniert background(), wenn Du es von anderer Stelle aus aufrufst?

    Des weiteren bin ich der Meinung, dass Rangieren ein sinnvolles Feature dieses Spiels wäre.

  • Du weist der Instanzvariablen "msg", deklariert in Zeile 1, nie einen Wert zu.
    In der Methode "draw" (Zeile 12) wird diese genutzt, was eine Nullpointerexception verursacht.
    Allerdings sehe ich wiederum keinen Aufruf dieser Methode "draw" in dem gezeigten Code.


    Bleibt die Methode "websocketOnMesssage". Die hat einen Parameter, ebenfalls "msg" bezeichnet. Dieser ist nur innerhalt der websocketOnMessage-Methode gültig.
    Die Methode wird wohl von deinem Spracherkennungsklapperatismus ausgelößt und mit Werten für "con" und "msg" versorgt.
    Stellt sich die Frage, ob diese Rückruffunktion auch aufgerufen wird, wenn es keine Nachricht gibt - e.g msg = nüscht/null.


    Wenn Du mal folgende Zeilen in websocketOnMessage verwendest:


    Code
    void websocketOnMessage(WebSocketConnection con, String msg) {
        if (msg == null) {
           println("nix!");
           return;
        }
        ... Dein Code...

    kommen wir vielleicht weiter...

  • Wann schmier background() ab? Und was tut es überhaupt? Eventuell macht es ja etwas ganz anderes, als Du denkst.

    Des weiteren bin ich der Meinung, dass Rangieren ein sinnvolles Feature dieses Spiels wäre.

BlueBrixx