FHEM Forum

FHEM => Frontends => Sprachsteuerung => Thema gestartet von: Markus am 30 Dezember 2012, 00:54:40

Titel: Sprachsteuerung
Beitrag von: Markus am 30 Dezember 2012, 00:54:40
Ich hab mir AVIC (//www.yourapp24.com/aivc_documentation.html) Instaliert
und kann damit meine aktoren Sprachsteuern
ich habe die links in fhem für ein und aus gefunden aber welche adresse mus ich zb im Brouser eingeben um das Licht zu Dimmen?

für ein und aus schaut es zb so aus

http://fritz.box:8083/fhem?cmd.Licht_Kuche=set%20Licht_Kuche%20on&room=Kuche (//fritz.box:8083/fhem?cmd.Licht_Kuche=set%20Licht_Kuche%20on&room=Kuche)
http://fritz.box:8083/fhem?cmd.Licht_Kuche=set%20Licht_Kuche%20off&room=Kuche (//fritz.box:8083/fhem?cmd.Licht_Kuche=set%20Licht_Kuche%20off&room=Kuche)

gruß Markus
Titel: Aw: Sprachsteuerung
Beitrag von: Markus am 30 Dezember 2012, 01:14:32
habs selber rausgefunden :-)
das ist der hauptlink
http://fritz.box:8083/fhem?cmd.Licht_Kuche=set%20Licht_Kuche%20 (//fritz.box:8083/fhem?cmd.Licht_Kuche=set%20Licht_Kuche%20)
und am ende kommt dann entweder on, off oder eben cb. 40% noch dran

Gruß Markus
Titel: Aw: Sprachsteuerung
Beitrag von: Rince am 23 April 2013, 18:31:55
Funktioniert das gut?
Machst du die Spracheingabe per Smartphone?

Spannend klingt das nämlich sehr :-)
Titel: Aw: Sprachsteuerung
Beitrag von: Brice am 23 April 2013, 20:22:27
Funktioniert einwandfrei bei mir auf dem Tablet. Ist aber eher was für die "Galerie" (um andere zu "beeindrucken"), nichts für den täglichen Gebrauch. Da ist es einfacher, auf dem Smartphone den entsprechenden Schalter zu drücken.
Titel: Aw: Sprachsteuerung
Beitrag von: Markus am 23 April 2013, 20:44:24
Brice hat Recht ich kann alle Sender umschalten aber das nervt schon wen du das immer sagen musst..
aber die verblüfften Gesichter sind Gold wert wenn ich sage "Alice ich möchte Fernsehen " und das Licht Dimmt ab die Rollos Fahren runter der Fernseher geht an und eine Stimme Fragt "Welchen Sender möchtest du sehen? :-D

Ich hab es auf den Tablett und Handy bin aber am überlegen wie ich es mit einer Freisprecheinrichtung lösen soll jeder Raum ein oder mehrere micros wenn jemand Tipps hat dann immer her damit :-)

Gruß Markus
Titel: Aw: Sprachsteuerung
Beitrag von: Shoddy am 05 Mai 2013, 13:14:55
Ich löse das mit der Sprachsteuerung über andFHEM in Verbindung mit Tasker. So fragt mich mein Smartphone jetzt, wenn ich nach Hause komme, ob ich länger bleibe. Dementsprechend wird dann die Heizung aufgedreht sowie Fernseher und HTPC angesteuert. Oder eben nicht. Gleiches gilt, wenn ich das Haus verlasse (Ich habe alle Verbraucher ausgeschaltet. Bleibst du länger weg? - Ja -> Heizung aus - Nein -> Bis gleich), meinem Smartphone nach dem Aufstehen einen Guten Morgen wünsche (Antwort: Guten morgen, möchtest Du Kaffee? - Ja -> Kaffeemaschine an), ihm eine Gute Nacht wünsche (Wecker morgen an oder aus?), etc.

Finde es aber auch recht praktisch, nicht mehr in 4 Seiten Widgets herumzuwühlen. Habe mittels Tasker ein Widget erstellt, das die Spracheingabe für 10 Sekunden aktiviert. Dies lauert nun auf meinem Home-Bildschirm auf meine Eingaben, die auch erstaunlich gut funktionieren (blöd wirds, wenn im Hintergrund der Fernseher läuft, dann kann Madame schon ein wenig durcheinander kommen).

Weitere Anwendungsmöglichkeiten sind die Reaktion auf Push-Nachrichten, die mir zum Beipsiel Mitteilen, dass ich genug gelüftet habe und jetzt mal das Fenster schließen kann. Vorher musste ich nach dem Benachrichtigungston immer schauen, was mein Haus nun von mir will. Jetzt wird mir direkt gesagt, was los ist (Nach verlassen des Hauses für "länger" -> Dreh um! Du Trottel hast vergessen, das Badfenster zu schließen).

Die Spracheingabe im Auto funktioniert übrigens über das Mikro der Freispecheinrichtung. Vielleicht kann man soetwas ja auch für den Heimgebrauch um ein paar Mikrofone erweitern. Sozusagen eine Freisprecheinrichtung fürs Haus?
Titel: Aw: Sprachsteuerung
Beitrag von: Rince am 05 Mai 2013, 15:47:11
Hm, wie wäre ein Mikrofon an der Decke?
Titel: Aw: Sprachsteuerung
Beitrag von: m.o.d am 05 Mai 2013, 20:01:41
Hallo,
Sehr interessantes Thema! Bitte haltet mich auf dem laufenden.

Wegen den Mikrofon an der decke.

Soviel ich weis, haben Mikrofone eine gewisse richtcharakteristig zB Niere, darum würde es Sinn machen mehre mikro's
In einer Kugelform anzuordnen, um eine gute Abdeckung des gesamten Raumes zu erreichen.
Wie das aber dann mit der Beschaltung und eventuellen Echos/Überlagerung und deren Kompensation aussieht, ka.
War halt so eine Idee...
Titel: Aw: Sprachsteuerung
Beitrag von: Rince am 05 Mai 2013, 20:15:48
Völlig richtig.

Die Richtcharakteristik eines Mikros ist sehr wichtig.

Aber du hast das Problem schon sehr gut angesprochen: Wie verarbeitet man die unterschiedlichen Signale von unterschiedlichen Mikrofonen???


Ich habe als Beispiel eine Kinect und und eine Logitech WebCam der gehobenen Edelklasse.
Beide verfügen über mehrere Mikrofone, die genau deshalb da sind, derartige Störungen herauszurechnen.

Aber mit selbstzusammengestellten Mikrofonarrays wird das wohl kaum gehen fürchte ich.
Titel: Aw: Sprachsteuerung
Beitrag von: Rince am 21 Mai 2013, 15:56:55
In der c't Hacks 2/2013 auf Seite 68 ist ein Artikel über Sprachsteuerung auf einem Pi.

USB Webcam oder drahtlose Singstar Mikrofone werden angesprochen.

Gibt noch einen Link:
www.ct.de/ch1302064



Basis ist übrigens Google.
Titel: Aw: Sprachsteuerung
Beitrag von: Rince am 22 Mai 2013, 10:11:19
Unter besagtem Link gibt es SH Skript zum Download, welches unter der GPL steht. Ich poste es mal:
(Wenn das nicht erwünscht ist, bitte löscht dieses Posting, aber mit GPL sollte es eigentlich keinen Stress geben, oder?)

#!/bin/bash

# c't Hardware Hacks - Spracherkennung für den Raspberry Pi, GPL-Lizenz

count=1
lastsize=0
rec=0
first=1

# Der Soundchip des RPI erzeugt vor und nach der Wiedergabe ein Knacken. Deutlich bessere Ergebnisse liefert eine USB-Soundkarte, wie man sie bereits für rund fünf Euro bekommt. Damit mplayer die USB-Soundkarte benutzt, ändert man den Parameter "-ao alsa:device=hw=0.0" in "-ao alsa:device=hw=1.0".

function say {
mplayer -ao alsa:device=hw=0.0 -really-quiet -http-header-fields "User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22m" "http://translate.google.com/translate_tts?tl=de&q=$1";
}

sox -t alsa hw:1,0 test.wav silence 1 0 0.5% -1 1.0 1% &
sox_pid=$!

while [ $count -le 9 ]
do
   
size=$(stat --printf="%s" test.wav)

if [ $size -gt $lastsize ]
then
if [ $first -eq 0 ]
then
echo "Aufnahme!"
rec=1
else
first=0
fi
else
if [ $rec -eq 1 ]
then
echo "Abschicken"
kill $sox_pid
ffmpeg -loglevel panic -y -i test.wav -ar 16000 -acodec flac file.flac
wget -q -U "Mozilla/5.0" --post-file file.flac --header "Content-Type: audio/x-flac; rate=16000" -O - "http://www.google.com/speech-api/v1/recognize?lang=de-de&client=chromium" | cut -d\" -f12 >stt.txt
cat stt.txt
say "$(cat stt.txt)"

if [[ $(cat stt.txt) =~ "Befehl" ]]
then
echo "Sprachbefehl erkannt!"
  say "Sprachbefehl erkannt! Ich könnte jetzt einen beliebigen Shell-Befehl ausführen!"
# mach was
elif [[ $(cat stt.txt) =~ "Wetterbericht" ]]
then
echo "Wetterbericht erkannt!"
  say "Ich würde Dir jetzt den Wetterbericht vorlesen! Bring es mir bei!"
# mach was
else
  echo "Kein Kommando erkannt..."
fi

sleep 1
bash ctvoice.sh
else
echo "Stille..."
fi
rec=0
fi

lastsize=$size

sleep 1

done



Edit sagt,
Ich habe mir mal drahtlose Singstar Mikrofone und ne Logitech C310 Webcam gekauft. Beides sollte am Raspberry funktionieren.
Titel: Antw:Sprachsteuerung
Beitrag von: ackerratte am 28 Dezember 2014, 22:20:14
Ist ja schon etwas her, aber seit ihr weiter gekommen?
Titel: Antw:Sprachsteuerung
Beitrag von: Markus am 11 Januar 2015, 15:45:33
Ich verwende derzeit wwc ist einfacher zu verwalten es sind alle Dateien in fhem auserdem stürzt die app immer wieder ab und gerade wen ich etwas vorführen wollte ging es nicht ;-(
wwc horcht zwar nicht immer mit aber wenn ich es brauche geht es auch

http://forum.fhem.de/index.php/topic,10628.msg60530.html#msg60530 (http://forum.fhem.de/index.php/topic,10628.msg60530.html#msg60530)

grus Markus
Titel: Antw:Sprachsteuerung
Beitrag von: simonTS am 23 Oktober 2015, 21:19:07
Hallo Zusammen,

ich fange gerade an meine Räume fertig zu machen. Bin mal wieder über das Thema Sprachsteuerung und damit auch über diesen Thread gestolpert.
--> Ging es denn weiter?

Ich wollte mal mit diesen beiden Links bzgl. Sprachein/ausgabe meinen nächsten Versuch starten:
http://www.raspberrypi-tutorials.de/software/raspberry-pi-sprachsteuerung-mit-der-piauisuite.html (http://www.raspberrypi-tutorials.de/software/raspberry-pi-sprachsteuerung-mit-der-piauisuite.html)
http://www.fhemwiki.de/wiki/Text2Speech (http://www.fhemwiki.de/wiki/Text2Speech)

Ich würde es wenn gerne Zentral im Raum und nicht auf dem Handy haben wollen. Ein Mikrofon mit 2 Adern zum zentralen Raum oder auch mit 5m USB Kabel wären auch möglich, neben einem weiteren pi pro raum mit angeschlossenem Mikro.

Titel: Antw:Sprachsteuerung
Beitrag von: Rince am 24 Oktober 2015, 19:29:16
Ja und nein.
Ja, die Text2Speech Komponente hat Tobias in ein fhem Modul eingebaut :)

Der andere Weg, Sprache in fhem Befehl, nun, da basteln viele ihr eigenes Süppchen. Im ungünstigsten Fall wird für jeden Sprachbefehl ein fhem Befehl zugeordnet.

Aber ein Modul dazu gibt es jmho nicht.


Man sollte auch das auftrennen. Ein fhem Modul, welches menschliche Sprache (unabhängig von ihrer Herkunft, also eMail, Calendar, Speech2Text) in fhem Befehle umsetzt, und dann Module die sich um das Erfassen der Sprache kümmern.
Titel: Antw:Sprachsteuerung
Beitrag von: simonTS am 11 November 2015, 00:23:43
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)

Titel: Antw:Sprachsteuerung
Beitrag von: Rince am 11 November 2015, 06:59:34
Smartwatch mit Mikrofon?
Titel: Antw:Sprachsteuerung
Beitrag von: Kuzl am 11 November 2015, 07:58:42
Geht da schon was mit der Smartwatch?
Titel: Antw:Sprachsteuerung
Beitrag von: Rince am 11 November 2015, 09:14:38
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.
Titel: Antw:Sprachsteuerung
Beitrag von: CoolTux am 11 November 2015, 10:48:35
@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.
Titel: Antw:Sprachsteuerung
Beitrag von: Kuzl am 11 November 2015, 12:46:49
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.
Titel: Antw:Sprachsteuerung
Beitrag von: CoolTux am 11 November 2015, 12:57:57
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
Titel: Antw:Sprachsteuerung
Beitrag von: CoolTux am 11 November 2015, 13:05:32
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
Titel: Antw:Sprachsteuerung
Beitrag von: Rince am 11 November 2015, 16:12:52
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?
Titel: Antw:Sprachsteuerung
Beitrag von: FHEM-User22 am 11 November 2015, 20:10:30
Aber Vorsicht beim sagen von: "Duschlampe aus" wenn die Raumteilerin in der Nähe ist.

sorry, konnte nicht anders.

Schönen Abend