Ankündigung

Einklappen
Keine Ankündigung bisher.

Siri-Proxy - wer hat know how und will mitbasteln?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • ThorstenGehrig
    antwortet
    Danke. Die Umlaute laufen mittlerweile auch!
    Kriege ich noch ein Tip für die variablen?

    So langsamm fange ich auch mal an mir über ein Konzept gedanken zu machen.
    Rollladen oder Licht sind ja ganz nett - vorallem zum Zeigen.
    Aber in einem richtigen Smarthome schaltet man ja kaum noch Licht und die Rollladen fahren auch zu 99% automatisch.
    Die Frage ist jetzt: welche Befehle machen überhaupt sinn? Was kann/will ich von der manuellen Visu-Bedienung auf die Siri-Bedienung übertragen?
    Werde mir da wohl mal eine Ideensammlung machen müssen...
    Ist schon jemand gedanklich beim sinnvollen/strukturierten Voice-Command-Design?

    Gruß
    Thorsten

    Einen Kommentar schreiben:


  • RalMue
    antwortet
    Zitat von ThorstenGehrig Beitrag anzeigen
    Hi
    Leider kann ich öffnen / schließen nicht abfragen - wegen den öüäß.
    Mal schauen ob das mit den richtigen "locales" besser wird...
    Du musst im File siriproxy-example.rb oder wo du auch immer rumprogrammierst

    Code:
    #Encoding: UTF-8
    in die erste Zeile eintragen, dann gehen Umlaute.

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    Hi
    nö - ipv4 sollte schon gehen. hast du einen dhcp im netz?
    evtl. mit "ifup eth0" oder "dhclient" nochmal anstoßen?

    @Ruby-Spezialisten:
    Wie kriege ich denn in diesem Konstrukt die Variable "number" richtig gefüllt? Ich will "number" ja mit dem Wert der 3. Klammer gefüllt haben...
    Code:
      listen_for /(Rollladen|Jalousie) im Wohnzimmer (auf) ([0-9,]*[0-9])/i do |number|
    Gruß
    Thorsten

    Einen Kommentar schreiben:


  • marlan99
    antwortet
    Hallo Thorsten,

    Keyboard ändern als root mit: dpkg-reconfigure keyboard-configuration
    Dann wird man geführt. Nach dem reboot ist das neue layout aktiv

    Netzwerk mit bridging habe ich keine ip erhalten. Hab noch nicht im detail geschaut, evtl ipv6 aktiv? Ich hab nur ipv4

    Gruss
    Marcel

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    Hi
    was auch schonmal geht ist das:
    Code:
      listen_for /(Tor|Garage|Garagentor) (auf|aufmachen|oeffnen|hoch)/i do
        say "Garage wird geoeffnet!" #say something to the user!
        #wasGood = system( "groupswrite ip:wiregate 1/1/41 1" )
        request_completed #always complete your request! Otherwise the phone will "spin" at the user!
      end
    
      listen_for /(Tor|Garage|Garagentor) (runter|zu|schliessen|zumachen)/i do
        say "Garage wird geschlossen!" #say something to the user!
        #wasGood = system( "groupswrite ip:wiregate 1/1/41 1" )
        request_completed #always complete your request! Otherwise the phone will "spin" at the user!
      end
    Leider kann ich öffnen / schließen nicht abfragen - wegen den öüäß.
    Mal schauen ob das mit den richtigen "locales" besser wird...


    Gruß
    Thorsten

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    Hi Marcel,

    Zitat von marlan99 Beitrag anzeigen
    Musste noch das keyboard layout anpassen
    network config der VM läuft noch nicht (ist nicht sichtbar).

    config.yml noch nicht angepasst
    Die config.yml passt so wie sie ist - da ist nur das Demo-Script aktiv (in dem ich schon rumgefurwerkt habe).

    Keyboard hatte ich nicht angepasst - ich kenne die US-Tastatur einigermaßen ;-) - bevor ich suchen muss: wie macht man das?

    Und zur Netzwerk-Konfig: die war bei mir auf Bridgeing gestellt. Nat solltest du dafür nicht nehmen. Kann man eigentlich einstellen solange/wenn die VM nicht gestartet ist.

    Gruß
    Thorsten

    Einen Kommentar schreiben:


  • RalMue
    antwortet
    Hmm,

    da die Apple Server von Siri eine Mischung aus Wahrscheinlichkeitsrechnung und Datenbank-Abfrage sein dürften, wird es wohl sehr schwer sowas ähnlich dem Wetter nachzubauen (Also "Ich will Licht hier" statt "Mach das Licht im Wohnzimmer an"). Das wird man wohl oder übel wo hinterlegen müssen, in einem Array bzw. besser in einer Datenbank.

    Zudem hat Apple den Vorteil, dass Siri aus jeder Antwort lernt. Ich habe gelesen, dass sogar abgebrochene Befehle plus die folgenden ausgewertet werden, um sie effektiver zu machen.

    Ich bin gerade dabei das mit einer Datenbank in Angriff zu nehmen, ich habe vor, da eine Liste mit Synonymen einzupflegen und dann das Matching darüber zu machen. Dürfte aber noch dauern, hoffentlich schalten die vorher den Server net um :-)

    Kann man über diesen Siri Proxy auch auf die anderen Attribute zugreifen, die der Apple Server wohl zurück liefert? Habe da jetzt noch nichts gefunden. Anscheinend soll da noch der Timestamp aber auch, viel interessanter, die Wahrscheinlichkeit mit der das Wort erkannt wurde zurückgeliefert werden.

    Einen Kommentar schreiben:


  • marlan99
    antwortet
    Hallo Thorsten,

    läuft bei mir auch. Musste noch das keyboard layout anpassen
    network config der VM läuft noch nicht (ist nicht sichtbar).

    Zertifikat auf phone ist drauf, proxy gestartet.

    config.yml noch nicht angepasst

    Gruss
    Marcel

    Einen Kommentar schreiben:


  • muerlemann
    antwortet
    VM läuft bei mir seit gestern Abend konstant durch.
    Hab sie dann auf den ESX-Server aufgespielt.
    War bisher immer erreichbar. Hab den Server auch nie neu gestartet.

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    Hi,
    @Bodo: ich würde MINDESTENS mal warten ob die 5.1 (ist ja seit heute als Beta draußen) das noch zulässt.
    Alternativ - falls du ein 4er hast - kannst du mal schauen was Sirius (der Cydia-Siri-Hack) für dein 4er so möglich macht...

    @RalMue/2ndSky: auf das "pharsen" haben wir uns ja schonmal geeinigt :-)
    Jetzt müsste beim Parsen eingentlich "nur" berücksichtigt werden das es für JEDEN Befehl/Gegenstand mehrere Begriffe gibt (=alle mit der gleichen Bedeutung).
    Siri macht ja auch Wetter=Regenschirm=Regen=Regenmantel => alles ruft die Wettervorhersage auf... (da ist weniger "magie" dahiner als einem manchmal verkauft wird).
    An=Anschalten=Anmachen=Hell=Heller=...
    (wobei auch Heller = Dimmer+x% meinen könnte)
    Aus=Auschalten=Ausmachen=Dunkel=Dunkler
    Licht=Lampe=Beleuchtung="Funzel" ;-)
    Rollladen=Jalousie=...
    Hoch=Hochfahren=Auf=Öffnen
    Runter=Schließen=Runterfahren=zu
    Bad=Badezimmer=Klo=Nasszelle=....

    Theoretisieren kann ich viel - leider brauche ich (mangels Programmierkentnisse) ein Grundgerüst.
    Generell würde ich auch noch Sagen das bei Treffer >=2 oder Hotword=vorhanden die fehlenden parameter abgefragt werden sollten.

    Ich glaub ich besuche mal einen Ruby-Schnellkurs ;-)

    @An die VM-Nutzer: läuft die VM?

    Gruß
    Thorsten

    Einen Kommentar schreiben:


  • Bodo
    antwortet
    Super, jetzt muss ich mir das iPhone 4S auch noch kaufen

    Hoi

    Grossen Respekt vor der Gemeinde.
    Jetzt muss ich mir das iPhone 4s doch noch kaufen, mist, ich wollte eigentlich auf das 5'er warten. Ihr seid Schrecklich (guut).

    Hoffentlich macht Apple uns keinen Riegel vor das Proxy-Spiel.
    Naja wenn's die Umsatzzahlen antreibt und sonst keinen Schaden anrichtet würde ich ein Auge zu machen und die paar Spinner (ääh, Anwesende ausgenommen) durchaus mal machen lassen. (Wunschdenken)

    Einen Kommentar schreiben:


  • RalMue
    antwortet
    Zitat von 2ndsky Beitrag anzeigen
    jo, ist prinzipiell das selbe was ich meinte mit Befehle parsen. Wie die Befehle geparst werden hängt dabei von der masochistischen Veranlagung eines jeden einzelnen ab
    Bevor ich mir reguläre Ausdrücke für diesen Anwendungsfall antue splitte ich lieber anhand des Leerzeichens und vergleiche jedes einzelne Wort mit dem möglichen Befehlssatz. Kommt ein neuer Befehl hinzu, musst du diesen nur in das Array einfügen und der Parser funktioniert weiterhin. Bei regulären Ausdrücken müsstest du diesen neuen Befehl in den Ausdruck packen. Aber, jeder wie er mag
    Jap, aber du könntest so auch "an" und "anschalten", "anmachen" etc. verarbeiten, da fehlt das Leerzeichen. Klar, das kann ins Array, aber das wird dann eventuell ja enorm.

    Aber wie gesagt, in die Richtung muss es gehen, egal wie :-)

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    jo, ist prinzipiell das selbe was ich meinte mit Befehle parsen. Wie die Befehle geparst werden hängt dabei von der masochistischen Veranlagung eines jeden einzelnen ab
    Bevor ich mir reguläre Ausdrücke für diesen Anwendungsfall antue splitte ich lieber anhand des Leerzeichens und vergleiche jedes einzelne Wort mit dem möglichen Befehlssatz. Kommt ein neuer Befehl hinzu, musst du diesen nur in das Array einfügen und der Parser funktioniert weiterhin. Bei regulären Ausdrücken müsstest du diesen neuen Befehl in den Ausdruck packen. Aber, jeder wie er mag

    Einen Kommentar schreiben:


  • RalMue
    antwortet
    Nur mal kurz laut gedacht am Beispiel Zimmerlicht:

    Wenn ich den Ausdruck per reguläre Ausdrücke etc. auf die eigentlich wichtigen Wörter im Satz (Wohnzimmer, Licht, an/aus) auswerte dann könnte ich schauen ob diese Wörter enthalten sind (wenn nicht nachfragen). Auch wäre es dann möglich "Schalte das Wohnzimmerlicht an" oder "Kannst du bitte das Wohnzimmerlicht anschalten" zu sagen.

    Das löst zwar noch nicht das Problem, dass "an" und "hell" das Gleiche ist, aber zumindest muss man den Befehl nicht wörtlich sagen und Siri kann nachfragen.

    Ich hab das nicht getestet, wäre nur mein Ansatz.

    Grüße

    Edit: Sehe gerade, das ist ein ähnlicher Ansatz wie 2ndsky. Aber in diese Richtung muss man weiterdenken :-)

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    wenn man soviele Informationen aus dem Forum zieht wie ich, ist man froh auch etwas zurückgeben zu können. Würde mich ja gerne aktiver beteiligen, aber mangels 4s und Zeit geht das leider nicht.

    Der Ansatz mit mindestens zwei erkannten Wörtern wäre schon auch möglich, klar. Hängt halt auch maßgeblich davon ab, was will ich alles an Befehle verarbeiten und wie häufig kommen die in normalen Suchanfragen etc. vor. Aber die Umstellung auf ein Magic Keyword, falls man merkt, dass es häufig zu Fehlinterpretationen kommt, ist auch kein Problem mehr (wenn der Parser und der ganze Rest läuft).

    Einen Kommentar schreiben:

Lädt...
X