Sprachsteuerung

Begonnen von Markus, 30 Dezember 2012, 00:54:40

Vorheriges Thema - Nächstes Thema

simonTS

Hi,

war was unterwegs...

Sprachausgabe mit Text2Speech is ja kein Thema (thx @Tobias!!!)... Hatte mich etwas unglücklich ausgedrückt! Ich meinte (nur) die Sprachsteuerung. Läuft die immer noch bei euch? Und nutzt Ihr sie auch (noch)?

Ich finds interessant, auch wenn ich noch nicht wirklich wüsste, wie ich raummikrofone gescheit unterbringe und irgendwo zusammenführe. Aber: der faule Mensch (=meiner einer) macht dann beim couching die rolladen was runter und regelt die Temperatur gaaaaanz bequem im liegen ;-)

Werds wohl einfach mal ausprobieren müssen  8)

FHEM auf wheezy@RPI-->
KNX: MDT STV-0320.01|SCN-IP000.01|AMI-1216.01|JAL-0810.01|AKD-0401.01|AKH-0800.01|BE-GTT4W.01|SCN-P360D1.01|SCN-G360K3.01|ABB-MRS/W Magnet-Reedkontakt|Zisterne:SRF06|LED:XCSOURCE WIFI Controller|

Rince

Smartwatch mit Mikrofon?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Kuzl

Geht da schon was mit der Smartwatch?

Rince

Nicht, dass ich wüsste.

Aber heute Abend ist ja unser UserTreffen in München. Werde den Ulli um Hilfe bitten bei einem Modul welches ich seit 1 Jahr schreiben wollte.
Input: menschlicher Text ("fhem, mach bitte das Licht im Wohnzimmer an")
Output: der passende Befehl

Das soll einerseits mit aliasssen funktionieren "wz: Wohnzimmer", oder "az: Arbeitszimmer, Büro"
set: schalte, drehe, stelle, mach
andererseits auch fest verdrahtete Befehle: "wie wird das Wetter heute"

Das wir davon weg kommen, alle Sprachbefehle "hand-verdrahtet" programmieren zu müssen.
Dann ist es egal, ob du ein Android hast, ein Apple, lokal Pocket Sphinx oder etwas ganz anderes oder eine eMail schreibst

Du musst nur den Text an das Modul übergeben. Das sollte dann die Anweisung auf Vollständigkeit prüfen (z.B. "Raum fehlt noch") und umsetzen.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

CoolTux

@Rince

Was hälst Du von einer Art library oder etwas in der Art. Ich denke nämlich das man den Input selbst den entsprechenden Modulen überlassen sollte. Hinterlegt sollte der Text als Reading werden. Un dann kann das Reading ausgewertet werden. Vorher sollte die FHEM Installation irgendwie analysiert werden so das bekannt ist wie welches Device heißt und wo liegt.


Reading: schalte die Stehlampe im Wohnzimmer an

Was ist hier wichtig zum schalten? Einmal das Device = Stehlampe, dann der Raum = Wohnzimmer (kann ja noch ne Stehlampe im Büro geben), und der eigentliche Schaltbefehl = an

Das alles ergibt = set ROOM=Wohnzimmer Stehlampe on


fertig

Mein Modul schreibt bereits Sprachbefehle als Reading nieder. Leider sind noch die User gefragt das Reading entsprechend mittels notify aus zu werten.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Kuzl

Ich hab vor einiger Zeit mal eine Funktion geschrieben, die so einen Text nach den entsprechenden Schlüsselwörtern durchsucht also an ein aus usw.
allerdings musste damals noch die Geräteliste und auch die Schlüsselwörter fest vorgegeben werden. Die Funktion hat allerdings daraus schon ein Kommando gebastelt und abgesetzt.

Abgesehen davon halte ich das für sehr Sinnvoll, da dann der Text aus einer beliebigen Quelle stammen kann.

CoolTux

Zitat von: Kuzl am 11 November 2015, 12:46:49
Abgesehen davon halte ich das für sehr Sinnvoll, da dann der Text aus einer beliebigen Quelle stammen kann.

Genau so denke ich auch
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Ich denke es sollte feste Werte geben was die Räume an geht. Und dann kann man mit attributen die festen Werte auf die Räume die man hat mappen.


livingroom
bedroom
office
kittchen
childrenroom

nun kann man mittels attr zuordnen

attr livingroom=Wohnzimmer bedroom=SchlafzimmerEltern office=BüroOberstesStockwerk kittchen=Küche childrenroom=KinZimMagret

So in etwa kann man schon mal das ganze zuordnen. Leider muß bei jedem Sprachbefehl einmal ein komplettes list für devices und rooms gemacht werden. So stelle ich das mir jedenfalls vor
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Rince

#23
ZitatGenau so denke ich auch
Genau so war die Idee:

Ein Modul, welches lediglich einen Text präsentiert bekommt. Ganz egal, von welchem Modul. Dann kann jedes fhem Device, welches Speech2Text beherrscht, einfach den Text an das Auswertemodul übergeben. Egal ob von einem Telefon, von einer eMail, aus einem Kalender, oder in die fhem Befehlszeile getippt...


ZitatLeider muß bei jedem Sprachbefehl einmal ein komplettes list für devices und rooms gemacht werden. So stelle ich das mir jedenfalls vor
Nicht zwangsläufig.

Man könnte das bei der Modulinitialisierung einlesen lassen und dann vorhalten.
So viel Speicher kann diese kleine Liste nicht brauchen.

Beim ändern oder hinzufügen von Aliasen muss man halt ein Reload von dem Modul machen. Was soll´s. Das wird man sowieso nur selten machen.


Was  mir unklar ist, wie man die Aliase am effektivsten verwaltet.

Ich nehme jetzt meine Beleuchtung im Wohnzimmer:

wz_WS_LICHT


Eine Aliasmöglichkeit wäre:
Wohnzimmer => wz_ => room=wz_
Licht => LICHT => device=WS_LICHT
schalte => command=set
ein => state=on

command + room + device + state

(Wenn eines fehlt, nachfragen (nur, wie?))

=> set wz_WS_LICHT on



Was passiert aber, wenn ich sage:
Schalte bitte das Wohnzimmerlicht ein.

In dem Fall fehlt der Raum.



D.h., wir bräuchten eine alternative Aliasmethode, wenn das Gerät auch ohne eigene Raumnennung (Wohzimmerlicht, Waschmaschine, Geschirrspülmaschine) eindeutig identifizierbar sein soll. Entweder, weil es davon halt nur 1 gibt (Waschmaschine), oder der User den Raumnamen und Gerätenamen zusammen gefasst hat (Wohnzimmerlicht)

attr wz_WS_LICHT unique_alias = Wohnzimmerlicht
attr ku_SD_Energiemessung unique_alias = Waschmaschine





Und wohin kommen die Aliase für die fhem Befehle und die Räume???


PS:
Bevor wir lange das gleiche nur mit anderen Worten erzählen, wollen wir mal eine Skype oder Telefonkonferenz machen? Oder irgend einen Chat nehmen?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

FHEM-User22

Aber Vorsicht beim sagen von: "Duschlampe aus" wenn die Raumteilerin in der Nähe ist.

sorry, konnte nicht anders.

Schönen Abend
FHEM auf Raspberry Pi und Proxmox und... und.... und....