Neues Modul: Text2Speech

Begonnen von Tobias, 07 Januar 2014, 12:57:23

Vorheriges Thema - Nächstes Thema

Frank Hell

Warum nicht als öffentlichen Post, damit alle von dem Wissen profitieren?

Rince

#106
Weil ich ungern Sachen mehrfach schreibe.
Ich schreibe grade eine andere Art von Anleitung. Für selbige suche ich quasi Probeleser. Veröffentlichen werde ich sie dann, wenn sie fertig und fehlerfrei ist.
Genau die Frage von TecCheck ist, in meinen Augen, von meinem Guide bereits fehlerfrei abgedeckt. Daher ist der Deal: er bekommt die Lösung, ich ein Feedback :)

Schick mir bitte ne PN mit deiner eMailadresse und ich schick dir gerne nen Link ;)

Die Einladung gilt für Jeden natürlich ebenso :)
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)

stoxx

Zitat@stoxx: schon mal hiernach versucht den PI richtig einzustellen? https://sites.google.com/site/semilleroadt/home/raspberry-pi
Super, daran hat es gelegen - danke für den Tipp!

Versuche jetzt gerade, den Timestamp eines "Readings" vorlesen zu lassen. Das Datum wird richtig vorgelesen, aber die Uhrzeit ignoriert. Hat jemand eine idee, was ich falsch mache?
Raspberry mit CUL, FS20, FHT, HMS, BLE, Z-Wave, Zigbee ..

Rince

ZitatHat jemand eine idee, was ich falsch mache?


Kleine Monster sitzen in den Lautsprechern. Die Zeitfresserchen. Immer, wenn eine Uhrzeit vorgelesen wird, drehen sie den Ton leise.

Ernsthaft:
Poste doch mal bitte den Code, der nicht das tut was er soll.
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)

stoxx

Das mit den Zeitfresserchen war auch mein erster Gedanke; hab die Lautsprecher zerlegt aber keine gefunden..  ;D

Zitat
my $val = ReadingsVal( "Telefon", "missed_call", "none" );
my $ts_buf = ReadingsTimestamp( "Telefon", "missed_call", "none" );
if ($val ne "none") {fhem("set MyTTS tts Anrufe in Abwesenheit. Letzter Anruf von ".$val." um ".$ts_buf)}

$ts_buf ist beispielsweise "2014-03-04 08:50:59"
Raspberry mit CUL, FS20, FHT, HMS, BLE, Z-Wave, Zigbee ..

stoxx

Hab es gefunden: Google kommt mit Millisekunden nicht zurecht.
Man muss den String daher um 3 Stellen kürzen, z.B.
Zitat$ts_buf = substr($ts_buf,0,-3);
Raspberry mit CUL, FS20, FHT, HMS, BLE, Z-Wave, Zigbee ..

Rince

Sehr schön. Hast deine Zeifresserchen erfolgreich verjagt :)

Übrigens müsste es auch ohne die ganzen "" im Text gehen.

Wenn du willst, probiere es mal so aus:
if ($val ne "none") {fhem("set MyTTS tts Anrufe in Abwesenheit. Letzter Anruf von $val um $ts_buf")}
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)

stoxx

Stimmt, so klappt es auch. Danke für den Hinweis!
Raspberry mit CUL, FS20, FHT, HMS, BLE, Z-Wave, Zigbee ..

Tobias

Habe die Änderungen letztes we eingecheckt. Solltet ihr Alle schon per Update erhalten haben.

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

michael27983

#114
Wie kann ich denn das Modul text2speech installieren?

Auf dem Client mit den Lautsprechern erhalte ich:

Zitat
MyTTS: unknown attribute TTS_UseMp3Wrap, choose one of verbose:0,1,2,3,4,5 room group comment alias eventMap userReadings disable:0,1 TTS_Delemiter TTS_Ressource:Google,ESpeak TTS_CacheFileDir TTS_UseMP3Wrap:0,1 TTS_MplayerCall TTS_SentenceAppendix TTS_FileMapping TTS_FileTemplateDir TTS_VolumeAdjust event-on-change-reading event-on-update-reading event-min-interval stateFormat or use attar global userattr TTS_UseMp3Wrap

Aber er spricht die Ausgabe: set MyTTS tos "Fhem gestartet"

Auf dem Server habe ich die Datei aus dem ersten Post ins FHEM Verzeichnis kopiert aber erhalte:

Zitat
Please define Text2Speech first

fiedel

#115
Hi,

achte mal auf die Namen deiner Definition und der zugehörigen Attribute. Da gibt es möglicherweise Diskrepanzen.  ;)
Du musst nichts kopieren, Text2Speech ist Bestandteil von FHEM. Die Neueste Version gibt es daher per "Update".
In der Kommandref steht alles dazu drin und im Wiki gibt es eine Beispielseite.

Gruß

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Tobias

Hat jemand außer mir einen Bluetooth-Lautsprecher an TTS angebunden? Bei mir verschluckt er am BT-LS immer die letzte Silbe. An einem lokalen LS direkt am RasPi ist alles sauber.
Deswegen ursprünglich der Workarround TTS_Appendix.
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Rince

Nein, habe ich nicht.
Die Installationsanleitungen haben mich vor einem Experiment abgehalten ;)
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)

Navigator

Mir ergeht es leider so wie "KlausB". Nach einmaliger Ansage, tut sich nix mehr. Erst ein rereadcfg bringt die Dame wieder zum gesprächig sein. Aber auch wieder nur ein mal. Die Config bleibt bei jedem weiteren Versuch leer.  Der letzte funktioniernde Eintrag lautet.

ZitatSpeech: Bearbeite jetzt den Text: test
2014.05.16 11:52:48 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&q=test
2014.05.16 11:52:48 4: Text2Speech: Schreibe mp3 in die Datei cache/098f6bcd4621d373cade4e832627b4f6.mp3 mit 3744 Bytes
2014.05.16 11:52:48 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=3  -nolirc -noconsolecontrols cache/098f6bcd4621d373cade4e832627b4f6.mp3
2014.05.16 11:52:51 1: CallBlockingFn: Can't connect to localhost:7072

Hier ein Log mit Verbose 5 und einem fehlgeschlagenem Versuch

2014.05.16 11:59:39 5: Notify loop for MyTTS tts noch ein test
2014.05.16 11:59:39 4: eventTypes: Text2Speech MyTTS tts noch ein test -> tts noch ein test
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49969 GET /fhem?detail=MyTTS
2014.05.16 11:59:39 4: /fhem?detail=MyTTS / RL:23990 / text/html; charset=UTF-8 /  /
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49969 GET /fhem/pgm2/style.css
2014.05.16 11:59:39 4: Connection accepted from FHEMWEB:192.168.178.50:49973
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49971 GET /fhem/pgm2/svg.js
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49966 GET /fhem/pgm2/fhemweb.js
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49972 GET /fhem/pgm2/fhemweb_multiple.js
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49970 GET /fhem/pgm2/fhemweb_colorpicker.js
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49973 GET /fhem/pgm2/fhemweb_noArg.js
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49969 GET /fhem/pgm2/fhemweb_slider.js
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49971 GET /fhem/pgm2/fhemweb_svg.js
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49966 GET /fhem/pgm2/fhemweb_textField.js
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49972 GET /fhem/pgm2/fhemweb_time.js
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49969 GET /fhem/codemirror/fhem_codemirror.js
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49972 GET /fhem/pgm2/darkCommon.css
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49969 GET /fhem/icons/favicon
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49969 GET /fhem/pgm2/dashboard_darkstyle.css
2014.05.16 11:59:40 4: HTTP FHEMWEB:192.168.178.50:49966 GET /fhem/images/default/fhemicon_dark.png
2014.05.16 11:59:40 4: HTTP FHEMWEB:192.168.178.50:49969 GET /fhem/pgm2/jquery.min.js
2014.05.16 11:59:40 4: HTTP FHEMWEB:192.168.178.50:49971 GET /fhem/images/default/icoEverything.png
2014.05.16 11:59:40 4: HTTP FHEMWEB:192.168.178.50:49972 GET /fhem?cmd={AttrVal(%22MyTTS%22,%22room%22,%22%22)}&XHR=1
2014.05.16 11:59:40 5: Cmd: >{AttrVal("MyTTS","room","")}<
2014.05.16 11:59:40 4: /fhem?cmd={AttrVal(%22MyTTS%22,%22room%22,%22%22)}&XHR=1 / RL:7 / text/plain; charset=UTF-8 /  /
2014.05.16 11:59:40 4: HTTP FHEMWEB:192.168.178.50:49970 GET /fhem?cmd={ReadingsVal(%22MyTTS%22,%22tts%22,%22%22)}&XHR=1
2014.05.16 11:59:40 5: Cmd: >{ReadingsVal("MyTTS","tts","")}<
2014.05.16 11:59:40 4: /fhem?cmd={ReadingsVal(%22MyTTS%22,%22tts%22,%22%22)}&XHR=1 / RL:1 / text/plain; charset=UTF-8 /  /
2014.05.16 11:59:40 4: HTTP FHEMWEB:192.168.178.50:49969 GET /fhem?XHR=1&inform=type=status;filter=MyTTS×tamp=1400234381538
2014.05.16 11:59:41 4: Connection closed for FHEMWEB:192.168.178.50:49969
2014.05.16 11:59:41 4: HTTP FHEMWEB:192.168.178.50:49966 GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2014-05-16.log


Auch im Cache findet sich dann keinen neue Datei.
Gruß aus Sachsen. FHEM auf Cubietruck. Vormals EZControl XS1 User.

Tobias

Ehrlich gesagt habe ich keine Ahnung warum der lokale Connect abgelehnt wird:
CallBlockingFn: Can't connect to localhost:7072

Zumindest dies Datei sollte auffindbar sein:
cache/098f6bcd4621d373cade4e832627b4f6.mp3

Das cache Verzeichnis ist da? im Hauptverzeichnis von FHEM? Zugriffsrechte?
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter