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
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
Funktioniert das gut?
Machst du die Spracheingabe per Smartphone?
Spannend klingt das nämlich sehr :-)
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.
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
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?
Hm, wie wäre ein Mikrofon an der Decke?
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...
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.
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.
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.
Ist ja schon etwas her, aber seit ihr weiter gekommen?
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
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.
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.
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)
Smartwatch mit Mikrofon?
Geht da schon was mit der Smartwatch?
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.
@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.
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.
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
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
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?
Aber Vorsicht beim sagen von: "Duschlampe aus" wenn die Raumteilerin in der Nähe ist.
sorry, konnte nicht anders.
Schönen Abend