Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Siri
21.12.2011, 15:32
Beitrag #11
RE: Siri
Hehe... in unserem Büro funktioniert es nun.. Licht, iTunes usw Smile

Wer kann, installiert sich den Siri Proxie (hartes Brot). Das Plugin für den Proxie veröffentlichen wir grad... Die Sprachkommandos werden mittels Eventserver gematcht.... Der Rest bleibt dann eurer Fantasie überlassen Smile.

So toll sich das auch alles anhört, kein Mensch weiss, wie lang der Proxie in der Form funktionieren wird. Das kann sich mit dem nächsten iOS update schnell wieder ändern...

Aber es funktioniert wirklich gut und intelligent. Man kann sagen "Licht Decke ein" Siri bestätigt die erfolgte Schaltung auch ... oder man sagt "Siri, schalte bitte das Licht der Decke ein" ... wird auch erkannt Smile

LG

Mike Eudenbach (XING Profile)
nomos system AG
System Design/Integration/Planung

m..myhome/nomos in Unna, m..myhome/nomos auf Facebook
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.12.2011, 16:31
Beitrag #12
RE: Siri
Zitat:Das Plugin für den Proxie veröffentlichen wir grad...

https://github.com/nomos/SiriProxy-Nomos

Done! Smile

Mike Eudenbach (XING Profile)
nomos system AG
System Design/Integration/Planung

m..myhome/nomos in Unna, m..myhome/nomos auf Facebook
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2011, 10:00
Beitrag #13
RE: Siri
wie in FB geschrieben kapier ich den veröffentlichten Code noch nicht ganz. Da sind doch bisher nur Kommandos für Licht im Allgemeinen, für die Wohnzimmerdecke, Zentralfunktionen und für iTunes drin. Die Dynamik liegt dann ja nur in den Befehlen die ich in das Plugin reinschreibe. Außerdem so Sachen wie "listen_for /Licht (.*)/i do |action|" filtern mir doch auch alle Google Suchanfragen die das Wort "Licht" beinhalten.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2011, 14:44 (Dieser Beitrag wurde zuletzt bearbeitet: 22.12.2011 14:51 von meudenbach.)
Beitrag #14
RE: Siri
Wie in FB geschrieben ist das ein vorerst ganz rudimentärer Ansatz. Uns ist es wichtiger für Interessenten erstmal die Verbindung zu unserem Deamon herzustellen. Der Rest folgt dann automatisch....

Wir werden auch nen Teufel tun hier "much brain" zu investieren bevor nicht einmal klar ist, wie die Adaption von Siri in Zukunft erfolgt. Um Erfahrungen zu sammeln, vor allem im Umgang mit der Spracherkennung etc. ist das so aber schon eine coole Angelegenheit. Und der Spassfaktor ist auch gegeben.

Zitat:Die Dynamik liegt dann ja nur in den Befehlen die ich in das Plugin reinschreibe.

Nicht ganz.. bzw. irgendwie musst Du dass ja definieren, auf was Siri reagieren soll. In unserer Lösung benötige ich lediglich ein "Initial" und das ist im nachfolgendem Beispiel eben "Wohnzimmerdecke".

Zitat:so Sachen wie "listen_for /Licht (.*)/i do |action|" filtern mir doch


man muss es ja nicht so machen... Zur Sprachsteuerung gehört halt immer noch ein wenig Disziplin des Anwenders.. auch wenn Siri schon recht "schlau" ist. Btw wäre dies Problem mit einer einfachen Rückfallbedingung zu lösen. Dies sollte IMHO aber über den Proxy direkt erfolgen. Also in der Art, dass wenn ein Match ungültig, die Anfrage entsprechend weitergeleitet wird.

Bleiben wir aber mal bei unserem Beispiel für Wohnzimmerdecke:

Code:
listen_for /(WohnzimmerDecke|Wohnzimmer Decke) (.*)/i do |what, action|
    send_command("WohnzimmerDecke", action, "Licht")
end

Hier erfolgt ein Match auf eben WohnzimmerDecke oder Wohnzimmer Decke und alles nachfolgende wird als Wert übergeben bzw angehangen.

Mann kann also sagen:

"Wohnzimmer Decke ein" wie auch "Wohnzimmer Decke aus" oder gar "Liebe Siri schalte mir doch die Wohnzimmer Decke auf 30 Prozent"

So wie wir das nun weiter auswerten ist völlig unabhängig und liegt allein in der Definition des m..myhome Eventservers. Meine "Regel" ist so definiert, dass das Initial ausschlaggebend für die Zuordnung ist und der Wert bzw. die Aktion dynamisch übergeben wird. Also Aktion = EIN/AUS/WERT(%).

Selbst das Initial könnte allein auf "Licht" gesetzt werden und man arbeitet mit 2 weiteren Größen für eben die Zuordnung und den Wert. Ziel wäre es ein universelle PlugIn zu haben, wo niemand mehr Hand anlegen muss und unsere Anwender sich allein nur auf den Eventserver konzentrieren können. In unserem Beispiel für die iTunes Steuerung ist das sogar schon der Fall..

Aber mal zurück zum Licht....

Wenn ich nun Siri sage:
"Schalte die Wohnzimmer Decke auf 30 Prozent" passiert folgendes..

Der Proxy empfängt sie Sequenz

Code:
[Info - Guzzoni] Received Object: SpeechRecognized
[Info - Plugin Manager] Processing 'Schalte die Wohnzimmerdecke auf 30 % '
[Info - Plugin Manager] Processing plugin #<SiriProxy::Plugin::Nomos:0x007fc671b23060>
[Info - Plugin Manager] Matches (?i-mx:(WohnzimmerDecke|Wohnzimmer Decke) (.*))
[Info - Plugin Manager] Applicable states:

und sendet eine Message an den m..myhome Deamon

12:02:57.250 - eventmanager: received data: SIRI_wohnzimmerdecke_auf 30 % \x0A

In der Eventserver Definition sind nun folgende Matchbedingungen eingetragen:

SIRI_\%wohnzimmerdecke\%ein\%;<KNX><SETVALUE=15/2/20,1></KNX>

Dieser Regel Matcht auf SIRI_wohnzimmerdecke und sucht im verlauf ein "ein" und ignoriert alles weitere (\%)...

Bedingung ist also nicht erfüllt...

SIRI_\%wohnzimmerdecke\%an\%;<KNX><SETVALUE=15/2/20,1></KNX>

wie vor, nur eben mit "an" anstelle von "ein"

Bedingung ist also ebenfalls nicht erfüllt...

SIRI_\%wohnzimmerdecke\%aus\%;<KNX><SETVALUE=15/2/20,0></KNX>

wie vor, nur eben mit "an" anstelle von "ein"

Bedingung ist also ebenfalls nicht erfüllt...

SIRI_\%wohnzimmerdecke_\% \* %;<KNX><SETVALUE=15/2/23,\#></KNX>

Diese Regel ist sucht unter Berücksichtigung des Initials (wohnzimmerdecke) eine Zeichenkette die mit einem "Leerzeichen" beginnt und mit einem "Leerzeichen"% endet. So wird also das Value erkannt sofern ich Siri sage "... 30 Prozent". Der Wert "30" wird auch gleichzeitig an die GA (\#) übergeben.

Bedingung erfüllt, die Aktion wird ausgelöst... <KNX><SETVALUE=15/2/23,\#></KNX>

Wer mit unserem Eventserver vertraut ist, weiss was da so alles möglich ist Wink ..

Der Eventserver arbeitet Sequentiell d.h. er arbeitet die Matches von oben nach unten ab. So steht bei mir in der letzten Zeile.

SIRI_\%;<SIRIPROXY_REPLY><SAY=ich habe dich nicht verstanden></SIRIPROXY_REPLY>

für den Fall das keine der Matchbedingungen greifen, Siri aber ein Feedback erhält und somit die Kommunikation abschließt. Hier zB könnte dann über die Rückmeldung der Proxy die Anfrage "durchreichen" dass eben bei google 30% Lichter gesucht werden Wink.
- wobei ich auch gleich zu dem Commandserver komme, der Siri mit einem dynamischen Feedback versorgen kann.. -

Aus einem iTunes Beispiel:

SIRI_\%itunes\%leiser\%;<SYS><VOLDN=5></SYS><SIRIPROXY_REPLY><SAY=ich habe die Musik ein wenig leiser gemacht></SIRIPROXY_REPLY>

oder eben wenn ich wissen will, was iTunes grad so abspielt:

SIRI_\%itunes\%leiser\%;<SYS><VOLDN=5></SYS><SIRIPROXY_REPLY><SAY=ich habe die Musik ein wenig leiser gemacht></SIRIPROXY_REPLY>

... geht einwandfrei.

Das schöne an der Lösung mit m..myhome.. ich kann eben auf alle implementierten Protokolle einfach und durchgängig zugreifen.

Aber soweit sollte das eigentlich auch mit "rudimentären" Mitteln reichen Wink...

LG

Mike Eudenbach (XING Profile)
nomos system AG
System Design/Integration/Planung

m..myhome/nomos in Unna, m..myhome/nomos auf Facebook
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2011, 15:51
Beitrag #15
RE: Siri
Hallom

Habe das zwar auch schon im KUF geschrieben, aber trotzdem nochmals hier:

Startet ihr den proxy jedes mal von Hand neu? Oder habt ihr ein Script (evtl. init.d) das den Autostart übernimmt?

Vielen Dank und Grüße

Johannes
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2011, 16:07
Beitrag #16
RE: Siri
Hallo Johannes...

meinst Du nun auf Mac ?? Wie ich gelesen hab, machst Du das ja mit nem Linux ?!

LG

Mike Eudenbach (XING Profile)
nomos system AG
System Design/Integration/Planung

m..myhome/nomos in Unna, m..myhome/nomos auf Facebook
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2011, 18:09
Beitrag #17
RE: Siri
Hallo Mike,

ja ich mein auf LINUX/Debian/Wiregate.

Läuft euer Proxy auf dem MAC?

Vielen Dank und Grüße

Johannes
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2011, 18:21
Beitrag #18
RE: Siri
Zitat:Läuft euer Proxy auf dem MAC?

Jup... und wie das unter Debian zu lösen ist, weiss ich leider nicht.

LG

Mike Eudenbach (XING Profile)
nomos system AG
System Design/Integration/Planung

m..myhome/nomos in Unna, m..myhome/nomos auf Facebook
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.12.2011, 09:32
Beitrag #19
RE: Siri
Hallo Mike,

alles klar, jetzt versteh ich das mit der Dynamik. Man matcht quasi auf "Licht", "Heizung", "Audio" usw. und m..myhome übernimmt dann die genauere Auswertung. Dann sollte aber auf jeden Fall ein Fallback in das Proxy Plugin, das die Anfrage ansonsten an die normale Siri Verarbeitung weitergibt wenn in m..myhome nichts gefunden wird!

Aber dennoch, interessante Geschichte... wird Zeit das mein Haus fertig wird Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.12.2011, 10:56
Beitrag #20
RE: Siri
Hört sich ja echt gut aber auch kompliziert an.Hab gerade mal ein wenig nach SiriProxy gesucht und diese Anleitung gefunden. Kann man damit den ersten Proxy für macmyhome/siri im mac zum laufen bringen ?

http://www.dfxnetwork.org/2011/12/14/sir...n-bekommt/
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Kontakt | nomos system Forum | Nach oben | Zum Inhalt | Archiv-Modus | RSS-Synchronisation | Impressum