FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: Tobias am 07 Januar 2014, 12:57:23

Titel: Neues Modul: Text2Speech
Beitrag von: Tobias am 07 Januar 2014, 12:57:23
Hi,
ich benötige ein paar Tester für mein neues Text2speech Modul. Es befindet sich noch in einer sehr frühen Entwicklungsphase.
ZurZeit habe ich meine paar Zeilen Text2speech als shellscript realisiert. Allerings kann man damit nur sehr kurze Textpassagen lesen lassen da FHEM währenddessen blockiert wird. Deshalb das Ganze nun als Modul mit NoBlocking Mechanismen.

Ziel ist es, FHEm gesprächig zu machen. Den Status meiner Alarmanlage sowie alle Fenster und Türen vorzulesen, die noch offen sind.
Voraussetzung ist ein installierter mplayer sowie konfigurierte sound-devices in /etc/asound.conf. Genutzt wird der Google Translator. Die Qualität der Übersetzung ist IMHO sehr gut.

Anschließend mit visudo den mplayer für alle aufrufbar machen:
ALL     ALL = NOPASSWD: /usr/bin/mplayer

Aufruf:
define <MyTTS> Text2Speech <Alsa-SoundDevice>

define MyTTS Text2speech hw=0.0

set MyTTS tts Das ist ein Test.
set MyTTS tts Das ist ein Test. Und hier noch ein Test.


Per Attr "TTS_Delemiter" kann man einen Delemiter im Text festlegen, bei dem große Texte getrennt werden können. Der Google Translator lässt maximal 100 Zeichen zu. Ist ein Aufruf länger als 100 Zeichen, wird hart nach 100 Zeichen abgeschnitten.

Läuft der FHEM-Server auf einer anderen Maschine, so ist auf dem FHEM-Server Text2Speech als RemoteDevice anzugeben und der FHEM-Client zur Soundausgabe als AusgabeClient (wie oben angegeben). Wichtig ist, das beide Definitions identisch benannt sind, also denselben Namen haben!
define <MyTTS> Text2Speech host[:port][:SSL] [portpassword]

define MyTTS Text2speech 192.168.178.20:7072 MeinFhemPass

set MyTTS tts Das ist ein Test.


Feedback wäre nicht schlecht ;)

History:
* Das Abspielen auf einem RemoteRechner (zb FHEM läuft auf einem Server, der Lautsprecher ist aber an einem abgesetzten RasPi)
* caching von bereits verwendeten tts-Files -> Attribut: TTS_CacheFileDir (default: cache)
* espeak als neue Ressource hinzugefügt -> Attribut: TTS_Ressource
* set <tts> volume <xx> zum setzen der Lautstärke
* das Teilen eines Satzes wenn dieser länger als 100 Zeichen ist.
* entkoppeln von download und Abspielen der tts-Datei, dadurch flüssigere Sprache von mehreren Sätzen
* Nutzung von MP3WRAP bei Google. Einzelne Satzbausteine werden zu einer mp3-Datei gemerged. Dadurch deutlich flüssigere Sprache -> Attribut: TTS_UseMP3Wrap

ToDo:
<leer.... alles abgearbeitet>

Jetzt gibts auch einen Wiki Eintrag: http://www.fhemwiki.de/wiki/Text2Speech
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 07 Januar 2014, 14:01:16
Hi Tobi,

ich hatte mich die letzten Tage auch damit beschäftigt :)
Daher was ich noch so im Kopf habe, vielleicht gefällt dir das ein oder andere davon:

Googles 100 Zeichen Limit umgehen:
http://danfountain.com/2013/03/raspberry-pi-text-to-speech/

Weiterhin ein oder zwei Offline Lösungen:
http://elinux.org/RPi_Text_to_Speech_(Speech_Synthesis)


Ein zusätzlicher Parameter um zwischen den Engines auswählen zu können wäre großartig.
Letztlich sind es ja nur verschiedene Shell Skripte :)


Dann habe ich mir überlegt, wie man das auch für FritzBox User nutzbar macht:
Ich glaube, man bekommt den mplayer recht einfach dazu, den Text nicht zu sprechen, sondern in eine Datei zu schreiben. Am besten in /temp, das idealerweise auf ner Ramdisk liegen sollte.

Damit könnte ein notify dafür sorgen, dass dieses wav File nun zu einem Sounddevice weitergeleitet wird. Oder besser, ein SOAP Request könnte ausgelöst werden und das Renderdevice eigener Wahl das File abspielen.
Aber das ist eine andere Geschichte.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 07 Januar 2014, 14:28:07
Hi Rince,
die 100 Zeichen Begrenzung von Google habe ich genauso umgangen indem ich den Text in einzelne Sätze zerlege. Ich habe mich im ersten Schritt für die ZErlegung in Sätze entschieden weil bei einzelnen Wörtern der Satz ziemlich abgehackt klingt.
Auf der ToDo Liste steht noch: (siehe erstes Post)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Steffen am 08 Januar 2014, 07:36:41
Zitat von: Tobias am 07 Januar 2014, 12:57:23
Anschließend mit visudo den mplayer für alle aufrufbar machen:
ALL     ALL = NOPASSWD: /usr/bin/mplayer

Aufruf:
define <MyTTS> Text2Speech <Alsa-SoundDevice>

define MyTTS Text2speech hw=0.0

set MyTTS tts Das ist ein Test.
set MyTTS tts Das ist ein Test. Und hier noch ein Test.


Per Attr "TTS_Delemiter" kann man einen Delemiter im Text festlegen, bei dem große Texte getrennt werden können. Der Google Translator lässt maximal 100 Zeichen zu. Ist ein Aufruf länger als 100 Zeichen, wird hart nach 100 Zeichen abgeschnitten.

Feedback wäre nicht schlecht ;)

Hallo!

Würde es auch gerne Testen doch leider bleibt mein Rpi stumm bei "set MyTTS tts Das ist ein Test"
Mplayer ist installiert und Audio Test direkt auf RPI klappt mit Soundausgabe über Klinkenlautsprecher,
aber meine "/etc/asound.conf" ist leer, was müsste ich da eintragen??

pi@raspberrypi ~ $ aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: ALSA [bcm2835 ALSA], Gerät 0: bcm2835 ALSA [bcm2835 ALSA]
  Sub-Geräte: 8/8
  Sub-Gerät #0: subdevice #0
  Sub-Gerät #1: subdevice #1
  Sub-Gerät #2: subdevice #2
  Sub-Gerät #3: subdevice #3
  Sub-Gerät #4: subdevice #4
  Sub-Gerät #5: subdevice #5
  Sub-Gerät #6: subdevice #6
  Sub-Gerät #7: subdevice #7


pi@raspberrypi ~ $ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=ALSA
    bcm2835 ALSA, bcm2835 ALSA
    Default Audio Device
sysdefault:CARD=ALSA
    bcm2835 ALSA, bcm2835 ALSA
    Default Audio Device


Mfg Steffen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 08 Januar 2014, 08:34:46
zb:
pcm.!default {
        type hw
        card 0
        device 0
}


Wenn du es wie oben das Modul mit hw=0.0 angibst, sollte es funktionieren. Ansonsten mach mal "verbose 5" für dieses Modul und aktualisiere bitte nochmal das Modul aus dem ersten Post. Schau mal bitte dann im Log nach, da steht der abgesetzte Aufruf drin. Funktioniert dieser in der shell?
zb:
sudo /usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols "http://translate.google.com/translate_tts?tl=de&q=test nochmal"

Bei mir hängt am FHEM-Server eine Terratec Aureon MKII USB-Soundkarte. Mit dieser funktioniert es problemlos....
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 08 Januar 2014, 11:13:59
Nochmals aktualisiert!

Text2Speech ist nun Remote fähig. Das heißt der Lautsprecher kann an einen abgesetzten Raspi mit FHEM und der FHEM-Server steuert diesen per Remote-Call.

Szenario wenn der Server im Keller steht, die Sprachausgabe aber im Obergeschoss im Wohnzimmer erfolgen soll ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Steffen am 08 Januar 2014, 19:23:04
Zitat von: Tobias am 08 Januar 2014, 08:34:46
zb:
pcm.!default {
        type hw
        card 0
        device 0
}


Wenn du es wie oben das Modul mit hw=0.0 angibst, sollte es funktionieren. Ansonsten mach mal "verbose 5" für dieses Modul und aktualisiere bitte nochmal das Modul aus dem ersten Post. Schau mal bitte dann im Log nach, da steht der abgesetzte Aufruf drin. Funktioniert dieser in der shell?
zb:
sudo /usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols "http://translate.google.com/translate_tts?tl=de&q=test nochmal"

Bei mir hängt am FHEM-Server eine Terratec Aureon MKII USB-Soundkarte. Mit dieser funktioniert es problemlos....

Ok, danke habe es...es war noch nicht eingetragen:ALL     ALL = NOPASSWD: /usr/bin/mplayer,
obwohl ich es eingetragen hatte aber irgendwie nicht abgespeichert wurde(Der F30 Fehler) ;)!

Danke für die tolle Hilfe, werde jetzt erstmal ein wenig Testen und dann Feedback geben!

Mfg Steffen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 09 Januar 2014, 07:59:10
Sodala, hier Feedback:

Erst mal vielen Dank :)

Es scheint so, als könne die Dame entweder keine Umlaute vorlesen, oder sie hat eine Abneigung gegen das Alte Testament ;)

ZitatIm Anfang schuf Gott Himmel und Erde. die Erde aber war wüst und wirr, Finsternis lag über der Urflut und Gottes Geist schwebte über dem Wasser. Gott sprach. Es werde Licht. Und es wurde Licht. Gott sah, dass das Licht gut war. Gott schied das Licht von der Finsternis und Gott nannte das Licht Tag und die Finsternis nannte er Nacht. Es wurde Abend und es wurde Morgen: erster Tag. Dann sprach Gott: Ein Gewölbe entstehe mitten im Wasser und scheide Wasser von Wasser.

Halte ersteres für warscheinlich :)

Davon mal abgesehen, hat es aber tapfer den ganzen Text vorgelesen.


Dann habe ich den Delemiter ausprobiert.

Nun kommen wir noch genau bis zur Urflut, bzw. bis zu Urf (der Rest ist weg).
Egal ob ich den Delemiter auf 0 oder 1 setze, nach Urf ist schluss.

Was mir ansonsten noch auffällt:
Die Trennung des Textes nach Punkten ist schon nicht schlecht, aber schneidet im Zweifel einfach Satzteile weg.

Mal ein Blick ins Logfile:
Zitat2014.01.09 07:42:32.740 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols "http://translate.google.com/translate_tts?tl=de&q= Gott schied das Licht von der Finsternis und Gott nannte das Licht Tag und die Finsternis nannte er"
2014.01.09 07:42:40.999 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols "http://translate.google.com/translate_tts?tl=de&q= Es wurde Abend und es wurde Morgen: erster Tag."

Daher würde ich zwei Erweiterungen vorschlagen:
Nicht nur nach Sätzen trennen, sondern anschließend nochmal die Zeichen zählen. Wenn das zuviele sind, auch auf ; und , reagieren, und, wenn das nicht ausreicht, auch "und" als Trenner benutzen. Also vor dem "und"

Damit müsste man einen passablen Sprechrythmus beibehalten können.


Aber danke, es funktioniert schon gar nicht schlecht. Die Umlaute stehen übrigens im Logfile richtig drin.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 09 Januar 2014, 08:28:52
Danke für den Test...
Der Delemiter ist nicht 0 oder 1 sondern ein Trennzeichen. Default ist er "." (ohne Hochkommata)

Die Trennung nehm ich als Verfeinerung in meine ToDoListe auf...
Als erstes steht die Trennung Download/Sprachausgabe an um die unschönen Nachdenk-Sekunden wegzubekommen

Edit: wenn ich mir den Response so anschaue scheinen nicht viel Interesse an einer Sprachausgabe zu haben... ;)
Gerade im Hinblick auf andere kommerzielle Offline-Lösungen bin ich auf Zuarbeit und Patches angewiesen...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 09 Januar 2014, 09:21:09
Danke für die Erklärung :)

Ich kann kein Perl, sonst hätte ich schon längst versucht so ein Modul zu schreiben. Daher kann ich mit Patches nicht weiterhelfen.
Ich kann nur testen.

Für meinen Teil möchte ich die Sprachausgabe nicht mehr missen.

Aber ich denke nach wie vor, dass einige eine Offline Lösung bevorzugen würden. Ich setze es mal auf meinem RasPi auf und schreibe dir wie es geht, dann kannst du es vermutlich relativ leicht einbauen.
Per attr die Art der Ausgabe wählen. Dann könnte man einfach mehr TTS Geräte definieren, die jeweils mit verschiedenen Stimmen sprechen. FHEM wird schizophren :)


Eine Bitte:
Wenn du downloaden lässt, kannst du bitte in /tmp speichern lassen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 09 Januar 2014, 10:15:26
Das Downloadverzeichnis ist per Attr einstellbar.

Diese eine Offlinelösung für den Raspi die 30$ kostet hat sich ganz gut angehört... werde ich mir aber bestimmt nicht bestellen um nur zu testen ;)
Bin mit der Google-Lösung zufrieden.

Was spricht denn gegen die Online-Google-Lösung?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 09 Januar 2014, 11:56:42
Hi,
bin grad am basteln mit kostenlosen Offline Lösungen.

Was gegen online spricht?
Nun für mich persönlich wenig, ich finde die Google Tante toll, abgesehen davon, dass man ihr keine Emotionen beibringen kann.

Andererseits gibt es Nachteile:
Wenn offline, geht nix
Wenn langsames Internet, dauert es länger
Wer keine unbegrentzte Flat hat, braucht Volumen
Nicht jeder will Google seine ganzen Ansagen anvertrauen


Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 09 Januar 2014, 12:30:02
Eine Offline Lösung in die Sekunden einsetzbar ist:
sudo apt-get install espeak

Losplappern tut die Tante zum Beispiel:
espeak -vde+f3 -k5 -s150 "Hallo lieber User, ich bin eine gräßliche Stimme deiner freundlichen Hausautomatisierung"

(gibt auf der Konsole auch viele Fehlermeldungen vom mplayer, aber ansonsten läuft es)

Ich möchte aber vorwarnen:
Kein Vergleich zu Google :)

-vde wählt die deutsche Stimme
f3 steht für female 3, m ist demnach male, und mit der Zahl kann man experimentieren
s150 ist die Sprechrate, ein recht angenehmer Wert
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Strippenzieher am 09 Januar 2014, 14:04:44
Jetzt auch mal was geschrieben ...

Ich verfolge deinen/euren Thread schon einige Tage, leider kann ich das Modul nicht testen, da mein Fhem (noch) nur auf einer Fritte läuft.
Ich würde es aber sehr begrüßen, wenn du/ihr weiter daran rum feilt ...

MFG Chris
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 09 Januar 2014, 14:11:50
Zitat von: Strippenzieher am 09 Januar 2014, 14:04:44
Jetzt auch mal was geschrieben ...

Ich verfolge deinen/euren Thread schon einige Tage, leider kann ich das Modul nicht testen, da mein Fhem (noch) nur auf einer Fritte läuft.
Ich würde es aber sehr begrüßen, wenn du/ihr weiter daran rum feilt ...

MFG Chris
Zumindest der Remote-Teil sollte auf der Fritte laufen ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 09 Januar 2014, 15:52:51
- espeak hinzugefügt
- Caching von Google Sprachtexten

Siehe erstes Posting
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 11 Januar 2014, 13:56:04
Er liest Umlaute immer noch äußerst kreativ vor ;)

Probier mal:
Küche
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Meesus am 12 Januar 2014, 21:51:11
Hi,
ich muss sagen, ich habe auf so ein TTS Modul in FHEM gewartet.  :)
Gefällt mir richtig gut. Habe es soeben getestet und es läuft auf meinem Wlan Raspberry in der Küche mit dem SqueezePlug_rpi_700 zusammen bis jetzt richtig gut. Mein FHEM Server ist aber zur Zeit auf der Fritzbox. Was ich mir vielleicht noch wünschen würde, wäre vielleicht ein Set für Volume. [set MyTTS tts volume80 ..], oder ähnlich.
Was die Sprachausgabe der Google Tante angeht, kann man so manchen Sprachfehler auch gut mit eigenen Buchstaben Ideen ausgleichen.

Gruß Micha
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 13 Januar 2014, 15:03:29
Im ersten Post aktualisiert.
Ein paar Bugfixes sowie das Caching und die Satztrennung optimiert.
Die Lautstärke kann man nun auch setzen (set <ttsdev> volume 50). Bitte testen, konnte ich noch nicht testen..

Ich bin gerade mit dem Bibeltext am testen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 13 Januar 2014, 19:31:08
Macht mal:set tts tts Das Licht in der Küche ist an.
Ihr habt recht, das hört sich wirklich seeeehr abenteuerlich an ;) Ich musste echt dabei lachen als ich es zum ersten Mal gehört habe.

Aber folgendes geht:set tts tts Das Licht in der Kueche ist an.
Ich bau einen Fix ein....
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 13 Januar 2014, 20:34:14
Das alte Shell Skript hat dieses Problem ja nicht.
Vielleicht kannst du ja einfach die Kodierung per Befehl anpassen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 14 Januar 2014, 10:32:44
passen die Umlaute jetzt?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 14 Januar 2014, 14:05:27
Habe im ersten Post nochmals eine neue Version hochgeladen.
Das wäre jetzt aus meiner Sicht die letzte Version vor Produktivgang. Alle ToDo´s sind abgearbeitet.
Der letzte Punkt der hinzugekommen ist:

* Korrektur von Umlauten
* Nutzung von MP3WRAP bei Google. Einzelne Satzbausteine werden zu einer mp3-Datei gemerged. Dadurch deutlich flüssigere Sprache -> Attribut: TTS_UseMP3Wrap

Dazu muss das Tool mp3wrap installiert werden: sudo apt-get install mp3wrap
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: justme1968 am 14 Januar 2014, 15:23:00
ich hätte noch drei wünsche die es etwas Plattform unabhängiger macht. ich das modul gestern auf einem mac probiert und da ist kein sudo nötig. das mplayer binary liegt woanders und ich darf kein alsa device angeben.

vielleicht kannst du diese die drei punkte noch konfigurierbar machen ?

eventuell auch den namen des binares das verwendet wird? mpg321 wäre z.b. eine etwas schlankere alternative.

gruss
  andre
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Kuzl am 14 Januar 2014, 17:16:57
Hallo, ich hätte evtl noch eine Erweiterungsmöglichkeit:
Eine Stimme über ein z.b. am Raspi angeschlossenes Micro aufnehmen, via Google in Text umwandeln und das ganze dann an FHEM schicken.
in FHEM kann dann entsprechend darauf reagiert werden, z.B. bei "Licht an" das Licht einschalten oder bei "Wie warm ist es drausen" die Außentemperatur über TTS ausgeben. Noch cooler wäre das natürlich, wenn das über Remote funktioniert.

Mir ist bewusst, dass das ganze schon über eine Handyapp machbar ist, aber eine vom Handy ungebundene Version wäre mir fast lieber :) einfach ein gut plaziertes Raummikrofon und dann entweder über Tastendruck oder über ein Schlüsselwort (ok ist natürlich ein Leistungsfresser) zuhören.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 14 Januar 2014, 19:45:21
Hi Kuzl,

nett, aber das bau ich nicht ein Das ist komplett etwas anderes... Das script was das kann findest du im Thread zu "Der Raspi hört aufs Wort"
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 14 Januar 2014, 21:56:57
Großartig :)

Jetzt klappt es auch mit den Umlauten :)



Danke Tobi, damit kann ich mein Shell Skript in Rente schicken :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Kuzl am 14 Januar 2014, 22:00:12
Das in dem Thread war von Rice :D - und wurde wegen deinem eingestampft :D
deshalb frag ich
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Meesus am 14 Januar 2014, 22:03:43
Hi,

ich hab´s soeben auch mit TTS_UseMP3Wrap getestet.
Es ist wirklich klasse geworden!
Wenn ich mir jetzt das alte Testament anhöre... ist es jetzt perfekt.  :D

Danke für das tolle Modul.

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 14 Januar 2014, 23:02:53
ZitatDas in dem Thread war von Rice :D - und wurde wegen deinem eingestampft :D
deshalb frag ich

Na, ich freu mich doch, das Tobi es jetzt vernünftig gelöst hat :)

Bitte nicht verwechseln:
Sprachausgabe => funktioniert mit Tobis Modul eindeutig besser
Spracherkennung => machen wir noch im alten Thread, bis es was besseres gibt ;) (das was Dirk da gemacht hat, ist schon ein sehr guter Ansatz)

Aber das sollten wir nicht in Tobis Thread ausdiskutieren.
Darf ich dich in diesen hier einladen?
http://forum.fhem.de/index.php/topic,17409.0.html
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 15 Januar 2014, 08:40:56
Falscher Thread, tschuldigung.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 15 Januar 2014, 11:36:27
Ist soeben mit anständiger Doku eingecheckt worden ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: justme1968 am 15 Januar 2014, 14:00:55
klasse das es mit den änderungen noch geklappt hat.

das file das du eingecheckt hast hat dos zeilenenden. ich vermute das war nicht absicht oder ?

gruss
  andre
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: rudolfkoenig am 15 Januar 2014, 14:08:03
Zeigt auch, dass man vor dem Einchecken kein  perl contrib/commandref_join.pl durchgefuehrt hat, sonst haette man die Meldung
*** EN FHEM/98_Text2Speech.pm: ignoring text due to DOS encoding

gesehen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 15 Januar 2014, 14:29:19
Sorry, hab es gefixed!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 16 Januar 2014, 15:10:02
Wiki-Eintrag: http://www.fhemwiki.de/wiki/Text2Speech
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: MrBlue am 16 Januar 2014, 17:15:48
hmm, alles soweit konfiguriert.
Auf Kommandozeile entsprechende Ausgabe und unter FHEM leider keine. Verbose 5 bringt nur die Meldung  Text2Speech TTS0 tts Das ist ein Test.

Weitere Debugging-Möglichkeiten?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 16 Januar 2014, 18:49:03
Wenn TTS als Local definiert ist, muss definitiv mehr kommen.
Was steht in der Definition unter "MODE"? Da muss "DIRECT" stehen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: MrBlue am 16 Januar 2014, 21:34:10
Die Konfiguration ist lokal.  Unter MODE steht DIRECT.

Im Log nur "Cmd: >set TTS0 tts Das ist ein Test.<
2014.01.16 21:31:02 5: Triggering TTS0 (1 changes)
2014.01.16 21:31:02 5: Notify loop for TTS0 tts Das ist ein Test.
2014.01.16 21:31:02 4: eventTypes: Text2Speech TTS0 tts Das ist ein Test. -> tts Das ist ein Test."
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 17 Januar 2014, 17:41:37
ich habe ehrlich gesagt keine Ahnung wo die Meldungen her kommen... Vom TTS Modul kommen Sie definitiv nicht....
Stell mal einen kompletten Screenshot der Definition hier rein (incl readings und Attribute...)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Sirphunk am 17 Januar 2014, 22:30:31
Sehr sehr geil!
Vielen Dank für das Modul.

Darauf habe ich gewartet. Ich habe schon unendliche viele Ideen was man damit anstellen kann.

Habe meinen FHEM auf der FritzBox 7390 laufen und meinen RaspberryPi nun mit Lautsprechern in den Flur gehängt.
Läuft 1A

Bin auf die Reaktion meiner Freundin gespannt, wenn sie nachher nach Hause kommt und persönlich vom Haus begrüßt wird. :-D
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 18 Januar 2014, 06:47:55
Danke für die INfo..... Zumindest weiß ich jetzt das es auch auf ner Fritze als Client-Server Konstrukt läuft :)
Freut mich wenn auch andere das Modul gebrauchen können :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hans Franz am 18 Januar 2014, 08:18:12
Moin,
Läuft super. Im client-Modus (Server:Raspi) die Temperaturen vorlesen lassen:Geil!

Aber zum WIKI:
attr MyTTS TTS_UseMp3Wrap 1;: geht wohl nicht, aber attr MyTTS TTS_UseMP3Wrap:1 geht.
attr Text2Speech room Text2Speech ist wohl auch nicht so gemeint :)

Mit freundlichem Gruß und Dank
Hans
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: MrBlue am 18 Januar 2014, 12:19:45
Hi Tobias,

anbei die Einstellungen. Habe es auch einfach nur mit Standard probiert. Leider kein Erfolg.
Über Aufruf in FHEM läuft ansonsten espeak mit mbrola bei mir problemlos (`/usr/bin/espeak -v mb-de7 'Hallo'`).
Danke.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 18 Januar 2014, 13:45:41
Hi,
also für den Standard benötigst du keine Attribute ;)
Hast du mplayer per visudo verfügbar gemacht? Bzw hat der User fhem das Recht Audiogeräte anzusprechen? Per Default nämlich nicht.

Versteh ich aber trotzdem nicht... da MUSS etwas im Log stehen bei verbose 5... mach sicherheitshalber nochmal ein "update"
Bei den anderen funktionierts ja auch...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: svenr am 18 Januar 2014, 20:35:10
Hallo,

das Modul funktioniert gut. Ich habe jedoch ein Problem über Bluetooth (fhem läuft auf einem raspberry pi).

Die erzeugten mp3-Dateien werden nicht ausgegeben (sind nicht zu hören). Evtl. liegt es daran, dass diese in Mono sind? Am PC wird der Ton ausgegeben.
Eine andere mp3-Datei (Stereo) wird über Bluetooth am raspberry ausgegeben. Getestet mit identischen Befehlen auf der Konsole.
Wenn ich Lautsprecher direkt an den raspberry anschließe, höre ich den Ton. Die Mono-Datei scheint also nur Probleme per Bluetooth zu haben.

Vielleicht hat jemand einen Tipp für mich, liegt sicher an der ALSA-Konfiguration. Danke.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 19 Januar 2014, 06:48:18
also ich nutze das Modul  mit Google und Ausgabe per bluetooth -> kein problem....
Mach mal einen längeren Satz... vieleich ist dein Satz zu kurz? BEi mir wird nämlich immer dieletzte Sekunde bei Ausgabe per BT abgeschnitten.. Deshalb das Attr TTS_SentenceAppendix

Was sagt verbose auf 5?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 19 Januar 2014, 08:08:37
Hi Tobias,
darf ich einen Vorschlag machen?

Die Geschichte mit der Lautstärke finde ich sehr gut. Wäre es möglich,  die Lautstärke alternativ per attr setzen zu können?


Grund:
Wenn Sprachausgaben von 22 Uhr bis 6 Uhr kommen, fände ich es toll, wenn diese leiser sind.

Wenn es ein attr für die Lautstärke gibt, muss man nur mit einem at *22:00:00  set .... die Lautstärke neu definieren.

Ansonsten muss man in jedem Sprachausgabenotify noch diese Unterscheidung treffen.


Meinst du, das geht? (Oder geht das so auch elegant und ich sehe blos den Weg nicht?)

Besten Dank
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: svenr am 19 Januar 2014, 19:09:16
Zitat von: Tobias am 19 Januar 2014, 06:48:18
also ich nutze das Modul  mit Google und Ausgabe per bluetooth -> kein problem....
Mach mal einen längeren Satz... vieleich ist dein Satz zu kurz? BEi mir wird nämlich immer dieletzte Sekunde bei Ausgabe per BT abgeschnitten.. Deshalb das Attr TTS_SentenceAppendix

Was sagt verbose auf 5?

Hi Tobias,
ich habe einen längeren Satz probiert, auch mit TTS_SentenceAppendix. Leider ohne Erfolg. Die erzeugte Datei wird wie gesagt in iTunes korrekt wiedergegeben. Hier die Log-Ausgabe:

2014.01.19 18:51:49.842 4: Text2Speech: Bearbeite per MP3Wrap jetzt den Text: Das ist ein langer Satz, der ueber Bluetooth ausgegeben werden soll.
2014.01.19 18:51:49.856 4: Text2Speech: mp3wrap cache/4b9f11bfd29011e838d4f291e84b98f7.mp3 cache/f58135e4ec5738b50622227c4687a8b9.mp3 cache/silence.mp3
2014.01.19 18:51:50.103 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=bluetooth  -nolirc -noconsolecontrols cache/4b9f11bfd29011e838d4f291e84b98f7_MP3WRAP.mp3

Im Anhang meine Einstellungen:

Wenn ich eine Musik-MP3 mit dem Befehl wie oben aufrufe, wird diese korrekt ausgegeben. Liegt dann vermutlich eher an einer Systemeinstellung (debian).
Danke!
Sven
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: MrBlue am 20 Januar 2014, 10:45:11
Leider weiterhin kein Erfolg, auch keine Logs...
Ein Aufruf funktioniert über die Kommandozeile, wie auch in FHEM. So dürften die Berechtigungen und die Hardware-Konfiguration korrekt sein.   
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 20 Januar 2014, 12:20:46
Zitat von: Rince am 19 Januar 2014, 08:08:37
Wenn es ein attr für die Lautstärke gibt, muss man nur mit einem at *22:00:00  set .... die Lautstärke neu definieren.
Ansonsten muss man in jedem Sprachausgabenotify noch diese Unterscheidung treffen.
Meinst du, das geht? (Oder geht das so auch elegant und ich sehe blos den Weg nicht?)

Ich würde sagen: Weg nicht gesehen? Das klappt doch... genaus deswegen ist ein "set <myTTS> volume 50" verfügbar... damit kann dynamisch geregelt werden. zb. per notify

@SvenR: das muss irgendwie klappen. mein Client ist auch ein Raspi...
@MrBlue: irgendetwas ist bei dir faul.... mir gehen die Ideen aus.... Du schaust auch in das korrekte fhem-Logfile?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: MrBlue am 20 Januar 2014, 12:56:33
Ich weiss auch nicht mehr weiter...  :-\ Neuer Versuch.

Im TTS-Log "2014-01-20_12:54:30 TTS0 tts Das ist ein Test."

Im FHEM-Log:
2014.01.20 12:54:30 5: Cmd: >set TTS0 tts Das ist ein Test.<
2014.01.20 12:54:30 5: Triggering TTS0 (1 changes)
2014.01.20 12:54:30 5: Notify loop for TTS0 tts Das ist ein Test.
2014.01.20 12:54:31 4: eventTypes: Text2Speech TTS0 tts Das ist ein Test. -> tts Das ist ein Test.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 20 Januar 2014, 14:30:08
Da muss etwas falsch sein. Im Screenshot von dir Steht "MyTTS", hier aber steht etwas von TTS0... Britte prüfe das mal..
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: MrBlue am 20 Januar 2014, 15:31:06
Sorry. Das passt schon mit TTS0. Hab's umbenannt.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: eppi am 20 Januar 2014, 16:46:46
@MrBlue:
Ich habe den MPlayer bereits vor dem Module TTS von Tobias zum abspielen von mp3 Files aus FHEM genutzt. Damit FHEM die Berechtigung dafür hatte, musste ich dem User fhem in die Gruppe Audio eintragen.

sudo gpasswd -a fhem audio
Danach den Raspi rebooten...

Vielleicht hilfts ja  ;)
Gruss Dani
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: MrBlue am 20 Januar 2014, 16:55:57
Schön wärs, wenn so einfach die Lösung. Der User ist in der Gruppe. Direkte Aufrufe von mplayer und espeak funktionieren über FHEM. Nur leider nicht über das Modul...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: MrBlue am 20 Januar 2014, 23:53:57
Folgende Aufrufe getestet, die auch erfolgreich sind:

#DUMMY SOUNDCHECK
define SoundCH dummy
attr SoundCH group Sound.Control
attr SoundCH room Control
attr SoundCH setList state:espeak,mplayer,speaker-test
attr SoundCH webCmd state
define SoundCH_PAIR notify SoundCH {\
   if ("$EVENT" eq "espeak") {\
      `/usr/bin/espeak -v mb-de7 -a 150 -s 100 'Das ist ein Test'`;;\
   }\
   elsif ( "$EVENT" eq "mplayer") {\
      `/usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols 'http://translate.google.com/translate_tts?tl=de&q=Das ist ein Test.'`;;\
   }\
   elsif ( "$EVENT" eq "speaker-test") {\
      `/usr/bin/speaker-test -t sine -f 440 -c 2 -s 1`;;\
   }\
}
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: KlausBüker am 21 Januar 2014, 15:40:11
Hi Tobias,

vielen Dank für das neue Modu. Habe es bei mir "eingebaut". Jedoch nach einmaliger Lautsprecher-Ansage wird kein "set MyTTS ttx hallo" mehr ausgeführt. Erst ein rereadcfg bringt das Modul wieder zum Arbeiten. Vielleicht hast Du eine Idee?

Auf meiner Synology NAS habe ich kein sudo, habe also wie folgt konfiguriert:
define MyTTS Text2Speech none
attr MyTTS TTS_MplayerCall /var/packages/AudioStation/target/bin/mplayer
attr MyTTS verbose 5

Gruß
Klaus

Hier das Log (reverse)
Can't use an undefined value as a symbol reference at /volumeUSB1/usbshare1-1/fhem/FHEM/Blocking.pm line 126.

2014.01.21 15:09:35 1: CallBlockingFn: Can't connect to localhost:
Use of uninitialized value in concatenation (.) or string at /volumeUSB1/usbshare1-1/fhem/FHEM/Blocking.pm line 109.
Exiting... (End of file)

[AO_ALSA] Unable to find simple control 'Master',0.

A:  -0.0 (unknown) of 0.7 (00.7) ??,?%                                         
A:   0.2 (00.2) of 0.7 (00.7)  1.9%                                             
A:   0.2 (00.2) of 0.7 (00.7)  1.9%                                             
A:   0.3 (00.2) of 0.7 (00.7)  1.9%                                             
A:   0.3 (00.3) of 0.7 (00.7)  1.9%                                             
A:   0.3 (00.3) of 0.7 (00.7)  1.9%                                             
A:   0.4 (00.3) of 0.7 (00.7)  2.0%                                             
A:   0.4 (00.3) of 0.7 (00.7)  2.0%                                             
A:   0.4 (00.4) of 0.7 (00.7)  2.0%                                             
A:   0.5 (00.4) of 0.7 (00.7)  2.0%                                             
A:   0.5 (00.4) of 0.7 (00.7)  2.0%                                             
A:   0.5 (00.5) of 0.7 (00.7)  2.0%                                             
A:   0.5 (00.5) of 0.7 (00.7)  2.0%                                             
A:   0.6 (00.5) of 0.7 (00.7)  2.0%                                             
A:   0.6 (00.6) of 0.7 (00.7)  2.0%                                             
A:   0.6 (00.6) of 0.7 (00.7)  2.0%                                             
A:   0.7 (00.6) of 0.7 (00.7)  2.0%                                             
A:   0.7 (00.6) of 0.7 (00.7)  2.0%                                             
Starting playback...
Remove the equalizer filterVideo: no video
[AO_ALSA] Unable to find simple control 'Master',0.
AO: [alsa] 44100Hz 2ch s16le (2 bytes per sample)
AUDIO: 16000 Hz, 1 ch, s16le, 32.0 kbit/12.50% (ratio: 4000->32000)
Selected audio codec: MP3 (MPEG audio layer 3) [libavcodec]
Enable it at compilation.
Requested audio codec family [mpg123] (afm=mpg123) not available.
Load subtitles in cache/
[lavf] stream 0: audio (mp3), -aid 0
[mp3 @ 0x4015e300]Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0x4015e300]max_analyze_duration 10000 reached at 36000
Detected file format: MP2/3 (MPEG audio layer 2/3) (libavformat)
Playing cache/598d4c200461b81522a3328565c25f7c.mp3.

MPlayer2 8bf655a (C) 2000-2012 MPlayer Team
Cannot find HOME directory.
2014.01.21 15:09:34 4: Text2Speech:/var/packages/AudioStation/target/bin/mplayer   -nolirc -noconsolecontrols cache/598d4c200461b81522a3328565c25f7c.mp3
2014.01.21 15:09:34 4: Text2Speech: Datei <cache/598d4c200461b81522a3328565c25f7c.mp3> bereits vorhanden, erneuter Download nicht notwendig
2014.01.21 15:09:34 4: Text2Speech: Bearbeite jetzt den Text: hallo
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Frank Hell am 29 Januar 2014, 19:12:21
Sollte "TTS_Delemiter" nicht "TTS_Delimiter" heißen...?  8)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hokascha am 29 Januar 2014, 19:31:00
Überlege gerade, ob sich das wohl mit meinem neuen, kleinen, noch nicht wirklich fertigem DLNA-Modul verbinden lässt, siehe http://forum.fhem.de/index.php/topic,14266.msg130297.html#msg130297

Bei mir hier lokal hab ich das im Moment über ein kleines PHP-Skript gelöst, dass den gewünschten Text via Google holt und als MP3-Datei für den DLNA-Renderer zur Verfügung stellt. Da das Text2Speech-Modul da schon deutlich ausgereifter scheint, müsste es doch möglich sein, statt der Ausgabe via MPlayer einfach das MP3-File via HTTP-Download zur Verfügung zu stellen und dem DLNA-Renderer nur die URL mitzuteilen, das geht über mein Modul z.B. mit
set MyRenderer http://fhemserver/file.mp3

Damit könnte man also die eigentliche Sprachausgabe auf ein beliebiges DLNA-fähiges Endgerät umleiten, WLAN-Radios, TVs, etc.

Grüße,

Kevin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 30 Januar 2014, 13:01:53
ZitatHier das Log (reverse)
Can't use an undefined value as a symbol reference at /volumeUSB1/usbshare1-1/fhem/FHEM/Blocking.pm line 126.

2014.01.21 15:09:35 1: CallBlockingFn: Can't connect to localhost:
Use of uninitialized value in concatenation (.) or string at /volumeUSB1/usbshare1-1/fhem/FHEM/Blocking.pm line 109.
Exiting... (End of file)
Das sieht aus, als ob du keinen Telnetzugang im fhem definiert hast..??

DLNA-Renderer hört sich interessant an... Ich streame es zZ. per Bluetooth-Stick zu meinem Bluetooth-Lautsprecher
Ich kann im Modul zb. die Set Methode deines Moduls aufrufen und damit auch die mp3-Datei URL übergeben...
Hat das DLNA-Modul schon einen relativ reifen Stand..??
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hokascha am 30 Januar 2014, 14:49:23
Zitat von: Tobias am 30 Januar 2014, 13:01:53
Ich kann im Modul zb. die Set Methode deines Moduls aufrufen und damit auch die mp3-Datei URL übergeben...

Genau, und der Benutzer müsste deinem Modul z.B. per attr-Befehl das anzusteuernde Gerät mitteilen, damit Du weißt, auf welches Gerät die set Methode angewendet werden muss.

Zitat von: Tobias am 30 Januar 2014, 13:01:53
Hat das DLNA-Modul schon einen relativ reifen Stand..??

Nicht wirklich. Es funktioniert soweit ganz gut, zumindest mit meinem Philips NP2500 WLAN-Radio. Ich hab hier auch noch ein Hama, da geht nix ;-) Da das einfache übergeben einer HTTP-URL eigentlich ein Hack das DLNA-Protokolls ist, kann ich schon vorstellen, dass das nicht bei allen Geräten funktioniert. Um das wirklich sauber zu machen, müsste man auch ein DLNA-Server-Modul in FHEM haben.

Grüße,

Kevin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 30 Januar 2014, 16:19:50
hmm, da finde ich die Lösung mit der Bluetoothübertragung aber besser...
ich glaube nicht das fhem den Anspruch eines DLNA-Servers hat ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hokascha am 30 Januar 2014, 18:12:07
Zitat von: Tobias am 30 Januar 2014, 16:19:50
ich glaube nicht das fhem den Anspruch eines DLNA-Servers hat ;)

Natürlich müsste das kein vollwertiger Server sein, soll ja nur das Protokoll unterstützen, damit die DLNA-Clients sich unfallfrei die Datei abholen können. Ich guck mal, schätze das ist noch weniger Code als der Controller ;-)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 04 Februar 2014, 14:45:37
@Tobias
Ich versuche grade eine zweite Instanz zu erzeugen.
MyTTS (Google) und MyTTSlocal (espeak)

Das scheint MyTTS zu löschen. Jedenfalls verschwindet es aus der Geräteübersicht?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 04 Februar 2014, 18:55:44
Nö...
habe gerade
1x lokale Google Instanz
1x lokale ESpeak Instanz
1x Remote Instanz
angelegt... und alle 3 sind da...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 05 Februar 2014, 12:10:53
[F***]
Entschuldige Tobias, habe festgestellt, dass dank meinem UMTS Anschluss wohl grade eh nix geht, außer gecacheten Dateien.
Da muss man erst mal drauf kommen.

Was die Sache noch dümmer macht, wenn ein leeres File zurück kommt, wird dieses ebenfalls gespeichert und bei einem erneuten Aufruf wieder abgespielt.

Hat man also einen Ausdruck im Cache, der beim ersten Aufruf nicht ging, bekommt man immer dieses fehlerhafte File abgespielt :( (sieht also so aus, als ob es nicht ginge)

Die Lösung ist ja ganz einfach, Cache leeren. Aber vielleicht ist das ja auch der Fehler, den einige vorher hatten.

Noch eine Frage:
Kannst du evtl. den Namen der Text2Speech Instanz, die die Sprache ausgeben soll, in den Namen der Cache Dateien mit einbauen? Also z.B. MyTTS.435uu4533z4543z54z53.mp3 ?

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 05 Februar 2014, 14:23:43
Warum die zusätzliche Kennung? Das mp3 sollte immer gleich sein
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 05 Februar 2014, 15:00:17
Ja und nein.
Bei mir im Moment folgendes Problem:

Bekomme nur leere MP3s zurück (vermute meinen UMTS Stick als Schuldigen).
Wenn ich jetzt eine neue Instanz bastle, scheint es zu funktionieren, solange die Daten schon im Cache liegen, obwohl es in Wirklichkeit nicht geht.
Jedes neue unbekannte Wort das bis dahin ausgegeben werden sollte, sorgt wieder nur für eine falsche MP3 Datei.

Ich müsste also erst  mal den mp3 Cache leeren, damit später wieder alles funktioniert. Jetzt wäre es dumm, da ich damit auch die funktionierenden Info-MP3s in den Wind schieße.


Außerdem:
Stell dir mal vor, Google bastelt neue Features in seine Stimme ein. Ich denke hier an emotional speech.
Dann könnte eine muffelige Haussteuerung anders klingen, als eine fröhliche gut gelaunte Haussteuerung.
Muffelig könnte sie sein, wenn Batterien gewechselt werden müssen, bestimmte Leute anrufen etc.

Verstehst du, was ich meine?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 06 Februar 2014, 08:35:38
Ich werde es als optionales Attribut einbauen.
Sind die leeren mp3files 0Bytes lang? Dann könnte man darauf filtern und löschen...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: svenr am 09 Februar 2014, 19:06:27
Hallo Tobias,

ich habe nun mal einen anderen Bluetooth-Lautsprecher getestet. Damit funktioniert die Ausgabe korrekt. Also liegt es wohl am zuvor verwendeten Bose Lautsprecher.

Viele Grüße
Sven
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fiedel am 13 Februar 2014, 10:01:24
Hi Tobias,

also erst mal vielen Dank für das Modul! Da steckt viel Arbeit und KnowHow drin. In den letzen Tagen habe ich dein Modul und auch StreamRadio bei mit eingerichtet und alles aufeinander abgestimmt. Dabei ist mir Folgendes aufgefallen, was vielleicht dein Modul noch etwas verbessern könnte:

Gegenüber Webradiosendern und auch gut ausgesteuerten, selbst hergestellten Audioansagen (sowas habe ich vor TTS genutzt), ist die Lautstärke der TTS- Ansage recht leise. Selbst eine Lautstärkeautomatik, die aus FHEM heraus die Lautstärke vor jeder TTS- Ansage hochzieht und danach wieder auf den alten Wert zurückfährt, hilft nur bedingt.

Zum Glück gibt es für mplayer einen Parameter "-af volume=", mit dem man einen "internen Mixer" steuern und zu leise Signale bereits vor dem Systemmixer in der Lautstärke anheben kann. Ich habe also probehalber im Modul die Zeile 43 entspr. angepasst:

my $mplayerAudioOpts    = '-af volume=6 -ao alsa:device=';

Das Ergebnis ist perfekt. Man kann sich die Ansagelautstärke so hinbiegen, dass es gut zu Radio und Audiofiles passt. Solltest du es als Attribut hinzufügen wollen, wäre ggf. die Bezeichnung "pregain" passend.

Viele Grüße

Frank

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 13 Februar 2014, 18:42:41
Ich glaube das habe ich sogar schon benutzt beim
Set volume
Kannst ja mal schauen ob das dir schon hilft
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Starkstrombastler am 13 Februar 2014, 23:55:06
Ich habe das Modul getestet - da kommt Freude auf, Danke.

Zunächst habe ich den Raspi via HDMI an meinen TV angeschlossen. Beim Vorlesen hat dann der TV scheinbar die ersten vier Sekunden verschluckt(?).

Mit amixer cset numid=3 1 habe ich die Ausgabe auf den Klinkenstecker und einen separaten Aktivlautsprecher umgeleitet - und voila - der Text wird komplett vorgelesen.

Eine Kleinigkeit habe ich noch gefunden: Bei Eingabe von set MyTTS volume 100
folgt eine Fehlermeldung:
volume level expects 0..100 percent

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 14 Februar 2014, 03:42:00
Du könntest 4 Sekunden Stille vor jeder Textansage einbauen.

Schau mal im Commandref nach. Entweder TTS_SentenceAppendix oder TTS_FileAppendix.
Damit sollte sich das lösen lassen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mi.ke am 14 Februar 2014, 07:36:06
Tach,
das Problem hab ich auch . . .
(Anfang der Ausgabe wird am manchen BT Speakern  "verschluckt)

TTS_SentenceAppendix => hängt am ENDE der Ausgabe was an (habe fertig)

Sensationell wäre eine Funktion wie TTS_SentenceAppendix, die eine Datei VOR der Ausgabe platziert.
Könnte z.B. auch als Standard Einleitungstext verwendet werden . . . .

Cheers
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fiedel am 14 Februar 2014, 10:37:20
Zitat von: Tobias am 13 Februar 2014, 18:42:41
Ich glaube das habe ich sogar schon benutzt beim
Set volume
Kannst ja mal schauen ob das dir schon hilft

Hi Tobias,

habs gefunden. Du hattest Recht, deine Lautstärke stellt schon am mplayer. Allerdings war so noch keine echte Pegelanhebung möglich. Bei 99% Lautstärke kam nur 99% der Originallautstärke des Soundfiles raus, was mir zu leise war.

Ich hab mal etwas getestet und angepasst: Wei es jemand bemängelt hatte: Die Lautst. lässt sich jetzt auch auf "100" und nicht nur "99" stellen. Dann habe ich den Parameter mit der "+dB"- Wirkung an die Stelle deines vorherigen Parameters gesetzt. Weil jetzt bei einer Lautstärke von z.B. "100" die Lautsprecher explodieren würden, habe ich einen Faktor eingefügt, der dafür sorgt, dass man weiterhin die Lautst. von 0...100 eingeben kann. Wem das noch zu laut ist, kann sich den Faktor anpassen. Der Faktor für Angsthasen  ;) wäre z.B. "0.10". Das entspricht bei Vol.=100 einer Verstärkung um 10 dB. Außerdem ergibt "set myTTS volume 0" jetzt nicht mehr "kein Ton" sondern "Originalpegel". Ich hätte aber auch schon eine Idee, wie das wieder möglich wäre.

Achtung! Tastet euch beim Ausprobieren an die Lautstärke besser vorsichtig heran! Empfehlung zum testen wären Werte kleiner 50. Bei mir hängen nur Passivquäken am Phoneout des Rechners, aber wer dicke Aktivlautsprecher hat, kann sich jetzt in Grund und Boden brüllen lassen.  ;D

Die Änderungen:

320: return "volume level expects 0..100 percent" if($vol !~ m/^([0-9]{1,3})$/ or $vol > 100); #fiedel: lasse 3-stellige Zahlen zu, aber nicht ueber 100
321: $hash->{VOLUME} = $vol *0.15  if($vol <= 100); #fiedel: Faktor fuer Vol. wegen Ausgabe in +dB, lasse auch Wert= 100 zu
322: delete($hash->{VOLUME}) if($vol > 100); #fiedel: loesche Wert nur wenn groesser 100

461: $mplayerOpts .= "  -af volume=" . $hash->{VOLUME}; #fiedel: Vorverstaerkung in +dB


Testausgabe mit "set myTTS volume 100":

tts Zeile 461 - Wert von mplayerOpts: -nolirc -noconsolecontrols  -af volume=15

Gruß

Frank
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 14 Februar 2014, 12:39:47
Als Workaround könnt ihr eine beliebige Datei nehmen!
Zitat
TTS_FileMapping
Definition of mp3files with a custom templatedefinition. Separated by space. All templatedefinitions can used in audiobricks by i>tts. The definition must begin and end with e colon. The mp3files must saved in the given directory by TTS_FIleTemplateDir.
attr myTTS TTS_FileMapping ring:ringtone.mp3 beep:MyBeep.mp3
set MyTTS tts Attention: This is my ringtone :ring: Its loud?

Nehmt eine Datei mit Stille, mappt sie mit FileMapping

set MyTTS tts :Stille: Und hier kommt der Text


Also so:
attr myTTS TTS_FileMapping stille:audiodateimit4sekundenstille.mp3 beep:MyBeep.mp3
set MyTTS tts :stille: hier der Text

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Marcel2209 am 16 Februar 2014, 22:50:52
Hallo Tobias,

erstmal super Modul funktioniert soweit auch ganz gut, nur schaffe ich es nicht ein MP3 file abzuspielen.

mir wird statt der mp3 der Ordner und Dateiname angesagt, also templates alarm.mp3 z.B.

fhem.cfg:
define MyTTS Text2Speech hw=0.0
attr MyTTS room Flur
attr MyTTS TTS_UseMP3Wrap 1
attr MyTTS TTS_FileMapping alarm:alarm.mp3

set MyTTS tts Test :alarm: Test:
Ausgegebener Text: Test templates alarm punkt mp3 Test

Und zum anderen ist die Ausgabe sehr leise.
Ich habe über Klinke einen aktiven Handy Lautsprecher angeschlossen der eigentlich ziemlich laut ist.
Volume ist auf 99 gesetzt 100 wird nicht akzeptiert.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fiedel am 17 Februar 2014, 08:24:29
Hi Marcel,

ZitatVolume ist auf 99 gesetzt 100 wird nicht akzeptiert.

dann probier mal mein angepasstes Modul von ein paar Posts weiter oben (http://forum.fhem.de/index.php/topic,18481.msg137623.html#msg137623)!

Aber gut den Text dazu lesen und nicht gleich auf 100% loslegen! ;)

Gruß

Frank
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 17 Februar 2014, 13:18:26
Marcel, machst du bitte mal ein verbose 5 und postest die Einträge vom Logfile?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 17 Februar 2014, 15:55:14
habs noch nicht geschafft die Änderungen umzusetzen.
Allerdings sollte "set xxx volume" auch weiterhin gut möglich sein, 0 = Stumm und 100 = maximale Lautstärke.
Allerdings werde ich wohl noch ein Verstärkungsfaktor per Attribut einbauen, zwischen 0-10. Ich glaube der mplayer hat dafür auch eins direkt parat...
Dann kann man grundsätzlich dieses setzen und wie gewohnt per volume regeln.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 17 Februar 2014, 15:59:04
Könntest du noch das
$t =~ s/ß/sz/g (Ich glaube in Zeile 377)

Gegen:
$t =~ s/ß/ss/g

austauschen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 17 Februar 2014, 20:07:44
bitte mal testen

Neues Attr: TTS_VolumeAdjust
Ist in Prozent anzugeben: Default: 110%
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Marcel2209 am 17 Februar 2014, 22:22:49
MP3 wird jetzt abgespielt, ich hatte die MP3 im falschem Ordner abgelegt ::)

mit dem angepasstem Modul von fiedel ist die Lautstärke auch in Ordnung.

Kann man auch nur die MP3 abspielen lassen ohne weiteren Text?

Gruß Marcel
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 17 Februar 2014, 22:55:27
Ich glaube, nachdem es bei dir läuft, könntest du es vermutlich mit
set MyTTS tts Test :alarm:
ziemlich schnell rausfinden.

Scheller als hier zu fragen ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Marcel2209 am 17 Februar 2014, 22:59:16
Das hab ich bereits probiert das geht eben nicht, deshalb frag ich ja erst.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 17 Februar 2014, 23:34:20
Hm, dann hast du doch die Antwort?

Du könntest versuchen mal einige Leerzeichen anzugeben, oder, gib mal das Zeichen ALT + 255 (also ALT Taste drücken und auf dem Ziffernblock 255 tippen) ein.
Das sieht aus wie ein Leerzeichen, ist aber keines ;) (wenn nach dem ALT 255 nix passiert, was wie ein Leerzeichen aussieht, Numlock drücken)

Das Modul sollte also denken, dass ein Zeichen kommt, aber keine Sprachausgabe erzeugen.

Hoffe ich jedenfalls.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fiedel am 18 Februar 2014, 08:43:37
Zitat von: Marcel2209 am 17 Februar 2014, 22:22:49
Kann man auch nur die MP3 abspielen lassen ohne weiteren Text?

Wie sieht denn dein Szenario aus? Eine MP3 kannst du auch direkt an den mplayer schicken, ohne TTS- Modul:

{system("sudo mplayer /Pfad/Sound.mp3 &")}
Ggf. auch ohne sudo - musst du probieren.

So mache ich das: Für einige feste Alarme nehme ich MP3s, teilw. mit Gong- Geräusch, die ich direkt an mplayer schicke. Variable Ansagen wie Temperaturen oder Telefonanrufer lasse ich von TTS ansagen.

Gruß

Frank
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 18 Februar 2014, 14:32:44
Na ja,
ich verstehe es schon. Der Vorteil ist, dass Modul ist non blocking und brächte auch gleich den Vorteil mit, auf Remote Geräten ausgegeben werden zu können.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 18 Februar 2014, 14:35:36
Zitat von: Rince am 17 Februar 2014, 22:55:27
Ich glaube, nachdem es bei dir läuft, könntest du es vermutlich mit
set MyTTS tts Test :alarm:
ziemlich schnell rausfinden.

Scheller als hier zu fragen ;)
Ich nehme es mal als ToDo mit auf...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 21 Februar 2014, 13:18:07
Hi,

mal wieder ich :)
Könntest du ein attr einbauen, um die Ausgabesprache zu setzen? Am besten mit frei definierbarem Text, also ohne DropDown oder so. Wirklich ganz einfach :)

Es müsste wohl lediglich in der Ausgabe URL die Buchstaben für die Sprache austauschen
statt ge zb. en

Dann könnte man entweder kurzfristig die Sprache umschalten, oder sich verschieden-sprachige Stimmen zulegen.


Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 21 Februar 2014, 13:21:37
Könnte ich machen. Aber mit dropdown. Google nimmt nur spezielle Schlüsselwoerter an

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 21 Februar 2014, 13:58:00
Ich hab nix gegen Dropdown, ich wollte es nur einfach halten ;)

Finde ich großartig wenn du das machtest.

Wenn ich mir was wünschen darf bei der Dropdownliste:
Deutsch, Englisch, Polnisch, Hebräisch
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 21 Februar 2014, 15:18:30
Damit du quasi dir den Auftrag erteilt die Google Kennungen für die sprachen her auszusuchen ;)
PS: bin jetzt 2 tage im urlaub

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 22 Februar 2014, 17:40:52
Hallo!
Ich bekomme Text2Speech bei mir einfach nicht zum Laufen...  :'(
Habe einen Raspberry Pi mit dem aktuellen Debian wheezy und FHEM und außerdem genau das FHEMWiki zu Text2Speech befolgt. Leider bleibt mein FHEM stumm. Hab es auch direkt über die shell versucht mit
Zitatsudo /usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols "http://translate.google.com/translate_tts?tl=de&q=test nochmal"
Leider auch ohne Erfolg.
In der Shell wird dann folgendes angezeigt:
Zitat
Connecting to server translate.google.com[173.194.116.198]: 80...

Cache size set to 320 KBytes
Cache fill:  1.63% (5328 bytes)

Audio only file format detected.
==========================================================================
Requested audio codec family [mpg123] (afm=mpg123) not available.
Enable it at compilation.
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 53.35.0 (external)
Mismatching header version 53.32.2
AUDIO: 16000 Hz, 1 ch, floatle, 32.0 kbit/6.25% (ratio: 4000->64000)
Selected audio codec: [ffmp3float] afm: ffmpeg (FFmpeg MPEG layer-3 audio)
==========================================================================
[AO_ALSA] Format floatle is not supported by hardware, trying default.
AO: [alsa] 16000Hz 1ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A:   0.9 (00.8 ) of 1.0 (01.0)  1.3% 0%

Versteht jemand, was hier falsch läuft?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 23 Februar 2014, 13:04:12
das "device=hw=0.0" muss bei dir natürlich mit der Azsgabe von "aplay -l" übereinstimmen... Mplayer spielt ab, aber an dem Device hast du keinen Lautsprecher dran??

Sprachkürzel:

de -> deutsch
en -> englisch
es -> spanisch
pl -> polnisch
fr -> französisch

Quelle: http://de.selfhtml.org/diverses/sprachenlaenderkuerzel.htm
Das ganze muss man jetzt testen ob Google die Kürzel annimmt. Hebräisch (he) wird zb. nicht akzeptiert)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 23 Februar 2014, 16:04:38
"aplay -l" ergibt:
Zitat**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
  Subdevices: 7/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7

"aplay -L":
Zitatnull
    Discard all samples (playback) or generate zero samples (capture)
pulse
    Playback/recording through the PulseAudio sound server
sysdefault:CARD=ALSA
    bcm2835 ALSA, bcm2835 ALSA
    Default Audio Device
Bin leider kein Linuxer und verstehe nicht ganz, was mir das alles sagen soll..
Ich habe am Raspi B Klinkenstecker Lautsprecher angeschlossen - aus denen habe ich auch schon einen Testsound ausgeben können.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Kuzl am 23 Februar 2014, 19:47:12
Hallo mal ne frage ist es möglich, dass das modul nur kurz zum "Reden" die ausdioausgabe des raspberrys auf Analog stellt?
Ich habe ihn über HDMI am TV und HIFI und benutze ihn auch für XBMC wo ich natürlich auch über das Soundsystem hören will :)
Allerdings soll er natürlich auch plappern können wenn das alles Aus ist oder er einfach nicht als Eingang gewählt ist :D

Aus diesem Grund habe ich einen kleinen Lautsprecher an der Analogbuchse angeschlossen allerdings ist es halt jetzt unpraktikabel immer wenn ich musik hören will erst wieder umzustellen.

Könntest du das evtl als attribut einbaun? :)

Viele Grüße
Kuzl
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 24 Februar 2014, 00:04:37
@stoxx: schon mal hiernach versucht den PI richtig einzustellen? https://sites.google.com/site/semilleroadt/home/raspberry-pi
@Kuzl: Problem sehe ich wenn beides Gleichzeitig laufen soll. Besser wäre eine kleine USB-Soundkarte.

Zum TEsten bzw bei der Modulerstellung habe ich eine USB Terratec MKII benutzt. Im Produktivsystem benutze ich ein USB-BluetoothDongle mit BT-Lautsprecher.

http://www.daniel-ritter.de/blog/out-of-the-box-usb-soundkarte-fur-linux-logilink-ua0078-soundkarte-7-1
http://www.amazon.de/LogiLink-USB-Soundkarte-Virtual-Soundeffekt/dp/B0037AOUUQ/ref=lh_ni_t?ie=UTF8&psc=1&smid=A1YJU9RIMEUNF2
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Kuzl am 24 Februar 2014, 07:25:47
Da muss ich dir recht geben. Wenn gerade Musik läuft wird diese dann kurzzeitig auch über den Analogausgang ausgegeben.
Wobei wenn eh gerade Musik läuft kann eigentlich auch ruhig über HDMI gesprochen werden, Hauptsache ich hör was :) Das könnte man dann mit dem XBMC-Modul über Abfragen lösen...Praktisch falls Musik läuft das Attribut löschen und ansonsten setzen

Ich wollte halt dem Pi nicht noch mehr Strom über USB klauen da ich keinen aktiven Hub besitze :D
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 24 Februar 2014, 07:29:29
Wie du schon sagst. Besser ist es dann das Problem extern zu lösen. Wenn xbmc genutzt wird den Ausgang auf hdmi zu setzen und Ansonsten auf analog.

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Kuzl am 24 Februar 2014, 07:57:45
Ach stimmt ja man kann ja aus fhem heraus auch Befehle ausführen ich Idiot :D
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: TecCheck am 03 März 2014, 18:46:39
Hallo zusammen,

Vielen Dank für die super Arbeit an den/die Mit-/Autoren  :)


Habe mir das Modul (mit TTS_VolumeAdjust) runtergeladen. Im Fhem-Update vom 02.03. war
VolumeAdjust wohl noch nicht drin. Bei mir funktioniert alles einwandfrei. Eine leichte Lautstärkesteigerung
konnte ich bei TTS_VolumeAdjust 200 und Volume 100 erreichen. Vermutlich geben meine kleinen Aktivlautsprecher am Raspi nicht mehr her.


Habe jedoch ein anderes Problem, ich weiß nicht wie ich den Inhalt (Status,Readings,Temp,Hum usw.)  meiner Aktoren
per Sprache ausgeben kann. Die nette Dame von Google liest immer die Namen der Aktoren vor,was sich zwar lustig  ;D
anhört, aber nicht wirklich der Sinn der Sache ist.

Habe trotz längerer Suche nichts gefunden was mir weiter hilft. :(
Vielleicht könnte jemand ein paar Beispiele posten ?

Schon mal vielen Dank und
Grüße

Wolfgang
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 03 März 2014, 20:18:02
@TecCheck
Ich schreib dir ne PN. Schau da mal rein.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Frank Hell am 03 März 2014, 21:05:13
Warum nicht als öffentlichen Post, damit alle von dem Wissen profitieren?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 03 März 2014, 22:19:31
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 :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 04 März 2014, 08:39:31
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?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 04 März 2014, 09:10:32
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.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 04 März 2014, 09:28:35
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"
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 04 März 2014, 10:58:44
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);
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 04 März 2014, 11:19:55
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")}
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 04 März 2014, 11:32:02
Stimmt, so klappt es auch. Danke für den Hinweis!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 15 März 2014, 07:39:19
Habe die Änderungen letztes we eingecheckt. Solltet ihr Alle schon per Update erhalten haben.

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: michael27983 am 21 März 2014, 21:03:56
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
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fiedel am 22 März 2014, 07:37:15
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
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 16 April 2014, 13:38:22
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.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 16 April 2014, 18:02:47
Nein, habe ich nicht.
Die Installationsanleitungen haben mich vor einem Experiment abgehalten ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 16 Mai 2014, 12:02:15
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.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 16 Mai 2014, 13:46:41
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?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 16 Mai 2014, 14:05:04
so ein mist...so ein Klasse Modul, nur bei mir gehts wieder nicht. Das Verzeichnis ist da, Zugriffsrechte prüfe ich noch mal. Die Datei vom ersten erfolgreichen Versuch liegt noch drin. Mich wundert das die ganze Sache nur ein einziges Mal funktioniert. Ob das wirklich nur am gescheitertem Zugriff auf den Telnetport liegt?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 16 Mai 2014, 16:16:09
Teste mal mit unterschiedlichen Texten...

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 17 Mai 2014, 15:47:35
So es klappt nun auch bei mir... der lokale Zugriff über Telnet war nicht möglich. Ich habe in der /hosts den Rechnernamen bei 127.0.0.1 entfernt und wieder localhost eingetragen. In der /hostname stand nach wie vor schon der richtige Rechnername. Telnet war als Paket auch noch nicht installiert, insoweit wohl irrelevant,  der Dienst hat trotzdem schon gelauscht.

Danke für das prima Modul, wieder was zum "rumspielen".  ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 21 Mai 2014, 16:27:11
Hier noch eine kleine Routine für die myUtils, damit beim Temperaturen vorlesen von Sensoren der Punkt gegen ein Komma getauscht wird und die Dame damit dann klar kommt.
Das war mein erstes selbst gebasteltes Script in Perl.  ::)
Ich weiss allerdings noch nicht wie sich das auf das Cacheverzeichnis auswirkt, der könnte sich damit schnell  ins unermessliche füllen. Zum Glück sind die Dateien jedoch recht klein.


########Temperatur ohne Punkt mit Komma für TTS#######
sub
TemperaturenTTS
{
my $Aussentempsensor=ReadingsVal("Aussentempsensor","temperature","");
my $Punktlos=$Aussentempsensor;
$Punktlos =~ s/\./,/;
fhem ("set MyTTS tts Temperatur ist $Punktlos;")
}
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: peterk_de am 22 Juni 2014, 23:54:12
Ich habe schon seit längerem folgende Fehlermeldung beim Starten von FHEM in der Konsole:


Prototype after '@' for main::Text2Speech_SplitString : @$$$$ at ./FHEM/98_Text2Speech.pm line 422, <$fh> line 1596.


Schaden scheint das aber keinen zu verursachen - läuft soweit ich erkennen kann alles prima - ist das bekannt? LG!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 08 Juli 2014, 20:47:54
@peterk, warscheinlich muss die Routine nur weiter nach hinten in das Modul geschoben werden....

Schön aber sonst nix weiter zu hören... heißt das das Modul überall fehlerfrei arbeitet :) Bei mir ist es so jedenfalls...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 09 Juli 2014, 06:08:34
Läuft 1a :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 16 Juli 2014, 16:33:47
Weil es grade im Einsteigerforum ist:
Könntest du bitte noch zwei Sachen ändern:

Beim Einbinden einer MP3 muss Text vor und nach der MP3 kommen. Das ist nicht optimal. Ansonsten könnte man Stille vorher/nachher einfügen, oder auch ein Pling als Ankündigung einer Sprachausgabe.
Das wäre sehr hilfreich.



Und, zweite Frage (aber nicht so dringlich), das Mappen einer MP3 ist bei vielen MP3s umständlich. Ohne wäre es leichter. Einfach nur die MP3 in :: gesetzt z.B.
Dann wäre Text2Speech auch gleich gut geeignet zum MP3s abspielen. Ist bequemer als direkt den mplayer zu benutzen (non blocking...)
(Ich hätte gerne Fanfaren wenn ich mit dem Auto in den Hof fahre und das Haus betrete, möchte aber ungern im Regen stehen da fhem grade die Tür nicht öffnet, während die Fanfaren ertönen)

Dann könnte das Modul auch gleich als einfacher Audioplayer missbraucht werden.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: kud am 16 Juli 2014, 16:38:16
Hallo Tobias,
danke für Dein sehr interessantes Modul.
Könntest Du oder ein anderer mir bitte folgendes kurz erklären.
TTS_CacheFileDir
Optional: Die per Google geladenen Sprachbausteine werden in diesem Verzeichnis zur Wiedeverwendung abgelegt. Es findet zurZEit keine automatisierte Löschung statt.
Warum muss ich irgendetwas cachen oder schaut es jedesmal nach ob schon mal "Die Temperatur im Wohnzimmer beträgt 20 Grad" gesagt wurde?

TTS_FileMapping
Angabe von möglichen MP3-Dateien mit deren Templatedefinition. Getrennt duch Leerzeichen. Die Templatedefinitionen können in den per tts übergebenen Sprachbausteinen verwendet werden und müssen mit einem beginnenden und endenden Doppelpunkt angegeben werden. Die Dateien müssen im Verzeichnis TTS_FIleTemplateDir gespeichert sein.
Auch das verstehe ich nicht. Kann ich nicht einfach eine MP3 mit
set MyTTS tts Horch was kommt von draußen rein :/Soundfiles/hollahi.mp3:
abspielen?
Das Mapping würde uUmständen mehrere Zeilen lang werden wenn ich 50 MP3s einbinden will.

Ich habe sicherlich noch kein Verständnis für die Arbeitsweise des Moduls. Bitte erklärt mir das.

Danke KU

Uups. Danke Rince. Du warst schneller.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 16 Juli 2014, 19:04:50
Zitat
TTS_CacheFileDir
Optional: Die per Google geladenen Sprachbausteine werden in diesem Verzeichnis zur Wiedeverwendung abgelegt. Es findet zurZEit keine automatisierte Löschung statt.

Warum muss ich irgendetwas cachen oder schaut es jedesmal nach ob schon mal "Die Temperatur im Wohnzimmer beträgt 20 Grad" gesagt wurde?
Ganz einfach, Ziel ist eine flüssiger Sprachwiedergabe die so schnell als möglich nach Absetzen des Befehls einsetzt.
Das geht nur mit Vor-Cachen und Nutzung von "mp3wrap" um Teilsätze zu einem Gesamt-MP3 zusamenfügen zu können.
Vor jeder(!) Ausgabe wird geschaut, ob schon jeder Teilsatz im Cache vorhanden ist. Falls ein Teilsatz fehlt, wird dieser heruntergeladen. Das merkt man an einer gefühlt langen Sprechpause. Sind alle Teilsätze im Cache vorhanden, läuft die Sprachausgabe ohne Internetzugriff, ohne Sprechpause und damit flüssig.
Teilsätze bedeutet, das der duch fhem-übergebene TTS-String versucht wird, in einzel-Sätze zu zerlegen. Das passiert am Satzende (Punkt), und bei zusammengesetzten Sätzen (Komma, "und"). Das ist notwendig, weil die Google TTS-Engine nur maximal 100Zeichen akzeptiert. Wünde man diese einzelnen MP3´s hinterher nicht wieder zusammensetzen (-> mp3wrap) würde der sprachfluss extrem stockend sein. Erklär das mal deiner Frau warum die Tante zwischen jedem Teilsatz 3-4 Gedenksekunden einlegt ;)

Zitat
TTS_FileMapping
Angabe von möglichen MP3-Dateien mit deren Templatedefinition. Getrennt duch Leerzeichen. Die Templatedefinitionen können in den per tts übergebenen Sprachbausteinen verwendet werden und müssen mit einem beginnenden und endenden Doppelpunkt angegeben werden. Die Dateien müssen im Verzeichnis TTS_FIleTemplateDir gespeichert sein.
Auch das verstehe ich nicht. Kann ich nicht einfach eine MP3 mit
set MyTTS tts Horch was kommt von draußen rein :/Soundfiles/hollahi.mp3:
abspielen?
Ist aufgenommen zur nächsten version.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: kud am 17 Juli 2014, 12:42:24
Danke Tobias.
Ich wollte schon motzen wegen der (vormals) einsilbigen Erklärung.
Das würde bedeuten, wenn man Standardsätze geschickt aufsplittet das keine "Übersetzung" seitens Google mehr vorgenommen wird ?
Ich lass schon mal Teilsätze vorab mit
"set TTSwiedergabe tts Die Temperatur im"
"set TTSwiedergabe tts Wohnzimmer beträgt" "set TTSwiedergabe tts Kinderzimmer beträgt" etc.
"set TTSwiedergabe tts 18 Grad." "set TTSwiedergabe tts 19 Grad." etc.
im Cache ablegen.

In diesem Fall würde ein "set TTSwiedergabe tts Die Temperatur im, Wohnzimmer beträgt, 20 Grad."
keinen Googlezugriff benötigen ?

Sehe ich das Richtig?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 18 Juli 2014, 09:15:37
Nein, nicht ganz... TTS kümmert sich selbständig um das Aufsplitten und cachen. Du musst nichts aktiv vorcachen. Außerdem bedeutet ein Komma auch immer eine Sprechpause....
Also einfach deinen TTS-Satz ins TTS-Modul werfen und gut iss...

Hier mal eine neue Version zum testen. Bitte um Rückmeldung ob soweit io. Dann checke ich sie ein.

- Man kann jetzt eine mp3-Datei direkt angeben, zusätzlich zu den vordefinierten Templates
- Man kann jetzt auch eine mp3 als alleiniges TTS übergeben

bei Angabe von mp3-Dateien müssen diese wie vorher unterhalb von TTS_CachefileDir/TTS_FileTemplateDir liegen. Default ist cache/templates
Wird eine angebene Datei nicht gefunden so spricht TTS den Dateipfad aus ;)

Beispiele:
set MyText2Speech tts :klingel.mp3:
set MyText2Speech tts :music/Hardcore-Vibes.mp3:
set MyText2Speech tts :tischglocke-einmal.mp3:Das ist meine Tischglocke.
set MyText2Speech tts :tischglocke-einmal.mp3:Erdgeschoss alles geschlossen.:tischglocke-einmal.mp3:Obergeschoss alles geschlossen.

Bitte beachten, bei Nutzung von MP3WRAP ist die flüssige Sprachausgabe erst ab der 2. Wiederholung spürbar. Ist auch klar, da der Cache erst aufgebaut werden muss. Also im Test immer alles 2x sagen ;) Fast wie im richtigen Leben ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 18 Juli 2014, 09:27:25
Werde es heute Abend ausprobieren.

Vielen Dank schonmal!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fiedel am 18 Juli 2014, 12:25:23
Hi Tobias,

wo du gerade dabei bist:  ;) Mit meinen Passivlautsprechern ist es nach wie vor viel zu leise und ich patche mir nach jedem deiner Updates den Gain- Faktor wieder rein. Wenn du vielleicht auch meinst es könnte sinnvoll sein, könntest du es ggf. übernehmen? Im Anhang noch mal meine etwas ältere, gepatchte Version (Achtung: Das "set volume"- Kommando macht damit viel lauter, als in der Originalversion!!!)

Gruß und Dank

Frank
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 18 Juli 2014, 12:57:14
Hi. Reicht das originale Set volume nicht aus?? Auch nicht 200 oder 300%??

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 18 Juli 2014, 12:57:23
Hi. Reicht das originale Set volume nicht aus?? Auch nicht 200 oder 300%??

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 18 Juli 2014, 12:57:34
Hi. Reicht das originale Set volume nicht aus?? Auch nicht 200 oder 300%??

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 18 Juli 2014, 12:57:45
Hi. Reicht das originale Set volume nicht aus?? Auch nicht 200 oder 300%??

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: kud am 18 Juli 2014, 12:59:45
Danke Tobias.
Perfekt. Abspielen einer MP3 klappt im Hintergrund ohne FHEM auszubremsen. (zumindest nicht merklich)
Daumen hoch. :) :) :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 18 Juli 2014, 13:17:56
Zitat von: fiedel am 18 Juli 2014, 12:25:23
Mit meinen Passivlautsprechern ist es nach wie vor viel zu leise und ich patche mir nach jedem deiner Updates den Gain- Faktor wieder rein. Wenn du vielleicht auch meinst es könnte sinnvoll sein, könntest du es ggf. übernehmen? Im Anhang noch mal meine etwas ältere, gepatchte Version (Achtung: Das "set volume"- Kommando macht damit viel lauter, als in der Originalversion!!!)

habe gerade nochmal geschaut im Quellcode:
$mplayerOpts .= " -softvol -softvol-max ". $TTS_VolumeAdjust ." -volume " . $hash->{VOLUME};
Hast du mal das Attribut TTS_VolumeAdjust ausprobiert? Setze es mal bitte auf zb. 500.

Ups, habe auch gerade gesehen das ich es noch nicht dokumentiert habe :( Also ein "undocumented hint" ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fiedel am 18 Juli 2014, 13:33:02
ZitatAuch nicht 200 oder 300%??

Aaahhh, das habe ich noch nicht probiert! Ich bin von 100 % = Max ausgegangen. Teste ich demnächst mal. Aber wenn das so geht, hat sich mein Problem erledigt.

Gruß

Frank
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: kud am 18 Juli 2014, 17:29:14
Jetzt kommt noch eine ganz wilde Frage.
Ist es möglich 2 mplayer zur gleichen Zeit zu starten?
Die erste macht die Hintergrund"Musik"
set mp3wiedergabe tts :Danger.mp3:
und die zweite liefert sozusagen überlagert den Text.
set mp3wiedergabe tts Achtung, Wasser im Keller.

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 18 Juli 2014, 21:42:45
Leg dir doch mal eine weitere Instanz vom Text2Speech an.
Nenn eine halt talk oder say oder sprich (sowas in der Art)

Ich vermute, dass es dann noch nicht geht, aber evtl. hilft uns das weiter :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 19 Juli 2014, 07:06:24
teste es doch mal... aber icht mit tts sondern mit parallel mplayer-Aufrufen auf der Shell.
Wie der mplayeraufruf korrekt aufgebaut ist, siehst du mit verbose=4

Ich denke aber, das es nicht funktioniert, zumindest nicht mit dem selben Ausgabedevice. Mplayer nutzt und blockiert es. UNd solange kann es nicht anderweitig verwendet werden.

Ich bin mir nicht sicher, aber gibt ein fhem-Audiostream Modul mit der man playlisten von Webstreams abspielen kann. Wenn ein TTS Aufruf ansteht, muss man dessen ausgabe beenden, tts starten und nach dem tts Ende wieder den Stream starten.

Wenn also alles i.o. werde ich den aktuellen Stand einchecken...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 19 Juli 2014, 09:05:41
Bis jetzt läuft es sehr gut. Ich denke, du kannst es einchecken :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: kud am 19 Juli 2014, 09:40:50
Die Geschichte mit der paralellen Ausgabe werde ich noch einmal testen. Ist aber nicht so wichtig.
Aber.
Da die neue Version sich sehr schön und einfach zum Abspielen von MP3s eignet wäre noch ein "Ausschaltknopf" recht hilfreich.
Tobias. Wäre das möglich ?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fiedel am 19 Juli 2014, 09:48:13
ZitatDa die neue Version sich sehr schön und einfach zum Abspielen von MP3s eignet wäre noch ein "Ausschaltknopf" recht hilfreich.
Tobias. Wäre das möglich ?

Wenn das sich jetzt in diese Richtung entwickeln sollte, könnten wir doch gleich das nicht ganz zuende programmierte "Streamradio" mit in TTS integrieren. Eine Idee für einen neuen Modulnamen hätte ich auch schon: "SoundCenter"  8)

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 19 Juli 2014, 09:59:27
Diese Idee ist gar nicht schlecht.
Aber damit erschrecken wir den Tobias ein bisserl ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: kud am 19 Juli 2014, 10:00:42
 8) Fände ich toll.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 19 Juli 2014, 14:36:02
Ausschalten geht nicht da man in einen einmal gestarteten nonblocking Prozess nicht mehr eingreifen kann.

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: justme1968 am 19 Juli 2014, 15:01:09
wenn du BlockingCall verwendest kannst du BlockingKill zum beenden verwenden. siehe z.b. hier: http://www.fhemwiki.de/wiki/Blocking_Call#Verwenden_einer_UndefFn_um_laufende_BlockingCalls_zu_beenden (http://www.fhemwiki.de/wiki/Blocking_Call#Verwenden_einer_UndefFn_um_laufende_BlockingCalls_zu_beenden)

gruss
  andre
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 21 Juli 2014, 08:46:17
@JustMe1968: stimmt, du hast recht...

ansonsten: aktueller Stand ist jetzt eingecheckt. Sollte morgen per Update verteilt werden.....
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 22 Juli 2014, 17:28:47
Hallo! Habe heute das Modul-Update gemacht und leider haut es nicht so hin, wie ich gerne hätte:
- Habe das File beep.mp3 unter cache/templates gespeichert
- kein Attribut für TTS_FileTemplateDir gesetzt, sodass der Default ziehen müsste
- set MyTTS tts :beep.mp3: eingegeben

Die Ausgabe:
Text2Speech: Bearbeite per MP3Wrap jetzt den Text: :beep. mp3:
Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols cache/b68b888fc641b4140181f8e7ac92232d_MP3WRAP.mp3


.. , d.h. er liest "beep mp3" vor und spielt das File nicht ab...
Komisch ist das Leerzeichen, was irgendwie zwischen dem Punkt und mp3 gesetzt wird..
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 24 Juli 2014, 16:34:48
Ganz einfach. Das mp3 wird nicht gefunden. Bitte Check die Pfade...
Ev. Auch mal verbose auf 4 setzen.
Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 24 Juli 2014, 17:38:54
Kann das ein Rechte-Problem sein?
Dass der fhem User die Datei nicht lesen darf?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marvin78 am 24 Juli 2014, 17:56:43
Ja. Kann es.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 24 Juli 2014, 20:08:08
bitte check auch das du in der Dateidefinition (beep.mp3) nicht das leerzeichen drin hast. Von alleine kommt das nicht dahin ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 24 Juli 2014, 20:39:06
Habe FHEM neu gestartet - dann hat es funktioniert...
shutdown restart
Sollte mir wohl angewöhnen, FHEM nach JEDEM Update durchzustarten, auch wenn die Meldung kommt
Zitatnothing to do...
:-[
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 25 Juli 2014, 08:19:43
Naja, ich weiß nicht ob die Module nach einem Update automatisch neu geladen werden....
Aber geht ja nun :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: karl0123 am 29 Juli 2014, 20:31:43
Ich bekomme bei Text2Speech auf dem Haupt-FHEM seit einiger Zeit folgende Zeile im Log:

Terminal type `unknown' is not defined.

Nach Recherchen ist das ein Fehler, den mplayer zurück gibt. Hat jemand eine Idee warum?

Der Text wird übrigens trotzdem angesagt.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Wolfpunk am 30 Juli 2014, 12:03:25
Hallo, Tobias!

Hast Du eine Ahnung, warum bei mir die MP3-Datei nicht abgespielt wird, sondern "FileTpl_1406714186.70357_#0" vorgelesen wird? Irgendwie bin ich zu blöd... Die Datei "bing.mp3" liegt übrigens im ordner cache/templates.

Mein Aufruf:
set TTS tts :bing: test

Meine Definition:
define TTS Text2Speech hw=0.0
attr TTS TTS_FileMapping bing:bing.mp3
attr TTS TTS_Ressource Google
attr TTS TTS_UseMP3Wrap 1
attr TTS verbose 5


Und hier das Log:
2014.07.30 11:56:26 4: TTS: Angabe einer direkten MP3-Datei gefunden:  bing => FileTpl_1406714186.70357_#0
2014.07.30 11:56:26 4: TTS: Auflistung der Textbausteine nach Aufbereitung:
2014.07.30 11:56:26 4: TTS: 0 => FileTpl_1406714186.
2014.07.30 11:56:26 4: TTS: 1 => 70357_#0
2014.07.30 11:56:26 4: TTS: 2 => test
2014.07.30 11:56:26 4: Text2Speech: Bearbeite jetzt den Text: FileTpl_1406714186.
2014.07.30 11:56:26 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&q=FileTpl_1406714186.
2014.07.30 11:56:27 4: Text2Speech: Schreibe mp3 in die Datei cache/9c8e6941982b210d3374115410cbf9fa.mp3 mit 32832 Bytes
2014.07.30 11:56:27 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols cache/9c8e6941982b210d3374115410cbf9fa.mp3

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 30 Juli 2014, 14:25:52
es wurde die datei bing.mp3 nicht gefunden oder es fehlen zugriffsrechte
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: karl0123 am 30 Juli 2014, 16:04:08
Zitat von: karl0123 am 29 Juli 2014, 20:31:43
Ich bekomme bei Text2Speech auf dem Haupt-FHEM seit einiger Zeit folgende Zeile im Log:

Terminal type `unknown' is not defined.

Nach Recherchen ist das ein Fehler, den mplayer zurück gibt. Hat jemand eine Idee warum?

Der Text wird übrigens trotzdem angesagt.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 30 Juli 2014, 17:50:47
@Wolfpunk:
Müsste es nicht

set TTS tts :bing.mp3:test

heissen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Wolfpunk am 30 Juli 2014, 19:08:08
Zitat von: Tobias am 30 Juli 2014, 14:25:52
es wurde die datei bing.mp3 nicht gefunden oder es fehlen zugriffsrechte

Also die Datei liegt im templates-Ordner unterhalb des cache-Ordners und hat die gleichen Rechte wie die von FHEM erzeugten Cache-MP3-Dateien (fhem:dialout / 644). Auch der Besitzer ist identisch. Hatte ich extra überprüft. Bei Dir funktioniert das mit der aktuellen SVN-Version einwandfrei?

drwxr-xr-x  2 fhem dialout  4096 Jul 30 11:56 templates
und
-rw-r--r-- 1 fhem dialout 7896 Jul 30 11:28 bing.mp3



Zitat von: stoxx am 30 Juli 2014, 17:50:47
@Wolfpunk:
Müsste es nicht

set TTS tts :bing.mp3:test

heissen?

Beides funktioniert nicht. Weder der direkte Aufruf, noch der über das Filemapping.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Wolfpunk am 30 Juli 2014, 22:00:23
Irgendwie läuft da beim Aufsplitten etwas schief. Wenn ich den TTS_Delemiter definiere und z.B. auf "_" setze, funktioniert
set TTS tts :bing.mp3:
einwandfrei.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 31 Juli 2014, 10:57:24
Zitat von: Wolfpunk am 30 Juli 2014, 12:03:25
Und hier das Log:
2014.07.30 11:56:26 4: TTS: Angabe einer direkten MP3-Datei gefunden:  bing => FileTpl_1406714186.70357_#0
2014.07.30 11:56:26 4: TTS: Auflistung der Textbausteine nach Aufbereitung:
2014.07.30 11:56:26 4: TTS: 0 => FileTpl_1406714186.
2014.07.30 11:56:26 4: TTS: 1 => 70357_#0
2014.07.30 11:56:26 4: TTS: 2 => test
2014.07.30 11:56:26 4: Text2Speech: Bearbeite jetzt den Text: FileTpl_1406714186.
2014.07.30 11:56:26 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&q=FileTpl_1406714186.
2014.07.30 11:56:27 4: Text2Speech: Schreibe mp3 in die Datei cache/9c8e6941982b210d3374115410cbf9fa.mp3 mit 32832 Bytes
2014.07.30 11:56:27 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols cache/9c8e6941982b210d3374115410cbf9fa.mp3


Bei dir läuft definitiv etwas schief. Die Frage ist waruum in der FileTemplatedefinition ein Punkt steht. Warum liefert time() ein punkt??
Die Definition wird im Modul folgendermaßen gebildet:
my $tpl = "FileTpl_".time()."_#".$i; #eindeutige Templatedefinition schaffen

Bitte setze mal im Fhem folgendes Command ab, was liefert es??
{time()}
Müsste zb. folgendes ergeben: 1406796992
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: P.A.Trick am 31 Juli 2014, 11:29:04
Zitat von: Tobias am 31 Juli 2014, 10:57:24
Bei dir läuft definitiv etwas schief. Die Frage ist waruum in der FileTemplatedefinition ein Punkt steht. Warum liefert time() ein punkt??
Die Definition wird im Modul folgendermaßen gebildet:
my $tpl = "FileTpl_".time()."_#".$i; #eindeutige Templatedefinition schaffen

Bitte setze mal im Fhem folgendes Command ab, was liefert es??
{time()}
Müsste zb. folgendes ergeben: 1406796992

Sorry aber ich habe ein ähnliches Problem mit den Templates!
Hier die Ausgabe!

1406798858.48675

Kann es an mseclog liegen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Wolfpunk am 31 Juli 2014, 11:53:41
Bei mir kommt die Zeit auch mit 'nem Punkt zurück:
fhem> {time()}
1406800368.557


mseclog habe ich übrigens nicht gesetzt. Das System ist ein Cubian auf 'nem Cubietruck.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 31 Juli 2014, 12:14:50
Bei mir ist es ein Debian auf einem cubietruck. Ich mach nen fix fertig.

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Wolfpunk am 31 Juli 2014, 13:02:05
Alles klar. Besten Dank!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: karl0123 am 31 Juli 2014, 13:05:17
Zitat von: karl0123 am 29 Juli 2014, 20:31:43
Ich bekomme bei Text2Speech auf dem Haupt-FHEM seit einiger Zeit folgende Zeile im Log:

Terminal type `unknown' is not defined.

Nach Recherchen ist das ein Fehler, den mplayer zurück gibt. Hat jemand eine Idee warum?

Der Text wird übrigens trotzdem angesagt.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: P.A.Trick am 31 Juli 2014, 13:06:21
Zitat von: karl0123 am 31 Juli 2014, 13:05:17


Setze doch mal eine Shell fuer den fhem User!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: karl0123 am 31 Juli 2014, 13:08:02
Die Shell ist gesetzt (aus anderen Gründen). Interessant ist, dass das tatsächlich neu ist und ich Text2Speech in identischer Konfiguration seit Monaten nutze.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 31 Juli 2014, 15:49:22
Bitte teste mal... ich habe nämlich das Problem nicht...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Wolfpunk am 01 August 2014, 10:25:16
set TTS tts :bing.mp3: test

...funktioniert damit einwandfrei. Allerdings funktioniert das Filemapping bei mir noch nicht:

attr TTS TTS_FileMapping bing:bing.mp3
set TTS :bing: test


...liest "templates/bing" vor. Es fehlt dann scheinbar die Dateiendung.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: kud am 10 August 2014, 13:02:41
Habe heute meine fhem.cfg aufgeräumt und wollte dabei gleich alles "Alte" auf das TTS umbauen.
Dabei gibt es Merkwürdigkeiten.
Ein:
fhem(" set LocalTTS tts Alarm. :Einbruch_flur.mp3: Alarm. :Alarm_romanisch.mp3: Alarm. :Alarm_polnisch.mp3: Alarm. :Alarm_russisch.mp3:");

Wiederholt nur 4 mal  "Alarm.Einbruch im Flur" .

Mir scheint, das der Cache da greift. Kann man den abschalten??

Übrigens wurde das obige gekürzt.
Ein:
fhem(" set LocalTTS tts Alarm. :Alarm_polnisch.mp3: Alarm. :Alarm_russisch.mp3:");

Wiederholt nur 2 mal  "Alarm....und den Text auf polnisch" .
Also dürfte der Cache das Problem sein.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 10 August 2014, 20:21:12
Mach mal verbose 4. Nach meinem Urlaub schau ich mir das mal an.

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fiedel am 11 August 2014, 12:05:15
ZitatEinbruch_flur.mp3: Alarm. :Alarm_romanisch.mp3: Alarm. :Alarm_polnisch.mp3: Alarm. :Alarm_russisch.mp3:");

Wie begrüßt du denn deinen lieben osteuropäischen Besuch?  :o
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: kud am 11 August 2014, 14:05:28
Na wie schon ?
"Hereinspaziert, hereinspaziert. Der Kühlschrank ist voll das Bier ist kalt. Ihr findet diesen rechts in der Küche.
Dort liegen übrigens alle Portemonaise der Familile auf der Ablage."  8) 8) 8)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 11 August 2014, 21:15:14
Wenn ich ehrlich bin, ich wäre ja nie auf die Idee gekommen eine Einbruchmeldung in diversen Sprachen abzuspielen. Aber irgendwie finde ich die Idee schon reizvoll ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Spuckiii am 11 August 2014, 23:58:07
Hallo text2speech Gemeinde,

bin noch Anfänger und hoffe ich habe es nicht überlesen, ich versuche mich in fhem reinzufuchsen.. es geht so. Meine Frage:
ich habe den MPD Player bei mir Laufen und ich möchte zb. den Titel ansagen lassen über text2fhem. Wie funktioniert das? Könntet ihr mir n Codebeispiel geben? Danke euch
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Simon74 am 14 August 2014, 16:47:10
Liegt dies ev. an meiner Konfiguration oder ist das noch ein "Schönheitsfehler" ?
Prototype after '@' for main::Text2Speech_SplitString : @$$$$ at ./FHEM/98_Text2Speech.pm line 444, <$fh> line 1108.


Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 14 August 2014, 18:28:10
Ist ein schönheitsfehler ;(
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Simon74 am 15 August 2014, 09:45:48
Danke für Info.

Was jedoch bei mir auch nicht funktioniert bzw. diesselbe Problemmatik wie Sie @Wolfpunk eine Seite vorher beschrieben hat:
Wenn ich folgendes Kommanda eintippe:
{time()}
Erhalte ich: 1408088357.52601

Dem fhem User habe ich die Shell  /bin/bash zugeordnet, hilft leider auch nichts.
Ich kann also keine *.mp3 Dateien abspielen lassen sondern bekomme nur den Dateinamen angesagt, Text funktioniert einwandfrei.
Gibt es hier Abhilfe ?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 15 August 2014, 10:43:56
Nimm mal bitte das gepachte Modul hier aus dem thread auf dieser oder vorheriger seite. Funktioniert es damit?? Ich frag mich warum ihr microsekunden dran habt und ich nicht.....
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Simon74 am 15 August 2014, 12:47:02
Danke, soeben getestet, folgende Ergebnisse:

Funktioniert mit der gepatchten Version, jedoch nur beim 1x korrekt. Beim 2. Durchlauf kommt eine Mikimausstimme, der Text wird wohl zu schnell abgespielt (mp3 passt immer noch) ?
set MyTTS tts :notify1.mp3:Das ist ein Test.

Ohne MP3 am Anfang funktionierts immer:
set MyTTS tts Das ist ein Test.



Wenn ich das ganze nun als Filemapping eintrage und teste:
set MyTTS tts :notify1:
dann kommt:

Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 603.
Use of uninitialized value $filename in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 609.
Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 611.
Use of uninitialized value $text[0] in join or string at ./FHEM/98_Text2Speech.pm line 658.


Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 15 August 2014, 13:16:35
als FIleMapping gehts noch nicht, das mach ich erst wenn ich aus dem Urlaub zurück bin... Bei der Fehlersuche hilft immer ein Log mit verbose=4 ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Pfriemler am 19 August 2014, 19:43:13
Moinsen, habe das Modul mal gestern nach Wiki eingerichtet (BTW: "visudo" allein wollte der RPi nicht, "sudo visudo" ging dann) und es läuft auf Anhieb.
Ist halt nur sehr leise. Das Attribut "TTS_VolumeAdjust" kann ich jedoch verstellen, wie ich will, alles gleich laut. Wird das Attribut nur einmalig beim Modulstart (etwa nach restart) gelesen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 19 August 2014, 20:49:24
Hast Du über 

alsamixer

die Lautstärke optimiert?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: franky08 am 27 August 2014, 07:47:10
Hallo, scheinbar geht die direkte Wiedergabe eines mp3 Files bei mir auch nicht. Es wird nur ein Text angesagt.
Im Log:

2014.08.27 07:41:07 4: MyTTS: Angabe einer direkten MP3-Datei gefunden:  alert.mp3 => FileTpl_1409118067.82939_#0
2014.08.27 07:41:07 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2014.08.27 07:41:07 4: MyTTS: 0 => FileTpl_1409118067.
2014.08.27 07:41:07 4: MyTTS: 1 => 82939_#0
2014.08.27 07:41:07 4: Text2Speech: Bearbeite jetzt den Text: FileTpl_1409118067.
2014.08.27 07:41:07 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&q=FileTpl_1409118067.
2014.08.27 07:41:08 4: Text2Speech: Schreibe mp3 in die Datei /opt/fhem/cache/569f98d251b0628846fee9b07375e4f3.mp3 mit 30096 Bytes
2014.08.27 07:41:08 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols /opt/fhem/cache/569f98d251b0628846fee9b07375e4f3.mp3
2014.08.27 07:41:16 4: Text2Speech: Bearbeite jetzt den Text: 82939_#0
2014.08.27 07:41:16 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&q=82939_%230
2014.08.27 07:41:16 4: Text2Speech: Schreibe mp3 in die Datei /opt/fhem/cache/3342b57514e6aa9aa8ac0da650337de8.mp3 mit 21456 Bytes
2014.08.27 07:41:16 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols /opt/fhem/cache/3342b57514e6aa9aa8ac0da650337de8.mp3


Einstellungen, siehe Screenshot:


VG
Frank
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Wolfpunk am 27 August 2014, 09:20:09
Da musst Du Tobias' Workaround-Datei benutzen, ich wette bei dir liefert time auch Millisekunden zurück. (siehe ein paar Postings vorher)

http://forum.fhem.de/index.php?action=dlattach;topic=18481.0;attach=17703 (http://forum.fhem.de/index.php?action=dlattach;topic=18481.0;attach=17703)

Scheinbar ist es nur auf Tobias' Cubie ohne msec, auf allen anderen mit, deshalb ist der Fix nötig. Den hat er aber noch nicht eingecheckt, weil er da glaube ich nach seinem Urlaub noch einmal ran wollte, wenn ich das richtig verstanden hatte.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 27 August 2014, 10:08:00
Steht noch auf der ToDo Liste... bin noch nicht zu gekommen :( Ich beeile mich...

Edit: achso, ich brauche ein verbose=4 Log mit angehängtem Modul, sonst kann ich nicht viel machen...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: franky08 am 27 August 2014, 10:12:07
Immer mit der Ruhe  ;)
Hab mir gerade mal den fix runtergeladen und eingespielt, aber selbst nach einem restart oder reload 98_Text2Speech.pm, bekomme ich immer noch den Text angesagt und die mp3 nicht abgespielt. Sehe heute Nachmittag noch mal danach, muss wieder auf Arbeit  >:(
2014.08.27 10:08:02 4: MyTTS: Angabe einer direkten MP3-Datei gefunden:  alert.mp3 => FileTpl_140912688275495_#0
2014.08.27 10:08:02 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2014.08.27 10:08:02 4: MyTTS: 0 => templates/alert.mp3
2014.08.27 10:08:02 4: Text2Speech: Bearbeite jetzt den Text: templates/alert.mp3
2014.08.27 10:08:02 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols

VG
Frank
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 27 August 2014, 10:13:37
Du warst schneller, ich brauche ein verbose=4 log!!! ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: franky08 am 27 August 2014, 12:50:35
Schnell in der Mittagspause, verbose4 ist in MyTTS bei mir immer.
Log:
2014.08.27 12:46:17 4: MyTTS: Angabe einer direkten MP3-Datei gefunden:  alert.mp3 => FileTpl_14091363773925_#0
2014.08.27 12:46:17 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2014.08.27 12:46:17 4: MyTTS: 0 => templates/alert.mp3
2014.08.27 12:46:17 4: Text2Speech: Bearbeite jetzt den Text: templates/alert.mp3
2014.08.27 12:46:17 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols /opt/fhem/cache/7845dccd208c89de46449d61823546ce.mp3


98_Text2Speech

P.S. cache habe ich vorsorglich gelöscht

VG
Frank

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 27 August 2014, 13:07:29
hmm, und ganz sicher das templates/alert.mp3 auch existiert und die Rechte für FHEM passen?

Hier scheitert es:
if(-e $TTS_CacheFileDir."/".$hash->{helper}{Text2Speech}[0]) {

Aktualisiert mal bitte angehängte Modul, hier sind noch mehr Debugausgaben drin, bitte wieder verbose=4

Edit: Es scheint das du den Cache nicht gelöscht hast, die Datei 7845dccd208c89de46449d61823546ce.mp3 wurde gefunden, aber laut Log nicht angelegt....
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: franky08 am 27 August 2014, 13:38:18
hallo Tobias, bin noch auf Arbeit. Kann ich erst heute, am späten Nachmittag testen. Das Log ist noch, bevor ich den Cache gelöscht hatte.

Rechte sind wie die anderen Dateien im Cache und Besitzer ist fhem.dialout also auch O.K.

VG
Frank
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: HolyMoly am 27 August 2014, 15:26:20
Hatte hier ein kleines Problemchen mit Text2Speech. Ist lokal definiert und läuft über espeak, aber
wenn ich eine Sprachausgabe setzte kam nix raus.

Mit verbose 5 kam folgendes:
Text2Speech:sudo espeak -vde+f3 -k5 -s150 "Geht leider noch nicht".

Wenn ich dieses Kommando direkt in der shell ausführe gehts problemlos.
Könnte mir vorstellen dass fhem/perl keine superuser rechte bekommt. Sollte es ja auch nicht?!
Eher sollte der fhem nutzer audio rechte bekommen per:
sudo adduser fhem audio

Ich würde also vorschlagen im Modul das sudo wegzulassen und in der wiki zu erwähnen dass fhem der audio group hinzugefügt werden muss und evtl. neu gestartet werden muss...

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: franky08 am 27 August 2014, 15:27:01
Hallo Tobias, die neue 98_Text2Speech hat nen Syntax Error:

syntax error at ./FHEM/98_Text2Speech.pm line 619, near ""Text2Speech: ""$file""

VG
Frank
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 27 August 2014, 15:53:51
Holymoly: hatte bei mir nicht gereicht.deswegen sudoers

Franky: mach mal die doppelten Leerzeichen weg.  Ist alles ungetestet

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: franky08 am 27 August 2014, 16:16:23
Hallo Tobias. doppelte "" entfernt, Modul wird geladen, keine mp3 Wiedergabe.

Log:
2014.08.27 16:14:35 4: MyTTS: Angabe einer direkten MP3-Datei gefunden:  alert.mp3 => FileTpl_140914887526866_#0
2014.08.27 16:14:35 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2014.08.27 16:14:35 4: MyTTS: 0 => templates/alert.mp3
2014.08.27 16:14:35 4: Text2Speech: Bearbeite jetzt den Text: templates/alert.mp3
2014.08.27 16:14:35 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 7845dccd208c89de46449d61823546ce.mp3
2014.08.27 16:14:35 4: Text2Speech: /opt/fhem/cache/7845dccd208c89de46449d61823546ce.mp3 gefunden, kein Download
2014.08.27 16:14:35 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols /opt/fhem/cache/7845dccd208c89de46449d61823546ce.mp3
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: HolyMoly am 27 August 2014, 16:17:04
@Tobias

Hast du den fhem user nach dem
Zitatsudo adduser fhem audio
neu eingeloggt bzw neu gestartet?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 27 August 2014, 19:24:14
franky, da stehts doch: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 7845dccd208c89de46449d61823546ce.mp3
Der Zugriff auf die Datei ist nicht möglich! Da kann ich aus Modulsicht nix machen...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: franky08 am 27 August 2014, 19:51:31
@Tobias

Die Datei heist alert.mp3 und das ist eine mp3! Ich kann sie ja mit allen möglichen Audio Programmen abspielen oder verlangt Text2Spech eine besondere Bitrate oder Samplerate?
Die Datei hat eine Samplerate von 44,1 khz und ist in Mono. Ich hänge das Original mal drann.

VG
Frank
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 27 August 2014, 19:56:52
es geht nur um den Zugriff, Fhem hat kein Zugriff drauf...

Kannst du die daten Abspielen wenn du dich mit dem fhem-User anmeldest?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: franky08 am 27 August 2014, 20:19:59
Habe jetzt mal die Datei mit:
sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols /opt/fhem/template/alert1.mp3

auf der Console aufgerufen (vorher fhem shutdown), da wird sie leider auch nicht abgespielt, mmh irgendwas ist da faul.
Suche weiter.

VG
Frank
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: franky08 am 27 August 2014, 21:54:24
OK, meine DUSSELIGKEIT!!!! hatte das Verzeichniss in template richtig ist templates, jetzt geändert und es funktioniert!

VG
Frank
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 28 August 2014, 07:46:28
Zitat von: HolyMoly am 27 August 2014, 16:17:04
@Tobias

Hast du den fhem user nach demneu eingeloggt bzw neu gestartet?

Das kann ich dir garnicht sagen, aber bzgl ESpeak: hilft es fhem zur audiogruppe hinzuzufügen? Funktioniert danach die Sprachausgabe? Wenn ja, korrigiere ich die commandref/Wiki
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: HolyMoly am 28 August 2014, 09:49:07
Uuups, das hatte ich wohl ganz vergessen zu sagen:
bei mir funktioniert die Sprachausgabe mittels espeak mit fhem in Audiogruppe und ohne sudo ganz wunderbar  ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 01 September 2014, 10:58:56
jetzt ist erstmal der time() Fix ins SVN gewandert. Morgen per Update verfügbar.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Pfriemler am 09 September 2014, 19:29:15
Einmal mehr stellt sich Linux als das benutzerunfreundliche Frickelsystem heraus für das ich es abgrundtief hasse ...  >:( wahrscheinlich wird sich das auch nie ändern, also was soll's ...

Liebe Leuts,
Text2Speech läuft bei mir jetzt prima, und seit ich bei real,- einen Minibrüllwürfel namens "Watson AX 2001B" für 15 Euronen mitgenommen habe, auch irgendwie laut genug, ohne alsamixer-Anpassung.

Nun die Kür:
Jetzt hat das Dingens ja auch Bluetooth. Mit dem Android-Handy klappt alles sofort ohne Gefummel. Die PIN ist 0000.
Also habe ich mich am WIKI entlanggehangelt und bin, nachdem ich 8. mit "sudo " gemeistert habe, bei 9. steckengeblieben.

ZitatJetzt sollte keine Fehlermeldung mehr kommen....
Leider doch: "Host down" (bzw. mit sudo "Connection refused").

Für Dummys wie meinereiner zum Mitmeißeln:
- wieso benötigt es rfcomm0 (inkl. Definition in 6.) - im Web lese ich im Zshg mit rfcomm nur "hci0" (was auch immer das heißen mag)?
- Tobias hat statt des default channel 1 den 3 genommen für seine Lautsprecher - hat das einen speziellen Grund?
- was könnte noch klemmen, weil rfcomm connect nicht funzt?
Hab auch schon reichlich gegoogelt, aber nix Gescheites gefunden - Tipps zum Nachlesen hochwillkommen.

Sonst jemand warme Hinweise, wie ich den %$&§"!(/) zum Laufen kriege? (RPi und Lautsprecher sind durch eine Geschoßdecke getrennt, ich habe keinen Bock auf Kabelziehen...)
Eilt nicht, bin die nächsten Tage sowieso FHEM-fern, leider ...

Sonst aber nochmal: Hut ab für das schöne Sprachmodul, ich bin wirklich begeistert darüber!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: eddie.euwen am 15 September 2014, 22:05:58
Hi versuche es mal mitt  bt-audio -c 00:10:61:00:4C:60
natürlich die adresse ändern


Den Bluetooth-Lautsprecher lokalisieren Den Lautsprecher in den Pairing-Modus versetzen. Erst Dadurch wird er im Scanning sichtbar

Bei problem unter /var/lib/bleutooth/(bt_addr) Löschen

hcitool scan

Scanning ...

     00:10:61:00:4C:60       AX2000B

     

    Pair with the soundbar. This step is only necessary if the 2 devices have never been "paired" before.
    To pair, run the bt-device command with the Bluetooth address from step 1 as the parameter.

     

    $ bt-device -c 00:10:61:00:4C:60

     

    Connecting to: 00:10:61:00:4C:60
    Agent registered
    Agent released
    Done

    You can verify the result by listing the paired devices:

     

    $ bt-device -l

     

    Added devices:
    AX2000B (00:10:61:00:4C:60)

     

    Connect audio output to soundbar.

     

    $ bt-audio -c 00:10:61:00:4C:60

     

    Connecting to an audio service
    Audio service is connected


Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Pfriemler am 17 September 2014, 21:26:21
ZitatText2Speech läuft bei mir jetzt prima
Hm ... zu früh gefreut. Bei nun regelmäßiger Nutzung hängt sich der RPi immer wahrscheinlicher (laut Zeiten im Logbuch) unmittelbar im Zusammenhang mit einer Sprachausgabe auf und erfordert einen Vollreset. Habe das Modul jetzt disabled und seit Tagen ist wieder Stabilität, ohne sonstige Änderungen.

Wohlgemerkt ohne BT, direkt mit Kabel.

Hat etwa jemand ähnliche Erfahrungen oder läuft bei Euch alles stabil?

(kopfkratz)

@eddie.euwen: Verstehe ich (noch) nicht, morgen mehr.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 17 September 2014, 21:50:12
Läuft stabil auf meinem CubieTruck.
Lasse mir jeden Morgen die AußenTemperatur und Wettervorhersage vorlesen, Dauer der Abwesenheit beim Zurückkommen etc.
Außerdem haben meine Kinder viel mit der Sprachausgabe gespielt. Mit Hilfe von Jabber-Client kann man meinem FHEM Befehle erteilen, unter anderem etwas sagen zu lassen.
Kein einziger Absturz. Wird wohl weniger mit dem Modul selbst zu tun haben, sondern mit dem Sound-Treiber Deines Pi.

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Smooothy am 29 September 2014, 07:34:52
Zitat von: Rince am 03 März 2014, 20:18:02
@TecCheck
Ich schreib dir ne PN. Schau da mal rein.

@Rince: Hast du deine Doku fertig? Ich bekomme es einfach nicht hin Variablen anzusagen. Wenn ich sowas in der Art in die fhem.cfg eingebe

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)}

kommt beim Speichern der Fehler

"Unknown command my, try help."

Habe ich da ein Grundlegendes Verständnisproblem?
Danke für die Hilfe!
Christian
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Pfriemler am 29 September 2014, 21:28:35
Zitat von: Smooothy am 29 September 2014, 07:34:52
Wenn ich sowas in der Art in die fhem.cfg eingebe...
"Unknown command my, try help."
Habe ich da ein Grundlegendes Verständnisproblem?
Sollte das nicht Bestandteil einer eigenen Routine in 99_myUtils werden - in die fhem.cfg gehört gar nichts handeditiertes rein ... ?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Smooothy am 29 September 2014, 21:32:37
Ja, soweit hab ich es in den letzten Stunden verstanden ;) dennoch bekomme ich es nicht hin, mit über den Aufruf der Funktion in der config beispielsweise die Temperatur Ansagen zu lassen. Wenn jemand ein Beispiel hätte wäre ich sehr dankbar. Christian
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 29 September 2014, 22:04:27
Hallo Smooothy,

ich benutze unter anderem die Temperatur- und Wetteransagen, geöffnete Fensterwarnungen etc. Mit einem Beispiel tue ich mich dennoch etwas schwer - ich muss die Teile aus dem Ganzem herausreißen. Ich kopiere die relevanten Teile und hoffe, dass ich nichts dabei vergessen habe... Musst dich ggf. melden.
Du musst auch etwas noch an Deine Gerätschaften anpassen:

Mein Text2Speak-Device heißt 'tts'
Mein Temperatur/Feuchte-Sensor heißt 'GSD_1.4'
Mein Weather-Modul heißt 'Wetter'

Methoden zum Aufrufen für Dich: speakWetterDaten() und speakWetterVorhersage()



use constant {
  DEVICE_NAME_TTS    => "tts",
  DEVICE_NAME_TH      => "GSD_1.4",
  DEVICE_NAME_WEATHER => "Wetter",
};

###############################################################################
# Sagt Wetterdaten an
#  Param: Art: Variante der Aussage:
#         0: Kurzansage, 1: Normal
###############################################################################
sub speakWetterDaten(;$) {
my($art)=@_;
if(!defined($art)){$art=1;}
# TODO: Sauber / Abstraktionslayer erstellen
my $temp = prepareNumToSpeak(rundeZahl0(ReadingsVal(+DEVICE_NAME_TH,"temperature","unbekannt")));
my $humi = prepareNumToSpeak(rundeZahl0(ReadingsVal(+DEVICE_NAME_TH,"humidity","unbekannt")));
if($art==0) {
    #speak("Aussentemperatur ".$temp." Grad. Feuchtigkeit ".$humi." Prozent.",0);
    speak($temp." Grad. Feuchtigkeit ".$humi." Prozent.",0);
  }
  if($art==1) {
    #speak("Die Aussentemperatur betraegt ".$temp." Grad. Die Luftfeuchtigkeit liegt bei ".$humi." Prozent.",0);
    speak("Temperatur ".$temp." Grad. Luftfeuchtigkeit ".$humi." Prozent.",0);
  }
}

###############################################################################
# Sagt Wettervorhersage an.
#  Parameter: Tag: Zahl 1-5 (1-heute, 2-morgen,...) Defaul=2
###############################################################################
sub speakWetterVorhersage(;$) {
my ($day) = @_;
if(!defined($day)) {$day=2;}

# TODO: Sauber / Abstraktionslayer erstellen
my $t1= ReadingsVal(+DEVICE_NAME_WEATHER,"fc".$day."_condition",undef);
my $t2= ReadingsVal(+DEVICE_NAME_WEATHER,"fc".$day."_low_c",undef);
my $t3= ReadingsVal(+DEVICE_NAME_WEATHER,"fc".$day."_high_c",undef);

my $text = "";
if($day==1) {
#$text = "Wetter heute ";
$text = "Heute ";
}
if($day==2) {
$text = "Morgen ";
}
if($day==3) {
$text = "Uebermorgen ";
}
if($day>3) {
$text = "Wetter in ".($day-1)." Tagen ";
}
if(defined($t1) && defined($t2) && defined($t3)) {
  $text.=$t1.". ";
  $text.="Temperatur von ".$t2." bis ".$t3." Grad.";
  if($day==1) {
  # gefuehlte Temperatur
  my $tg= ReadingsVal(+DEVICE_NAME_WEATHER,"wind_chill",undef);
  #$text.="Gefuehlte Temperatur aktuell ".$tg." Grad.";
  $text.="Gefuehlte ".$tg." Grad.";
  my $tw= ReadingsVal(+DEVICE_NAME_WEATHER,"wind_speed",undef);
  #$text.="Windgeschwindigkeit ".$tw." Kilometer pro Stunde.";
  $text.="Wind ".$tw." Kilometer pro Stunde.";
  }
} else {
$text="Leider keine Vorhersage verfuegbar.";
}

speak($text,0);
}

###############################################################################
# Bereitet Zahlen zur Ansage auf.
# Ersetzt Kommas und Punkte durch das Wort 'Komma'.
###############################################################################
sub prepareNumToSpeak($) {
my($text) = @_;
$text =~ s/\./Komma/g;
  $text =~ s/,/Komma/g;
return $text;
}

# Rundet eine Zahl ohne Nachkommastellen
sub rundeZahl0($) {
my($val)=@_;
# Prüfen, ob numerisch
if(int($val)>0) {
$val = int($val+0.5);
}
return $val;
}

# Rundet eine Zahl mit 1-er Nachkommastelle
sub rundeZahl1($) {
my($val)=@_;
# Prüfen, ob numerisch
if(int($val)>0) {
$val = int(10*$val+0.5)/10;
}
return $val;
}

###############################################################################
# Bereitet Texte zur Ansage auf.
# Ersetzt Umlaute (ä=ae etc.)
###############################################################################
sub prepareTextToSpeak($) {
my($text) = @_;
# TODO
return $text;
}

######################################################
# Sprachausgabe ueber Text2Speak Modul
#  Parameter:
#   - text: Auszugebender Text
#   - volume (optional) - Lautstaerke
#     (wenn nicht vorhaneden: wird aktuell gesetzte
#      Lautstaerke benutzt,
#      wenn 1 oder groesser: dieser Wert wird benutzt,
#      wenn 0: adaptiv gesetzt je nach Fageszeit
#              (also Nachts wesentlich leiser)
#       (ggf. spaeter adaptiv durch ermitteln der Zimmerlautstaerke)
######################################################
sub speak($;$) {
my($text,$volume)=@_;
if(defined ($volume)) {
if(int($volume) >=1) {
      fhem("set ".+DEVICE_NAME_TTS." volume ".$volume);
    } else {
    if(int($volume) == 0) {
    # Adaptiv
    my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime;
    # 5 - sehr leise
    # 10 - ok
    # 50 - gut hoerbar
    # 100 - default / gut laut
    #
    # 20:00 - 22:00 => 10
    # 22:00 - 05:00 =>  5
    # 05:00 - 07:00 => 10
    # 07:00 - 08:00 => 50
    # 08:00 - 20:00 => 100
    if ($hour>=20 && $hour<22) {$volume=18}
    if ($hour>=22 || $hour<5)  {$volume=8}
    if ($hour>=5  && $hour<7)  {$volume=15}
    if ($hour>=7  && $hour<8)  {$volume=40}
    if ($hour>=8  && $hour<20)  {$volume=100}
   
    fhem("set ".+DEVICE_NAME_TTS." volume ".$volume);
      }
    }
  }
fhem("set ".+DEVICE_NAME_TTS." tts ".prepareTextToSpeak($text));
}



Viel Spaß ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 29 September 2014, 22:44:41
Zitat@Rince: Hast du deine Doku fertig?


Nein, aber der Teil mit dem Kommatausch ist richtig und funktioniert.

Ganz ohne etwas in den my99Utils. Allerdings steht da nirgends drin, das man die fhem.cfg editieren sollte!

Ein Notify anlegen, und mit DEF (zum anklicken, sind auch Screenshots drin) bearbeiten.


Hast du den Link zu meiner Anleitung?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Smooothy am 29 September 2014, 22:53:59
Zitat von: Rince am 29 September 2014, 22:44:41
Hast du den Link zu meiner Anleitung?

Erstmal danke für die Anregungen! Super Community hier.

Den Link habe ich nicht.

Christian
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 30 September 2014, 03:53:20
Viel Spaß :)
https://docs.google.com/document/d/153NYOUdErYlg8FKlIUI6vQlcerkEm0Dupd_0RO2UtUE/edit?usp=docslist_api
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: coolice am 01 Oktober 2014, 18:36:25
könnte mir einer dabei helfen?
ZitatDanach den Mplayer für alle aufrufbar machen
EDITOR=nano
visudo
Dort an letzter Stelle eintragen:
ALL     ALL = NOPASSWD: /usr/bin/mplayer
Wie mache ich das. bin per ssh auf dem Raspi. Muss ich einfach EDITOR=nano visudo eingeben?
und wie mache ich das? ALL     ALL = NOPASSWD: /usr/bin/mplayer[

Danke für eure Hilfe
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marvin78 am 01 Oktober 2014, 18:41:21
EDITOR=nano<Enter>
visudo<Enter>


Dann wird ein Editor mit einer Datei zum editieren geöffnet. Hier sollst du am Ende

ALL     ALL = NOPASSWD: /usr/bin/mplayer

eintragen und die Datei speichern, den Editor wieder verlassen (STRG+O, STRG+X).
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: coolice am 01 Oktober 2014, 18:45:40
Das seiht bei mir dann so aus
Zitatpi@raspberrypi ~ $ EDITOR=nano
pi@raspberrypi ~ $ visudo
visudo: /etc/sudoers: Permission denied
visudo: /etc/sudoers: Permission denied
pi@raspberrypi ~ $
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marvin78 am 01 Oktober 2014, 18:48:07
Probiere

sudo visudo
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 01 Oktober 2014, 19:27:25
besser:
sudo su
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: coolice am 01 Oktober 2014, 19:34:22
muss das so aussehen?
    I    /etc/sudoers.tmp             Row 1    Col 1    7:34  Ctrl-K H for help
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command
** Joe's Own Editor v3.7 ** (utf-8) ** Copyright © 2008 **
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: coolice am 04 Oktober 2014, 08:37:37
Wie speichere ich das ganze? Strg X scheint ein Windows Befehl zu sein?! Ich nutze OSX
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: HolyMoly am 04 Oktober 2014, 20:18:46
esc + : für command mode
dann wq für write quit, mit enter bestätigen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: coolice am 05 Oktober 2014, 14:55:10
Danke hat geklappt. Leider keine Sprachsugabe.

Im Log steht 2014.10.05 14:52:25 4: Text2Speech: Bearbeite jetzt den Text: das ist ein Test
2014.10.05 14:52:25 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: df02828875d399879413ce9c6b67c2b0.mp3
2014.10.05 14:52:25 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&q=das%20ist%20ein%20Test
2014.10.05 14:52:25 4: Text2Speech: Schreibe mp3 in die Datei CacheFileDir/df02828875d399879413ce9c6b67c2b0.mp3 mit 6480 Bytes


Sieht doch erstmal ganz gut aus oder?

Meine Konfig. sieht man im Anhang. Hat jemand eine Idee was ich versuchen kann?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Smooothy am 05 Oktober 2014, 20:43:30
Hallo Zusammen,

wenn ich

set MyTTS volume 99

in der config hinterlege, dann funktioniert es gut. Nach Neustart ist diese Zeile aber trotz Speichern immer wieder verschwunden. Woran liegt das? Jemand eine Idee?

Grüße
Christian
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 05 Oktober 2014, 20:50:41
Works as designed ;)
Ein einmaliges Befehl wird ausgeführt und verschwindet. ;) Das gehört so nicht ins Config.
Du brauchst so was in der Art:

define fhem_start_notifier notify global:INITIALIZED set MyTTS volume 99

Edit: typo
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: forum-merlin am 05 Oktober 2014, 23:12:36
Hallo FHEM Freunde!

Ich bin jetzt nicht ganz sicher, aber ich habe hier in diesem Thread doch gelesen, dass Bedenken aufkamen all die Ausgaben erstmal an Google Translate zu schicken oder?
Leider bin ich da nicht ganz so firm in dem ganzen Zeug da, aber ich habe grad im vorbeibrowsen was gefunden, was GoogleTranslate schlägt wie ich finde.

Ich weiss jetzt nicht ob man das so einfach nutzen darf, ob es was kostet und ob man das in Module einbauen kann, aber eine API mit Beschreibung gibt es jedenfalls.



Klickt mal den Play Button, macht die Augen zu und hört einfach mal zu!
Ich finde das echt super:

http://www.ispeech.org/text.to.speech?link=http%3A%2F%2Fwww.ispeech.org%2Ftext.to.speech%3Fvoice%3Deurgermanfemale%26action%3Dconvert%26speed%3D0%26text%3DFranz%2520jagt%2520im%2520komplett%2520verwahrloosten%2520Taxi%2520quer%2520durch%2520Bayern
(http://www.ispeech.org/text.to.speech?link=http%3A%2F%2Fwww.ispeech.org%2Ftext.to.speech%3Fvoice%3Deurgermanfemale%26action%3Dconvert%26speed%3D0%26text%3DFranz%2520jagt%2520im%2520komplett%2520verwahrloosten%2520Taxi%2520quer%2520durch%2520Bayern)

Vergleich Google:

http://translate.google.com/translate_tts?tl=de&q=Franz%20jagt%20im%20komplett%20verwahrlosten%20Taxi%20quer%20durch%20Bayern
(http://translate.google.com/translate_tts?tl=de&q=Franz%20jagt%20im%20komplett%20verwahrlosten%20Taxi%20quer%20durch%20Bayern)

Und die API.
http://www.ispeech.org/api (http://www.ispeech.org/api)


Vielleicht hilft es ja irgendwem.

Gruß

der Merlin.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Smooothy am 05 Oktober 2014, 23:48:13

Zitat von: hexenmeister am 05 Oktober 2014, 20:50:41
Works as designed ;)

Genau wie dieses Forum!

Du bist ein wahrer Meister. Habe dein Zauberbuch mit Freude gelesen und lasse mir nun Temperaturen ansagen und den Wetterbericht vorlesen. Es fehlt noch die Kleiderempfehlung [emoji6]

Danke!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: bergadler am 08 November 2014, 21:36:16
Hallo,
Zitat von: Smooothy am 05 Oktober 2014, 23:48:13
... den Wetterbericht vorlesen.
Kannst Du dazu etwas mehr verraten.
Das wäre ein super Start-Info, wenn man zum Tagesbeginn z.B. das Bad betritt und
bevor dann das Radio mit der Berieselung beginnt.

Gruß
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 08 November 2014, 23:01:30
Zitat von: bergadler am 08 November 2014, 21:36:16
Hallo,Kannst Du dazu etwas mehr verraten.

Guckst du hier: http://forum.fhem.de/index.php/topic,18481.msg203817.html#msg203817

;)

Grüße,

Alexander
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 09 November 2014, 14:52:59
Zitatdie Ausgaben erstmal an Google Translate zu schicken oder?

Das passiert genau 1x mit jedem neuen Satz.

Anschließend kommen die Files aus dem Cache. Zugegeben 12,0 Grad erzeugt eine neue Abfrage wie 12,1 Grad, aber irgendwann ist die Temperatur mal durch, ebenso wie dein Telefonbuch :)

Da letzteres eh bei Google liegt, ist es mir eigentlich Schnuppe wenn Google es nochmal bei tts gespeichert hat ;)
Selbiges gilt für eMails... auch die kennt Google eh schon.


Was die andere tts Engine betrifft:
Hm...
Mal ausprobieren...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: bergadler am 09 November 2014, 17:09:38
Zitat von: hexenmeister am 08 November 2014, 23:01:30
Guckst du hier: ...
Da hat man nun den Thread schon 20mal gelesen  :-[
und findet immer noch was "Neues".

Danke für den Denkanstoß

Gruß

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 09 November 2014, 17:40:58
Wenn schon mehrere Leute dies interessant finden, soll ich vielleich dazu eine Anleitung in einen neuen Thread in "Codeschnipsel" erstellen? Was denkt ihr?

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: bergadler am 09 November 2014, 20:31:00
Ich habe nix dagegen - im Gegenteil.
Der Bereich Codeschnipsel hat mir "Lernenden" schon 'ne Menge Denkanstöße gegeben.

Gruß
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Markus am 09 November 2014, 23:14:15
Ist das noch ein codeschnipsel, oder wäre das wiki doch die bessere Wahl
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 09 November 2014, 23:17:30
Zitat von: Markus am 09 November 2014, 23:14:15
Ist das noch ein codeschnipsel, oder wäre das wiki doch die bessere Wahl

Bin mir nicht sicher, das Ganze ist doch relativ simpel.

Habe erstmal hier gepostet: http://forum.fhem.de/index.php/topic,28924.0.html
Sollte das auf größere Interessen stoßen, kann ich immer noch ins Wiki schreiben.

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Markus am 09 November 2014, 23:19:19
Hauptsache es geht nicht verloren
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 10 November 2014, 03:02:15
Danke für das auslagern.
Stimme auch für einen Wiki Eintrag.

Ich finde solche Beispiele ausgesprochen gut! Zum einen sind sie sehr unterhaltsam, zum anderen kann man daran schön den Ablauf sehen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 11 November 2014, 00:55:02
Jetzt im WIKI: http://www.fhemwiki.de/wiki/Wetter_vorlesen_lassen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Schrottpresse am 05 Dezember 2014, 10:15:02
Hallo! :)

Ich steh grad an: Ich hab espeak mit der mbrola-de6 stimme installiert - funktioniert super in der normalen Konsole.

Habs auch in FHEM getestet mit:
{system('espeak -v mb-de6 -s 130  "Achtung: Badezimmer Fenster seit 20 Minuten offen"')}
und hat auch gepasst. Auch die normale Google Stimme kann durch das Plugin sprechen. Sobald ich aber versuche espeak mit dem Plugin zu verwenden wird nichts ausgegeben, auch im Logfile steht nichts mehr trotz verbose 5.

##### SPRACHAUSGABE #####
define MyTTS Text2Speech hw=0.0
attr MyTTS room Text2Speech
attr MyTTS TTS_Ressource espeak
attr MyTTS verbose 5


Ich hab auch leider nirgends die Optionen für das Attribut TTS_Ressource gefunden - hab nur gesehen, dass es anscheinend eine "Google" Option gibt. Sieht wer eventuell auf einen Blick wo der Fehler ist?

LG Martin

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fiedel am 05 Dezember 2014, 10:57:12
Hi Martin,

Aus der Commandref.:

ZitatTTS_Ressource
optional: Selection of the Translator Engine
Notice: Only available in locally instances!

    Google
    Using the Google Engine. It´s nessessary to have internet access. This engine is the recommend engine because the quality is fantastic. This engine is using by default.
    ESpeak
    Using the ESpeak Engine. Installation of the espeak sourcen is required.
    apt-get install espeak

Also sollte es mit " attr MyTTS TTS_Ressource ESpeak" gehen. FHEM ist wie Linux case sensitiv.  ;)

Gruß

Frank
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Schrottpresse am 05 Dezember 2014, 11:33:26
Ah super, vielen Dank! :)

Den Eintrag in der commandref hab ich übersehen! :)
LG Martin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Duffy am 05 Dezember 2014, 14:07:53
Moin,

das Modul ist echt super und ich bin momentan noch in der Probierphase... Leider war die Soundausgabe trotz Aktivlautsprecher (voll aufgedreht) sehr leise.

Nun lese ich etwas vom Attribut Volume ???
Kann es sein, dass dieser Hinweis im Wiki fehlt?

set <tts> volume <xx> zum setzen der Lautstärke

Wenn ja, wäre es schön, wenn das nachgetragen werden könnte...

Vielen Dank und viele Grüße
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fiedel am 05 Dezember 2014, 15:10:10
Hi Duffy,

Achtung Achtung, eine Durchsage:  ;D Was du suchst ist:
ZitatTTS_VolumeAdjust
Anhebung der Grundlautstärke zur Anpassung an die angeschlossenen Lautsprecher.
Default: 110
attr myTTS TTS_VolumeAdjust 400
Damit kannst du es richtig krachen lassen. Falls es nicht gleich fruchtet, reloade das Modul nochmal!
Und du hast teilweise Recht: Das steht nur in der deutschen Commandref. Standartmäßig angezeigt bekommt man aber die englische.

Gruß

Frank
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: bergadler am 05 Dezember 2014, 16:02:15
Hallo,
als aktiver Mitleser habe ich auch mal getestet.

Wenn ich  im attr TTS_Ressource ESpeak auswähle, bleibt der Lautsprecher stumm.
Obwohl ein espeak command auf der putty console funktioniert.

Und beim attr TTS_VolumeAdjust kann ich 10 oder 400 setzen, die Lautstärke ändert sich nicht.

Gruß

Modul update und reload habe ich getestet/gemacht.

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fiedel am 05 Dezember 2014, 16:19:48
Dann vielleicht ein "shutdown restart"? Espeak hab ich nicht probiert, aber das mit der Lautstärke geht primstens bei mir.
Achso: Versuche mal "update <Modulname> force"! Ich glaub das neueste Modul kam bei mir erst damit an.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 05 Dezember 2014, 16:29:37
@bergadler
Ich würde sagen, du hast dem Benutzer fhem nicht die nötigen Rechte eingeräumt, espeak zu nutzen.
Wenn du die Schritte die du mit dem mplayer unternommen hast, mit espeak wiederholst, sollte es klappen :) :-[
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: bergadler am 05 Dezember 2014, 18:51:06
@fiedel:
Ursache gefunden.
Solange im Device kein Internal "VOLUME" vorhanden ist, kann im attr "TTS_VolumeAdjust"
drin stehen was will, es gibt bei mir keine Änderung.
Erst nach einem set MyTTS volume 100
kann man dann z.B. mit attr TTS_VolumeAdjust 400 die Lautsprecher hüpfen lassen.  8)

@Rince:
Bingo - Treffer.
Das sind so die berühmten Stolperdrähte für mich.  >:(
(Obwohl, der Sound vom espeak ist wirklich nur was für Freaks.)

Gruß
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: P.A.Trick am 26 Dezember 2014, 17:16:49
Zitat von: bergadler am 05 Dezember 2014, 18:51:06
@fiedel:
Ursache gefunden.
Solange im Device kein Internal "VOLUME" vorhanden ist, kann im attr "TTS_VolumeAdjust"
drin stehen was will, es gibt bei mir keine Änderung.
Erst nach einem set MyTTS volume 100
kann man dann z.B. mit attr TTS_VolumeAdjust 400 die Lautsprecher hüpfen lassen.  8)

@Rince:
Bingo - Treffer.
Das sind so die berühmten Stolperdrähte für mich.  >:(
(Obwohl, der Sound vom espeak ist wirklich nur was für Freaks.)

Gruß

Kann ich bestätigen, gleiches Verhalten bei mir. Kann man interne Reading nicht defaultmässig setzen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: TeeVau am 05 Januar 2015, 20:07:17
Guten Abend,
habe mir Weihnachten einen Raspberry B+ gegönnt und spiele damit gerade etwas rum. Habe das pi musicbox image benutzt, welches mopidy verwendet. Jetzt gibt es mplayer nicht, worauf das Modul angewiesen ist.
Kennt jemand eine Möglichkeit, dass Text2Speech Modul in Kombination mit mopidy (was ja irgendwie wohl auch ein mplayer sein soll) zu verwenden? Ich möchte nicht ad hoc einfach mplayer installieren, da ich keine Lust habe, dass mir das etwas "kaputt" macht.
Das MPD Modul funktioniert ohne Probleme, verwendet jedoch nicht die shell, sondern die API von mpc/mopidy.

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fiedel am 06 Januar 2015, 07:41:07
Das wird wohl nur gehen, indem du das TTS- Modul auf mopidy umstrickst - also eher weniger.  ;) Sichere doch deine SD- Karte und installiere dann mplayer. Da sollte nichts "passieren" oder durcheinander kommen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 06 Januar 2015, 07:59:28
Oder du findest den korrekten Shell Aufruf für mopidy.  Dann kann es in das Modul eingebaut werden

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fiedel am 06 Januar 2015, 09:40:38
Meinst du etwa, das per attr. "TTS_MplayerCall" auch ein anderer Player eingebunden werden kann? Dann wäre das ja einfach...  ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: TeeVau am 06 Januar 2015, 13:52:56
Hallo,

dass Attribut TTS_MplayerCall ist mir natürlich aufgefallen ;-) Hab mit verbose 5 geguckt, welcher Befehl konkret ausgeführt wird. Ich kann diesen Befehl leider nicht mit mpc oder mopidy ausführen. Nach befragen von google habe ich auch nichts, auf die schnelle gefunden. Darum die Nachfrage hier im Forum, ich war in der Hoffnung, dass jemand vielleicht schon eine Lösung hat :-)
Dann werde ich mal schauen, ob man den mopidy irgendwie kompatibel per cli ansprechen kann. Oder eben alternativ den Test mit mplayer machen. Ich werde dann auch die Ergebnisse bei Zeiten posten, für die Nachwelt :-)

Danke für die Antworten
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: TeeVau am 06 Januar 2015, 19:39:29
Hallo, kurze Rückmeldung: Es funktioniert mit dem nachinstallieren von mplayer
1. mplayer per apt-get installieren
2. mplayer per sudoers freigeben (Per Gruppenrecht hat es nicht geklappt aus FHEM heraus)
3. richtige HW raussuchen (Bei mir 1.0 da externe Soundkarte)
4. Glücklich sein

Mit ein bisschen Freizeit lass ich mir nun demnächst, morgens im Bad, das Wetter vorhersagen und so :-) :-)

Habe jetzt noch nicht großartig getestet ob nun bei mopidy was kaputt gegangen ist. Sollte mir was auffallen melde ich mich :-)

Tobias

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: TeeVau am 07 Januar 2015, 10:43:28
Eine Ergänzung zur parallelen Benutzung von mopidy und mplayer.
Wird per mopidy etwas abgespielt (Internet Radio) und per tts Modul wird eine Durchsagen gestartet, ist diese Durchsage nicht zu hören. Die Musik läuft weiterhin und das TTS geht einfach unter.
Liegt vermutlich daran, dass nicht 2 unterschiedliche Player gleichzeitig etwas abspielen können. Ggf. bau ich mir etwas mit einem Dummy, so dass per MPD Modul der stream erst gestoppt wird, dann wird die TTS Durchsage gemacht, und nach beenden der Durchsage wird per MPD Modul das Radio wieder gestartet :-)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 07 Januar 2015, 11:48:39
Für eine gleichzeitige Ausgabe muss ein gemeinsamer SoftwareMixer genutzt werden.  Wie PulseAudio z.B. oder eben mpd. Bin aber nicht so Fit in dem Thema. K.A. ob man mplayer dazu bewegen kann, mpd System zu verwenden.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fiedel am 07 Januar 2015, 11:50:37
Für die Durchsagen hab ich was fürs Streamradio gebastelt. Hier  (http://www.fhemwiki.de/wiki/Modul_StreamRadio_Einrichtungshilfe)ganz unten. Vielleicht kannst du es ja als Basis nehmen.

Edit: Um die Unterbrechungslänge planen zu können habe ich diesen Tipp (http://forum.fhem.de/index.php/topic,18531.msg233888.html#msg233888) bekommen, aber noch keine Zeit dafür gehabt. Vielleicht wäre das auch was für das TTS- Modul? Das könnte z.B. vor oder gleichzeitig mit jeder Ansage ein Reading in sek. ausgeben, mit dem man dann andere Soundmodule für diese Zeit stummschalten oder pausieren könnte.

Gruß

Frank
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 07 Januar 2015, 12:12:16
@fiedel: danke... Ist gemerkt. Finde ich eine gute Erweiterung...

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Kuzl am 07 Januar 2015, 19:05:55
Hallo Tobias,

könntest du noch einen kleinen fix machen?
Bei mir ist nach jedem Neustart das Internal "Volume" wieder weg und muss erst neu gesetzt werden.
kannst du das in dein define aufnehmen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 08 Januar 2015, 09:17:25
@Kuzl

Ich habe ein notify beim Start (global initialized) laufen, dass erst die Volume setzt und mich dann per Sprache begrüßt...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Kuzl am 08 Januar 2015, 20:00:05
Das geht natürlich, aber natürlich sollte das längerfristig vom Modul gesetzt werden :) als zwischenlösung super, danke :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: TeeVau am 09 Januar 2015, 12:14:19
Hallo Tobias,

ich habe das Modul für mich erweitert, damit auch im REMOTE Betrieb die Lautstärke eingestellt werden kann. Das war bislang blockiert.
Mein Aufbau ist so, dass ich FHEM auf einer FBF (zumindest noch) habe, worüber ich alles steuere. Auf dem Rasp ist eine FHEM Instanz aber sozusagen nur als Slave. Dort läuft das TTS. Die Lautstärke stelle ich immer auf dem FHEM an der FBF ein, also immer im Remotebetrieb. Das ging bis lang nicht. Über das Wochenende teste ich mal ob das problemlos klappt.
Wenn es für dich ok ist werde ich das geänderte Modul hier im Forum zur Verfügung stellen, vielleicht finden sich noch ein paar Tester. Danach würde dann einem einchecken ins SVN nichts mehr im Wege stehen. Konnte auch durch die Änderungen keine Wechselwirkungen feststellen.

Grüße, Tobias
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 09 Januar 2015, 16:58:47
Hi,  super.  Aber bitte das diff hier auch anhängen.  Das merge ich dann mit dem svn

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: TeeVau am 13 Januar 2015, 07:48:18
Guten Morgen,

wie besprochen einmal das geänderte Modul und den dazugehörigen Patch. Das Modul kann direkt zum testen benutzt werden.
Habe über das Wochenende keine Probleme feststellen können :-)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: TeeVau am 14 Januar 2015, 20:35:34
Hallo, habe mich gerade mal versucht die Länge der TTS MP3 in ein Reading zu schreiben.
Das ermitteln, wie lang die Abspieldauer ist, war kein Problem. Da gab es ja ein Beispiel aus dem SONO Modul.
Habe gerade nur ein Problem die Information in das reading zu bekommen.

Da das ganze per BlockingCall ausgeführt wird komme ich mit $hash für die Funktion readingsSingleUpdate nicht weit, es wird nicht das reading im Hauptprozess beschrieben. Das readingsupdate muss jedoch dort stattfinden, in der "Done" Funktion von BlockingCall macht es keinen Sinn. Dort kann ich zwar das Reading beschrieben, weil $hash stimmt, abaer die Funktion wird erst nach dem Abspielen aufgerufen. Aber ich möchte ja vor dem Abspielen wissen, dass die Durchsage 23 Sekunden lang ist und nicht erst wenn die Durchsage fertig ist :-)

Mein Zugang zum Dev. Board ist nicht mehr da, deshalb kann ich das Problem gerade nicht posten. Mitgliedschaft ist aber wieder angefragt, dann frage ich mal ob jemand eine Idee hat :-)
Oder weiß hier jemand was?

sub Text2Speech_CalcMP3Duration($) {
  my $time;
  my ($file) = @_;
  eval {
    use MP3::Info;
    my $tag = get_mp3info($file);
    if ($tag) {
      $time = $tag->{SECS};
    }
  };

  if ($@) {
    Log 2, 'Bei der MP3-Längenermittlung ist ein Fehler aufgetreten: '.$@;
    return undef;
  }
  return $time;
}


Und in die Funktion Text2Speech_BuildMplayerCmdString kommt zusätzlich ab Zeile 505:
  my $mp3Duration =  Text2Speech_CalcMP3Duration($file);
  Log3 $hash, 4, "DEBUG2: MP3 Duration time = $mp3Duration";
  readingsSingleUpdate($hash, "duration", "$mp3Duration", 1);
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 15 Januar 2015, 09:43:05
Rudi hatte ja die Info gegeben mit "BlockingCallInformParent"
Hoffe das hilft...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: TeeVau am 15 Januar 2015, 21:07:38
Nabend,

ja...es hat geholfen. Habe es mit einem wrapper gelöst.
Im Anhang ist der Patch für "Volume per REMOTE" und mit der MP3 Längenermittlung. Funktioniert natürlich nur mit google und es gibt eine Unschönheit. Wenn der Text nicht per MP3Wrap abgespielt wird, wird das reading mehrmals aktualisiert.

Beispiel im ersten Versuch:
set MyTTS tts Der erste Satz der abgespielt wird ist viel kürzer. Als der zweite.
Liefert 2 Events:
2015.01.15 21:00:30 4: Text2Speech_CalcMP3Duration: cache/0a7695edf070820829de4ccbf47d462e.mp3 hat eine Länge von 4 Sekunden.
2015.01.15 21:00:30 4: Text2Speech_readingsSingleUpdateByName: Dev:MyTTS Reading:duration Val:4

2015.01.15 21:00:36 4: Text2Speech_CalcMP3Duration: cache/f877ad0ed57716f7e855b27014228509.mp3 hat eine Länge von 1 Sekunden.
2015.01.15 21:00:36 4: Text2Speech_readingsSingleUpdateByName: Dev:MyTTS Reading:duration Val:1


Es müssen eben erst beide MP3 Files runtergeladen werden.

Beispiel im zweiten Versuch:
set MyTTS tts Der erste Satz der abgespielt wird ist viel kürzer. Als der zweite.
Liefert 1 Event:
2015.01.15 21:02:34 4: Text2Speech_CalcMP3Duration: cache/4644e8eeb3b1b5fb069fdf2f789f85bc_MP3WRAP.mp3 hat eine Länge von 5 Sekunden.
2015.01.15 21:02:34 4: Text2Speech_readingsSingleUpdateByName: Dev:MyTTS Reading:duration Val:5


Das war der Stand der Dinge für heute Abend. Patch im Anhang zur Info und das Modul zum testen (wer mag).
Möchte demnächst noch ein Reading einbauen was nicht nur die Länge in Sekunden ausgibt, sondern Uhrzeit wann das MP3 fertig abgespielt ist. Kann ggf. nützlich sein um direkt ein at zu erzeugen.

Schönes Wochenende, Tobias
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 16 Januar 2015, 18:32:26
eingecheckt. Danke!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Christian S. am 16 Januar 2015, 18:38:22
Hallo,

Ich möchte die Sprachausgabe per Bluetooth- Lautsprecher realisieren. Die Text2Spech Sprachausgabe über einen am Raspberry direkt angeschlossen Lautsprecher funktioniert schon. Leider funktioniert die Sprachausgabe über den Bluetooth- Lautsprecher nicht. Ich habe alle Einstellungen laut Wiki Beschreibung durchgeführt. Der Bluetooth Stick wird erkannt. Wenn ich lsusb eingebe erhalte ich folgendes:

Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 03eb:204b Atmel Corp. LUFA USB to Serial Adapter Project
Bus 001 Device 005: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

Den Bluetooth- Lausprecher konnte ich auch finden. Bei der Eingabe hcitool scan wird folgendes angezeigt:

8C:DE:52:75:78:A0       SRS-BTV5

Danach habe ich eine RFComm Connection vorbereitet und dazu /etc/bluetooth/rfcomm.conf editiert.

rfcomm0 {
  # Automatically bind the device at startup
  bind no;
  # Bluetooth address of the device
  device 8C:DE:52:75:78:A0;
  # RFCOMM channel for the connection
  channel 3;
  # Description of the connection
  comment "This is Device 1's serial port.";
}

Dann habe ich den Lautsprecher in den Pairing-Modus versetzt und mit "sudo rfcomm connect rfcomm0" gepaired.

Connected /dev/rfcomm0 to 8C:DE:52:75:78:A0 on channel 3
Press CTRL-C for hangup

Ich habe danach die /etc/asound.conf erstellt.

pcm.bluetooth {
  type bluetooth
  device 8C:DE:52:75:78:A0
  profile "auto"
}

Danach wollte ich Alsa restarten mit "/etc/init.d/alsasound restart" bekam aber folgende Fehlermeldung:

-bash: /etc/init.d/alsasound: No such file or directory

Habe ich etwas vergessen zu installieren?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 17 Januar 2015, 06:46:50
ist denn "/etc/init.d/alsasound" vorhanden? geprüft? Etwas anderslautendes als "alsasound"

Funktioniert "aplay -l"?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Christian S. am 17 Januar 2015, 11:39:38
"/etc/init.d/alsasound" ist nicht vorhanden. Ich habe etwas anders lautendes gefunden "alsa-utils".

Wenn ich "aplay -l" eingebe kommt folgendes:

/etc/init.d$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: daschauher am 17 Januar 2015, 21:36:13
Hallo,

ich würde gerne einen etwas viel längeren Text ausgeben.
Das Problem ist wenn ich in einem notify öfter direkt hintereinander tts aufrufe, werden zwischen aufrufe/texte verschluckt.
Als Notlösung habe ich versucht zuerst alles in eine Variable zu speichern und dann auszugeben. Das geht aber auch nur bis zu einer bestimmten Zeichen Zahl, keine Ahnung, ich sag mal gefühlte 256.
Im moment habe ich es mit dem sleep Befehl gelöst. Schön ist es nicht, da es eine reine Schätzung ist. Ändert sich was im Text entstehen Sprechlücken oder es wird wieder was abgeschnitten.

Weiß jemand ob es noch eine andere Lösung gibt?

Grüsse

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fiedel am 18 Januar 2015, 08:59:48
Hi,

hast du in der Commandref das hier gesehen?

ZitatTTS_Delemiter
Optional: Wird ein Delemiter angegeben, so wird der Sprachbaustein an dieser Stelle geteilt. Als Delemiter ist nur ein einzelnes Zeichen zulässig. Hintergrund ist die Tatsache, das die Google Sprachengine nur 100Zeichen zulässt.
Im Standard wird nach jedem Satzende geteilt. Ist ein einzelner Satz länger als 100 Zeichen, so wird zusätzlich nach Kommata, Semikolon und dem Verbindungswort und geteilt.
Achtung: Nur bei einem lokal definierter Text2Speech Instanz möglich und nur Nutzung der Google Sprachengine relevant!

Damit sollte sich das doch lösen lassen?

Gruß

Frank
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: daschauher am 18 Januar 2015, 10:22:23
Danke, aber das bringt mich nicht wirklich weiter.
ein Beispiel:
fhem("set MyTTS tts Hallo,");;\
fhem("set MyTTS tts wie");;\
fhem("set MyTTS tts geht");;\
fhem("set MyTTS tts es");;\
fhem("set MyTTS tts dir");;\
fhem("set MyTTS tts heute");;\

ergiebt: "Hallo heute"
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marvin78 am 18 Januar 2015, 10:31:35
Das konnte Text2Speech noch nie. Da TSS blockierend ist und nicht gerade performant, werden einzelne Befehle verschluckt. Selbst auf meinem richtig schnellen NUC mit i5 CPU funktioniert sowas nicht,. Wenn sich ein Text aus mehreren Teilen zusammensetzen soll, setzt man diesen am besten in einer eigenen Funktion zusammen und schickt ihn am Stück ab. Also sowas wie


sub myTTS () {
my $text1="Hallo,";
my $text2=" wie";
my $text3=" geht";
my $text4=" es";
my $text5=" dir";
my $text6=" heute";
fhem("set MyTTS tts ".$text1.$text2.$text3.$text4.$text5.$text6);
}
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: daschauher am 18 Januar 2015, 11:01:59
Danke, so funktioniert es so wie es soll :-)
Grüsse
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fiedel am 18 Januar 2015, 11:32:35
Zitat von: daschauher am 18 Januar 2015, 10:22:23
Danke, aber das bringt mich nicht wirklich weiter.
ein Beispiel:
fhem("set MyTTS tts Hallo,");;\
fhem("set MyTTS tts wie");;\
fhem("set MyTTS tts geht");;\
fhem("set MyTTS tts es");;\
fhem("set MyTTS tts dir");;\
fhem("set MyTTS tts heute");;\

ergiebt: "Hallo heute"

Auf diese Idee wäre ich auch nicht gekommen.  ;) Das "Problem" (was ja keins ist) liegt übrigens nicht am Modul, sondern am mplayer, der keine queue vorgeschaltet hat. Er muss einen Befehl erst komplett abarbeiten, bevor er für den nächsten zur Verfügung steht.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marvin78 am 18 Januar 2015, 11:46:45
Dass es an mplayer liegt, ist klar. Trotzdem könnte man das im Modul abfangen. Soll keine Kritik am Modul sein, es lässt sich ja lösen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 19 Januar 2015, 06:42:12
Normalerweise arbeitet das Modul mit einer internen Queue die genau dafür da ist. Warum es hier nicht funktioniert weiß ich auch nicht. Diesen extremen testfall hatte ich nicht geprüft.

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marvin78 am 19 Januar 2015, 08:06:43
Mag sein aber schon 2 Nachrichten funktionieren nur manchmal.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 19 Januar 2015, 08:18:53
Workaround ist erstmal wirklich den Text String vorher fertig zusammen zu bauen. Zur Zeit komme ich nicht zum bugfixing. Oder du schickst mir einen Patch wo der Fehler beseitigt ist :)

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marvin78 am 19 Januar 2015, 08:20:42
Naja wie gesagt, ich will das nicht kritisieren. Für mich ist das so völlig ok und es kann so bleiben, wie es ist, da ich mir zum zusammensetzen ohnehin meine eigene sub gebaut habe. Ich wollte dem fragenden User nur die Ursache seines Problems erklären ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: daschauher am 19 Januar 2015, 09:04:30
Danke für die ausführliche Erklärung.
Ich bin zufrieden wenn es funktioniert. Und das tut es wirklich super mit der Lösung von marvin78.
Danke!

Der Post #278 von ChristianS ist hier durch meine Frage etwas untergegangen.
Vielleicht könnt ihr ihm auch weiterhelfen?

Grüsse
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: ergerd am 25 Januar 2015, 19:40:44
Hallo zusammen,

ich habe seit längerem mal wieder ein Update gemacht und bekomme jetzt bei der Definition von Text2Speech

define MyTTS Text2Speech 192.168.48.53:7082

folgenden Fehler:


2015.01.25 19:28:01 1: PERL WARNING: Prototype after '@' for main::Text2Speech_SplitString : @$$$$ at /usr/local/FHEM/share/fhem/FHEM/98_Text2Speech.pm line 451.
2015.01.25 19:28:01 1: reload: Error:Modul 98_Text2Speech deactivated:
Can't locate MP3/Info.pm in @INC (@INC contains: ./FHEM/lib ./lib /usr/local/perl/lib/site_perl/5.16.0/armv5tel-linux /usr/local/perl/lib/site_perl/5.16.0 /usr/local/perl/lib/5.16.0/armv5tel-linux /usr/local/perl/lib/5.16.0 . /usr/local/FHEM/share/fhem/FHEM) at /usr/local/FHEM/share/fhem/FHEM/98_Text2Speech.pm line 528.
BEGIN failed--compilation aborted at /usr/local/FHEM/share/fhem/FHEM/98_Text2Speech.pm line 528.


Info.pm ist aber im Verzeichnis FHEM/lib/MP3 vorhanden.

Fehlt mir etwas, ein Modul o.ä.?

Grüße
Rainer
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Kuzl am 25 Januar 2015, 21:09:26
Hallo Zusammen,

ich versuche gerade das modul auf meinem Ubuntu-rechner ans laufen zu bekommen. Der sound soll über HDMI ausgegeben werden. Wenn ich den Befehl als meinen Standard-User ausführe funktioniert es auch schon. als User fhem kommt immer eine Fehlermelduung über fehlende berechtigungen, obwohl ich mplayer in visudo hinzugefügt habe wie im wiki beschrieben. Kann mir jemand helfen?

hier die komplette rückgabe des befehls:

Zitat
kuzl@zbox:/opt/fhem$ sudo -u fhem sudo /usr/bin/mplayer   -nolirc -noconsolecontrols cache/598d4c200461b81522a3328565c25f7c.mp3
MPlayer 1.1-4.8 (C) 2000-2012 MPlayer Team

Playing cache/598d4c200461b81522a3328565c25f7c.mp3.
libavformat version 54.20.4 (external)
Mismatching header version 54.20.3
Audio only file format detected.
Load subtitles in cache/
==========================================================================
Requested audio codec family [mpg123] (afm=mpg123) not available.
Enable it at compilation.
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 54.35.0 (external)
AUDIO: 16000 Hz, 1 ch, floatle, 32.0 kbit/6.25% (ratio: 4000->64000)
Selected audio codec: [ffmp3float] afm: ffmpeg (FFmpeg MPEG layer-3 audio)
==========================================================================
Home directory not accessible: Permission denied
AO: [pulse] Init failed: Connection refused
Failed to initialize audio driver 'pulse'
Home directory not accessible: Permission denied
AO: [alsa] 48000Hz 1ch floatle (4 bytes per sample)
Video: no video
Starting playback...
A:   0.5 (00.5) of 0.7 (00.6)  0.8%


Exiting... (End of file)


EDIT: Gerade festgestellt es geht auch bei meinem normalen user mit "sudo" nicht

EDIT2: Mitlerweile hab ich es herausgefunden. Es lag daran, dass Pulseaudio standardmäßig nur für den eingeloggten user zugänglich ist und dadurch fhem natürlich nicht zugreifen lies. Ich habe dann Pulseaudio als systemweiten Dienst eingestellt und schon gings :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 01 Februar 2015, 12:20:43
...ich wollte gerade das Mapping Attribut löschen. Jedoch habe ich vorher die MP3 Dateien in /templates entfernt. Dann bekommt man in FHEM auch eine Fehlermeldung und das Attribut wird nicht gelöscht. Nachdem ich einen neue Datei gleichen Namens angelegt habe klappts wieder.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: spiedo am 01 Februar 2015, 13:05:58
Hi Tobias,

Dein Modul funktioniert tadellos. Zwei kleine Wünsche bzw. Fragen hätte ich dazu:

- Könnte man bei der Eingabe der MP3-Files die Extension .mp3 optional machen?

- Zur Steuerung des angeschlossenen Verstärkers würde ich zum Stromsparen ein Status-Signal brauchen, um den Verstärker aus dem Stand Bye zu  wecken. Der Status (z.B. on/off) sollte um paar ms zeitiger/später anliegen.


Ciao Spiedo
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 01 Februar 2015, 13:25:50
Es gibt ein neues Reading zur Anzeige, wie lange das folgende/aktuelle MP3 benötigt. Ev. kannst du darauf reagieren.

Warum sollte .mp3 optional sein? Kannst du doch automatisiert hinten anhängen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: spiedo am 01 Februar 2015, 13:42:44
Hi Tobias,

Zitat von: Tobias am 01 Februar 2015, 13:25:50
Es gibt ein neues Reading zur Anzeige, wie lange das folgende/aktuelle MP3 benötigt. Ev. kannst du darauf reagieren.

Schaue ich mal mir an.

Zitat von: Tobias am 01 Februar 2015, 13:25:50
Warum sollte .mp3 optional sein? Kannst du doch automatisiert hinten anhängen?

ich habe schon paarmal vergessen .mp3 mit einzugeben. Da zwischen den Doppelpunkten nur MP3-Files eingegeben werden, könnte doch die Extension wegfallen.

Wie funktioniert das "automatisiert hinten anhängen"?

Ciao spiedo
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 01 Februar 2015, 15:10:58
Kann mir jemand einen Tipp geben bezüglich der Mickeymousstimme bei Sprachausausgabe mit vorangestellter mp3 Datei? Ich dachte das hier schon mal gelesen zu haben.

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 01 Februar 2015, 15:24:34
Nicht ganz sauber schaut der Textbaustein #0 aus, ein Array hat da nix zu suchen. Wo kommt der her??

Wird deine einleitung.mp3 ausgegeben?? Normalerweise sollte dort noch ein mp3wrap dazwischen kommen im Log um alles füssig in einer Ansage ohne Verzögerung auszugeben. Hast du mp3wrap eingeschaltet??
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 01 Februar 2015, 15:33:11
...mp3wrap ist installiert und eingeschaltet. manchmal kommt die einleitung doppelt, manchmal folgt der mikeystimme noch die richtige stimme. es ist irgendwie kein system drin. solo abgespielt funktioniert aber einleitung und ansage korrekt.

...falsches Array? ... wie kann ich das prüfen?

bei meinem hin und herprobiere hat ich auch mal ein..

PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 397.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: spiedo am 01 Februar 2015, 21:37:37
Zitat von: Dittel am 01 Februar 2015, 15:10:58
Kann mir jemand einen Tipp geben bezüglich der Mickeymousstimme bei Sprachausausgabe mit vorangestellter mp3 Datei? Ich dachte das hier schon mal gelesen zu haben.

Ich hatte das Problem auch. Nachdem ich jede Sprachausgabe mit einen eigenem "set" aufrufe ist die Mickeymousstimme nicht mehr vorgekommen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Christian S. am 03 Februar 2015, 20:57:02
Hallo Tobias!

Kannst du bitte nochmal meine Antwort 278 ansehen. Hast du noch eine Idee warum bei mir die Sprachausgabe über den Bluetooth- Lautsprecher nicht funktioniert? Sollte ich ein Bluetooth device sehen wenn ich aplay -l eingebe? Die Sprachausgabe über einen direkt am Raspberry angeschlossenen Lautsprecher funktioniert problemlos.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 04 Februar 2015, 14:29:45
Hi,
bei aplay -l wird das Device nicht gelistet. Nur über das hcitool

Warum /etc/init.d/alsasound bei nicht da ist, weiß ich nicht. Ich hatte alle auf einem Raspi mit Raspian laufen. Kann das sein das bei dir Pulseaudio installiert ist?
Hier kann ich dir nicht wirklich weiterhelfen :(
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Christian S. am 08 Februar 2015, 12:46:02
Die Sprachausgabe über den Bluetooth- Lautsprecher funktioniert jetzt.  :)
Pulseaudio war bei mir nicht installiert.
Ich hatte zum testen immer "mplayer -ao alsa:device=hw=0.0 Test.mp3" eingegeben und nichts gehört.
Bei der Eingabe "mplayer -ao alsa:device=bluetooth Test.mp3" kam dann Musik aus dem Lautsprecher.
Deshalb habe ich in Fhem "define MyTTS Text2Speech bluetooth" eingegeben. Jetzt funktioniert die Sprachausgabe auch in Fhem über Bluetooth.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 08 Februar 2015, 13:27:04
...funktioniert das stabil und dauert es länger, wegen der aufzubauenden bluetooth verbindung?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Christian S. am 08 Februar 2015, 14:29:17
Bis jetzt läuft es stabil. Ich habe keine Verzögerung in der Sprachausgabe.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Von-XS1-Nach-FHEM am 18 Februar 2015, 20:11:25
Wie viel Bluetooth Lautsprechers hast du dann angeschlossen? Wie viel Standby strom benutzen die so?  Ich habe vor meine Klingel auch über die Anlage laufen zu lassen und spiele mit die Idee mehrere Bluetooth Lautsprechers zu kaufen damit mann durch das ganze Haus alles mit bekommt (Klingel, Post, Waschmaschine Fertig usw.) viele Sachen mitteilen kannst. Hat jemand von euch da ein gute tipp wie und was ich da am besten benutzen kann? Welche Lautsprecher wurden da am besten zu passen Und gibt es auch ein Bluetooth stick der weitere Entfernungen kann überbrücken?

Ich werde dankbar über jeder Antwort!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Toto1973 am 06 März 2015, 04:09:34
Hallo!
Ich hab nun die ganze Zeit an der Bluetooth-Ausgabe herumgebastelt. So wie es im Wiki beschrieben ist, funktioniert es nicht.
Ich halte mich komplett an die Anleitung und habe auch alle Dateien bearbeite.
Wenn ich dann sudo rfcomm connect rfcomm0 eingebe, kommt eine Fehlermeldung Can't connect RFCOMM socket: Connection refused

Ebenso funktioniert das hier nicht: /etc/init.d/alsasound restart
Da kommt: -bash: /etc/init.d/alsasound: No such file or directory

Wer hat eine Idee, wie ich das ans Laufen bekomme?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Toto1973 am 06 März 2015, 04:31:18
Mit den Tools, konnte ich pairen. https://code.google.com/p/bluez-tools/ (https://code.google.com/p/bluez-tools/)
Aber ich bekomme die Audioausgabe nicht auf dieses Device...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Kuzl am 06 März 2015, 10:35:21
Was hast du denn für ein Gerät?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Toto1973 am 06 März 2015, 12:14:01
Hallo!
Ich war heute Nacht einfach nur frustriert :-)

Hier mal die Infos:
Raspberry PI2 mit einem Bus 001 Device 006: ID 0a5c:2021 Broadcom Corp. BCM2035B3 Bluetooth Adapter
Als Betriebssystem ist RASPBIAN installiert.
Und das wird angezeigt, wenn ich Verison in FHEM eingeben:
# $Id: fhem.pl 8066 2015-02-22 13:33:26Z rudolfkoenig $
# $Id: 00_CUL.pm 7770 2015-01-30 07:04:52Z rudolfkoenig $
# $Id: 14_CUL_MAX.pm 7532 2015-01-11 19:00:48Z mgehre $
# $Id: 14_CUL_TCM97001.pm 6689 2014-10-05 12:27:19Z rudolfkoenig $
# $Id: 14_CUL_TX.pm 6689 2014-10-05 12:27:19Z rudolfkoenig $
# $Id: 72_FB_CALLMONITOR.pm 8043 2015-02-19 21:14:42Z markusbloch $
# $Id: 01_FHEMWEB.pm 8094 2015-02-25 06:16:53Z rudolfkoenig $
# $Id: 11_FHT.pm 5070 2014-02-28 07:48:55Z rudolfkoenig $
# $Id: 92_FileLog.pm 7854 2015-02-03 19:23:22Z rudolfkoenig $
# $Id: 98_GEOFANCY.pm 6985 2014-11-16 00:05:49Z loredo $
# $Id: 12_HMS.pm 5097 2014-03-02 15:25:08Z rudolfkoenig $
# $Id: 10_IT.pm 7839 2015-02-02 20:25:11Z dancer0705 $
# $Id: 36_JeeLink.pm 7805 2015-01-31 19:26:58Z justme1968 $
# $Id: 36_LaCrosse.pm 7027 2014-11-20 20:08:00Z justme1968 $
# $Id: 10_MAX.pm 8011 2015-02-16 20:21:49Z mgehre $
# $Id: 70_STV.pm 7763 2015-01-28 20:55:26Z bentele $
# $Id: 99_SUNRISE_EL.pm 6765 2014-10-14 18:24:29Z rudolfkoenig $
# $Id: 98_SVG.pm 7981 2015-02-14 17:29:46Z rudolfkoenig $
./FHEM/_TM.pm: No such file or directory
# $Id: 98_Text2Speech.pm 7588 2015-01-16 17:32:08Z tobiasfaust $
# $Id: 99_Utils.pm 7914 2015-02-08 11:14:10Z rudolfkoenig $
# $Id: 59_Weather.pm 6705 2014-10-07 17:41:42Z borisneubert $
# $Id: 32_WifiLight.pm 80 2015-02-01 21:45:00Z herrmannj $
# $Id: 90_at.pm 8057 2015-02-21 19:08:03Z rudolfkoenig $
# $Id: 98_dummy.pm 4934 2014-02-15 08:23:12Z rudolfkoenig $
# $Id: 91_eventTypes.pm 7221 2014-12-15 10:02:49Z rudolfkoenig $
# $Id: 95_holiday.pm 7330 2014-12-27 09:23:04Z rudolfkoenig $
./FHEM/99_myUtils.pm: No such file or directory
################################## # $Id: 99_myUtilsTM.pm 2014-8 by Elektrolurch $
# $Id: 91_notify.pm 7854 2015-02-03 19:23:22Z rudolfkoenig $
# $Id: $
# $Id: 98_telnet.pm 8017 2015-02-17 11:10:16Z rudolfkoenig $
# $Id: 98_weblink.pm 5608 2014-04-23 10:57:16Z rudolfkoenig $


Vielleicht ist das hier noch interessant:
root@raspberrypi:~# bt-device -i 00:02:3C:24:29:0A
[00:02:3C:24:29:0A]
  Name: Creative D100
  Alias: Creative D100 [rw]
  Address: 00:02:3C:24:29:0A
  Icon: audio-card
  Class: 0x240404
  Paired: 1
  Trusted: 0 [rw]
  Blocked: 0 [rw]
  Connected: 0
  UUIDs: [AudioSink, AVRemoteControlTarget, AVRemoteControl]


Das zeigt, das ein pairen also möglich sein muss.

Und das hier noch, vielleicht hilft das bei der Fehlersuche:
root@raspberrypi:~# sudo /etc/init.d/bluetooth start
[ ok ] Starting bluetooth: bluetoothd rfcomm.
root@raspberrypi:~# sudo /etc/init.d/bluetooth info
Usage: /etc/init.d/bluetooth {start|stop|restart|force-reload|status}
root@raspberrypi:~# sudo /etc/init.d/bluetooth force-reload
[ ok ] Stopping bluetooth: rfcomm /usr/sbin/bluetoothd.
[ ok ] Starting bluetooth: bluetoothd rfcomm.
root@raspberrypi:~# sudo /etc/init.d/bluetooth status
[ ok ] bluetooth is running.

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 07 März 2015, 10:59:37
Du musst definitiv den Eintrag in der asound.conf machen.  Diesen kannst du dann mit dem mplayer Aufruf referenzieren

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Toto1973 am 07 März 2015, 12:31:47
Ich habe nochmal alles nach WiKi durch gecheckt. Auch die Einträge in der asound.conf sind vorhanden. Leider geht es nicht!
Aber ich werde mir einen Bluetooth Sender holen und den an die Audiobuchse des Raspberry anschließen.
root@raspberrypi:~# bluetooth-agent 0000 &
[1] 2350
root@raspberrypi:~# rfcomm connect rfcomm0
Can't connect RFCOMM socket: Connection refused
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 08 März 2015, 07:10:48
nur zu beruhigung, am BT bin ich auch fast verzweifelt, habe zig Seiten im Unternet durchstöbert und alles mögliche ausprobiert. Was schlussendlich funktioniert hat, hab ich dann ins wiki geschrieben.

Bei deinem letzten Post, ich habe mit mehreren SSH-Verbindungen gearbeitet, damit ich die einzelnen Ausgaben vom rfcomm sehe. Du hast ja alles in den Hintergrund geschickt
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: kaihs am 10 März 2015, 22:06:55
Ich bin vom RPi auf den BananaPi umgezogen und habe seitdem ein Problem mit Text2Speech, die Ausgabe des Tons erfolgt stark verzögert.


Internals:
   ALSADEVICE hw=2.0
   DEF        hw=2.0
   MODE       DIRECT
   NAME       MyTTS
   NR         85
   STATE      Initialized
   TYPE       Text2Speech
   Readings:
     2015-03-10 21:26:40   duration        1
     2015-03-10 21:26:40   endTime         00:00:00
   Helper:
     Text2Speech:
     Bm:
       Text2speech_attr:
         cnt        1
         dmx        0
         mAr
         max        0
         tot        0
       Text2speech_set:
         cnt        17
         dmx        0
         max        24
         tot        127
         mAr:
           HASH(MyTTS)
           MyTTS
           tts
           Hallo
           Welt!
Attributes:
   TTS_MplayerCall /usr/bin/mplayer
   TTS_UseMP3Wrap 1
   disable    0
   room       System,Wohnzimmer
   verbose    5


Ich habe die Ursache bereits so weit eingegrenzt, dass es an dem Aufruf von mplayer liegt.

Ich habe das Modul um eine zusätzliche Loggingausgabe in Text2Speech_DoIt erweitert

    if(-e $file) { # Datei existiert jetzt
      $cmd = Text2Speech_BuildMplayerCmdString($hash, $file);
      Log3 $hash->{NAME}, 4, "Text2Speech:" .$cmd;
      system($cmd);
      Log3 $hash->{NAME}, 4, "Text2Speech: done";
    }


Das führt dann z. B. zu folgendem Protokoll:

2015.03.10 21:26:40 4: Text2Speech: Bearbeite jetzt den Text: Hallo Welt!
2015.03.10 21:26:40 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 55243ecf175013cfe9890023f9fd9037.mp3
2015.03.10 21:26:40 4: Text2Speech: 'cache/55243ecf175013cfe9890023f9fd9037.mp3' gefunden, kein Download
2015.03.10 21:26:40 4: Text2Speech_CalcMP3Duration: cache/55243ecf175013cfe9890023f9fd9037.mp3 hat eine Länge von 1 Sekunden.
2015.03.10 21:26:40 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=2.0  -nolirc -noconsolecontrols cache/55243ecf175013cfe9890023f9fd9037.mp3
2015.03.10 21:26:40 4: Text2Speech_readingsSingleUpdateByName: Dev:MyTTS Reading:duration Val:1
2015.03.10 21:26:40 4: Text2Speech_readingsSingleUpdateByName: Dev:MyTTS Reading:endTime Val:00:00:00
2015.03.10 21:27:06 4: Text2Speech: done


Zwischen Start von mplayer und dem Ende des Prozesses vergehen also 26 Sekunden für eine Soundausgabe von 1 Sekunde, die Ton ist auch erst nach 25 Sekunden zu hören.

Starte ich das selbe Kommando als user fhem auf der Shell gibt es diese Verzögerung nicht:

fhem@bananapi:~$ id
uid=999(fhem) gid=20(dialout) groups=20(dialout),29(audio),44(video),113(i2c)
fhem@bananapi:~$ time /usr/bin/mplayer -ao alsa:device=hw=2.0  -nolirc -noconsolecontrols -really-quiet cache/55243ecf175013cfe9890023f9fd9037.mp3

real    0m2.385s
user    0m0.867s
sys     0m0.207s


Ein strace zeigt, dass der mplayer Prozess 28764 sehr lange versucht irgendwelche Font Dateien zu öffnen, z. B.

28784 21:27:04 open("/usr/share/fonts/X11/encodings/large/.AppleDouble/gb18030.2000-0.enc.gz", O_RDONLY) = -1 ENOENT (No such file or directory)
28784 21:27:04 open("/usr/share/fonts/X11/encodings/large/gb18030.2000-0.enc.gz/..namedfork/rsrc", O_RDONLY <unfinished ...>
516   21:27:04 gettimeofday( <unfinished ...>
28784 21:27:04 <... open resumed> )     = -1 ENOTDIR (Not a directory)
516   21:27:04 <... gettimeofday resumed> {1426019224, 363029}, NULL) = 0
28784 21:27:04 open("/usr/share/fonts/X11/encodings/large/gb18030.2000-0.enc.gz/rsrc", O_RDONLY <unfinished ...>


Hat jemand eine Idee was das sein kann und warum sich mplayer in dieser Konstellation anders verhält als beim direkten Aufruf?
Titel: Antw:Neues Modul: Text2Speech: Templates werden nicht abgespielt
Beitrag von: td am 12 März 2015, 18:34:59
Hallo zusammen,

für gesprochenen Text funktioniert text2speech bei mir einwandfrei, nur werden mp3-Dateien nicht abgespielt.
Ich habe ein Template "whistle" definiert und die entsprechende Datei unter "cache/templates" angelegt.


olymp:/opt/fhem # ll /opt/fhem/cache/templates/
total 56
-rw-r--r-- 1 root root 56673 Aug  9  2011 tos_intercom_whistle.mp3


whistle" ist wie folgt definiert:

define wstts Text2Speech none
attr wstts TTS_UseMP3Wrap 1
set wstts volume 100
attr wstts TTS_FileMapping whistle:tos_intercom_whistle.mp3


Bei Aufruf mittels "set wstts tts :whistle:" wird gesprochen: "templates whistle".

Das log ergibt:

2015.03.12 18:17:05 4: wstts: Angabe einer direkten MP3-Datei gefunden:  whistle => FileTpl_1426180625_#0
2015.03.12 18:17:05 4: wstts: Auflistung der Textbausteine nach Aufbereitung:
2015.03.12 18:17:05 4: wstts: 0 => templates/whistle
2015.03.12 18:17:05 4: Text2Speech: Bearbeite jetzt den Text: templates/whistle
2015.03.12 18:17:05 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: fdd04ad42c1a70d3516c5e370ad6f27c.mp3
2015.03.12 18:17:05 4: Text2Speech: 'cache/fdd04ad42c1a70d3516c5e370ad6f27c.mp3' gefunden, kein Download
2015.03.12 18:17:05 4: Text2Speech_CalcMP3Duration: cache/fdd04ad42c1a70d3516c5e370ad6f27c.mp3 hat eine Länge von 2 Sekunden.
2015.03.12 18:17:05 4: Text2Speech_readingsSingleUpdateByName: Dev:wstts Reading:duration Val:2
2015.03.12 18:17:05 4: Text2Speech:sudo /usr/bin/mplayer  -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 100 -volume 100 cache/fdd04ad42c1a70d3516c5e370ad6f27c.mp3
2015.03.12 18:17:05 4: Text2Speech_readingsSingleUpdateByName: Dev:wstts Reading:endTime Val:00:00:00


Rufe ich mit "set wstts tts :tos_intercom_whistle.mp3:" auf, wird die Datei abgespielt.

Das Template wird also als solches gar nicht erkannt.

Wer weiß Rat?

Vielen Dank im Voraus!
td
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 13 März 2015, 09:00:11
wie vermutet, deine Rechte passen nicht.
Siehe ersten Code: root:root
Dein FHEM hat keine Zugriffsrechte darauf....
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: td am 13 März 2015, 10:29:31
Hallo Tobias,

vielen Dank für Deine Rückmeldung.
fhem läuft bei mir unter root.
Auch arbeitet ja ein direkter Aufruf per "set wstts tts :tos_intercom_whistle.mp3:" wie gewünscht.

Gruß
td
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 13 März 2015, 11:49:58
hab es nachvollziehen können. Irgendetwas ist bei den letzten Änderungen kaputt gegangen.....

Was aber geht, als workarround:
set Mytts tts whistle

Also Angabe des Shortcuts ohne Doppelpunkte
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mrbreil am 15 März 2015, 15:40:58
Hallo zusammen,

erstmal erkläre ich was ich vorhabe.
Ich setze in einem anderen Modul immer das Volumen herunter bevor Text2Speech eine "Durchsage" macht, funktioniert einwandfrei.
Das setzen der ursprünglichen Lautstärke funktioniert auch mit einem at Befehl. Leider ist der Zeitversatz  fix eingestellt und manchmal ist die Ansage einfach zu lang.
Jetzt gibt es doch die zwei Readings duration und endTime.

endTime bleibt immer auf 00:00:00 stehen.
duration ändert sich mehrmals, ich denke durch das eigenständige splitten der Dateien bei Punkten, Kommas und den Wort "und".

Kann ich die Länge der einzelnen Dateien vorher irgendwie zusammen rechnen lassen, um die Gesamtzeit nutzen zu können?

Hoffe ich habe verständlich beschrieben warum es mir geht.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Invers am 15 März 2015, 18:44:06
Ich möchte gerne bequem die Lautstärke auslesen können. Dafür fehlt jedoch das Reading volume. Somit muss es bei Internals abgefragt werden, was sehr umständlich ist.

Wäre es machbar, das Reading zur Verfügung zur stellen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 16 März 2015, 15:48:45
@td: Bitte mal testen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: TeeVau am 17 März 2015, 12:27:06
Zitat von: mrbreil am 15 März 2015, 15:40:58
Hallo zusammen,

erstmal erkläre ich was ich vorhabe.
Ich setze in einem anderen Modul immer das Volumen herunter bevor Text2Speech eine "Durchsage" macht, funktioniert einwandfrei.
Das setzen der ursprünglichen Lautstärke funktioniert auch mit einem at Befehl. Leider ist der Zeitversatz  fix eingestellt und manchmal ist die Ansage einfach zu lang.
Jetzt gibt es doch die zwei Readings duration und endTime.

endTime bleibt immer auf 00:00:00 stehen.
duration ändert sich mehrmals, ich denke durch das eigenständige splitten der Dateien bei Punkten, Kommas und den Wort "und".

Kann ich die Länge der einzelnen Dateien vorher irgendwie zusammen rechnen lassen, um die Gesamtzeit nutzen zu können?

Hoffe ich habe verständlich beschrieben warum es mir geht.

Hallo,
genau dafür habe ich den Patch gemacht und die Readings zusätzlich eingebaut. endTime ist gar nicht wirklich eingebaut, fällt mir gerade ein :-) Das ist immer 00:00:00
Wie du schon festgestellt hast, wird das Reading Duration öfter neu gesetzt, nämlich für jede MP3 die abgespielt wird. Und aus diversen Gründen teilt das Modul den Text in mehrere Anfragen auf, die dann auch mehrere MP3s ergeben. Diese werden nacheinander abgespielt, was also auch mehrere Readings erzeugt.
Wenn du MP3Wrap verwendest wird beim 2. mal abspielen des selben Text nur eine MP3 Datei erzeugt. Das hilft aber nicht immer.

Ich habe das bei mir so gelöst:

Funktioniert bei mir im Bad wunderbar:
MyTTS:duration:.* {
  my $devMPD = "myMPD";
  my $stateMPD = Value("$devMPD");
  my $atTimestamp = time_num2str($EVTPART1+2);
  my $atName = "at_" . $devMPD . "_play";

  if (!$defs{$atName}) {
    fhem("define $atName at +" . $atTimestamp . " set $devMPD play");
  } else {
    fhem("modify $atName +" . $atTimestamp);
  }
 
}


Pausieren erledige ich mit folgendem notify:
MyTTS:tts.* {
  my $devMPD = "myMPD";
  my $stateMPD = Value("$devMPD");

  if ($stateMPD eq "play") {
    fhem("set $devMPD stop");
  }
}


Kann man auch alles in einem notify erledigen, ich bin aber faul und bleibe bei dem gestückelten Werk :-)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: setis66 am 17 März 2015, 17:27:14
Hallo,
Ich bin so ziemlich neu Was Fhem An Geht Ich habe seit Kurzem Alle von der Fritz box wo ich ein CLU Hatte auf einen Raspberry Pi installiert und jetzt wollte mich mal fragen wie ich mein Lampen und Steckdosen Zum Reden Bekomme ich habe soweit alles installiert und ich bekomme bei fem. auch eine sprachausgebe aus dem Raspberry . Wie ich was in der fehm config schreiben muss? Das wenn ich die Lampe anschalte und es mir antwortet.
Es wäre nett wenn mir mal einer was schreiben Könnte was und wo ich was reinschreiben soll.
Am besten ein kompletten Code So Wie define Spiegel FS20 05a0 00
attr Spiegel IODev CUL_0 wo die tts rein muss und alles andere.
Danke
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Pfriemler am 18 März 2015, 13:13:41
Ich glaube DU brauchst einfach noch ein bisschen Einarbeitungszeit, dann wird sich alles klären...

Versuche genau zu sein - wenn Du in Deinen Geräten genausoviel Bechstaben verwuchselst wie in Deinen Beiträgen, wird es auch für uns schwierig...
Weiterhin werfe ich mich in die Riege derer, die meinen, dass man in die fhem.cfg niemals etwas hineinschreiben soll, sondern stattdessen alles sauber über die Kommandozeile und das Webinterface definieren und DANN speichern.

Wenn Du eine Lampe schaltest, sich also deren Zustand ändert, musst Du das z.B. mit einem notify abfangen und darin die Sprachausgabe definieren. Das hat bei der Definition des Gerätes nichts verloren, bzw. es funktioniert nicht.
Im Einsteiger-Doc und sicher auch im Wiki ist Notify ausreichend beschrieben, als Aktionscode setzt Du den passenden Sprechbefehl hinein. Für jedes Ereignis ein eigenes Notify zu kreieren wird aber aufwändig und schwer zu warten. Wie geschickt man viele Lampen und Steckdosen mit einem Notify "aussprechen" lassen kann, hängt nicht zuletzt von Deiner Namensgebung ab: ein gemeinsamer Präfix für alle "auszusprechenden" Geräte wäre etwa sehr hilfreich. So ließen sich Zustandsänderungen von "lampSpiegel" und "lampBadezimmer" mit einem gemeinsamen Filter "lamp.*" abfangen. Welches Gerät dann welchen Zustand einnimmt, wird dem Notify übermittelt und kann entsprechend "ausgesprochen" werden.
Soviel als Grundidee. Wir könnten Dir hier auch perfekte Lösungen bringen, aber glaub mir: Wenn Du es allein schaffst, lernst Du mehr. Fang klein an. Viel Erfolg!



Titel: Antw:Neues Modul: Text2Speech
Beitrag von: setis66 am 18 März 2015, 16:48:38
Hallo,
Danke für die Antwort bin schon ein wenig weiter gekommen.
Es wäre mir ja lieb du könnte mir wenigstens mal ein Code schreiben.
So wie Spiegel On habe ich ja schon alles hinbekommen, Mit taske Und AutoVoice Und 4 Tablets und 3 Handys Kann ich auch schon alles Super mit Sprache steuern, es wäre natürlich gut wenn ich Spiegel on sage das ich eine Antwort bekomme.
Ein kleiner Code wie man dat macht wäre nicht schlecht.
Danke
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Pfriemler am 18 März 2015, 22:26:14
@setis66: Deine Fragestellung wird hier offtopic, der Thread dreht sich um die Feinheiten des tts-Sprachmoduls auf höherer Ebene. Ich schlage Dir vor, Du beginnst einen neuen Thread in "Anfängerfragen" (denn um sowas geht es bei der erstmaligen "Inbetriebnahme" eines Notifys derart schon). Poste dort bitte relativ genau, WAS Du erreichen möchtest, und benenne konkret zumindest Beispiele der zu steuernden und/oder zu überwachenden Geräte. Ob Du eine akustische Quittung nur bei einen Sprachbefehl haben möchtest (dann würde ich die Sprachausgabe bei der Sprachauswertung und der Steuerung des Schaltempfängers ansiedeln) oder ob es bei jeder Schalthandlung, auch durch Fernbedienungen etc., eine Ansage geben soll (dann per Notify auf den Schaltzustand), sind nämlich zwei verschiedene Sachen.
Ich werde hier nicht mehr weiter antworten, um den Thread nicht unnötig in die falsche Richtung aufzublähen. Wenn tts schließlich nicht genau das macht, was es sprechen soll, sind wir hier wieder richtig...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Invers am 19 März 2015, 00:15:13
Zitat von: Invers am 15 März 2015, 18:44:06
Ich möchte gerne bequem die Lautstärke auslesen können. Dafür fehlt jedoch das Reading volume. Somit muss es bei Internals abgefragt werden, was sehr umständlich ist.

Wäre es machbar, das Reading zur Verfügung zur stellen?


Ich habe leider noch gar keine Antwort bekommen.
Ist das wirklich so aufwändig zu machen? Das Intrernal VOLUME existiert doch bereits, volume kann ja auch gesetzt werden.
Wäre für eine Antwort bzw. Änderung des Moduls dankbar.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 19 März 2015, 08:06:13
Zitat von: Invers am 19 März 2015, 00:15:13

Ich habe leider noch gar keine Antwort bekommen.
Ist das wirklich so aufwändig zu machen? Das Intrernal VOLUME existiert doch bereits, volume kann ja auch gesetzt werden.
Wäre für eine Antwort bzw. Änderung des Moduls dankbar.

Kommt noch mit rein! :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Invers am 19 März 2015, 08:46:55
Vielen Dank. Toll!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 19 März 2015, 11:24:10
bitte testen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Invers am 19 März 2015, 12:59:33
Nö, funktioniert nicht. Liegt vielleich an der abweichenden Schreibweise. In der set-Liste  = volume, im neuen Reading = Volume.
Somit funktioniert set MyTTS Volume 10 nicht, MyTTS volume 10 nicht aber schon.
Und darum klappt auch mein Olan:
global:INITIALIZED set MyTTS Volume [DU_aktLautst];set MyTTS tts "fhem initialisiert."

nicht.

DU_aktLautst ist der Dummy, der den zu setzenden Wert enthält.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marvin78 am 19 März 2015, 13:02:20
@Invers: Aber was genau funktioniert denn nicht? Der Wert mit mit

set xxx volume YY

gesetzt und erscheint dann im Reading Volume. Die unterschiedliche Schreibweise ist wirklich nicht schön, grundsätzlich ist die gewünschte Fuktionalität aber da.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 19 März 2015, 13:16:27
immer diese Nörgler....
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Invers am 19 März 2015, 13:28:00
LOL, Danke.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: justme1968 am 19 März 2015, 13:33:01
die unterschiedlichen schreibweise ist ein problem in fhemweb für longpoll und die Initialisierung des sliders auf den aktuellen wert.

gruss
  andre
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marvin78 am 19 März 2015, 13:49:20
Ein slider ist hier (in FHEMWEB) ohnehin eher schwierig, da das Attribut setList dem Modul nicht bekannt ist.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Invers am 19 März 2015, 14:45:52
Kleiner Fehler?
Ich habe nun 2 Readings, Volume mit dem uralten Wert und volume mit dem nun neuen Weert, wie es auch sein soll. Ich vermute mal, das ist nicht gewollt?
Bitte nicht auf Neustart hinweisen, habe ich gemacht.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marvin78 am 19 März 2015, 14:47:22
Das alte reading Volume hast du auch noch von "alten" Version des Moduls, die du getestet hast. Das lässt sich einfach mit

deletereading TTSDEVICE Volume

entfernen und kommt dann auch nicht mehr wieder.

Das ist nicht wirklich ein Bug.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Invers am 19 März 2015, 14:53:24
Danke, nun ist es ok.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: justme1968 am 19 März 2015, 15:58:17
du brauchst in diesem fall nicht setList sondern widgetOverride.

setList ist nur für dummys um einem dummy zu sagen was er für kommandos kann.

andere module wissen was sie für kommandos können.

hier muss nur fhemweb gesagt werden das für ein kommando ein anderes widget verwendet werden soll als das vom modul vorgesehene.

gruß
  andre
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Panik am 19 März 2015, 18:03:17
Hallo,

ist es eigentlich möglich, die Sprachausgabe etwas in der Geschwindigkeit zu beeinflussen?
Ich finde die Dame etwas langsam  ;)

Panik
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: td am 23 März 2015, 20:56:31
Hallo Tobias,

vielen Dank für die Korrektur. Ich habe mit der Version vom 19.3., 13:xx getestet.
Nun funktioniert es mit dem File-Mapping.

Mit
set wstts tts :whistle:Dieses ist ein Test
wird erst korrekt die zu "whistle" zugehörige mp3-Datei abgespielt.
Bei einem zweiten, identischen, Aufruf wird ebenfalls die mp3 korrekt, aber der Text mit immens hoher Geschwindigkeit (Mickey Mouse-Effekt) abgespielt.

Log-Datei-Auszug

2015.03.23 20:51:05 4: wstts: Auflistung der Textbausteine nach Aufbereitung:
2015.03.23 20:51:05 4: wstts: 0 => templates/tos_intercom_whistle.mp3
2015.03.23 20:51:05 4: wstts: 1 => Dieses ist ein Test
2015.03.23 20:51:05 4: Text2Speech: Bearbeite per MP3Wrap jetzt den Text: templates/tos_intercom_whistle.mp3 Dieses ist ein Test
2015.03.23 20:51:05 4: Text2Speech_CalcMP3Duration: cache/8b9fa982a19cf8ef8db93bc067bb1e98_MP3WRAP.mp3 hat eine Länge von 2 Sekunden.
2015.03.23 20:51:05 4: Text2Speech:sudo /usr/bin/mplayer  -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 100 -volume 40 cache/8b9fa982a19cf8ef8db93bc067bb1e98_MP3WRAP.mp3
2015.03.23 20:51:05 4: Text2Speech_readingsSingleUpdateByName: Dev:wstts Reading:duration Val:2
2015.03.23 20:51:05 4: Text2Speech_readingsSingleUpdateByName: Dev:wstts Reading:endTime Val:00:00:00


Das Verhalten ist reproduzierbar.
Die Datei "cache/8b9fa982a19cf8ef8db93bc067bb1e98_MP3WRAP.mp3" selbst wird mit "mpg123" problemlos abgespielt.

Auch wiederholter Aufruf von "set wstts tts Dieses ist ein Test" wird in korrekter Geschwindigkeit abgespielt.

Also: Nur wenn mp3 mit Text kombiniert wird, wird ab dem zweiten identischen Aufruf der Text zu schnell abgespielt. Und das, obwohl die im Cache vorhandene mp3 korrekt ist.

Bin verblüfft.

Nachtrag:
Ich habe soeben die Datei sowohl mit mpg123 als auch dem im Log vorgefundenen mplayer-Aufruf getestest:

olymp:/opt/fhem # /usr/bin/mplayer -nolirc -noconsolecontrols -softvol -softvol-max 100 -volume 40 cache/8b9fa982a19cf8ef8db93bc067bb1e98_MP3WRAP.mp3
MPlayer -4.8 (C) 2000-2015 MPlayer Team

Playing cache/8b9fa982a19cf8ef8db93bc067bb1e98_MP3WRAP.mp3.
libavformat version 56.15.102 (internal)
Audio only file format detected.
Load subtitles in cache/
==========================================================================
Trying to force audio codec driver family libmad...
Opening audio decoder: [libmad] libmad mpeg audio decoder
AUDIO: 48000 Hz, 2 ch, s16le, 320.0 kbit/20.83% (ratio: 40000->192000)
Selected audio codec: [mad] afm: libmad (libMAD MPEG layer 1-2-3)
==========================================================================
AO: [pulse] Init failed: Connection refused
Failed to initialize audio driver 'pulse'
AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)
[Mixer] No hardware mixing, inserting volume filter.
Video: no video
Starting playback...
A:   2.2 (02.2) of 1.0 (01.0)  0.3%
Cannot sync MAD frame
Cannot sync MAD frame
A:   2.2 (02.2) of 1.0 (01.0)  0.3%
Cannot sync MAD frame
A:   2.2 (02.2) of 1.0 (01.0)  0.3%
Cannot sync MAD frame
A:   2.2 (02.2) of 1.0 (01.0)  0.3%


Exiting... (End of file)

olymp:/opt/fhem # mpg123 cache/8b9fa982a19cf8ef8db93bc067bb1e98_MP3WRAP.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
        version 1.18.0; written and copyright by Michael Hipp and others
        free software (LGPL) without any warranty but with best wishes

Directory: cache/
Playing MPEG stream 1 of 1: 8b9fa982a19cf8ef8db93bc067bb1e98_MP3WRAP.mp3 ...

MPEG 1.0 layer III, 320 kbit/s, 48000 Hz joint-stereo
Title:   Use Mp3Splt to obtain original tracks
Artist:  File wrapped with Mp3Wrap
Comment: This file is wrapped with Mp3Wrap. Get mp3splt, the free tool to split original files at http://mp3splt.sourceforge.net. Please do not remove this comment.
Album:   http://mp3splt.sourceforge.net
Year:

Warning: Big change (MPEG version, layer, rate). Frankenstein stream?

MPEG 2.0 layer III, 32 kbit/s, 16000 Hz mono

This was a Frankenstein track.
[0:03] Decoding of 8b9fa982a19cf8ef8db93bc067bb1e98_MP3WRAP.mp3 finished.


mplayer zeigt den beschriebenen Mickey Mouse-Effekt, mpg123 nicht.
Kommt mplayer mit den mittels mp3wrap konkatenierten mp3-Dateien nicht klar?

Bin noch verblüffter.

2. Nachtrag
Ich behelfe mich nun dadurch, daß ich "whistle" und den Text in zwei getrennten tts-Kommandos absetze.
Aber schön ist das nicht ;)

Gruß
td
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 25 März 2015, 08:52:50
Also ich hatte das Problem moch nicht. Schlussendlich mird nur ein simpler mplayer aufruf gestartet. Den kannst du ja auch selbst aus dem Log kopieren und ausführen.
Kannst du es reproduzieren indem du manuell auf der Konsole den Aufruf tätigst??
sudo /usr/bin/mplayer  -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 100 -volume 40 cache/8b9fa982a19cf8ef8db93bc067bb1e98_MP3WRAP.mp3
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Von-XS1-Nach-FHEM am 26 März 2015, 22:40:08
Hallo TeeVau,

Wie hast du das gemacht mit diesem code?

ZitatMyTTS:duration:.* {
  my $devMPD = "myMPD";
  my $stateMPD = Value("$devMPD");
  my $atTimestamp = time_num2str($EVTPART1+2);
  my $atName = "at_" . $devMPD . "_play";

  if (!$defs{$atName}) {
    fhem("define $atName at +" . $atTimestamp . " set $devMPD play");
  } else {
    fhem("modify $atName +" . $atTimestamp);
  }
 
}

Bei mich findet er diesem kommando nicht wieder und gibt ein fehlermeldung:

Zitattime_num2str

Func_VolAut_N return value: Undefined subroutine &main::time_num2str called at (eval 90) line 6.

Ich wollte es so nutzen aber es geht leider nicht mit diesem Fehlermeldung

ZitatMyTTS:.*!.* {

  my $Radio = (Value("SRadio"));
  my $Station = ReadingsVal("SRadio", "StreamURL", "");
  my $Old_Vol = (OldValue("Dum_Volume_D"));
  my $atTimestamp = time_num2str($EVTPART1+2);

  if ($Radio eq "playing") {
        fhem("set SRadio STOP ; set Dum_Volume_D 80");
        fhem("define Radio_Comeback_A at +" . $atTimestamp . " set SRadio PLAY $Station;; set Dum_Volume_D 78");
  }
  if ($Radio eq "stopped") {
        fhem("set Dum_Volume_D 80");
       fhem("define Vol_Res_A at +" . $atTimestamp . " set Dum_Volume_D 78");
  }
}

Muss ich ein Module nachladen vorn Perl und wenn ja wie mache ich das?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: WarLord am 27 März 2015, 19:13:56
kann man irgendwie bei dem Modul die Sprache ändern? Das es nicht die deutsche sonder zB die schwedische stimme nimmt?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 28 März 2015, 06:28:00
zur zeit noch nicht. Unterstützt Google überhaupt Schwedisch?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 03 Mai 2015, 13:50:11
gerade festgestellt das ich diese Version noch nicht eingecheckt habe... Mache ich nach meinem Urlaub....

Bzgl. MickeyMouse-Stimme... keine Ahnung. Kann ich nicht reproduzieren
Schwedisch? benötige ich den passenden Google Parameter "lang=???"
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: WarLord am 04 Mai 2015, 10:34:42
Hi

Parameter wäre sv

ich find den dialekt toll, wenn die schwedische stimme deutsch spricht.

evtl könnte man das attribut "lang" über ein parameter selbst setzen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: TeeVau am 04 Mai 2015, 18:02:06
@von xs1 nach FHEM

Bei mir läuft der code direkt so, als notify. Die Funktion stellt Fhem zur Verfügung.
Kannst du die Funktion denn direkt als Perl befehl in der fhem leiste ausführen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 06 Mai 2015, 09:50:39
Habe mal das Attribut "TTS_Language" eingebaut. Bitte mal testen...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: WarLord am 06 Mai 2015, 18:15:51
Hi

ich habs etz mal getestet.

so hab ichs eingebunden:
attr MyTTS TTS_Language sv


Das kommt dabei raus:
2015.05.06 18:13:05 1: PERL WARNING: Use of uninitialized value within %language in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 623.
2015.05.06 18:13:05 1: PERL WARNING: Use of uninitialized value within %language in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 669.
2015.05.06 18:13:05 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 572.
2015.05.06 18:13:05 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 573.
2015.05.06 18:13:05 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 520.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 07 Mai 2015, 15:25:18
kann mir den Fehler gerade nicht erklären da die Variablen beim Start initialisiert werden.
Kannst du bitte mal nach ModulImport FHEM nochmal neu starten??
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: WarLord am 07 Mai 2015, 18:07:56
Nach neustart. (Hatte ich zwar gemacht, aber evtl hat sich doch was verhaspelt)

2015.05.07 18:04:09 1: PERL WARNING: Use of uninitialized value within %language in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 623.



der befehl mit dem ichs probiert habe:

set MyTTS tts Hallo! Ich hoffe dein Tag war schön
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Toto1973 am 08 Mai 2015, 11:21:45
Das Feature ist der Hammer!  ;D
Da kann man schöne Spielereien mit anstellen!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 14 Mai 2015, 11:36:47
hmmm, die Perl Warnings habe ich auch schon ne Weile, obwohls funktioniert.

PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 567.
PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 506.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 17 Mai 2015, 13:37:47
Jetzt endlich committed.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 21 Mai 2015, 19:15:17
Zitat von: Tobias am 17 Mai 2015, 13:37:47
Jetzt endlich committed.

Hallo!
Habe heute upgedated. Seit dem werden MP3-Dateien nicht mehr wiedergegeben, sondern die Namen vorgelesen:
set tts tts ":sonar-ping0.mp3:"
Log:
2015.05.21 19:10:29 4: tts: Auflistung der Textbausteine nach Aufbereitung:
2015.05.21 19:10:29 4: tts: 0 => "
2015.05.21 19:10:29 4: tts: 1 => sonar-ping0.
2015.05.21 19:10:29 4: tts: 2 => mp3
2015.05.21 19:10:29 4: tts: 3 => "
2015.05.21 19:10:29 4: Verwende TTS Spracheinstellung: Deutsch
2015.05.21 19:10:29 4: Text2Speech: Bearbeite per MP3Wrap jetzt den Text: " sonar-ping0. mp3 "
2015.05.21 19:10:29 4: Text2Speech: mp3wrap cache/1a4b0ca63ad1fab9ab40d064d12dec45.mp3 cache/2b37e2c7bcc98fb6f9d832187166b505.mp3 cache/393d8b5f391d81951979b1dfeab1a9ac.mp3 cache/81245759aed4c728b979f83378c81be4.mp3 cache/2b37e2c7bcc98fb6f9d832187166b505.mp3
2015.05.21 19:10:30 4: Text2Speech_CalcMP3Duration: cache/1a4b0ca63ad1fab9ab40d064d12dec45_MP3WRAP.mp3 hat eine Länge von 3 Sekunden.
2015.05.21 19:10:30 4: Text2Speech:sudo /usr/bin/mplayer   -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 40 cache/1a4b0ca63ad1fab9ab40d064d12dec45_MP3WRAP.mp3
2015.05.21 19:10:30 4: Text2Speech_readingsSingleUpdateByName: Dev:tts Reading:duration Val:3
2015.05.21 19:10:30 4: Text2Speech_readingsSingleUpdateByName: Dev:tts Reading:endTime Val:00:00:00

List:
fhem> l tts
Internals:
   ALSADEVICE none
   DEF        none
   MODE       DIRECT
   NAME       tts
   NR         1259
   STATE      Initialized
   TYPE       Text2Speech
   VOLUME     40
   Readings:
     2015-05-21 19:10:30   duration        3
     2015-05-21 19:10:30   endTime         00:00:00
     2015-05-21 19:04:02   volume          40
   Helper:
     Text2Speech:
Attributes:
   TTS_Ressource Google
   TTS_UseMP3Wrap 1
   alias      Sprachausgabe
   group      HumanInterface
   icon       audio_audio
   room       IO_Devices
   verbose    5


Nachdem ich die alte Version ($Id: 98_Text2Speech.pm 7588 2015-01-16 17:32:08Z tobiasfaust $) zurückgespielt habe, geht alles wieder richtig.
Log dazu:
2015.05.21 19:09:32 4: tts: Angabe einer direkten MP3-Datei gefunden:  sonar-ping0.mp3 => FileTpl_143222817265024_#0
2015.05.21 19:09:32 4: tts: Auflistung der Textbausteine nach Aufbereitung:
2015.05.21 19:09:32 4: tts: 0 => "
2015.05.21 19:09:32 4: tts: 1 => templates/sonar-ping0.mp3
2015.05.21 19:09:32 4: tts: 2 => "
2015.05.21 19:09:32 4: Text2Speech: Bearbeite per MP3Wrap jetzt den Text: " templates/sonar-ping0.mp3 "
2015.05.21 19:09:32 4: Text2Speech_CalcMP3Duration: cache/bbc2da0fd12f2f7cb5be7f2399556697_MP3WRAP.mp3 hat eine Länge von 4 Sekunden.
2015.05.21 19:09:32 4: Text2Speech:sudo /usr/bin/mplayer   -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 40 cache/bbc2da0fd12f2f7cb5be7f2399556697_MP3WRAP.mp3
2015.05.21 19:09:32 4: Text2Speech_readingsSingleUpdateByName: Dev:tts Reading:duration Val:4
2015.05.21 19:09:32 4: Text2Speech_readingsSingleUpdateByName: Dev:tts Reading:endTime Val:00:00:00


Wäre schön, wenn die Ausgabe wieder korrekt ginge ;)
Kann ich noch etwas beitragen/testen?

Danke und Grüße,

Alexander
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 22 Mai 2015, 10:38:23
keine Ahnung warum perl folgendes nicht kennt: /:([\w]+.mp3):/g
dieses aber schon:
/:([^:]+.mp3):/g

Hier ein aktualisiertes Modul: bitte mal testen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 22 Mai 2015, 13:47:50
Zitat\w stands for "word character", usually [A-Za-z0-9_]. Notice the inclusion of the underscore and digits.
Ich denke, hier ist Minus-Zeichen das Problem.

Danke für schnelle Lösung, werde heute Abend testen, wenn ich wieder zuhause bin.

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 22 Mai 2015, 16:59:25
Getestet und funktioniert! Vielen Dank!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 23 Mai 2015, 11:24:45
Habe leider doch noch weitere Probleme festgestellt und etwas mehr getestet.
Problem 1:
set tts tts ":sonic-ring.mp3:"
Der zweite ':'-Zeichen wird mit ausgesprochen (ganz komisch als "ap" oder so ähnlich).

Problem 2:
set tts tts ":cm/notifications/Argon.ogg:"
Das funktioniert leider gar nicht mehr, wäre aber schon nützlich, da die Dateien in mehrere Verzeichnisse einsortiert sind.

Ich verwende erstmal die Uhrsprungsversion weiter.
Leider habe ich da auch etwas merkwürdiges gefunden:
Das geht halbwegs: set tts tts  Test :sonic-ring.mp3: Test

Das geht nicht: set tts tts  Test :cm/notifications/Argon.ogg: Test

Soll heißen, dass alle Einzelteile (Text, Sound-Datei) funktionieren, aber nicht auf einamal.
Bei MP3-Dateien wird nur der Text etwas verzerrt gesprochen. Bei OGG-Dateien werden nur Texte ausgesprochen (dafür sauber).
Das ist aber INHO nicht weiter schlimm, da man immer noch die Einzelteile auf einzelne Befehle aufteilen kann.

Grüße,

Alexander
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: bmwfan am 31 Mai 2015, 13:54:06
Ich möchte das Modul auch gerne nutzen, bin aber nicht sicher ob das bei meiner Konfiguration geht.
FHEM läuft auf einem Raspi 2
Die Sprachausgabe würde ich gerne über das Mobilteil C4 der Fritzbox 7390 machen.

Von der Fritzbox auf einen Raspi vor Ort mit Lautsprechern geht ja, aber so herum?

Hat das jemand realisiert?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: kud am 01 Juni 2015, 18:22:43
Habe folgendes im Log stehen:
Prototype after '@' for main::Text2Speech_SplitString : @$$$$ at ./FHEM/98_Text2Speech.pm line 465, <$fh> line 104.

Die Wiedergabe einer wav-Datei funktioniert auch nicht mehr. Es wird der Dateiname gesprochen.

Gibt es da eine Lösung?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 02 Juni 2015, 07:54:45
boa, das wav nicht funktionieren ist klatr, ich prüfe explizit auf *.mp3
Mir war bis dato allerdings nicht klar das andere Dateien als mp3 genutzt werden.
Werde ich anpassen auf folgende:

[mp3|ogg|wav]

Wenn ich etwas vergessen habe, bitte melden...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 02 Juni 2015, 08:34:46
Ich verwende schon immer mp3 und ogg. :)
Wenn eine neue Version bereitsteht, werde ich aus meinem System austesten.
Danke!

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Invers am 05 Juni 2015, 08:40:19
Ich habe ebenfalls das Problem:

Prototype after '@' for main::Text2Speech_SplitString : @$$$$ at ./FHEM/98_Text2Speech.pm line 465.

Wie bekomme ich das weg?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Invers am 28 Juni 2015, 09:59:59
Ich bekomme diese Fehlermeldung immernoch.
Hat keiner eine Idee?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 01 Juli 2015, 15:22:27
Zitat von: Tobias am 02 Juni 2015, 07:54:45
boa, das wav nicht funktionieren ist klatr, ich prüfe explizit auf *.mp3
Mir war bis dato allerdings nicht klar das andere Dateien als mp3 genutzt werden.
Werde ich anpassen auf folgende:

[mp3|ogg|wav]

Wenn ich etwas vergessen habe, bitte melden...
Hallo Tobias,

hat sich da schon was getan? Ich habe alles installiert und konfiguriert bekommen (ich würde, wenn ich durch bin, mal das Wiki ergänzen - wenn Dir das Recht ist) aber *.ogg geht nicht.
Vielen Dank für das Text2Speech Modul 8)

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 03 Juli 2015, 15:53:41
Leider schaffe ich in fhem nicht alles das,  was ich gerne schaffen möchte

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 03 Juli 2015, 16:43:36
Kein Problem für mich, ich kann mp3 nehmen.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 03 Juli 2015, 21:50:26
Hallo Tobias,

mit der neusten Version habe ich zwei Probleme:
- OGG-Dateien (wie bereits gemeldet)
- Umlaute werden nicht richtig ausgesprochen.
Der Vergleich mit der letzten funktionierenden Version zeigt eine andere Kodierung.
Ich habe mir erlaub, die Kodierung anzupassen und die Rex-Exp aus der alten Version zu nehmen. In meiner FHEM-Installation funktioniert damit wieder alles.

(http://forum.fhem.de/index.php?action=dlattach;topic=18481.0;attach=34376;image)

Spricht etwas dagegen, diese Version ins Repo zu übernehmen? Wäre praktisch, wenn ich nicht immer patchen müsste.

Grüße,

Alexander
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 04 Juli 2015, 13:57:43
Die Umlaute müssen bei dir ein lokales problem sein, im SVN sind die Umlaute korrekt (geprüft nach einem SVN UP)
Prüfe bitte mal, ob jetzt mp3/ogg/wav funktioniert
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 04 Juli 2015, 15:06:09
Danke für den Korrekturversuch!
Sound-Dateien gehen so leider gar nicht.
Ich habe die Zeile so abgeändert (Plus nach dem Punkt), dann geht alles (MP3, OGG, WAV) wieder:
@FileTplPc = ($text[$i] =~ /:(\w+.+[mp3|ogg|wav]):/g);
Zum Testen habe ich z.B. folgenden Befehl abgesetzt:
set tts tts :halloween/tuer_knarrt.wav:
(Ichhabe da eine Halloween-Sonderschaltung ;) )

Die Umlaute bleiben ein Problem und lassen sich nur durch Konvertieren der Datei von UTF8 nach ASCII (habe mit UltraEdit gemacht) beheben. Ob das am miner lokalen Installation liegt, kann ich schwer sagen, nach dem Update waren sie halt kaputt, auch nach dem 'Herausholen' aus SVN. Ich weiß nur, dass die frühere Versionen funktioniert haben.

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 04 Juli 2015, 22:59:56
Guten Abend,

Umlaute gehen bei mir.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 05 Juli 2015, 00:10:34
Zitat von: Otto123 am 04 Juli 2015, 22:59:56
Umlaute gehen bei mir.

Würde mich sehr interessieren, was bei mir anders ist.
Was kommt bei Dir, wenn Du locale aufrufst?

Meine:
alex@cubie ~ $ locale
LANG=de_DE.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES=POSIX
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 05 Juli 2015, 00:17:25

LANG=de_DE.UTF-8
LANGUAGE=
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=

Bei Dir steht LANGUAGE=en_US.UTF-8  ::) bei mir nix
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 05 Juli 2015, 01:27:22
Danke!
Werde ich morgen ausprobieren, obs Entfernen von LANGUAGE etwas bringt.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 05 Juli 2015, 10:42:15
Wobei ich noch sagen will, dass ich die ganz normal installierte Version von Text2Speech nutze.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: WarLord am 05 Juli 2015, 16:42:23
Hi

ich bastel zZ auch an text und mp3 nachdem ich das modul wie bei Hexenmeister beschrieben abgeändert habe,

Zitat von: hexenmeister am 04 Juli 2015, 15:06:09
Sound-Dateien gehen so leider gar nicht.
Ich habe die Zeile so abgeändert (Plus nach dem Punkt), dann geht alles (MP3, OGG, WAV) wieder:
@FileTplPc = ($text[$i] =~ /:(\w+.+[mp3|ogg|wav]):/g);

hab ich nun ein anderes Problem nach dem aufruf mit:
set MyTTS tts Hallo :alarm.mp3:

wird hallo gesagt und im nachhinen die mp3 mit falscher (zu langsam) Geschwindigkeit abgespielt

wenn ich nun drehe:
set MyTTS tts :alarm.mp3: Hallo

wird die mp3 mit richtiger Geschwindigkeit abgespielt und Hallo ist viel zu schnell. (Micky Mouse like)

ich hab etz bei meiner mp3 mal die bitrate an die im cache angepasst. Auf 32 Kbps vorher waren es 192 Kbps.

dann passt es.
Die frage woher kommt es?
Modul oder mplayer?
an sich ist es ja kein Problem nur bei liedern (bei ein par texten kommt danach ein kurzes Lied) ist die Qualität nicht wirklich gut
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 05 Juli 2015, 19:36:20
Bugfix mit der regexp eingecheckt.

Probleme beim Abspielen liegen an mplayer, damit hat das Text2Speech Modul nix zu tun. Bit einem Verbose =4  kann man sich das mplayer kommando ausgeben lasen und manuell in der shell testen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: carzl am 06 Juli 2015, 14:51:33
Habe auch mal ne Frage zum mplayer - mit der Zeile
{ system("amixer -c 0 set PCM 100%&") }
lasse ich Fhem die Laustärke auf dem Raspi voll aufdrehen, die tatsächliche Lautstärke regle ich dann mit tts über volume.
Grundsätzlich funktioniert das zwar, aber fhem flext mir diese Zeile Tag für Tag wieder raus aus der cfg. Könnt Ihr mir auf die Sprünge helfen warum? Wie stellt ihr sicher, dass der mplayer nach einem Reboot die richtige Lautstärke hat?

Danke!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 06 Juli 2015, 15:21:36
Das ist hier eigentlich OT...

Ganz klar, dass die Zeile nach dem Abarbeiten aus Config verschwindet.
Verwende ein Notify. z.B.:
define setSoundVolume notify global:INITIALIZED { system("amixer -c 0 set PCM 100%&") }
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: carzl am 08 Juli 2015, 22:01:06
sorry fürs OT... und danke für den Tip - wieder was dazugelernt  :)

Danke!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Seli am 10 Juli 2015, 22:12:30
Hi,
nachdem vor einigen Wochen das direkte Abspielen der mp3-Dateien plötzlich nicht mehr funktioniert, habe ich alles auf Templates umgestellt. Seit dem Update vor ein paar Tagen geht das direkte Abspielen wieder, allerdings funktionieren nun die Templates nicht mehr. D.h. :ding-dong: wird als "Template ding dong" vorgelesen (das Template ist nach wie vor definiert). :ding-dong.mp3: funktioniert.

Grüße,
Seli
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fhemhurz am 12 Juli 2015, 16:12:06
Ich möchte/kann/will nicht Mplayer zum Abspielen verwenden. Also habe ich TTS wie folgt definiert:

define MYTTS Text2Speech none
attr MYTTS TTS_UseMP3Wrap 1
attr MYTTS TTS_MplayerCall sudo /usr/bin/mpg123 -q
attr MYTTS verbose 4


In der Funktion Text2Speech_BuildMplayerCmdString($$) von 98_Text2Speech.pm werden, wenn "none" als $AlsaDevice definiert ist, einige (aber leider nicht alle) Mplayer-spezifischen Variablen für die Kommandozeilenparameter zurückgesetzt:

if($AlsaDevice eq "none") {
  $AlsaDevice = "";
  $mplayerAudioOpts = "";
}


Das hat zur Folge, dass der per TTS_MplayerCall definierte alternative Player, in meinem Falle mpg123, mit ungültigen Parametern aufgerufen wird und keine Soundausgabe erfolgt. Um nach einem Update 98_Text2Speech.pm nicht immer anpassen zu müssen, wäre es sehr hilfreich, wenn in einer zukünftigen Version alle Mplayer-spezifischen Variablen für die Kommandozeilenparameter zurückgesetzt würden:

if($AlsaDevice eq "none") {
  $AlsaDevice = "";
  $mplayerAudioOpts = "";
  $mplayerNoDebug = "";
  $mplayerOpts = "";
}


An dieser Stelle vielen Dank für dieses sehr nützliche Modul!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: ReVoLt112 am 18 Juli 2015, 14:56:30
Hallo zusammen,

FHEM läuft bei mir zuhause auf einen Homeserver (HP N54L) mit Debian 8 (Jessie). Leider hat Jessie keine ALSA Unterstützung mehr und setzt voll auf Pulseaudio.
Sound Über Bluetooth bekomme ich schon hin (pulseaudio-bluetooth), jedoch hat jemand hier bereits wertvolle Tipps für mich um das Modul TTS ans laufen zu bekommen?

Grüße
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hollo am 19 Juli 2015, 11:56:58
Zitat von: ReVoLt112 am 18 Juli 2015, 14:56:30
...Leider hat Jessie keine ALSA Unterstützung mehr und setzt voll auf Pulseaudio...
Das wäre mir neu. Auch wenn nun pulseaudio zusätzlich standardmäßig installiert ist, ist doch alsa weiterhin da.
Im Zweifel remove einfach mal pulseaudio, dann sollte es wie gehabt funktionieren.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Kuzl am 20 Juli 2015, 07:39:58
Hallo Revolt,

du musst fhem zu den Pulse-Audio-Nutzern hinzufügen und außerdem Pulse-Audio als Systemweiten Dienst starten. Ansonsten blockiert nämlich der eingeloggte Nutzer das Device.

Viele Grüße,
Kuzl
Titel: "Nachsilbe" bei Sprachausgabe
Beitrag von: Pfriemler am 20 Juli 2015, 13:32:47
Moinsen,

vor gefühlt hunderte Beiträgen schrieb ich über Probleme mit Blockaden durch Text-2-Speech. Aufm Raspi 2 läuft die unverändert übernommene Installation seit vielen Wochen störungsfrei.

Jetzt gibt es aber was neues:
Seit kurzem fällt mir ein "Nachlaut" bei der Ausgabe auf, im Stil: "Alarmanlage ist jetzt aus. ... A"

Ist das schon bekannt oder gibt es eine Idee zum Weiterforschen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: carzl am 20 Juli 2015, 17:24:28
Ich habe einen anderen putzigen Effekt: ein set FhemSpricht tts é erzeugt bei mir eine Sprachausgabe "aurheberrecht". Ist das bei Euch auch so? Entsprechend ist dann z.B. auch meine Ansage bei eingehenden Anrufen, z.B. wenn mein Kumpel André anruft  ;D   Im Browser hingegen funktioniert http://translate.google.com/translate_tts?tl=de&q=é ohne diesen Effekt...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 20 Juli 2015, 18:10:00
Zitat von: carzl am 20 Juli 2015, 17:24:28
Ich habe einen anderen putzigen Effekt: ein set FhemSpricht tts é erzeugt bei mir eine Sprachausgabe "aurheberrecht". Ist das bei Euch auch so?
Ja.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 20 Juli 2015, 22:30:10
ist bei mir auch so  :o

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: carzl am 21 Juli 2015, 10:05:33
Ok, also kein Bug in meiner Installation. Muss ich meinen Kumpel halt von André nach Andree umbenennen, dann klappt auch die Ansage. Wobei ich das eigentlich nicht wollte, denn Fhem holt sich den Namen von der Fritte, die von den Google-Kontakten und die werden von Outlook via gsyncit betankt; d.h. ich muss den Namen in meinem Produktiv-Outlook verfälschen, damit Fhem richtig spricht. Naja gibt schlimmeres  :D
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marvin78 am 21 Juli 2015, 10:21:10
Ich habe mir deshalb eine eigene TTS Funktion geschrieben, die zum einen, je nach Umstand aussucht, welches TTS Gerät überhaupt verwendet wird (ich muss so auch nicht jedes einzeln ansteuern) und auch solche Ersetzungen vornimmt "é" nach "ee", "ä" nach "ae" etc. Um dann eine Sprachausgabe zu machen, rufe ich dann setTTS(ARGUMENTE) auf und den Rest macht die sub. Somit muss ich keine Abstricher bei der Benennung von Devices machen und habe eine flexible und zentrale Ansteuerung der TTS Devices.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 21 Juli 2015, 14:19:34
Ich denke in dem Text2Speech Modul ist so eine Möglichkeit Ersetzung auch drin.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marvin78 am 21 Juli 2015, 14:25:28
Das TTS Modul ersetzt gewisse Dinge, ja. Aber das ist nicht flexibel konfigurierbar (zumindest laut commandref nicht).
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: TeeVau am 21 Juli 2015, 15:20:35
Zitat von: Otto123 am 21 Juli 2015, 14:19:34
Ich denke in dem Text2Speech Modul ist so eine Möglichkeit Ersetzung auch drin.

Gruß Otto

So halb. Das Modul ersetzt in dem String lediglich die Umlaute und das ß.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 21 Juli 2015, 16:42:46
Zitat von: TeeVau am 21 Juli 2015, 15:20:35
So halb. Das Modul ersetzt in dem String lediglich die Umlaute und das ß.
... was bei meiner Installation aus mir unerklärlichen Gründen nicht richtig funktioniert. Die Kodierung der Datei scheint auf meinem Cubietruck nicht zu passen. Die Umlaute werden zu sonderbaren Sonderzeichen ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marvin78 am 21 Juli 2015, 19:34:27
Jep. Das mit der Kodierung kann auch bei unterschiedlichen Clientgeräten Probleme machen. Daher auch die Umsetzung in einer eigenen sub. Das funktioniert interessanterweise immer.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 21 Juli 2015, 23:32:26
Zitat von: marvin78 am 21 Juli 2015, 19:34:27
Daher auch die Umsetzung in einer eigenen sub.
Hi Marvin

kannst Du uns eventuell teilhaben lassen?

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marvin78 am 22 Juli 2015, 07:19:10
Das ist sehr individuell. Ich unterlasse sowas eigentlich, da ich weiß, dass hier viele nur stur Copy & Paste machen und nicht darüber nachdenken, was sie da tun.

Hier ist auch eine rudimentäre Behandlung der Lautstärke enthalten, falls gerade Telefonate geführt werden. Unkommentiert und noch aus meiner Perl Anfangszeit (da könnte man vieles Eleganter lösen):

sub setTTS($;$) {
  my ($say,$dv)=@_;
  $dv="all" unless defined($dv);
  $dv="all" if (defined($dv) && $dv eq "");
  my @dvs=();
  @dvs=split(":",$dv) if (defined($dv) && $dv ne "all");
  my @devices=();
  my $playStatus;
  my $volume=100;
  $say =~ s/ä/ae/g;
  $say =~ s/ö/oe/g;
  $say =~ s/ü/ue/g;
  $say =~ s/Ä/Ae/g;
  $say =~ s/Ö/Oe/g;
  $say =~ s/Ü/Ue/g;
  $say =~ s/ß/ss/g;
  $say =~ s/é/ee/g;
  $say =~ s/è/ae/g;
      @devices=devspec2array("sType=TTS");
      my $dev="";
      my $ttsDev="F";
      my $ttsCmd="F";
      foreach(@devices) {
          $dev=$_;
            if (Value($dev) eq "on" || Value($dev) eq "present") {
                $ttsDev=AttrVal($dev,'TTSDevice', 'F');
            $ttsCmd=AttrVal($dev,'TTSCmd','F');
        my $fritzAction=ReadingsVal("EG.bu.NN.FritzBoxCall.dis","event","disconnect");
        my $fritzDevice="-";
        if ($ttsDev eq "TTS") {
          if ($fritzAction eq "connect") {
              $fritzDevice=ReadingsVal("EG.bu.NN.FritzBoxCall.dis","device",0);
          }
          $volume=InternalVal($ttsDev,"VOLUME",80);
          fhem ("set $ttsDev volume 10") if ($fritzDevice eq "buero");
        }
        if ($ttsDev eq "WzTTS") {
          if ($fritzAction eq "connect") {
              $fritzDevice=ReadingsVal("EG.bu.NN.FritzBoxCall.dis","device",0);
          }
          $volume=InternalVal($ttsDev,"VOLUME",80);
          fhem ("set $ttsDev volume 10") if ($fritzDevice eq "privat");
        }
        $playStatus="stopped";
        if ($ttsCmd eq "talk") {
            $playStatus=ReadingsVal($ttsDev,"playStatus","playing");
              $volume=ReadingsVal($ttsDev,"volume",80);
              fhem ("set $ttsDev volume 80");
        }
            if ($ttsDev ne 'F' && $ttsCmd ne 'F' && ($dv eq "all" || inArray(\@dvs,$ttsDev))) {
            Log 3, "TTS: $ttsDev - $say - $ttsDev - $ttsCmd - "."set $ttsDev $ttsCmd $say";
          $say =~ s/ /-/g if ($ttsCmd eq "power");
                fhem("set $ttsDev $ttsCmd $say");
         
            }
          fhem ("set $ttsDev volume $volume") if (($ttsCmd eq "talk" && $playStatus ne "playing") || $ttsDev eq "TTS");
        }
      }
}
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 22 Juli 2015, 11:31:42
Danke Marvin, ich behandle es vorsichtig. 8)

Gruß Otto
Titel: Antw:"Nachsilbe" bei Sprachausgabe
Beitrag von: zwehn am 26 Juli 2015, 21:34:46
Zitat von: Pfriemler am 20 Juli 2015, 13:32:47
Moinsen,

vor gefühlt hunderte Beiträgen schrieb ich über Probleme mit Blockaden durch Text-2-Speech. Aufm Raspi 2 läuft die unverändert übernommene Installation seit vielen Wochen störungsfrei.

Jetzt gibt es aber was neues:
Seit kurzem fällt mir ein "Nachlaut" bei der Ausgabe auf, im Stil: "Alarmanlage ist jetzt aus. ... A"

Ist das schon bekannt oder gibt es eine Idee zum Weiterforschen?
Hallo, das Problem hatte ich auch. Ich musste bei mir den übergebenen String ändern. Ich hatte zuvor alles in ' hochkomma und habe diese gelöscht und schon gehts wieder.
Gruss zwehn
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 28 Juli 2015, 16:01:43
Hmmm... ohne eigenes zutun in Form von Updates oder ähnlichem funktioniert meine Sprachausgabe auf 2 FHEM Instanzen nicht mehr.
PERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/98_Text2Speech.pm line 545.

Einer FHEM Installation habe ich jetzt mal ein Update untergejubelt, trotzdem ändert sich daran nichts. Bin ich der einzige mit diesem Problem?

Update: na Hoppla...scheinbar ein Google Problem, die Fehlermeldung ist diesbezüglich etwas irretierend, vielleicht könnte man eine Meldung einbauen wenn der Google Translate Service nicht erreichbar war oder die Übersetzung fehlgeschlagen ist.

Update2: seltsam...offensichtlich werden die Anfragen vom Modul an Google geblockt. Das passiert auf zwei Fhem Systemen, die in voneinander getrennten Netzwerken agieren. Der Link, der vom Modul aufgerufen wird, führt zu folgender Seite.
Kann mir irgendwie nicht vorstellen, daß beide Netzwerke auf einmal mit Malware oder ähnlichem infiziert sein sollen.

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 28 Juli 2015, 18:25:00
Ja, ich habe seit heute das gleiche Problem.. Ich habe hintereinander zwei TTS Befehle definiert. Der erste Befehl wird ausgegeben, der zweite Befehl nicht und im Log steht
ZitatPERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/98_Text2Speech.pm line 545.
Wenn genauere Infos benötigt werden, einfach melden..
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 28 Juli 2015, 18:28:06
Die schon im Cache sind werden wohl weiter ausgegeben, neue Anfragen an Google werden geblockt und ergeben damit wohl Files mit "komischer" Länge und damit den Fehler im Log.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 28 Juli 2015, 19:32:36
Kann ich bestätigen - jedes neue
Zitatset MyTTS tts xyz
führt zu diesem Fehler. Text2Speech geht daher wohl gerade nicht.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: ChrisK am 28 Juli 2015, 19:42:13
Google scheint wohl eine Captcha-Abfrage dazwischen geschaltet zu haben.
Ich habe gerade diesen Link (http://translate.google.com/translate_tts?tl=de&q=test123) testen wollen und dann kamm ich direkt auf die Captcha Seite.

Siehe auch hier: http://stackoverflow.com/questions/31681653/google-translate-tts-is-doing-a-temporaty-redirection-302
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: ChrisK am 28 Juli 2015, 19:55:13
Hab mal ein bisschen geguckt, was aufgerufen wird, wenn man über die Seite geht.
Wenn man "&client=t&prev=input" an die Abruf-URL dran hängt, dann scheint es zu klappen.

Quick & Dirty:
Im Modul 98_Text2Speech, Zeile 573 erweitern.
Vorher: $HttpResponse = GetHttpFile($ttsHost, $ttsPath . $ttsLang . $language{$TTS_Language} . "&" . $ttsQuery . uri_escape($text));
Nachher: $HttpResponse = GetHttpFile($ttsHost, $ttsPath . $ttsLang . $language{$TTS_Language} . "&client=t&prev=input&" . $ttsQuery . uri_escape($text));

- Shutdown&Restart (keine Ahnung, ob notwendig. dafür kenne ich fhem zu wenig)
- ausprobieren => zuhören ;)

Klappt übrigens nur mit nicht falsch gecachetem Text.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 28 Juli 2015, 20:58:14
Bei mir hat geholfen, Danke! :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 28 Juli 2015, 21:37:56
Funktioniert wieder Danke  8)
Zitat- Shutdown&Restart (keine Ahnung, ob notwendig. dafür kenne ich fhem zu wenig)
reload 98_Text2Speech
reicht  8)
Die mp3 Dateien von heute oder/und gestern im /opt/fhem/cache löschen.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: ChrisK am 28 Juli 2015, 22:24:55
Cool, freut mich!

Zitat von: Otto123 am 28 Juli 2015, 21:37:56
reload 98_Text2Speech
reicht  8)
Alles klar, danke. Versuche ich mir zu merken ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Pfriemler am 29 Juli 2015, 00:46:18
Zitat von: Otto123 am 28 Juli 2015, 21:37:56
Die mp3 Dateien von heute oder/und gestern im /opt/fhem/cache löschen.
Ich kann normalerweise hemmungslos mit dem TotalCommander per FTP löschen, aber nichts in diesem Verzeichnis.
???
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: hexenmeister am 29 Juli 2015, 01:14:03
Zitat von: Pfriemler am 29 Juli 2015, 00:46:18
Ich kann normalerweise hemmungslos mit dem TotalCommander per FTP löschen, aber nichts in diesem Verzeichnis.
Wird ein Rechteproblem sein. Die Dateien gehören dem Benutzer, mit dessen Rechten FHEM läuft. Du meldest Dich wohl mit einem anderen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 29 Juli 2015, 09:02:20
Zitat von: Pfriemler am 29 Juli 2015, 00:46:18
Ich kann normalerweise hemmungslos mit dem TotalCommander per FTP löschen, aber nichts in diesem Verzeichnis.
???
Melde dich mit Terminal an und mach es mit sudo rm /opt/fhem/cache/...
Du musst nur die ersten Zeichen der Datei eingeben und dann kannst Du mit der Tab Taste vervollständigen.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: ChrisK am 29 Juli 2015, 13:17:04
Wie ist denn das eigentlich mit einem möglichen Update des Moduls?
Kriegst Du (@Tobias) das hier mit oder müsste ich irgendwen anstubsen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 29 Juli 2015, 20:39:41
fix eingecheckt mit "&client=t&prev=input&"

morgen verfügbar
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: carzl am 29 Juli 2015, 21:26:36
super, danke!  :D
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: justme1968 am 30 Juli 2015, 01:25:56
zur info: http://forum.fhem.de/index.php/topic,39570.0.html (http://forum.fhem.de/index.php/topic,39570.0.html).

gruss
  andre
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: ChrisK am 30 Juli 2015, 09:42:12
Zitat von: Tobias am 29 Juli 2015, 20:39:41
fix eingecheckt mit "&client=t&prev=input&"

morgen verfügbar
Danke schön!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Pfriemler am 30 Juli 2015, 12:13:54
Zitat von: Otto123 am 29 Juli 2015, 09:02:20
Melde dich mit Terminal an und mach es mit sudo rm /opt/fhem/cache/...
Linux, das unbekannte Wesen.  ::)
Danke, hat perfekt funktoniert. Auch die manuelle Änderung.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 01 August 2015, 00:57:28
Hallo - vielleicht habe ich einen change im modul nicht mitbekommen, aber seit einiger zeit bekomme ich mit dem befehl
set MyTTS tts :beep.mp3::beep.mp3::beep.mp3:
den beep nur einmal ausgeführt. War leider bei der Suche hier im Forum nicht erfolgreich - kann mir jemand helfen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 01 August 2015, 10:05:57
Guten Morgen,
ist bei mir auch so. Ob das aber schon mal anders kann ich nicht sagen...
Ich kann also nicht helfen, aber Dir beistehen :)

Wenn man Text und mp3 mischt dann reagiert das so:
Zitat:dingdong.mp3: Ding Dong
Wird ausgegeben erst mp3 und dann sagt sie Ding Dong
Zitat:dingdong.mp3:Ding Dong:dingdong.mp3:
Hier erscheint nur ein Ding Dong ohne Text

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 01 August 2015, 12:36:40
Ich verwende jetzt eine Version von Ende Juni - da funktioniert die mp3 Ausgabe noch.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fruemmel am 03 August 2015, 21:06:15
Hallo,

leider habe ich das Problem mit der Sprachausgabe immer noch (Use of uninitialized value in addition (+) at ./FHEM/98_Text2Speech.pm line 545.), obwohl der Link aus dem Log (google-Aufruf) im Browser funktioniert:
Exiting... (End of file)


LAVF_header: av_find_stream_info() failed
[mp3 @ 0xb63ff0e8]Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0xb63ff0e8]Could not find codec parameters (Audio: mp3, 0 channels, s16)
[mp3 @ 0xb5d20850]Header missing
libavformat file format detected.
Mismatching header version 53.19.0
libavformat version 53.21.1 (external)
Playing cache/1412f2e88da0f4dd7ff0cbe67239842c.mp3.

MPlayer svn r34540 (Raspbian), built with gcc-4.6 (C) 2000-2012 MPlayer Team
2015.08.03 21:01:55 4: Text2Speech_readingsSingleUpdateByName: Dev:Audio Reading:endTime Val:00:00:00
2015.08.03 21:01:54 4: Text2Speech_readingsSingleUpdateByName: Dev:Audio Reading:duration Val:0
2015.08.03 21:01:54 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 40 cache/1412f2e88da0f4dd7ff0cbe67239842c.mp3
2015.08.03 21:01:54 4: Text2Speech_CalcMP3Duration: cache/1412f2e88da0f4dd7ff0cbe67239842c.mp3 hat eine Länge von 0 Sekunden.
2015.08.03 21:01:54 1: PERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/98_Text2Speech.pm line 545.
2015.08.03 21:01:54 4: Text2Speech: Schreibe mp3 in die Datei cache/1412f2e88da0f4dd7ff0cbe67239842c.mp3 mit 2812 Bytes
2015.08.03 21:01:54 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=Testausgabe
2015.08.03 21:01:54 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 1412f2e88da0f4dd7ff0cbe67239842c.mp3
2015.08.03 21:01:54 4: Text2Speech: Bearbeite jetzt den Text: Testausgabe
2015.08.03 21:01:54 4: Verwende TTS Spracheinstellung: Deutsch
2015.08.03 21:01:54 4: Audio: 0 => Testausgabe
2015.08.03 21:01:54 4: Audio: Auflistung der Textbausteine nach Aufbereitung:


Hat jemand noch einen spontanen Tipp? Es ist die aktuelle Version von 98_Text2Speech.pm installiert.
Die (neuen) Files im cache sind m. E. alle zu klein, ca. 2 bis 3 kB bei mehreren Worten Text.

Gruß Wolfgang
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fruemmel am 04 August 2015, 08:29:11
Noch ein Nachtrag: Die vermeintlich zu kurzen mp3-Files sind die html-Antwort von google, dass das captcha gewünscht wird. Angeblich wurden aus meinem Netz zu viele Requests gesendet.
Allerdings verstehe ich nicht, warum es aus dem Browser vom PC aus problemlos geht (selbe IP-Adresse nach außen). Auch ein Wechsel der dynamischen IP-Adresse hat nichts gebracht.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: ChrisK am 04 August 2015, 10:26:59
Zitat von: fruemmel am 04 August 2015, 08:29:11
Noch ein Nachtrag: Die vermeintlich zu kurzen mp3-Files sind die html-Antwort von google, dass das captcha gewünscht wird. Angeblich wurden aus meinem Netz zu viele Requests gesendet.
Allerdings verstehe ich nicht, warum es aus dem Browser vom PC aus problemlos geht (selbe IP-Adresse nach außen). Auch ein Wechsel der dynamischen IP-Adresse hat nichts gebracht.
Wenn Du das Captcha im Browser ein Mal eingibst, dann ist dort erstmal Ruhe und er fragt nicht nochmal.
Das Modul hat aber keinen Browser in dem Sinne, dass sich gemerkt werden kann, dass Du das Captcha korrekt eingegeben hast.

Hast Du die aktuelle Version vom Modul:
Zitat von: Tobias am 29 Juli 2015, 20:39:41
fix eingecheckt mit "&client=t&prev=input&"

morgen verfügbar
Damit sollte es eigentlich klappen. Tut es bei mir zumindest.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fruemmel am 04 August 2015, 14:34:39
Zitat von: ChrisK am 04 August 2015, 10:26:59
Wenn Du das Captcha im Browser ein Mal eingibst, dann ist dort erstmal Ruhe und er fragt nicht nochmal.
Das Modul hat aber keinen Browser in dem Sinne, dass sich gemerkt werden kann, dass Du das Captcha korrekt eingegeben hast.

Hast Du die aktuelle Version vom Modul:Damit sollte es eigentlich klappen. Tut es bei mir zumindest.
Die neue Version habe ich drauf, daran kann es nicht mehr liegen. Komisch ist auch, dass ich bei Eingabe des Links im Browser auf meinem PC die Sprachausgabe ohne Captcha sofort bekomme, aber in fhem auf dem Raspberry (selbes Netz, also selbe IP-Adresse nach Außen) das Captcha gefordert wird. Wertet google hier evtl. noch den Client aus oder sowas? Leider habe ich auf dem Raspberry kein GUI installiert, sonst könnte ich weiter testen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hollo am 04 August 2015, 17:18:03
Google wertet die Header-Daten aus.
Wenn Du also per Browser aufrufst, kommt z.B. ein Mozilla für den Firefox mit.

Ist das nicht der Fall, geht Google halt von robots aus, die geblockt werden.
In der LOG-Fehlermeldung siehst Du auch was von "terminal=unknown not defined" oder so.

Der "würgaround" ist also kein Dauerlösung.   :'(
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fruemmel am 05 August 2015, 14:52:34
Zitat von: Hollo am 04 August 2015, 17:18:03
Google wertet die Header-Daten aus.
Wenn Du also per Browser aufrufst, kommt z.B. ein Mozilla für den Firefox mit.

Ist das nicht der Fall, geht Google halt von robots aus, die geblockt werden.
In der LOG-Fehlermeldung siehst Du auch was von "terminal=unknown not defined" oder so.

Das macht für mich alles Sinn, ich verstehe nur nicht, warum es bei einigen Leuten nun funktioniert, bei mir aber nicht. Ich bin ja hier wahrscheinlich nicht der Einzige mit einem Raspberry (bzw. Banana) als Server ...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: eppi am 05 August 2015, 18:46:55
Meine Erfahrung:

Auf dem iPad, Safari den Link aufgerufen und capcha ausgefüllt, danach funktionierte TTS nicht. Das gleiche gemacht am PC mit Firefox, danach funktionierte es einwandfrei...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 06 August 2015, 11:50:55
Da es Probleme mit dem Google Translate Zugang gab, habe ich überhaupt erstmal den Cache angesehen und war erstaunt über die Zahl Dateien.
Deshalb habe ich nach einer Möglichkeit gesucht, zukünftig Dateien im Cache zu löschen, wenn mir bekannt ist, dass ein gesprochener Text wahrscheinlich nicht wiederholt wird. Bei mir ist das z.B. die Wettervorhersage. Ich bin dabei auf den find Befehl gestossen mit dem man Dateien in einem Zeitfenster löschen kann, zumindest unter Linux.

Der nachstehende Befehl z.B. löscht alle in den nächsten 5 Minuten entstehenden mp3-Dateien. Setzt man den Befehl vor einen tts Aufruf, werden die entstehenden Dateien gelöscht.

define delmp3 at +00:05:00 "find /opt/fhem/cache -maxdepth 1 -name '*.mp3' -mmin -5 -exec rm {} \;;"


Da in dem TTS-Modul das automatische Löschen noch nicht implementiert ist, würde mich interessieren nach welchen Kriterien Ihr die nicht benötigten Dateien löscht.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Invers am 06 August 2015, 13:03:49
Ich bekomme seit einigen Tagen die folgende Meldung:

015.08.04 16:35:30 1: PERL WARNING: Problem closing 'cache/.': Is a directory at ./FHEM/98_Text2Speech.pm line 543.
2015.08.04 16:35:30 1: PERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/98_Text2Speech.pm line 545.
2


Hat das Problem sonst noch jemand? Es scheinen alle Ansagen zu kommen. 
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: TeeVau am 06 August 2015, 13:48:16
Ich lösche den cache gar nicht. Auch nicht die wettervorhersage, denn Regen kann es auch nächste Woche geben :-)
Da ich mir jeden morgen im Bad die Wettervorhersage vorlesen lasse, wäre ein löschen sogar kontraproduktiv. Nur wegen dem Chace habe ich z.B. gar nicht die captcha Probleme bemerkt :-D

Eine Ansage ist dann z.B.:
Guten Morgen. Die Aussentemperatur beträgt $temp Grad und die Luftfeuchtigkeit liegt bei $humi Prozent. Gefühlte Temperatur aktuell $tg Grad. Windgeschwindigkeit $tw kmh. Die Vorhersage für heute $t1 .Temperatur von $t2 bis $t3 Grad.

Optional gibt es noch:
Bei glatteis:
Achtung, vorsichtig Autofahren. Aktuell gibt es $tcond

Am Tag vor Müll oder Sperrmüll:
Heute müssen die Mülltonnen $muell2 rausgestellt werden. Morgen früh werden diese geleert.
Der Sperrmüll wird morgen abgeholt.

Am Tag der Abholung:
Heute werden die Mülltonnen $muell1 geleert.

Und jeden Montag noch:
Heute ist im Aquarium Fastentag, die Fische bekommen kein Futter.

Nach ein paar Monaten sind fast alle Werte durch und alles ist im Cache :-)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 07 August 2015, 13:14:55
Zitat von: Ellert am 06 August 2015, 11:50:55
Da in dem TTS-Modul das automatische Löschen noch nicht implementiert ist, würde mich interessieren nach welchen Kriterien Ihr die nicht benötigten Dateien löscht.

angedacht ist eine Löschung schon, eine rudimentäre Vorbereitung gibt es im Modul auch schon. Allerdings nur für User die das Dblog Modul einsetzen. In den DBLog Tabellen werden Statistiken über die Häufigkeit der Verwendung von MP3-Dateien gesammelt. Das ist die GRundlage für einen "intelligenten" Algorithmus um alte nicht mehr verwendete Dateien zu erkennen.
Noch hat man aber nichts davon da die eigentliche Löschroutine noch nicht implementiert ist.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 07 August 2015, 13:40:25
@TeeVau: Danke, für die ausführliche Antwort. Die Datenmenge ist tatsächlich nicht sehr groß.

Wenn ich mal den 2. Satz betrachte und davon ausgehe dass Temperaturen zwischen -12,0 und 21,0 °C und Feuchtewerte zwischen 60 und 90 % angesagt werden, dann sind das etwa 10000 Datensätze mit ca. 20 kB pro Satz. Das ergibt 200 MB in 27 Jahren.  ;)

Also im Moment versuche ich nur Sätze ohne Variablen zu cachen. Die Zeitstempel setze ich auf 1.1.2000, dann weiss ich was ich nicht löschen sollte. Ich hab's gern übersichtlich.

Meine morgentliche Wetteransage zum Frühstück sieht so aus:
sub WetterText {
return "Guten Morgen, heute ".DatumText." ,kurz das Wetter. Die Temperaturen bewegen sich zwischen ".ReadingsNum("aktWetter","fc1_low_c","-1000")." und ".ReadingsNum("aktWetter","fc1_high_c","-1000")." Grad. Aktuell sind draußen ".Wert2Text(ReadingsNum("CUL_HM_HTO1","temperature","1000"))." Grad bei ".ReadingsNum("CUL_HM_HTO1","humidity","1000")." Prozent Feuchte und ".ReadingsNum("BMP180","pressure","2000")." millibar Luftdruck. Es ist ".ReadingsVal("aktWetter","condition","kein Wetter").", der Wind weht mit ".ReadingsNum("aktWetter","wind","1000")." km/h aus ".ReadingsNum("aktWetter","wind_direction","500")." Grad. Morgen ".ReadingsVal("aktWetter","fc2_condition","auch kein Wetter")." und Temperaturen zwischen ".ReadingsNum("aktWetter","fc2_low_c","-1000")." und ".ReadingsNum("aktWetter","fc2_high_c","1000")." Grad. ".readWeatherAlarm." Im Wohnzimmer sind gemütliche ".Wert2Text(ReadingsNum("BMP180","temperature","1000"))." Grad.";
}


@Tobias: Danke für den Hinweis. Ich hatte das schon so verstanden, dass eine automatische Löschung in Arbeit ist. Mit dem Dblog habe ich mich noch nicht beschäftigt.

Mir ist folgendes aufgefallen: Wenn eine WRAP-Datei existiert, dann müssen die zugehörigen Einzeldateien erhalten bleiben, denn falls man sie löscht, werden sie neu erzeugt.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: netbus am 12 August 2015, 13:58:26
Seit ein paar Tagen funktioniert mein TTS nicht mehr. Ich habe nichts am System oder Fhem geändert und bekomme nun immer folgende diverse Fehlermeldungen:
PERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/98_Text2Speech.pm line 545.
PERL WARNING: Unsuccessful stat on filename containing newline at ./FHEM/98_Text2Speech.pm line 623.
PERL WARNING: Unsuccessful stat on filename containing newline at ./FHEM/98_Text2Speech.pm line 664.

Fhem läuft auf einem Banana Pi mit Wheezy.
Was kann das sein?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fruemmel am 12 August 2015, 16:09:03
Zitat von: netbus am 12 August 2015, 13:58:26
Seit ein paar Tagen funktioniert mein TTS nicht mehr. Ich habe nichts am System oder Fhem geändert und bekomme nun immer folgende diverse Fehlermeldungen:
...
Was kann das sein?
Blätter mal auf Seite 28 dieses Themas. Die Lösung funktioniert wohl bei den meisten. Bei mir leider nicht (auch BananaPi mit wheezy). Ich bin gespannt, ob es bei Dir funktioniert.
In Kurzform: Aktuelles Modul verwenden und cache löschen. Dann sollte es wieder gehen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: netbus am 12 August 2015, 16:17:58
Habe den Cache gelöscht und verwende schon das neue Modul aber der 545 Fehler bleibt  :-[
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fruemmel am 12 August 2015, 17:01:23
Zitat von: netbus am 12 August 2015, 16:17:58
Habe den Cache gelöscht und verwende schon das neue Modul aber der 545 Fehler bleibt  :-[
Dann sind wir jetzt schon zu zweit. Wenn Du das erzeugte File im cache mit einem Texteditor (oder z. B. cat unter wheezy) anzeigst, siehst Du vermutlich den Grund des Problems.

Kannst Du den Link, der im Log steht (...translate.google.de...) manuell im Browser aufrufen, ohne dass google ein captcha anzeigt?
Bei mir behauptet google, dass auffälliger traffic aus meinem Netz festgestellt wurde, aber von allen Endgeräten außer dem Banana Pi habe ich keine Probleme mit dem Abruf der gesprochenen mp3's.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: netbus am 12 August 2015, 21:29:48
ich bekomme genau die gleiche fehlermeldung.
auch wenn ich es im browser aufrufe steht bei mir
"Abspielen des Videos wegen eines Netzwerkfehlers abgebrochen"
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 12 August 2015, 21:54:51
Zitat von: netbus am 12 August 2015, 21:29:48
auch wenn ich es im browser aufrufe steht bei mir
"Abspielen des Videos wegen eines Netzwerkfehlers abgebrochen"
Aber das ist ein ganz anderes Problem, kann ja nichts mit FHEM zu tun haben.

Welcher Browser? Welcher Aufruf?

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: netbus am 12 August 2015, 22:01:28
Egal welcher Browser. Auch am iPhone kann ich diesen Link nicht abspielen.
Das ist der Link der generiert wurde
http://translate.google.com/translate_tts?tl=de&amp;client=t&amp;prev=input&amp;q=das%20ist%20ein%20test (http://translate.google.com/translate_tts?tl=de&amp;client=t&amp;prev=input&amp;q=das%20ist%20ein%20test)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: justme1968 am 12 August 2015, 22:03:20
der link ist falsch. statt der &amp; muss jeweils ein einzelnes & stehen:http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=das%20ist%20ein%20test

gruss
  andre
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: netbus am 12 August 2015, 22:05:55
ich generiere den link nicht  ;)
wo muss ich das im modul ändern?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 12 August 2015, 22:24:41
Siehe Seite 28 in diesem Thread.
Ich gebe zu, ich habe das Modul damals geändert und verwende es seitdem so. Nicht das aktuelle Modul...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: netbus am 12 August 2015, 22:33:03
das aktuelle modul verwendet genau diese änderung
"&client=t&prev=input&"
im endeffekt wird aber ein &amp; statt einem & eingefügt.
Ich kann mir das nur so erklären das wir anscheinend auf dem bananapi einen anderen url fetcher oder "generator" haben dürften.
jetzt ist die frage wie kann ich diesen curl / wget oder was auch immer diese url generiert, ändern?

EDIT:
Um die URL zu generieren wird das HttpUtils Modul verwendet. Das heißt dort muss der Hund begraben sein.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 12 August 2015, 22:50:57
Da läuft scheinbar irgendwie ne Zeichen Ersetzung?
siehe https://de.wikipedia.org/wiki/Et-Zeichen

"irgendwer" macht aus & das &amp;

Kann das was mit dem Zeichensatz / Spracheinstellung im System zu tun haben? In dem Modul läuft doch an der Stelle nur Stringverkettung!?

Ich habe noch ein paar Hinweise aber keine Lösung gefunden. Gib mal & wird zu &amp;in der Google Suche ein.
Sinngemäß wird aus unkorrektem HTML korrektes HTML gemacht. Wobei das in der url Zeile gar kein HTML ist.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fruemmel am 13 August 2015, 07:47:35
Zitat von: netbus am 12 August 2015, 22:01:28
Egal welcher Browser. Auch am iPhone kann ich diesen Link nicht abspielen.
Das ist der Link der generiert wurde
http://translate.google.com/translate_tts?tl=de&amp;client=t&amp;prev=input&amp;q=das%20ist%20ein%20test (http://translate.google.com/translate_tts?tl=de&amp;client=t&amp;prev=input&amp;q=das%20ist%20ein%20test)
@netbus: Wo hast Du den Link denn her? Der Link der im Log angezeigt wird, wird ja generiert, bevor GetHttpFile aufgerufen wird. Bei mir sieht der Link laut Log aber so aus (auch auf BananaPi und Wheezy):
http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=das%20ist%20ein%20test
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hollo am 13 August 2015, 08:51:19
Zitat von: netbus am 12 August 2015, 22:33:03
...Ich kann mir das nur so erklären das wir anscheinend auf dem bananapi einen anderen url fetcher oder "generator" haben dürften...
Welche Distribution nutzt Du denn?
Für Bananian kann ich sagen, dass da die URL korrekt zusammengesetzt wird.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: netbus am 13 August 2015, 08:57:35
@hollo
Ich verwende Bananian (wheezy)

@fruemmel
dieser Link steht in der mp3 Datei im cache ordner

@otto
ich verwende als locale en_US
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fruemmel am 13 August 2015, 09:05:36
Zitat von: netbus am 13 August 2015, 08:57:35
@fruemmel
dieser Link steht in der mp3 Datei im cache ordner
Du hast Recht, steht bei mir auch mit &amp in der cache-Datei. Das ist ja die Antwort von google. Da steht auch drin, dass er das captcha gelöst haben möchte. Jetzt ist nur die Frage, ob der Link auf dem Banana schon falsch generiert wird, oder erst die Antwort von google modifiziert wird.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hollo am 13 August 2015, 11:54:10
@netbus
Wieso hast Du Dein System auf en_US stehen?
Setz das mal auf de_DE und probier dann mal weiter.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fruemmel am 13 August 2015, 12:23:01
Ich habe es bei mir auf de. Ich glaube aber nicht, dass der Link falsch ist, sondern erst die Antwort von google das &amp enthält. Sonst würde das captcha ja gar nicht abgefragt werden.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: netbus am 13 August 2015, 12:43:30
Ich habe nun einen tcpdump gezogen.
Er schickt im ersten Step ein GET /translate_tts?tl=de&client=t&prev=input&q=hallo%20test HTTP/1.0 was eigentlich korrekt wäre bekommt aber ein 302 Moved Temporarily zurück.
Somit schickt er einen neuen Request zu der neuen Location welche den Captcha enthält und dann geht nichts mehr.
Wenn er aber den Fehler 302 ignorieren würde würde er die MP3 bekommen.
Interressant wäre daher wie ein tcpdump auf einem funktionierenden Gerät aussieht.

Step1
GET /translate_tts?tl=de&client=t&prev=input&q=hallo%20test HTTP/1.0
Host: translate.google.com

HTTP/1.0 302 Moved Temporarily
Location: http://ipv4.google.com/sorry/IndexRedirect?continue=http://translate.google.com/translate_tts%3Ftl%3Dde%26client%3Dt%26prev%3Dinput%26q%3Dhallo%2520test&q=CGMSBE6EGjAYv-KxrgUiGQDxp4NLUuXVmYHLv2dSn4JwuiHNUj9mTbw
Date: Thu, 13 Aug 2015 10:28:15 GMT
Pragma: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Content-Type: text/html; charset=UTF-8
Server: HTTP server (unknown)
Content-Length: 411
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Connection: close

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://ipv4.google.com/sorry/IndexRedirect?continue=http://translate.google.com/translate_tts%3Ftl%3Dde%26client%3Dt%26prev%3Dinput%26q%3Dhallo%2520test&amp;q=CGMSBE6EGjAYv-KxrgUiGQDxp4NLUuXVmYHLv2dSn4JwuiHNUj9mTbw">here</A>.
</BODY></HTML>


Step2
GET /sorry/IndexRedirect?continue=http://translate.google.com/translate_tts%3Ftl%3Dde%26client%3Dt%26prev%3Dinput%26q%3Dhallo%2520test&q=CGMSBE6EGjAYv-KxrgUiGQDxp4NLUuXVmYHLv2dSn4JwuiHNUj9mTbw HTTP/1.0
Host: ipv4.google.com

HTTP/1.0 503 Service Unavailable
Date: Thu, 13 Aug 2015 10:28:15 GMT
Pragma: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Content-Type: text/html
Server: HTTP server (unknown)
Content-Length: 2816
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Connection: close

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content="initial-scale=1"><title>http://translate.google.com/translate_tts?tl=de&amp;client=t&amp;prev=input&amp;q=hallo%20test</title></head>
<body style="font-family: arial, sans-serif; background-color: #fff; color: #000; padding:20px; font-size:18px;" onload="e=document.getElementById('captcha');if(e){e.focus();}">
<div style="max-width:400px;">
<hr noshade size="1" style="color:#ccc; background-color:#ccc;"><br>

  To continue, please type the characters below:<br><br>
  <img src="/sorry/image?id=1609762770752662828&amp;hl=en" border="1" alt="Please enable images"><br><br><form action="CaptchaRedirect" method="get"><input type="hidden" name="continue" value="http://translate.google.com/translate_tts?tl=de&amp;client=t&amp;prev=input&amp;q=hallo%20test"><input type="hidden" name="id" value="1609762770752662828"><input type="text" name="captcha" value="" id="captcha" size="12" style="font-size:16px; padding:3px 0 3px 5px; margin-left:0px;"><input type="submit" name="submit" value="Submit" style="font-size:18px; padding:4px 0;"><br><br><br></form>
  <hr noshade size="1" style="color:#ccc; background-color:#ccc;">
 
   <div style="font-size:13px;">
    <b>About this page</b><br><br>Our systems have detected unusual traffic from your computer network.  This page checks to see if it's really you sending the requests, and not a robot.  <a href="#" onclick="document.getElementById('infoDiv').style.display='block';">Why did this happen?</a><br><br>
    <div id="infoDiv" style="display:none; background-color:#eee; padding:10px; margin:0 0 15px 0; line-height:1.4em;">
     This page appears when Google automatically detects requests coming from your computer network which appear to be in violation of the <a href="//www.google.com/policies/terms/">Terms of Service</a>. The block will expire shortly after those requests stop.  In the meantime, solving the above CAPTCHA will let you continue to use our services.<br><br>This traffic may have been sent by malicious software, a browser plug-in, or a script that sends automated requests.  If you share your network connection, ask your administrator for help &mdash; a different computer using the same IP address may be responsible.  <a href="//support.google.com/websearch/answer/86640">Learn more</a><br><br>Sometimes you may be asked to solve the CAPTCHA if you are using advanced terms that robots are known to use, or sending requests very quickly.
    </div>
 
 


IP address: XX.XX.XX.XX<br>Time: 2015-08-13T10:28:15Z<br>URL: http://translate.google.com/translate_tts?tl=de&amp;client=t&amp;prev=input&amp;q=hallo%20test<br>
</div>
</div>
</body>
</html>
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: netbus am 13 August 2015, 19:23:30
Ich glaube das Problem gefunden zu haben.
Es wird kein User Agent mitgeschickt.
Ich habe testhalber meinen User Agent im Firefox ausgeschalten und schon bekam ich die gleiche Meldung wie FHEM. Mit User Agent bekomme ich sofort die Mp3.
Daher die Bitte an Tobias.
Kannst du den UserAgent einbauen?  ;D  Da du httputils verwendest kann man mittels
$param->{header}
das einbauen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hollo am 14 August 2015, 10:16:21
Zitat von: netbus am 13 August 2015, 19:23:30
Ich glaube das Problem gefunden zu haben.
Es wird kein User Agent mitgeschickt...
Das habe ich im Beitrag #429 http://forum.fhem.de/index.php/topic,18481.msg319200.html#msg319200 (http://forum.fhem.de/index.php/topic,18481.msg319200.html#msg319200) schon geschrieben. Wusste nur nicht wie man das testen und einbauen könnte.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 14 August 2015, 15:43:09
Toll wäre es wenn ihr mir  die exakte Codezeile mit der User Agent  Angabe posten könntet. Bitte vorher auch testen ;)

Beitrag kurz gehalten da unterwegs und mobil gesendet

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: netbus am 15 August 2015, 11:36:49
Leider habe ich vom Programmieren recht wenig Ahnung.
Aber laut wiki  (http://www.fhemwiki.de/wiki/HttpUtils#Beispiel_f.C3.BCr_HttpUtils_NonblockingGet.28.29_f.C3.BCr_Modulprogrammierer)sollte der Code so in etwa aussehen.

use HttpUtils;
sub X_GetHttpResponse($)
{
    my ($hash, $def) = @_;
    my $name = $hash->{NAME};
    my $param = {
                    url        => "http://translate.google.com/translate_tts",
                    timeout    => 5,
                    hash       => $hash,                                                                                  # Muss gesetzt werden, damit die Callback funktion wieder $hash hat
                    method     => "GET",                                                                                  # Lesen von Inhalten
                    header     => "agent: Mozilla/1.22\r\nUser-Agent: Mozilla/1.22",    # Den Header gemäss abzufragender Daten ändern
                    callback   =>  \&X_ParseHttpResponse                                                                  # Diese Funktion soll das Ergebnis dieser HTTP Anfrage bearbeiten
                };
                         
    HttpUtils_NonblockingGet($param);                                                                                     # Starten der HTTP Abfrage. Es gibt keinen Return-Code.
   
}
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Invers am 23 August 2015, 11:51:05
Nachdem nunmehr 2 Monate seit meiner letzten Anfrage hier vergangen sind, wage ich es, noch einmal erneut zu fragen. Vielleicht haben sich ja neue Erkenntnisse ergeben.

Ich erhalte seit einer gefühlten Ewigkeit die Meldung:
Prototype after '@' for main::Text2Speech_SplitString : @$$$$ at ./FHEM/98_Text2Speech.pm line 465

Kann mir inzwischen jemand etwas dazu sagen?

Danke im Voraus.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 23 August 2015, 18:07:45
@Invers: Das ist eine Perl Warnung, die erzeugt wird, weil bei der Deklarierung der Subroutine Text2Speech_SplitString nach einem Prototypen für eine Liste weitere skalare Prototypen angegeben werden.

Nach einem Listenprototypen skalare Prototypen anzugeben ist ungewöhnlich, da der Listenprototyp eingentlich alles abgreift.

Mehr dazu gibt  es hier: http://modernperlbooks.com/mt/2009/08/the-problem-with-prototypes.html (http://modernperlbooks.com/mt/2009/08/the-problem-with-prototypes.html)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Invers am 23 August 2015, 19:52:15
Vielen Dank für die gute Erklärung. Was du geschrieben hast, habe ich soweit verstanden. Leider sind meine Englischkenntnisse nicht so gut, um dem Text im Link folgen zu können. Die Google-Übersetzung trägt auch nicht positiv dazu bei.

Die Erklärung lässt nach meiner Meinung darauf schliessen, dass man dieses Problem relativ leicht aus dem Weg räumen könnte.
Kann ich noch einen Tipp haben, ob ich da im Modul durch eine kleine Änderung etwas bewirken kann?


Auch die Frage, ob das Ganze negative Auswirkungen hat, würde mich interessieren.
Falls das egal ist und nichts dadurch beeinträchtigt wird, wäre es ja egal, ausser, dass es unschön ist.

Nochmals danke.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 24 August 2015, 15:07:13
Ich hatte heute mal etwas Zeit und hab mich mal dran gesetzt.
Leider habe ich es mit dem Google Captcha nicht  hinbekommen. Hier bin ich auf Mithilfe angewiesen!!!

Alternativ habe ich eine neue Ressource "VoiceRSS" eingebaut.
Ihr müsst euch registrieren um einen APIKey zu bekommen. Ist für den normalen Gebrauch auch Kostenlos:
http://www.voicerss.org/registration.aspx

Bitte mal das neue Modul in Fhem einfügen, reloaden, den TTS_APIKey eingeben sowie die Ressource auf VoiceRSS ändern.
Dann mal testen....
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hollo am 24 August 2015, 17:18:30
Zumindest bei mir haut da noch was nicht hin.
Mit der neuen Modul-Version bekomme ich Fehlermeldungen...

2015.08.24 16:56:56 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 552.
2015.08.24 16:57:31 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2015.08.24 16:57:31 4: MyTTS: 0 => Test
2015.08.24 16:57:31 4: Verwende TTS Spracheinstellung: Deutsch
2015.08.24 16:57:31 4: Text2Speech: Bearbeite jetzt den Text: Test
2015.08.24 16:57:31 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 32cb74707cca1b4b159ac2531f4fc883.mp3
2015.08.24 16:57:31 4: Text2Speech: Hole URL: http://api.voicerss.org/?hl=de-de&f=48khz_16bit_stereo&key=musshiernichtrein&src=Test
2015.08.24 16:57:31 4: Text2Speech: Schreibe mp3 in die Datei cache/32cb74707cca1b4b159ac2531f4fc883.mp3 mit 339 Bytes
2015.08.24 16:57:31 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 552.
2015.08.24 16:57:31 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 100 cache/32cb74707cca1b4b159ac2531f4fc883.mp3
2015.08.24 16:57:31 4: Text2Speech_readingsSingleUpdateByName: Dev:MyTTS Reading:duration Val:
2015.08.24 16:57:31 4: Text2Speech_readingsSingleUpdateByName: Dev:MyTTS Reading:endTime Val:00:00:00


Rückstellen auf Google wird nicht übernommen (ebenso wie das Language-Feld nicht korrekt ist);
nach manuellem Rückstellen (cfg) und Restart weiterhin keine Funktion und Fehlermeldung m3Duration.

Vorherige Version wieder eingespielt und läuft.

Übrigens ist mir dabei gerade aufgefallen (was aber nicht am Modul liegt)...

MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
Cannot open file '/root/.mplayer/input.conf': Permission denied
Failed to open /root/.mplayer/input.conf.


Da stimmt doch was nicht; die liegt bei mir unter /etc/mplayer/input.conf  :-\
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 24 August 2015, 19:14:19
Dein APIKey ist fehlerhaft. Deswegen bekommst du die mp3 nicht raus... Der Rest sind Folgefehler...
Den APIKey bekomst du erst nach Anmeldung... Hatte ich aber geschrieben....

2015.08.24 19:21:02 4: tts: Auflistung der Textbausteine nach Aufbereitung:
2015.08.24 19:21:02 4: tts: 0 => Das ist ein Test Nummer 2.
2015.08.24 19:21:02 4: Verwende TTS Spracheinstellung: Deutsch
2015.08.24 19:21:02 4: Text2Speech: Bearbeite jetzt den Text: Das ist ein Test Nummer 2.
2015.08.24 19:21:02 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 6667795316f883debdea5ddbb9fa6309.mp3
2015.08.24 19:21:02 4: Text2Speech: Hole URL: http://api.voicerss.org/?hl=de-de&f=48khz_16bit_stereo&key=xxxxxxxx27c048c5a10a81e6xxxxxxxx&src=Das%20ist%20ein%20Test%20Nummer%202.
2015.08.24 19:21:03 4: Text2Speech: Schreibe mp3 in die Datei cache/6667795316f883debdea5ddbb9fa6309.mp3 mit 43619 Bytes
2015.08.24 19:21:03 4: Text2Speech_CalcMP3Duration: cache/6667795316f883debdea5ddbb9fa6309.mp3 hat eine Länge von 5 Sekunden.
2015.08.24 19:21:03 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols cache/6667795316f883debdea5ddbb9fa6309.mp3
2015.08.24 19:21:03 4: Text2Speech_readingsSingleUpdateByName: Dev:tts Reading:duration Val:5
2015.08.24 19:21:03 4: Text2Speech_readingsSingleUpdateByName: Dev:tts Reading:endTime Val:00:00:00
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: slupus am 24 August 2015, 21:19:48
Ich hatte bisher auch das Problem, dass nur noch bereits generierte mp3's ausgegeben wurden. Seit heute funktioniert die Ausgabe auch wieder mit neu generierten mp3's. Das letzte Update von FHEM lief am Samstagmorgen. Außer den Updates habe ich keine Anpassungen vorgenommen, auch das Löschen des Caches war bei mir erfolglos. Können das auch die anderen mit diesem Problem bestätigen?
Ich werde das Verhalten weiter beobachten. Sollte es wieder Probleme geben, probiere ich die neue Ressource aus.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hollo am 24 August 2015, 21:30:39
Zitat von: Tobias am 24 August 2015, 19:14:19
Dein APIKey ist fehlerhaft. Deswegen bekommst du die mp3 nicht raus... Der Rest sind Folgefehler...
Den APIKey bekomst du erst nach Anmeldung... Hatte ich aber geschrieben....
Selbstverständlich hatte ich mich registriert und den angezeigten API-Key in meine Config kopiert.  >:(
Das "musshiernichtrein" war nur als Platzhalter; wenn alle meinen Key nutzen, wird das mit den 350 Anfragen wohl schnell erreicht sein.  ;D

Habe mir gerade mal die "fehlerhafte MP3-Datei" angesehen:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Header</h2>
<hr><p>HTTP Error 400. The request has an invalid header name.</p>
</BODY></HTML>


Wenn ich die erzeugte URL direkt im Browser eingebe, bekomme ich die passende Ansage.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 25 August 2015, 11:12:53
Ich habe bei der Verwendung von Text2Speech folgendes Verhalten festgestellt:
Wenn ein langes MP3WRAP (z.B. 163 s) abgespielt wird gibt es eine Timeoutmeldung: "Timeout for Text2Speech_DoIt reached, terminated process 4816".
Der nächste Text wird dann immer mit der Ansage eines Arrays eingeleitet: "SagEs: 0 => ARRAY(0x47671e8)".

Dies ist der Logfileauszug für den langen Text:
2015.08.25 04:15:00 4: Text2Speech: mp3wrap cache/cca6cbb6ea8961297bb4031170e493d3.mp3 cache/templates/stille500ms.mp3 cache/dff1059b189523c8514125b86dce6c30.mp3 cache/f9d4c62182862fed579af8d222787018.mp3 cache/3ac907259a23cf91c9db4c670ae4cbc9.mp3 cache/dc96241aa1f57e549410be202d2f12f1.mp3 cache/c9296a5fe275c2108f2b5d52097fccf5.mp3 cache/cc7e2367b86e52fb735180bb790128d1.mp3 cache/0d40e97e82e65ad7581b0c985e06f18f.mp3 cache/15c281b9a3ce3d390515dc58174c0da8.mp3 cache/7f38b8430aaa6ee3c3fd205b5d80cab4.mp3 cache/98b8acd5052b134afea903e817d1af22.mp3 cache/1f31c779f511680ec944c0bd2c46c1a9.mp3 cache/beb573febe6bd1f114b84cd01e62869b.mp3 cache/0d866b1b39e9303a8cfe6b07f926a0a7.mp3 cache/2cc4aa5cbb433db1ba67154477224ffb.mp3 cache/9ff135956e644e11249b943e0ff66f78.mp3 cache/8bd7c0e288f13ce859c58de96099da49.mp3 cache/82869e23523c6ff476d16e9d299a8611.mp3 cache/8e604c13beec9fe76c4071ec5a8b9488.mp3 cache/dfd6cd758994c4c41587c46143136a01.mp3 cache/89364957474f6b1ef74f468671fb9072.mp3 cache/db8ae7d594e45e04106fd372d25306a5.mp3 cache/6beceafedb892053c5577a8d483ce595.mp3 cache/fbd8313449bc4054275a5de522edf60c.mp3 cache/ce0202016c6357275c900eec029b7709.mp3 >/dev/null
2015.08.25 04:15:01 4: Text2Speech_CalcMP3Duration: cache/cca6cbb6ea8961297bb4031170e493d3_MP3WRAP.mp3 hat eine Länge von 163 Sekunden.
2015.08.25 04:15:01 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 100 -volume 1 cache/cca6cbb6ea8961297bb4031170e493d3_MP3WRAP.mp3
2015.08.25 04:15:01 4: Text2Speech_readingsSingleUpdateByName: Dev:SagEs Reading:duration Val:163
2015.08.25 04:15:01 4: Text2Speech_readingsSingleUpdateByName: Dev:SagEs Reading:endTime Val:00:00:00
2015.08.25 04:16:00 1: Timeout for Text2Speech_DoIt reached, terminated process 4816
2015.08.25 04:16:00 2: Text2Speech: BlockingCall for SagEs was aborted


Dies ist der Logfileauszug für den nächsten Text:
2015.08.25 07:05:04 4: SagEs: Angabe einer direkten MP3-Datei gefunden:   => FileTpl_1440479104_#1
2015.08.25 07:05:04 4: SagEs: Auflistung der Textbausteine nach Aufbereitung:
2015.08.25 07:05:04 4: SagEs: 0 => ARRAY(0x47671e8)
2015.08.25 07:05:04 4: SagEs: 1 => templates/stille500ms.mp3
2015.08.25 07:05:04 4: SagEs: 2 => Das Schlafzimmerfenster wurde geschlossen.
2015.08.25 07:05:04 4: Verwende TTS Spracheinstellung: Deutsch
2015.08.25 07:05:04 4: Text2Speech: Bearbeite jetzt den Text: ARRAY(0x47671e8)


Ich würde gern mal zur Probe das Timeout hochsetzen. Ich weiss aber nicht an welcher Stelle der Datei 98_Text2Speech.pm.
Ist es die 60 in der Zeile:
$hash->{helper}{RUNNING_PID} = BlockingCall("Text2Speech_DoIt", $hash, "Text2Speech_Done", 60, "Text2Speech_AbortFn", $hash) unless(exists($hash->{helper}{RUNNING_PID}));

Es wäre nett, wenn mir jemand einen Hinweis geben könnte. Vielen Dank schon mal.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 25 August 2015, 11:27:03
Ja, es ist die 60.... setze diese mal testweise auf 200 (sekunden)...

Ich bin bis dato nicht davon ausgegangen das jemand Texte > 60sekunden ansagen lässt. Was gibst du denn aus?? Würde mich mal interessieren.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 25 August 2015, 11:53:52
@ Tobias: Das ging ja schnell. Ich lade mir ein Tagesmotto aus dem Netz und lasse es mir zum Frühstück vorlesen. Wegen der Länge des Textes lasse ich die MP3WRAP stumm vorbereiten, dann ist die Ansage flüssig.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 25 August 2015, 13:27:57
@Tobias: Die Verlängerung des Timeout hat geklappt, die Ansage eines Arrays beim nächsten Text unterbleibt.

Anmerkung: Auch bei kurzem Timeout wird die Ansage zu Ende gesprochen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 25 August 2015, 14:55:58
Du kannst ja mal VoiceRSS testen ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 25 August 2015, 19:48:53
Hier nochmal die aktuellste Version.. Habe ich gerade mit VoiceRSS ziemlich ausgiebig getestet.
Wenn keine Fehlermeldungen hier eintrudeln, würde ich es morgen einchecken...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 25 August 2015, 20:12:21
ZitatDu kannst ja mal VoiceRSS testen

Bevor Du vorgeschlagen hast VoiceRSS zu testen, hatte ich mir die Stimme angehört und mich gegen einen Test entschieden.

Aber hier nun doch mein Testergebnis (FHEM auf RasPi B+):

Logfile:
2015.08.25 19:00:54 4: Text2Speech: Hole URL: http://api.voicerss.org/?hl=de-de&f=48khz_16bit_stereo&key=gelöscht&src=Hallo%20wie%20geht%20es

Es kommt eine Datei mit folgendem Inhalt zurück:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Header</h2>
<hr><p>HTTP Error 400. The request has an invalid header name.</p>
</BODY></HTML>


Wenn ich die URL am Browser (aktueller Firefox) aufrufe (natürlich mit meinem API-Key) wird der Text gesprochen.

Nachdem ich auf Google umgestellt habe kommt die Captcha-Abfrage.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content="initial-scale=1"><title>http://translate.google.com/translate_tts?tl=de&amp;q=Morgen%20gibt%20es%20was</title></head>
<body style="font-family: arial, sans-serif; background-color: #fff; color: #000; padding:20px; font-size:18px;" onload="e=document.getElementById('captcha');if(e){e.focus();}">
<div style="max-width:400px;">
<hr noshade size="1" style="color:#ccc; background-color:#ccc;"><br>

  To continue, please type the characters below:<br><br>
  <img src="/sorry/image?id=2403786924147101825&amp;hl=en" border="1" alt="Please enable images"><br><br><form action="CaptchaRedirect" method="get"><input type="hidden" name="continue" value="http://translate.google.com/translate_tts?tl=de&amp;q=Morgen%20gibt%20es%20was"><input type="hidden" name="id" value="2403786924147101825"><input type="text" name="captcha" value="" id="captcha" size="12" style="font-size:16px; padding:3px 0 3px 5px; margin-left:0px;"><input type="submit" name="submit" value="Submit" style="font-size:18px; padding:4px 0;"><br><br><br></form>
  <hr noshade size="1" style="color:#ccc; background-color:#ccc;">
 
   <div style="font-size:13px;">
    <b>About this page</b><br><br>Our systems have detected unusual traffic from your computer network.  This page checks to see if it's really you sending the requests, and not a robot.  <a href="#" onclick="document.getElementById('infoDiv').style.display='block';">Why did this happen?</a><br><br>
    <div id="infoDiv" style="display:none; background-color:#eee; padding:10px; margin:0 0 15px 0; line-height:1.4em;">
     This page appears when Google automatically detects requests coming from your computer network which appear to be in violation of the <a href="//www.google.com/policies/terms/">Terms of Service</a>. The block will expire shortly after those requests stop.  In the meantime, solving the above CAPTCHA will let you continue to use our services.<br><br>This traffic may have been sent by malicious software, a browser plug-in, or a script that sends automated requests.  If you share your network connection, ask your administrator for help &mdash; a different computer using the same IP address may be responsible.  <a href="//support.google.com/websearch/answer/86640">Learn more</a><br><br>Sometimes you may be asked to solve the CAPTCHA if you are using advanced terms that robots are known to use, or sending requests very quickly.
    </div>
 
 


IP address: gelöscht<br>Time: 2015-08-25T17:27:13Z<br>URL: http://translate.google.com/translate_tts?tl=de&amp;q=Morgen%20gibt%20es%20was<br>
</div>
</div>
</body>
</html>


Dann in Kürze: Captch gelöst, in 98_Text2Speech.pm header auf den Altenativen umgestellt, reload, Google gibt Captcha zurück, umgestellt auf VoiceRSS, wieder: Bad Request - Invalid Header

Jetzt habe ich diese Datei wieder reloaded: 98_Text2Speech.pm 9003 2015-07-29 18:39:12Z tobiasfaust $ und alles läuft wie vorher.

Aber, ich habe das Gefühl nichts Neues herausgefunden zu haben.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 25 August 2015, 20:33:40
Schnelltest:
Mit der neuen Datei und Google kommt wieder die Captcha-Abfrage.
Mit VoiceRSS wieder: Bad Request - Invalid Header.
Der Aufruf sieht für mich o.k. aus.
2015.08.25 20:25:48 4: Text2Speech: Hole URL: http://api.voicerss.org/?hl=de-de&f=48khz_16bit_stereo&key=GELÖSCHT&src=so%20jetzt%20nochmal%20VoiceRss

Hat es bei Dir funktioniert?

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: netbus am 25 August 2015, 21:05:00
mit dem bestehenden Modul funkt Google noch.
Mit dem neuen funkt weder Google noch Voicerss.
Es kommt immer folgende Fehlermeldung

PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 561
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 26 August 2015, 00:39:29
@Tobias: Ich hab mal den Header verändert weil ich nicht weiss ob ich ihn ganz löschen darf.
header     => " "
Damit funktioniert VoiceRSS, aber Google nicht. Im Googleaufruf fehlt "&client=t&prev=input", wie hier beschrieben:
http://forum.fhem.de/index.php/topic,18481.msg317208.html#msg317208 (http://forum.fhem.de/index.php/topic,18481.msg317208.html#msg317208)

Google funktioniert hiermit (offizielles Modul):
2015.08.25 20:37:50 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=Das%20war%20wohl%20nichts%20VoiceRss

und hiermit nicht (Modul vom 25.8.):
2015.08.25 23:43:43 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&q=geht%20google%20auch

Ich war bis heute auch der Meinung es müsste der UserAgent angegeben werden. Das halte ich nicht mehr für notwendig.

Die HTTPUtils verwendet als Voreinstellung HTTP/1.0 http://www.fhemwiki.de/wiki/HttpUtils#HttpUtils_BlockingGet (http://www.fhemwiki.de/wiki/HttpUtils#HttpUtils_BlockingGet), dort siehe Bedeutung von httpversion. Bei der Verwendung von HTTP/1.0 ist die Angabe eines Headers optional http://www.mediaevent.de/tutorial/http-request.html (http://www.mediaevent.de/tutorial/http-request.html), siehe HTTP/1.0. und HTTP/1.1

Mein Vorschlag: Der Header sollte frei bleiben, dann funktioniert VoiceRSS. Und "&client=t&prev=input" sollte wieder in den Googleaufruf, dann funktioniert auch Google.

Zusätzlich hätte ich gern ein Attribut fürs Timeout des BlockingCall und ein AutoFallBack auf VoiceRSS, wenn Google nach Captchas fragt  ;)

Mir ist noch aufgefallen, das die VoiceRSS Datei ca. 6 mal größer ist als die von Google. Mir würden 16 kHz bei 16 bit mono von Google ausreichen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 26 August 2015, 08:03:32
Auf ein Neues. Mit dem aktuellen Modul funktioniert sowohl Google als auch VoiceRSS

Änderungen:
-Google URL-Addon wieder eingebaut (ist mit irgendwie verloren gegangen :( )
- Doku angepasst
- HttpVersion auf 1.1 gesetzt

Wenn ihr noch andere TTS-Onlinedienste mit WebAPI habt kann ich versuchen auch diese noch einzubauen...

Google:
2015.08.26 07:55:14 4: tts: Auflistung der Textbausteine nach Aufbereitung:
2015.08.26 07:55:14 4: tts: 0 => Das ist ein Test mit Google und VoiceRSS ob beides korrekt funktioniert
2015.08.26 07:55:14 4: Verwende TTS Spracheinstellung: Deutsch
2015.08.26 07:55:14 4: Text2Speech: Bearbeite jetzt den Text: Das ist ein Test mit Google und VoiceRSS ob beides korrekt funktioniert
2015.08.26 07:55:14 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: a4cc14a047e210f5e2c4d0566e142c6f.mp3
2015.08.26 07:55:14 4: Text2Speech: Verwende Google OnlineResource zum Download
2015.08.26 07:55:14 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=Das%20ist%20ein%20Test%20mit%20Google%20und%20VoiceRSS%20ob%20beides%20korrekt%20funktioniert
2015.08.26 07:55:15 4: Text2Speech: Schreibe mp3 in die Datei cache/a4cc14a047e210f5e2c4d0566e142c6f.mp3 mit 20304 Bytes
2015.08.26 07:55:15 4: Text2Speech_CalcMP3Duration: cache/a4cc14a047e210f5e2c4d0566e142c6f.mp3 hat eine Länge von 5 Sekunden.
2015.08.26 07:55:15 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols cache/a4cc14a047e210f5e2c4d0566e142c6f.mp3


VoiceRSS:
2015.08.26 07:56:58 4: tts: Auflistung der Textbausteine nach Aufbereitung:
2015.08.26 07:56:58 4: tts: 0 => Das ist ein Test mit Google und VoiceRSS ob beides korrekt funktioniert.
2015.08.26 07:56:58 4: Verwende TTS Spracheinstellung: Deutsch
2015.08.26 07:56:58 4: Text2Speech: Bearbeite jetzt den Text: Das ist ein Test mit Google und VoiceRSS ob beides korrekt funktioniert.
2015.08.26 07:56:58 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 6edcf1bccb8a05bb9b99333101399cee.mp3
2015.08.26 07:56:58 4: Text2Speech: Verwende VoiceRSS OnlineResource zum Download
2015.08.26 07:56:58 4: Text2Speech: Hole URL: http://api.voicerss.org/?hl=de-de&f=48khz_16bit_stereo&key=xxxxxxxxx527c048c5a10a81e619xxxxxxx&src=Das%20ist%20ein%20Test%20mit%20Google%20und%20VoiceRSS%20ob%20beides%20korrekt%20funktioniert.
2015.08.26 07:56:59 4: Text2Speech: Schreibe mp3 in die Datei cache/6edcf1bccb8a05bb9b99333101399cee.mp3 mit 85091 Bytes
2015.08.26 07:56:59 4: Text2Speech_CalcMP3Duration: cache/6edcf1bccb8a05bb9b99333101399cee.mp3 hat eine Länge von 11 Sekunden.
2015.08.26 07:56:59 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols cache/6edcf1bccb8a05bb9b99333101399cee.mp3


Ich sehe dort auch einen Dateigrößenunterschied. Google spricht 5sekunden, VoiceRSS 11sekunden.
Bei VoiceRSS kann man aber auch einen Parameter angeben um die Sprechgeschwindigkeit zu beinflussen:
Zitatr -> The speech rate (speed). Allows values: from -10 (slowest speed) up to 10 (fastest speed). Default value: 0 (normal speed). (optional)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hollo am 26 August 2015, 08:51:33
Sehr schön Tobias, dann teste ich mal weiter.

@netbus
Hatte ich oben schon geschrieben; soll laut Tobias aber an der fehlerhaften MP3-Datei liegen.

@Ellert
Das mit dem -bad request- Header hatte ich oben schon gemeldet.
Schön, dass Du das bestätigen konntest; jetzt brauche ich den "Fehler" nicht mehr in meinem System suchen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Toto1973 am 26 August 2015, 09:07:30
Hmm, mit dem neuen Modul läuft bei mir VoiceRSS nicht. In der MP3 Datei steht folgendes:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Header</h2>
<hr><p>HTTP Error 400. The request has an invalid header name.</p>
</BODY></HTML>


Google hingegen scheint nun wieder zu funktionieren ;-)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 26 August 2015, 09:11:10
Das mit dem Bad-Request kann ich aber nicht bestätigen... Noch ist der Header drin... Bitte testet mal.. ev. geht es jetzt durch die Umstellung auf HTTP 1.1
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 26 August 2015, 09:48:33
Mit der Datei von 08:03:32 funktioniert Google. VoiceRSS geht nicht: The request has an invalid header name.

So gehts bei beiden:635                    header      => "agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22m"              # Den Header gemäss abzufragender Daten ändern


Anderes Thema: Bei einem Timeout des BlockingCall bleibt noch irgend etwas übrig, das bei der nächsten Ansage als ARRAY[123456]
angesagt wird. Hat jemand noch eine Idee was da in der Funktion Text2Speech_AbortFn($) noch bereinigt werden muss?

Was macht das splice(@{$hash->{helper}{Text2Speech}}, 0, $tts_done); das in Text2Speech_Done($) ausgeführt wird? Könnte das, das Arrayfragment löschen, was in Text2Speech_AbortFn($) übrig bleibt?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 26 August 2015, 10:33:25
nimm mal bite die Zeile 635 (header) und 634 (httpversion) komplett raus und teste dann nochmal bitte mit Google und VoiceRSS
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 26 August 2015, 10:46:37
Ging heute Nacht und jetzt auch noch.

Hast Du bei Google die Srechgeschwindigkeit verringert?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 26 August 2015, 10:56:01
Ich glaube das man bei Google die Sprechgeschwindigkeit garnicht beeinflussen kann oder ich kenne den Parameter nicht...

Also, nein, habe ich nicht verändert...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 26 August 2015, 16:18:45
Ich habe noch ein wenig probiert. Für meinen Text spricht Google 81 s und VoiceRSS 47 s laut Logfile. Die Geschwindigkeit von VoiceRSS hat mich dazu verleitet, zu glauben, Google wäre langsamer geworden.

Man kann den APIkey mit der Geschwindigkeitsangabe erweitern &r=-3 z.B. r=-3 finde ich etwas weniger hektisch.

VoiceRSS spricht die Umlaute so, wie Text2Speech sie sendet, also ae als ae usw. Google spricht ae als ä usw.

Das hier ist keine Lösung:
    $t =~ s/ä/&auml;/g;
    $t =~ s/ö/&ouml;/g;
    $t =~ s/ü/&uuml;/g;
    $t =~ s/Ä/&Auml;/g;
    $t =~ s/Ö/&Ouml;/g;
    $t =~ s/Ü/&Uuml;/g;
    $t =~ s/ß/&szlig;/g;

Auch das Weglassen der Umlautersetzung ist keine Lösung, das mag Google nicht.

Nach einem BlockingCall-Timeout wird die MP3WRAP-Datei, die ihn erzeugt hat, noch zu Ende gespielt.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Schlimbo am 26 August 2015, 20:10:03
Hallo zusammen,

da jeder Text2Speech Aufruf eine mp3 in dem cash Ordner ablegt und der Order mit der Zeit sehr groß wird, habe
ich das Attribut "TTS_CacheFileDir" auf "/tmp" gesetzt, so werden die Dateien bei einen Neustart meines Raspberry's gelöscht.
Das hat auch den Vorteil,  dass bei einem Backup diese,  von Text2Speech angelegt, audio Datein nicht mit gesichert werden,  weil sie sich nicht im FHEM Verzeichnis befinden.
Jetzt wollte aber "TTS_FileMapping" nutzen und die mp3's in einen separaten Verzeichnis ablegen,
dafür gibt es ja das Attribut "TTS_FileTemplateDir" also habe ich es auf "/opt/fhem/audio" gesetzt.
Beim Speicher bekomme ich jedoch die Meldung "Could not create directory: </opt/fhem/audio>"

Habe mir jetzt mal das Modul angesehen und wie es aussieht muss TTS_FileTemplateDir ein Unterordnung  von TTS_CacheFileDir sein:

elsif ($a[2] eq "TTS_FileTemplateDir") {
    unless(-e ($TTS_CacheFileDir ."/". $value) or mkdir ($TTS_CacheFileDir ."/". $value)) {
      #Verzeichnis anlegen gescheitert
      return "Could not create directory: <$value>";
    }


Warum können die beiden Verzeichnis nicht unabhängig von einander gewählt werden, gibt es dafür eine besondere Grund?

Gruß  Schlimbo
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hollo am 27 August 2015, 08:47:28
Ohne die Zeilen 634/635 gibt VoiceRSS nun eine korrekte MP3 zurück.  ;D

Ich würde für die Geschwindigkeitsanpassung und die "Qualität" jeweils einen separaten Parameter spendieren.
Das ist übersichtlicher, als das an den ApiKey zu klatschen.
Vielleicht braucht man das für einen anderen Dienst auch noch mal.

Mit "44khz_16bit_stereo" und "r=-3" macht das erstmal einen guten Eindruck.

Umlaute ist noch problematisch, ebenso englische Begriffe wie "streaming"; da ist die Google-Engine etwas flexibler.
Aber wir sind auf dem richtigen Weg.  :)

P.S.:
Die Idee und den Einwand von Schlimbo finde ich gar nicht schlecht, dass sollten 2 unabhängig voneinander definierbare Verzeichnisse sein.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 27 August 2015, 12:14:41
neuer Test,
- Quality und Speed als neuer Parameter
- HeaderInfromationen sind nun raus
- Umlautersetzungen nur noch bei Google
- TTS_FileTemplateDir: Wenn es mit einem / beginnt, dann ist es ein absoluter Pfad, sonst ein Unterodner von TTS_CacheFileDir
- TTS_Timeout (optional) hinzugefügt
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 27 August 2015, 13:29:06
Google geht wie vorher auch, und VoiceRSS funktioniert, mit Umlauten, Qualität und Sprechgeschwindigkeit. TTS_FileTemplateDir habe ich nicht getestet.

Es besteht weiterhin das Problem bei zu kurzem Timeout, dass nach dem Aufruf von Text2Speech_AbortFn($) eine Variable übrig bleibt. Diese wird nach jedem Abbruch des Blocking Call bei der nächsten Ansage mit dem Text "ARRAY[Adresse des Arrays]" vor dem eigentlichen Text angesagt.
Meine Perl Anfängerkenntnisse reichen leider nicht aus, um den Fehler weiter zu analysieren.

Man kann das umgehen in dem man in der Datei 98_Text2Speech.pm in der Zeile 847 die 60 auf einen Wert größer als die längste vorkommende Ansagedauer setzt. Das müsste bei jedem Update der Datei 98_Text2Speech.pm gemacht werden.

@Tobias: Vielen Dank für die Erweiterung des Moduls. Wärst Du bereit ein Attribut für den Timeoutwert einzubauen, damit ich nicht nach einem Update den Wert ändern muss?



Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 27 August 2015, 14:48:33
Habe in meinem letzten Post noch einen optionalen Timeout eingebaut...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 27 August 2015, 18:06:06
@Tobias: Danke für den Einbau des Attributs, natürlich funktioniert es. Ich werde das Modul mal im Wirkbetrieb einsetzen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 27 August 2015, 18:23:06
Wenn jetzt soweit alles in Ordnung, checke ich es morgen oder die nächsten Tage ein...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Schlimbo am 28 August 2015, 00:13:27
Hi Tobias,

Danke schon mal für die neue Version, hab gerade etwas damit getestet.
Könnte damit den "TTS_FileTemplateDir" Pfad seperat setzen, jedoch wird beim Versuch eine mp3 abzuspielen
(z.B.: "set myTTS tts :Doorbell:")  nur der Pfad der Datei von der Google Stimme vorgelesen.
Beim Setzt des Attribut "TTS_FileMapping" bekomme ich auch noch die Fehlermeldung:
"file does not exist: </tmp//opt/fhem/audio/Doorbell.mp3>"

Meine Attributes:
TTS_CacheFileDir /tmp
TTS_FileMapping Doorbell:Doorbell.mp3
TTS_FileTemplateDir /opt/fhem/audio

Könntest du das bitte noch mal überprüfen?

Gruß Schlimbo
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 28 August 2015, 08:56:38
neuer Versuch
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Schlimbo am 28 August 2015, 09:43:08
Danke,  mit der Version klappt es.
was mir noch aufgefallen ist,  wenn ich ein "TTS_FileMapping" Wort einzeln verwende
z.B.: "set myTTS tts Doorbell"
wird auch die mp3 abgespielt, diese sollte doch nur abgespielt werden, wenn das Wort zwischen zwei Doppelpunkten sitzt, oder?
bei mehreren Wörtern funktioniert es aber
z.B.: "set myTTS tts Das ist ein Doorbell :Doorbell:"
hier wird das erste  Doorbell vorgelesen und beim zweiten die mp3 abgespielt.

Gruß Schlimbo
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 30 August 2015, 07:01:36
aktuelle Version ist jetzt eingecheckt
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: skyfly24 am 02 September 2015, 11:19:41
Hallo,
tolles Modul und funktioniert super auf meinem Fhem Server.
Nun möchte ich gerne, dass der Ton auf meinem Windows 10 Tablet ausgegeben wird. Fhem habe ich dort mittels Strawberry Perl zum laufen gebracht, um das Tablet als Client zu nutzen. Nun läuft da ja kein Linux, wo ich mplayer und mp3wrap installieren kann. Ich habe zwar mplayer für Windows gefunden, weiß aber nicht, wie ich jetzt eine Soundkarte zuordnen kann bzw. die Einstellungen "define MyTTS Text2Speech hw=..." lauten müssen und ob das überhaupt gehen würde.

Vielen Dank für Eure Hilfe im Voraus.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 02 September 2015, 13:21:28
Beim tablet bist du mit der webviewcontrol app besser beraten

Beitrag kurz gehalten da unterwegs und mobil gesendet

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: skyfly24 am 02 September 2015, 14:29:03
Danke für die schnelle Rückmeldung. Die App scheint wohl leider nur für Android zu sein. Nun habe ich aber ein Windows 10 Tablett (Odys Wintab). Auf diesem lass ich mir das Frontend FTUI anzeigen. Sprachausgaben sind aber nun leider nur am Fhem Server zu hören. Gesucht wird also eine Lösung, um die Sprachausgabe auch auf dem Tablet im WZ zu hören und nicht im Büro.
Grüße und Danke :-)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 02 September 2015, 15:14:39
sorry, da musst du selbst basteln und herumprobieren...
Also entweder ein Android Tablet besorgen oder über einen BluetoothLautsprecher mit BT-Stick am FHEM-Server (oder abgesetztem RasPi) betreiben
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: skyfly24 am 11 September 2015, 00:14:28
Hallo,
versuche die Ausgabe über meinen Bluetooth Lautsprecher hinzubekommen. Spiel ich mp3 mit dem normalen Player in Ubuntu ab bekomme ich den Ton über den Blutooth Lautsprecher.
Verwende ich DEF hw=0.0 dann kommt der Text2Speech Ton nur über die PC Lausprecher. Muss ich hier etwas anderes eingeben. Weiter vorne habe ich was von der Eingabe bluetooth gelesen. Da höre ich jedoch gar nichts.

Was auch laut Anleitung nicht ging war:  /etc/init.d/alsasound restart
Da kommt: -bash: /etc/init.d/alsasound: No such file or directory

Bin für jede Hilfe dankbar.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 11 September 2015, 08:44:12
also in der asound.conf musst du natürlich sagen, welches Device mit dem kürzel "bluetooth" angesprochen werden soll.
Die ganzen Alsa-utils musst du natürlich installieren.

Wenn du feststellst das im Wiki Zwischenschritte fehlen, bitte im Wiki ergänzen...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 08 Oktober 2015, 12:19:38
Ich bekomme seit heute morgen von Google den folgenden Text in der mp3-Datei zurück. Keine Captcha-Abfrage, wie es vor einiger Zeit der Fall war.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content="initial-scale=1"><title>http://www.google.com/</title></head>
<body style="font-family: arial, sans-serif; background-color: #fff; color: #000; padding:20px; font-size:18px;" onload="e=document.getElementById('captcha');if(e){e.focus();}">
<div style="max-width:400px;">
<hr noshade size="1" style="color:#ccc; background-color:#ccc;"><br>


  <div style="font-size:13px;">
   Our systems have detected unusual traffic from your computer network.  Please try your request again later.  <a href="#" onclick="document.getElementById('infoDiv0').style.display='block';">Why did this happen?</a><br><br>
   <div id="infoDiv0" style="display:none; background-color:#eee; padding:10px; margin:0 0 15px 0; line-height:1.4em;">
    This page appears when Google automatically detects requests coming from your computer network which appear to be in violation of the <a href="//www.google.com/policies/terms/">Terms of Service</a>. The block will expire shortly after those requests stop.<br><br>This traffic may have been sent by malicious software, a browser plug-in, or a script that sends automated requests.  If you share your network connection, ask your administrator for help &mdash; a different computer using the same IP address may be responsible.  <a href="//support.google.com/websearch/answer/86640">Learn more</a><br><br>Sometimes you may see this page if you are using advanced terms that robots are known to use, or sending requests very quickly.
   </div><br>

IP address: xx.xxx.xxx.xxx<br>Time: 2015-10-08T10:07:34Z<br>URL: http://www.google.com/<br>
</div>
</div>
</body>
</html>


Edit: Ich bekomme diesen Text auch, wenn ich die URL http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=Guten%20Morgen%2C%20heute%208-10-2015%2C%20kurz%20das%20Wetter. (http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=Guten%20Morgen%2C%20heute%208-10-2015%2C%20kurz%20das%20Wetter.) aus dem Logfile direkt im Firefox öffne. Also wird es wohl nicht am UserAgentString liegen.

Hat noch jemand dieses Problem? Gibt es ggf. schon eine Lösung damit Google wieder Sprache zurück sendet?

Edit: [gelöst] Mit einer neuen WAN-IP-Adresse funktioniert es wieder.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: harway2007 am 08 Oktober 2015, 17:32:12
was kann man tun wenn man eine feste IP hat ?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 08 Oktober 2015, 18:40:30
Leider hat es nur ein paar Mal mit der neuen IP funktioniert. Dann werde ich VoiceRSS umstellen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Toto1973 am 08 Oktober 2015, 19:35:57
Oh Mann, geht das schon wieder los, das es nicht geht?
Warum kann Google das nicht einfach so lassen!?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: P.A.Trick am 08 Oktober 2015, 21:29:45
Mein TTS scheint auch tot zu sein!

Im Log:

2015.10.08 21:28:54 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 610.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: harway2007 am 08 Oktober 2015, 21:55:52
habe mir Voice RSS übergangsweise eingerichtet ..
??? die Ausgabe Qualität ist nicht vergleichbar ..
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Toto1973 am 09 Oktober 2015, 10:57:16
Bis jetzt geht es bei mir noch.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: bmwfan am 11 Oktober 2015, 12:41:47
Wollte auch Text2Speech in Betrieb nehmen, habe mir aber vermutlich den Raspi abgeschossen.  :'(

Hardware: Raspi 2B mit FHEM-Server und CUL
Folgendes durchgeführt:
Nach der Anleitung http://wiki.leupers.net/index.php?title=FHEM/Sprachausgabe den mplayer auf dem Raspi installiert.
Dann sudoers editiert und Ergänzung eingetragen.
Dann im DOS-Format gespeichert.
Meldung kam, ob ich das wirklich möchte (DANGER). Bestätigt.
Wenn ich jetzt neu editieren will oder einen anderen Befehl per sudo absetze (bsp: sudo shutdoen -r 0) kommt immer die Meldung (wobei die Zeile auch manchmal 1 ist):
pi@raspberrypi /etc $ sudo shutdown -r 0
sudo: parse error in /etc/sudoers near line 9
sudo: no valid sudoers sources found, quitting
sudo: Regelwerks-Plugin konnte nicht initialisiert werden

Beachte: Im Beitrag stand sudo vi /... zum Aufruf der sudoers verwenden. Habe ich auch so gemacht und bin erst später, als es nicht ging, darauf gekommen dass ich sudo visudo hätte verwenden sollen!

Habe dann im Netz gesucht und gefunden, dass ich mit pkesec visudo editieren muss. Getan und die eingefügten Zeilen wieder entfernt. Beim Speichern wird wieder gefragt, ob im DOS oder MAC-Format. DOS-Format gewählt und gespeichert.

Allerdings kommt die Fehlermeldung immer noch.

Neuerliche Suche ergab, dass von die sudoers von einem funktionierenden Raspi herüberkopiert werden sollte. Allerdings habe ich das nicht.

Hat jemand noch eine andere Lösung?

Gruß Jürgen

Gelöst:
Fehler war, dass der Editor beim speichern automatisch die Endung .tmp hinter sudoers macht. Dann erschien der genannte Fehler. Beim Speichern muss die Endung gelöscht werden und nur unter sudoers gespeichert werden. Dann gehts. Verwirrend ist, dass mit ls nur der Dateiname ohne Endung angezeigt wird. In dem Verzeichnis war gar keine Datei sudoers.tmp gelistet. Deswegen fiel es mir nicht sofort auf.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: chunter1 am 11 Oktober 2015, 13:17:34
Zitat von: harway2007 am 08 Oktober 2015, 21:55:52
habe mir Voice RSS übergangsweise eingerichtet ..
??? die Ausgabe Qualität ist nicht vergleichbar ..

bei mir geht google jetzt auch nicht mehr  :-\
hast du einen link zur anleitung wie man den voice rss installiert?
oder gibts eine zuverlässige alternative die lokal läuft?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: bmwfan am 11 Oktober 2015, 15:04:11
Sprachausgabe geht prinzipiell. Ich bekomme eingegebene Texte gesprochen.
Wollte jetzt die Ausgabe des Wetterberichtes nach dem Wiki http://www.fhemwiki.de/wiki/Wetter_vorlesen_lassen einrichten. Habe den Code in 99_myUtils.pm kopiert und die Devicenamen entsprechend geändert, bekomme jetzt allerdings folgende Fehlermeldung ins Log. Gesprochen wird nichts. Die Routine Solarlog ist auch in der 99_myUtils.pm enthalten.

2015.10.11 14:24:55 1: PERL WARNING: Constant subroutine main::DEVICE_NAME_TH redefined at /usr/share/perl/5.14/constant.pm line 136.
2015.10.11 14:24:55 1: PERL WARNING: Constant subroutine main::DEVICE_NAME_WEATHER redefined at /usr/share/perl/5.14/constant.pm line 136.
2015.10.11 14:24:55 1: PERL WARNING: Subroutine myUtils_Initialize redefined at ./FHEM/99_myUtils.pm line 23.
2015.10.11 14:24:55 1: PERL WARNING: Subroutine Solarlog redefined at ./FHEM/99_myUtils.pm line 34.
2015.10.11 14:24:55 1: PERL WARNING: Subroutine speakWetterDaten redefined at ./FHEM/99_myUtils.pm line 145.
2015.10.11 14:24:55 1: PERL WARNING: Subroutine speakWetterVorhersage redefined at ./FHEM/99_myUtils.pm line 165.
2015.10.11 14:24:55 1: PERL WARNING: Subroutine prepareNumToSpeak redefined at ./FHEM/99_myUtils.pm line 211.
2015.10.11 14:24:55 1: PERL WARNING: Subroutine rundeZahl0 redefined at ./FHEM/99_myUtils.pm line 219.
2015.10.11 14:24:55 1: PERL WARNING: Subroutine rundeZahl1 redefined at ./FHEM/99_myUtils.pm line 229.
2015.10.11 14:24:55 1: PERL WARNING: Subroutine prepareTextToSpeak redefined at ./FHEM/99_myUtils.pm line 242.
2015.10.11 14:24:55 1: PERL WARNING: Subroutine speak redefined at ./FHEM/99_myUtils.pm line 260.
2015.10.11 14:24:56 4: CUL_Parse: CUL_0 A 14 04 A270 EF38E0 31AE26 00DA2F2543000011A409C4C6 -103
2015.10.11 14:24:57 4: CUL_send:  CUL_0As 0A 04 8002 31AE26 EF38E0 00
2015.10.11 14:25:46 4: CUL_Parse: CUL_0 A 14 85 A270 27238A 31AE26 00D434000000000EF10BB8CA -101
2015.10.11 14:25:46 4: CUL_send:  CUL_0As 0A 85 8002 31AE26 27238A 00
2015.10.11 14:25:47 4: CUL_Parse: CUL_0 A 14 4A 845E 2A8260 000000 855EEC00000500000937FFF8 -78
2015.10.11 14:26:00 1: PERL WARNING: Constant subroutine main::DEVICE_NAME_TTS redefined at /usr/share/perl/5.14/constant.pm line 136.
2015.10.11 14:26:05 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2015.10.11 14:26:05 4: MyTTS: 0 => Die Raumtemperatur betraegt 22 Grad.
2015.10.11 14:26:05 4: MyTTS: 1 => Die Luftfeuchtigkeit liegt bei 47 Prozent.
2015.10.11 14:26:05 4: Verwende TTS Spracheinstellung: Deutsch
2015.10.11 14:26:05 4: Text2Speech: Bearbeite jetzt den Text: Die Raumtemperatur betraegt 22 Grad.
2015.10.11 14:26:05 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: ffc37b83982a3646326820002338da77.mp3
2015.10.11 14:26:05 4: Text2Speech: Verwende Google OnlineResource zum Download
2015.10.11 14:26:05 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=Die%20Raumtemperatur%20betraegt%2022%20Grad.
2015.10.11 14:26:06 4: Text2Speech: Schreibe mp3 in die Datei cache/ffc37b83982a3646326820002338da77.mp3 mit 1772 Bytes
2015.10.11 14:26:06 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 610.
2015.10.11 14:26:06 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 100 cache/ffc37b83982a3646326820002338da77.m


Die Wetterdaten (Raumsensoren) werden anscheinend richtig ausgelesen, aber nach der Ermittelung der Textausgabe über Google scheint etwas nicht zu passen.
Warum werden so viele Routinen redefined? Auch eine alte Routine, die den Solarlog ausliest.

Hat jemand einen Tip?

Gruß Jürgen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hollo am 11 Oktober 2015, 16:45:50
Zitat von: bmwfan am 11 Oktober 2015, 15:04:11
...Hat jemand einen Tip?
Kopier die URL mal in die Adresszeile Deines Browsers; da wirst Du eine Captcha-Abfrage bekommen.
Text-to-Speech per Google-API funktioniert nicht mehr richtig.

Mehr oder weniger einzige Alternative für FHEM ist derzeit VoiceRSS.
Das funktioniert seit einiger Zeit sehr gut; wobei die Sprachausgabe bzgl. Betonung und Textfluss m.E. nicht an Google rankommt. Gerade bei Namen oder "denglisch"-Wörtern ist das nicht der Hit.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: bmwfan am 11 Oktober 2015, 16:50:29
Mit der URL im Browser geht es einwandfrei. Wird deutlich ausgesprochen. Ich vermute der Fehler liegt an den PERL warnings wie redefined und letztendlich an

Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 610.

Da scheint etwas an dem Modul nicht zu stimmen. Leider sind meine PERL-Kenntnisse nicht dementsprechend, dass ich den Fehler selber finden kann. Der Fehler müßte doch aber auch bei anderen, die dieses Modul benutzen, auftreten.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Toto1973 am 11 Oktober 2015, 17:17:46
Ich vermute mal, das es an den verschiedenen Versionen des Moduls liegt, das es bei den einen geht, und bei den anderen nicht!
Vielleicht wäre hier ein Update von FHEM ratsam!?

Wie gesagt, bis jetzt funktioniert Text2Speech mit Google noch einwandfrei bei mir.
Ich werde jeden Morgen mit aktuellem Wetterbericht und Außentemperatur geweckt!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: bmwfan am 11 Oktober 2015, 17:40:32
System wurde heute morgen upgedated. Habe ich Versionen im Github und meine verglichen. Istd er neueste Stand.

@Toto1973: Würdest Du mir Deine 98_Text2Speech mal zumailen? Sende Dir dann ne PM mit der Adresse, wenn Du einverstanden bist.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hollo am 11 Oktober 2015, 18:04:57
Zitat von: bmwfan am 11 Oktober 2015, 16:50:29
Mit der URL im Browser geht es einwandfrei. Wird deutlich ausgesprochen. Ich vermute der Fehler liegt an den PERL warnings wie redefined und letztendlich an

Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 610.
Da scheint etwas an dem Modul nicht zu stimmen...
Dann scroll doch mal ein ein paar Seiten zurück, da findest Du die selben Hinweise.
Guck Dir mal die erzeugte/geladene MP3-Datei an; die ist viel zu klein und hat nur einen Textinhalt mit dem "Fehlerhinweis".
Daher funktioniert auch die Feststellung der "Musik-Länge" im Modul nicht.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: P.A.Trick am 11 Oktober 2015, 19:21:30
Zitat von: Hollo am 11 Oktober 2015, 18:04:57
Dann scroll doch mal ein ein paar Seiten zurück, da findest Du die selben Hinweise.
Guck Dir mal die erzeugte/geladene MP3-Datei an; die ist viel zu klein und hat nur einen Textinhalt mit dem "Fehlerhinweis".
Daher funktioniert auch die Feststellung der "Musik-Länge" im Modul nicht.

Bleibt trotzdem eine nicht initialisierte Variable!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: spiedo am 11 Oktober 2015, 22:05:32
Zitat von: chunter1 am 11 Oktober 2015, 13:17:34
bei mir geht google jetzt auch nicht mehr  :-\

Hi, bei mir ging die Sprachausgabe auch nicht mehr bei neuen Ansagen. Die gespeicherten funktionierten alle noch. Ich habe den Fehler gefunden. Ich mußte mir eine neue IP vom Provider geben lassen.

Über Fritzbox / Internet / Online-Monitor / neu verbinden.

In manchen MP3-Files stand "Our systems have detected unusual traffic from your computer network.  Please try your request again later." Diese habe ich alle gelöscht. Die Größe war bei allen 1.771

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 11 Oktober 2015, 23:33:34
Google funktioniert bei mir mit gleichbleibender WAN-IP-Adresse, aber mit folgender Einschränkung:

Wenn Googletranslate häufig kurz hintereinander aufgerufen wird, dann kommt es zu der beschriebenen Fehlermeldung (http://forum.fhem.de/index.php/topic,18481.msg341846.html#msg341846 (http://forum.fhem.de/index.php/topic,18481.msg341846.html#msg341846))
Nach einiger Zeit funktionieren einzelne Aufrufe von Googletranslate wieder.

Diese Beobachtung stimmt mit der Fehlermeldung überein:
ZitatOur systems have detected unusual traffic from your computer network.  Please try your request again later.

Ich habe das gelöst (zu 90%), indem ich 2 tts Geräte definiert habe, eins für Google und eins für VoiceRSS. Google liest die kurzen Meldungen und VoiceRSS die langen Texte (Wetterberichte, Tagestexte,...)

Kennt hier jemand eine Möglichkeit die WAN-Verbindung über FHEM (auf RasPi) zu trennen und neu zu verbinden, um eine neue IP zu erhalten
(für Windows gibt es ein VBScript: http://www.mengelke.de/Projekte/FritzBoxVBScript#reconnect (http://www.mengelke.de/Projekte/FritzBoxVBScript#reconnect))?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: berrnd am 13 Oktober 2015, 20:32:40
Hallo zusammen,

Google wird ja immer schlimmer ... jetzt ist die Fehlerseite sogar ohne Captcha, nur mit dem Hinweis man soll später nochmal kommen ... ich glaub die drehen da bald ganz den Hahn zu, was schade wäre, Sprachqualitätsmäßig kommt nichts anderes an Google ran...

Ich hab mal die Tipps von https://stackoverflow.com/questions/9893175/google-text-to-speech-api/31791632#31791632 (https://stackoverflow.com/questions/9893175/google-text-to-speech-api/31791632#31791632) ins Modul integriert (HTTPS verwenden, andere/zusätzliche URL-Parameter, User-Agent und Referer-Header mitsenden), siehe Anhang.

Es lief bei mir damit erst mal besser, nach testweise sehr vielen Aufrufen in sehr kurzer Zeit gabs aber auch damit die gleiche Fehlerseite...

Grüße,
Bernd
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 13 Oktober 2015, 23:58:42
Einer alternative wäre die Acapella Demo, wenn man sie anzapfen könnte. Die Stimmen sind überzeugend.

http://www.acapela-group.com/voices/demo/ (http://www.acapela-group.com/voices/demo/)

Leider habe ich nicht die Kenntnisse und Erfahrung, um über einen HTTP POST die Rückgabe zu speichern. Mit der Demo lassen sich keine Dateien herunterladen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hollo am 14 Oktober 2015, 09:11:49
@berrnd
Du hast aber schon die letzten x Seiten gelesen, dass das schon alles probiert wurde und bekannterweise nicht zu einem anhaltenden Erfolg führt !?  ???
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 14 Oktober 2015, 09:36:14
Nach meiner teilweisen Umstallung auf VoiceRSS habe ich eine holperige Datumsansage.

Google hat bei dem Text "21-12-2015" das Datum flüssig gelesen. VioceRSS liest dieses Format nicht, sondern die normale deutsche Schreibung "21.12.2015" und das sogar abhängig vom Satzbau. Also "Am 21.12.2015" als "Am einundzwanzigsten zwölften ..." und "Heute ist der 21.12.2015" als "... einundzwanzigste zwölfte ...".

Leider splittet Text2Speech den Text beim Punkt in Sätze auf. Die Wiedergabe ist dann "einundzwanzigster" pause "zwölfter"...

Bevor ich anfange das Datum über hashes in Worte zu fassen, würde ich gern wissen ob schon jemand eine einfachere Lösung hat?

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 14 Oktober 2015, 12:21:05
Zitat von: berrnd am 13 Oktober 2015, 20:32:40
Es lief bei mir damit erst mal besser, nach testweise sehr vielen Aufrufen in sehr kurzer Zeit gabs aber auch damit die gleiche Fehlerseite...

Deswegen auch die caches bei immer wiederkehrenden gleichbleibenden Sätzen...
zb, Status Alarmanlage, Müllabfuhr, Status Fenster/Türen etc

Ok, bei Wettervorhersagen bringt das nix
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: berrnd am 14 Oktober 2015, 15:56:42
@Hollo
Klar hab ich das gelesen - und gesehen, dass eben noch nicht alles ausprobiert wurde, was in verlinktem Beitrag stand.

Aber ja, auch meine Änderungen haben im Endeffekt nicht wirklich was gebracht, auch bei mir blieb heute morgen wieder alles stumm.
Ich hab nun einen neue (offline) Engine eingebaut (SVOX-PICO, die aus Android), Installation (auf dem Raspberry Pi) siehe z. B. hier (http://blogs.uni-due.de/zim/2014/03/21/sprich-freund-und-tritt-ein-sprachausgabe-fur-den-raspberry-pi-mit-espeak-und-svox-pico/) oder auch in der "Device specific help".

Anbei das geänderte Modul sowie auch "Sprachproben".
Attribut "TTS_Ressource" dann auf "pico" setzen.
Caching, etc. läuft wie mit den anderen Engines.

Ich finde die hört sich ganz gut an - auch dass alles offline passiert gefällt mir besser, alles zu Google zu schicken was ich mir so erzählen lasse wir mir schon länger ein Dorn im Auge...

Edit 15.10.2015 14:12
Im Anhang war die falsche 98_Text2Speech.pm, jetzt korrigiert
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: chunter1 am 15 Oktober 2015, 09:24:21
@berrnd
Danke für das Update!
Werds gleich heute Abend ausprobieren.
Die online-Methode über Google war mir auch schon immer ein Dorn im Auge!
Primär wegen der Tatsache, dass Google, NSA, BND, GCHQ etc. eh schon genug über uns wissen... und zweitens weil be fehlender Internetverbindung sonst keine wichtigen Sprachausgaben möglich sind.

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 15 Oktober 2015, 12:53:36
Zur Zeit ist mit dem Modul 98_Text2Speech.pm nicht eindeutig zu erkennen, wann das Abspielen eines Textes beendet ist.

Man kann das mit dem sich aktualisierenden Reading "duration" nicht eindeutig feststellen, da beim Aktualisieren nicht bekannt ist, ob es die letzte Aktualisierung ist.

Mein Vorschlag ist, dem Modul ein Reading "playing" hinzuzufügen. Dieses Reading wird 1, wenn Text abgespielt wird. Es wird 0, wenn das Abspielen beendet wird.

Dieses Reading kann z.B. dazu dienen, dass
- spontane Ansagen blockiert werden, solange Text abgespielt wird
- eine nachfolgende Ansage gestartet wird
- Musik- oder Videowiedergabe pausiert, solange Text abgespielt wird.

Die offizielle Version wäre durch folgende Zeilen zu ergänzen:
nach Zeile 417
readingsSingleUpdate($hash, "playing", "1", 1);

und nach Zeile 865
  } else {
    readingsSingleUpdate($hash, "playing", "0", 1);



@Tobias: Würdest Du, falls nichts dagegen spricht, die Änderung auf den Weg bringen?

Ich habe die geänderte Datei mal angehängt.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 15 Oktober 2015, 14:00:58
Hi berrnd,

leider enthält das angehängte Modul bei dir keine "pico" Ressource. Hast du die falsche angehangen?

" TTS_Ressource:ESpeak,". join(",", sort keys %ttsHost).
Ich hätte soetwas erwartet:
" TTS_Ressource:ESpeak,SVOX-PICO,". join(",", sort keys %ttsHost).

Werde ich natürlich ins Repo übernehmen wenn es funktioniert. Wärst du so nett und würdest den Wiki Artikel überarbeiten mit den Installtionsmaßnahmen zu Pico?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: berrnd am 15 Oktober 2015, 14:19:44
Hi Tobias, sorry, da hab ich wohl tatsächlich die falsche Datei erwischt, dort ist ja gar nichts von meinen Änderungen drin - hier nochmal im Anhang und ich habs auch in meinem Beitrag oben korrigiert um Verwirrung zu vermeiden.

Wiki kann ich gerne ergänzen, wobei ich mir zuerst noch einen Account geben lassen muss - und man müsste das dann mal noch auf einem "normalen" Linux-System ausprobieren, ich habs bisher nur wie in verlinktem Beitrag beschrieben mit dem vorkompilierten ARM-Paket auf einem Raspberry Pi probiert, sonst sollten theoretisch die "libttspico-utils" reichen...

Sobald ich das getestet hab ergänz ich das Wiki und auch die Commandref im Modul.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 15 Oktober 2015, 14:31:23
Ich habe mal ein paar texteinrückungen vorgenommen, pico geändert auf SVOX-pico und den Änderungswunsch (Reading: playing) eingebaut. Bitte mit diesem Modul hier weitertesten.

Hast du auch berücksichtigt das direkte mp3 Dateien angegeben werden können bzw Filemappings angegeben sein können? Funktioniert das auch mit SVOX-pico?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: berrnd am 15 Oktober 2015, 16:23:59
Direkte Dateien sowie auch Mappings funktionieren mit SVOX-pico nicht, mit Espeak übrigens auch nicht.

Sicher wäre es gut wenn man jetzt nicht alles aus dem Google-/VoiceRSS-Teil kopiert sondern ein wenig umbaut - leider bin ich in Perl noch nicht wirklich Zuhause (komme eher aus der .Net-Welt) sodass ich das wenn dann mal nur mit viel Zeit hinbekomme ... falls zwischenzeitlich niemand will...  :D

Zwischenzeitlich hab ich das ganze mal auf einem Debian x64 System ausprobiert, dort reichen die libttspico-utils.
Das vorkompilierte ARM-Paket wollte ich jetzt nicht ungefragt in die Hilfe bzw. ins Wiki übernehmen, deswegen hab ich beim Autor mal angefragt, sobalds da eine Antwort gibt ergänze ich dann dort noch die Infos.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: harway2007 am 15 Oktober 2015, 19:22:33
bei mir steht nach dem Download der letzten Text2Speech
"SVOX-picoGoogle" in der TTS_Ressource
und es findet keine Sprachausgabe statt..
wenn ich es mit der hand auf "SVOX-pico" setzte
folgender Logfile Fehler:
2015.10.15 19:15:59 4: MyTTS_pico: Auflistung der Textbausteine nach Aufbereitung:
2015.10.15 19:15:59 4: MyTTS_pico: 0 => Hallo 1,;
2015.10.15 19:15:59 4: Verwende TTS Spracheinstellung: Deutsch
2015.10.15 19:15:59 4: Text2Speech:pico2wave --lang=de-DE --wave="cache/4d0104e7dbee96bfa09bf7554bc8b39b.wav" "Hallo 1,;"
2015.10.15 19:15:59 4: Text2Speech:lame "cache/4d0104e7dbee96bfa09bf7554bc8b39b.wav" "cache/4d0104e7dbee96bfa09bf7554bc8b39b.mp3"
sh: 1: lame: not found

auf Betriebsystemebenen mit :
pico2wave --lang=de-DE --wave=/tmp/test.wav "Hallo 1 "; play /tmp/test.wav;rm /tmp/test.wav
höre ich die Ausgabe..
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: berrnd am 15 Oktober 2015, 19:37:14
Du müsstest lame noch installieren, steht auch schon in der im Modul integrierten Commandref:
ZitatInstallation of the engine and lame is required [...]:
sudo apt-get install libpopt-dev lame

Mit lame werden die wav-Dateien in mp3 umgewandelt, das Modul ermittelt die Länge der Wiedergabe bzw. Datei, und das ist aktuell nur für mp3 implementiert...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: harway2007 am 15 Oktober 2015, 19:46:16
 ;D ;D ;D ;D ;D tausend mal entschuldigung ... stimmt !!!!!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: daschauher am 15 Oktober 2015, 20:11:05
Hallo,  bei mir funktioniert es leider auch nicht.
Habe das hier im log gefunden. Hat du ne Ahnung was ich da machen kann?
2015.10.15 20:05:26 4: Text2Speech: Verwende SVOX-picoGoogle OnlineResource zum Download
2015.10.15 20:05:26 4: Text2Speech: Hole URL: http://&Die%20Entscheidung%20ob%20gel%C3%BCftet%20wird%20liegt%20bei%20dir.%2C%3B
2015.10.15 20:05:26 3: Text2Speech: Fehler beim abrufen der Daten von SVOX-picoGoogle Translator
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: berrnd am 15 Oktober 2015, 20:26:04
Auch bei dir steht im Attribut "TTS_Ressource" fälschlicherweise "SVOX-picoGoogle" statt nur "SVOX-pico", bitte manuell anpassen, ansonsten hab ich das auch schon korrgiert, meinen aktuellen stand findet ihr hier (https://github.com/berrnd/fhem-mirror/blob/feature-Text2Speech-add-svox-pico/fhem/FHEM/98_Text2Speech.pm).
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: chunter1 am 15 Oktober 2015, 20:28:49
Funktioniert das neue Update eigentlich auch wie bisher mit der Squeezebox oder geht die Sprachausgabe nur via soundcard?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: daschauher am 15 Oktober 2015, 21:00:20
Ok danke, das habe ich geändet...aber es funktioniert immer noch nicht.
hier ist wieder der log:
2015.10.15 20:46:04 0: Server started with 11 defined entities (version $Id: fhem.pl 9420 2015-10-10 16:17:04Z rudolfkoenig $, os linux, user fhem, pid 2102)
2015.10.15 20:46:25 1: PERL WARNING: Use of uninitialized value within %ttsAPIKey in numeric gt (>) at ./FHEM/98_Text2Speech.pm line 395.
2015.10.15 20:46:25 1: PERL WARNING: Use of uninitialized value within %ttsUser in numeric gt (>) at ./FHEM/98_Text2Speech.pm line 396.
2015.10.15 20:48:06 1: PERL WARNING: Use of uninitialized value $MaxChar in numeric le (<=) at ./FHEM/98_Text2Speech.pm line 564.
2015.10.15 20:48:06 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2015.10.15 20:48:06 4: MyTTS: 0 => Im Bügel Zimmer darf das Fenster gerne geöffnet werden.,;
2015.10.15 20:48:06 4: MyTTS: 1 => Die Luftfeuchtigkeit beträgt 68 Prozent.,;
2015.10.15 20:48:06 4: MyTTS: 2 => Die Entscheidung ob gelüftet wird liegt bei dir.,;
2015.10.15 20:48:06 4: Verwende TTS Spracheinstellung: Deutsch
2015.10.15 20:48:06 4: Text2Speech:pico2wave --lang=Deutsch --wave="cache/47c17c870d370286c0eace8d62eae113.wav" "Im Bügel Zimmer darf das Fenster gerne geöffnet werden.,;"
Unknown language: Deutsch
Valid languages:
en-US
en-GB
de-DE
es-ES
fr-FR
it-IT

Usage: pico2wave <words>
  -w, --wave=filename     Write output to this WAV file
  -l, --lang=lang         Language (default: "en-US")

Help options:
  -?, --help              Show this help message
      --usage             Display brief usage message
2015.10.15 20:48:06 4: Text2Speech:lame "cache/47c17c870d370286c0eace8d62eae113.wav" "cache/47c17c870d370286c0eace8d62eae113.mp3"
Could not find "cache/47c17c870d370286c0eace8d62eae113.wav".
2015.10.15 20:48:06 4: Verwende TTS Spracheinstellung: Deutsch
2015.10.15 20:48:06 4: Text2Speech:pico2wave --lang=Deutsch --wave="cache/6def4cdfc9173d3e0b7c02c2b9ff460f.wav" "Die Luftfeuchtigkeit beträgt 68 Prozent.,;"
Unknown language: Deutsch
Valid languages:
en-US
en-GB


Google habe ich lange Zeit verwendet. VoiceRSS habe ich gerade nochmal ausprobiert, das funktioniert noch. Aber wenn ich

Mit

sudo amixer cset numid=3 1
pico2wave --lang=de-DE --wave=/tmp/test.wav "hallo welt hier spricht der räspberri pei"; play /tmp/test.wav;rm /tmp/test.wav

können Sie die Sprachausgabe testen.


das hier versuche funktioniert es auch schon nicht. hier kommt dann folgende fehlermeldung:

-bah: play: Kommando nicht gefunden
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: chunter1 am 15 Oktober 2015, 21:15:29
blöde frage...
was muss ich bei meiner Squeezebox jetzt beim "ttslink" eintragen?

ttslink   http://translate.google.com/translate_tts?ie=UTF-8&tl=<LANG>&q=<TEXT>&client=t&prev=input

muss sonst noch was angepasst werden?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: berrnd am 15 Oktober 2015, 21:33:20
Zitat von: daschauher am 15 Oktober 2015, 21:00:20
Ok danke, das habe ich geändet...aber es funktioniert immer noch nicht.
hier ist wieder der log:
2015.10.15 20:46:04 0: Server started with 11 defined entities (version $Id: fhem.pl 9420 2015-10-10 16:17:04Z rudolfkoenig $, os linux, user fhem, pid 2102)
2015.10.15 20:46:25 1: PERL WARNING: Use of uninitialized value within %ttsAPIKey in numeric gt (>) at ./FHEM/98_Text2Speech.pm line 395.
2015.10.15 20:46:25 1: PERL WARNING: Use of uninitialized value within %ttsUser in numeric gt (>) at ./FHEM/98_Text2Speech.pm line 396.
2015.10.15 20:48:06 1: PERL WARNING: Use of uninitialized value $MaxChar in numeric le (<=) at ./FHEM/98_Text2Speech.pm line 564.
2015.10.15 20:48:06 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2015.10.15 20:48:06 4: MyTTS: 0 => Im Bügel Zimmer darf das Fenster gerne geöffnet werden.,;
2015.10.15 20:48:06 4: MyTTS: 1 => Die Luftfeuchtigkeit beträgt 68 Prozent.,;
2015.10.15 20:48:06 4: MyTTS: 2 => Die Entscheidung ob gelüftet wird liegt bei dir.,;
2015.10.15 20:48:06 4: Verwende TTS Spracheinstellung: Deutsch
2015.10.15 20:48:06 4: Text2Speech:pico2wave --lang=Deutsch --wave="cache/47c17c870d370286c0eace8d62eae113.wav" "Im Bügel Zimmer darf das Fenster gerne geöffnet werden.,;"
Unknown language: Deutsch
Valid languages:
en-US
en-GB
de-DE
es-ES
fr-FR
it-IT

Usage: pico2wave <words>
  -w, --wave=filename     Write output to this WAV file
  -l, --lang=lang         Language (default: "en-US")

Help options:
  -?, --help              Show this help message
      --usage             Display brief usage message
2015.10.15 20:48:06 4: Text2Speech:lame "cache/47c17c870d370286c0eace8d62eae113.wav" "cache/47c17c870d370286c0eace8d62eae113.mp3"
Could not find "cache/47c17c870d370286c0eace8d62eae113.wav".
2015.10.15 20:48:06 4: Verwende TTS Spracheinstellung: Deutsch
2015.10.15 20:48:06 4: Text2Speech:pico2wave --lang=Deutsch --wave="cache/6def4cdfc9173d3e0b7c02c2b9ff460f.wav" "Die Luftfeuchtigkeit beträgt 68 Prozent.,;"
Unknown language: Deutsch
Valid languages:
en-US
en-GB


Vermutlich hast du "TTS_Language" auf "Deutsch" gesetzt, für SVOX-pico muss das "de-DE" sein (oder einfach weglassen, de-DE ist Default).
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: daschauher am 15 Oktober 2015, 21:45:15
Ja das war es  ;)

Vielen Dank für die hilfe!
Ich bin ein großer Fan von deinem TTS Modul. Wirklich tolle und sehr nützliche Arbeit. Das hier ist schon die beste Qualität nach Google und es ist auch super dass es offline funktioniert. Dennoch war Google erste Sahne und absolut unschlagbar. Wäre wirklich schade wenn Google da für immer nen Riegel vorgeschoben hätte.

viele Grüsse
Markus
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: chunter1 am 16 Oktober 2015, 17:04:39
Zitat von: chunter1 am 15 Oktober 2015, 21:15:29
blöde frage...
was muss ich bei meiner Squeezebox jetzt beim "ttslink" eintragen?

ttslink   http://translate.google.com/translate_tts?ie=UTF-8&tl=<LANG>&q=<TEXT>&client=t&prev=input

muss sonst noch was angepasst werden?

kann mir da wer helfen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: chunter1 am 17 Oktober 2015, 17:58:13
ich bekomms irgendwie nicht zum laufen.
kann mir bitte wer helfen auf meinem squeezeboxradio die neue sprachausgabe zu erhalten?
was für schritte muss ich durchführen damit es wieder wie zuvor mit "set RADIO sayText Hallo!" funktioniert?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: xhabit am 17 Oktober 2015, 20:33:57
 Zu dem Thema mit dem pico2wave. Es funktioniert bei mir, von der Sprachqualität war ich überrascht gegenüber VoiceRSS ist pico2wave meiner Meinung nach um einiges besser. Good Job!!! Allerdings erzählt mir die Liebe immer irgendwelche Zahlen und Raute bevor sie mit dem eigentlichen
Text anfängt. Auch mein eigentlicher "Bell Sound" vor jeder Ansage ist nicht zu hören.

Lieber Gruß,
Mario
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mrbreil am 18 Oktober 2015, 10:13:06
@chunter1

Da du ja hier so schön ignoriert wirst.
Dieses Modul funktioniert nicht mit der Squeezebox nur mit einer eingebauten Soundkarte.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 18 Oktober 2015, 10:24:44
Zitat von: xhabit am 17 Oktober 2015, 20:33:57
Allerdings erzählt mir die Liebe immer irgendwelche Zahlen und Raute bevor sie mit dem eigentlichen
Text anfängt.
Hat der Text Umlaute? Dann könnte es an der Sprach und Zeichensatz Einstellung liegen. Das wurde irgendwo, glaube weiter vorne, behandelt.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 18 Oktober 2015, 10:29:04
Zitat von: mrbreil am 18 Oktober 2015, 10:13:06
@chunter1

Da du ja hier so schön ignoriert wirst.
Dieses Modul funktioniert nicht mit der Squeezebox nur mit einer eingebauten Soundkarte.
Ich glaube chunter1 ist hier im falschen Thread er braucht das modifizierte Modul für Squeezebox.
Lesen im Forum ist ja aufwendig, einfach irgendwo Fragen stellen viel einfacher  ::)

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: chunter1 am 18 Oktober 2015, 11:00:20
@mrbreil:
  Danke für den hilfreichen Hinweis!

@Otto123
  Mach Joga dann wirst du wieder ausgeglichen/freundlich ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: xhabit am 18 Oktober 2015, 12:32:23
@chunter1 es steht doch alles hier. Kopiere Dir die letzte 98_Text2... aus dem GitHub auf Deinen Server und installiere die hier im Forum geposteten
Softwarepakete. und schon geht das ganze. Wie das mit Deiner "Squeezebox" geht kann ich Dir auch nicht sagen. Ich weiss nicht mal was das ist. Oder Du wartest ab bis es ein offizielles Update gibt.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Toto1973 am 18 Oktober 2015, 13:04:11
http://forum.fhem.de/index.php/topic,17667.0.html (http://forum.fhem.de/index.php/topic,17667.0.html)
Über den Link bekommt man alles über die Squeezbox. Weiter hinten im Thread wird auch erklärt, wie Text2Speech funktioniert. man hätte nur mal die Suchfunktion bemühen müssen!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: boke am 18 Oktober 2015, 13:05:24
Hallo,
das Modul ist echt cool, habe es mit Google getestet, geht aber leider nur der erste Satz.
Jetzt wollte ich pico teste, bekomme aber immer diese Fehlermeldung:


sudo pico2wave --lang=de-DE --wave=/tmp/test.wav "hallo welt hier spricht der räspberri pei"; play /tmp/test.wav;rm /tmp/test.wav
pico2wave: error while loading shared libraries: libttspico.so.0: cannot open shared object file: No such file or directory
-bash: play: command not found
rm: cannot remove `/tmp/test.wav': No such file or directory

Kann mir bitte jemand sagen was ich falsch mache?
Viele Grüße!

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: xhabit am 18 Oktober 2015, 13:43:55
Nix, machst Du falsch ... Richte es in FHEM ein und es geht.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: boke am 18 Oktober 2015, 14:09:13
Danke, hab es eingebunden, und bekomme jetzt:

2015.10.18 14:06:52.824 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2015.10.18 14:06:52.824 4: MyTTS: 0 => Test test test,;
2015.10.18 14:06:52.846 4: Verwende TTS Spracheinstellung: de-DE
2015.10.18 14:06:52.848 4: Text2Speech:pico2wave --lang=de-DE --wave="cache/2dd28004386f7fd0e31d86803c4c820f.wav" "Test test test,;"
sh: 1: pico2wave: not found
2015.10.18 14:06:52.864 4: Text2Speech:lame "cache/2dd28004386f7fd0e31d86803c4c820f.wav" "cache/2dd28004386f7fd0e31d86803c4c820f.mp3"
Could not find "cache/2dd28004386f7fd0e31d86803c4c820f.wav".

keinen Ton  :'(
Viele Grüße!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mrbreil am 18 Oktober 2015, 14:11:35
@chunter1

Schau mal hier (http://forum.fhem.de/index.php/topic,17667.msg346212.html#msg346212) ChrisD hat da mal wieder was gezaubert. Bin gerade noch am testen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: berrnd am 18 Oktober 2015, 16:48:16
Zitat von: boke am 18 Oktober 2015, 14:09:13
2015.10.18 14:06:52.848 4: Text2Speech:pico2wave --lang=de-DE --wave="cache/2dd28004386f7fd0e31d86803c4c820f.wav" "Test test test,;"
sh: 1: pico2wave: not found

Das sieht doch eindeutig danach aus dass die Abhängigkeiten nicht installiert wurden, siehe Commandref.


Zitat von: xhabit am 17 Oktober 2015, 20:33:57
Allerdings erzählt mir die Liebe immer irgendwelche Zahlen und Raute bevor sie mit dem eigentlichen
Text anfängt. Auch mein eigentlicher "Bell Sound" vor jeder Ansage ist nicht zu hören.

Lokale Dateien funktionieren mit SVOX-pico leider (noch) nicht, deswegen wird dir da derzeit mehr oder weniger der Dateipfad erzählt statt die Datei wiedergegeben...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: boke am 18 Oktober 2015, 18:35:27
Hallo,
habt ihr das compiliert, oder einfach irgendwoher installiert?
Viele Grüße!
Dennis
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Toto1973 am 19 Oktober 2015, 10:22:58
Ich hatte auch das Problem, das es bei mir nicht funktioniert hat.
Nach dem ich dann das Paket lame auf dem raspberry nachinstalliert habe, geht es nun.

Man sollte vielleicht das Modul so umbauen, das bei TTS_Language die Auswahl abhängig vom verwendeten TTS_Ressource, die Sprachen angeboten werden. Bzw, das wenn Deutsch eingestellt ist, intern an SVOX-pico die Sprache de_DE weitergeleitet wird!
Damit SVOX-pico funktioniert, muss ja attr MyTTS TTS_Language de-DE gesetzt werden. de-DE erscheint nämlich nicht in der Auswahl!
Will man hingegen Google verwenden, muss man TTS_Language wieder auf Deutsch setzten.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: berrnd am 19 Oktober 2015, 14:01:17
Ich hab die Integration von SVOX-pico nun aus meiner Sicht fertiggestellt, ich hoffe ich hab sonst nichts kaputt gemacht - war doch ein größerer Umbau und meine Perl-Kenntnisse sind nach wie vor nicht die größten... :D

Wer testen mag, der aktuelle Stand ist nach wie vor hier (https://github.com/berrnd/fhem-mirror/blob/feature-Text2Speech-add-svox-pico/fhem/FHEM/98_Text2Speech.pm) zu finden.
Wiki ist auch mit Installationshinweisen ergänzt, eine Übersicht mit meine Änderungen Schritt für Schritt für die Integration gäbs z. B. hier (https://github.com/mhop/fhem-mirror/compare/master...berrnd:feature-Text2Speech-add-svox-pico).
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 19 Oktober 2015, 17:10:28
Ich habs mal ausprobiert. Funktioniert nach Befolgen der Installationsanleitung aus dem Wiki auf Anhieb.

Mit dem Download der 98_Text2Speech hatte ich ein Problem, es kam eine über 400 Kb große Datei. Ich habe dann den Text von der Webseite kopiert und die 98_Text2Speech.pm kopiert

Sie spricht für meinen Geschmack etwas hektisch.
Gibt es Möglichkeiten die Sprechgeschwindigkeit einzustellen?

@bernd: Danke für die Integration SVOX-pico.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: boke am 19 Oktober 2015, 22:19:42
Hallo,
ich denke ich habe Google wieder zum Laufen gebracht, bitte probiert es mal aus.
Hatte einen Hinweis im Internet gefunden und den mal eingebaut. Habe die Version vom Berrnd/master Branch genommen.
Vieleicht könnt ihr es ja einchecken, wenn es funktioniert.
Finde das Modul echt klasse! Sehr gute Arbeit!
Vielen Dank!


Titel: Antw:Neues Modul: Text2Speech
Beitrag von: berrnd am 19 Oktober 2015, 22:43:16
Zitat von: Ellert am 19 Oktober 2015, 17:10:28
Sie spricht für meinen Geschmack etwas hektisch.
Gibt es Möglichkeiten die Sprechgeschwindigkeit einzustellen?

Danke fürs testen, leider hat pico2wave dafür keinen Parameter...

Zitat von: boke am 19 Oktober 2015, 22:19:42
Hallo,
ich denke ich habe Google wieder zum Laufen gebracht, bitte probiert es mal aus.
Hatte einen Hinweis im Internet gefunden und den mal eingebaut. Habe die Version vom Berrnd/master Branch genommen.
Vieleicht könnt ihr es ja einchecken, wenn es funktioniert.

Super! "client=tw-ob" an die URL anzuhängen scheint wirklich zu helfen, ich hab eben testweise 15 Anfragen innerhalb von 1 Minute gestartet, alles einwandfrei, das hat so vorher nie funktioniert...
Hab auch den Stand mit SVOX-pico entsprechend aktualisiert.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hollo am 20 Oktober 2015, 13:15:13
Zitat von: berrnd am 19 Oktober 2015, 22:43:16
...Super! "client=tw-ob" an die URL anzuhängen scheint wirklich zu helfen, ich hab eben testweise 15 Anfragen innerhalb von 1 Minute gestartet, alles einwandfrei, das hat so vorher nie funktioniert...
Abwarten. Für kurze Zeit hat jede Änderung bei den meisten funktioniert.
Angeblich ist es völlig Wurscht, was hinter dem &client= steht (sowas ist ja auch schon seit Monaten drin); evtl. ist das &client=tw aber auch für Twitter und wird daher anders behandelt!?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 20 Oktober 2015, 13:36:31
Zitat von: Hollo am 20 Oktober 2015, 13:15:13
Abwarten. Für kurze Zeit hat jede Änderung bei den meisten funktioniert.
Angeblich ist es völlig Wurscht, was hinter dem &client= steht (sowas ist ja auch schon seit Monaten drin); evtl. ist das &client=tw aber auch für Twitter und wird daher anders behandelt!?

Könnte man dann nicht eine Zufallszeichenkette einbauen? Dann wäre jeder Aufruf individuell.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Gator99 am 20 Oktober 2015, 22:04:47
Zitat von: boke am 19 Oktober 2015, 22:19:42
Hallo,
ich denke ich habe Google wieder zum Laufen gebracht, bitte probiert es mal aus.

Hi,
ich habe heute verzweifelt versucht Text2Speech ans laufen zu bekommen. Mit der Version vom Feed hat es mit google seit dem ersten Versuch nicht funktioniert.
Mit der von boke geposteten Version ging es auf Anhieb...

Nur falls es jemanden weiter hilft.

Grüße
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: daschauher am 27 Oktober 2015, 15:04:04
ZitatHallo,
ich denke ich habe Google wieder zum Laufen gebracht, bitte probiert es mal aus.
Hatte einen Hinweis im Internet gefunden und den mal eingebaut. Habe die Version vom Berrnd/master Branch genommen.
Vieleicht könnt ihr es ja einchecken, wenn es funktioniert.

also bei mir funktioniert es seit dem wieder tadellos

Vielen Dank für die Lösung!!
(auch wenn es vielleicht nicht für immer ist)

grüsse
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Panik am 28 Oktober 2015, 17:59:55
@boke:

Genial! Danke!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 28 Oktober 2015, 18:32:38
Danke, funktioniert bei mir auch wieder!

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 28 Oktober 2015, 18:57:47
Google Bugfix eingecheckt. Bitte testen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Rince am 28 Oktober 2015, 19:26:43
Ab morgen über ein normales Update?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 29 Oktober 2015, 12:18:10
Google funktioniert wieder mit mehrmaligen kurz hintereinander liegenden Anfragen.

Und: SVOX-pico und das Attribut playing sind auch wieder enthalten.

SVOX-pico kennt "Deutsch" nicht mehr als Sprachkennzeichnung und kann nicht in den Cache schreiben, siehe Protokollauszug:
2015.10.29 12:00:57 4: VoiceRSS: Auflistung der Textbausteine nach Aufbereitung:
2015.10.29 12:00:57 4: VoiceRSS: 0 => Guten Morgen,;
2015.10.29 12:00:57 4: VoiceRSS: 1 => heute,;
2015.10.29 12:00:57 4: VoiceRSS: 2 => am neun
2015.10.29 12:00:57 4: VoiceRSS: 3 => undzwanzigsten zehnten 2015,;
2015.10.29 12:00:57 4: VoiceRSS: 4 => kurz das Wetter.,;
2015.10.29 12:00:57 4: VoiceRSS: 5 => Es ist teilweise wolkig,;
2015.10.29 12:00:57 4: VoiceRSS: 6 => mit Temperaturen zwischen 6
2015.10.29 12:00:57 4: VoiceRSS: 7 => und 13 Grad.,;
2015.10.29 12:00:57 4: VoiceRSS: 8 => Aktuell sind draußen 4komma5 Grad bei 99 Prozent Feuchte
2015.10.29 12:00:57 4: VoiceRSS: 9 => und 1015 millibar Luftdruck,;
2015.10.29 12:00:57 4: VoiceRSS: 10 => Tendenz steigend.,;
2015.10.29 12:00:57 4: Verwende TTS Spracheinstellung: Deutsch
2015.10.29 12:00:57 4: Text2Speech:pico2wave --lang=Deutsch --wave="cache/3b4fa8861de82fed0a417c487dc854fa.wav" "Guten Morgen,;"
Unknown language: Deutsch
Valid languages:
en-US
en-GB
de-DE
es-ES
fr-FR
it-IT

Usage: pico2wave <words>
  -w, --wave=filename     Write output to this WAV file
  -l, --lang=lang         Language (default: "en-US")

Help options:
  -?, --help              Show this help message
      --usage             Display brief usage message
2015.10.29 12:00:58 4: Text2Speech:lame "cache/3b4fa8861de82fed0a417c487dc854fa.wav" "cache/3b4fa8861de82fed0a417c487dc854fa.mp3"
Could not find "cache/3b4fa8861de82fed0a417c487dc854fa.wav".
2015.10.29 12:00:58 4: Verwende TTS Spracheinstellung: Deutsch
2015.10.29 12:00:58 4: Text2Speech:pico2wave --lang=Deutsch --wave="cache/f42a448e54b7f72431f5e8b0ee893ecb.wav" "heute,;"
Unknown language: Deutsch
Valid languages:
en-US
en-GB
de-DE
es-ES
fr-FR
it-IT

Usage: pico2wave <words>
  -w, --wave=filename     Write output to this WAV file
  -l, --lang=lang         Language (default: "en-US")

Help options:
  -?, --help              Show this help message
      --usage             Display brief usage message


Am 19.10. funktionierte SVOX-pico einwandfrei, mit der Datei von hier: http://forum.fhem.de/index.php/topic,18481.msg346776.html#msg346776 (http://forum.fhem.de/index.php/topic,18481.msg346776.html#msg346776)

VoiceRSS geht auch noch.

ESpeak habe ich nicht installiert.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 29 Oktober 2015, 13:20:33
Version von Berrnd,
Ist das jetzt die korrekte Version?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 29 Oktober 2015, 14:30:37
Zitat von: Tobias am 29 Oktober 2015, 13:20:33
Version von Berrnd,
Ist das jetzt die korrekte Version?

Ja, Google,VoiceRSS und SVOX-pico funktionieren.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: slupus am 29 Oktober 2015, 14:59:10
Zitat von: Tobias am 29 Oktober 2015, 13:20:33
Version von Berrnd,
Ist das jetzt die korrekte Version?
Habe nur Google getestet (Cache vorher nochmals gelöscht) und es funktioniert wieder. Vielen Dank schon Mal fürs Einchecken!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 30 Oktober 2015, 11:12:29
Zitat von: Hollo am 20 Oktober 2015, 13:15:13
Abwarten. Für kurze Zeit hat jede Änderung bei den meisten funktioniert.
Angeblich ist es völlig Wurscht, was hinter dem &client= steht (sowas ist ja auch schon seit Monaten drin); evtl. ist das &client=tw aber auch für Twitter und wird daher anders behandelt!?
Ich habe ein paar Strings ausprobiert, um diese Möglichkeit abzuklären:
Zitat von: Ellert am 20 Oktober 2015, 13:36:31
Könnte man dann nicht eine Zufallszeichenkette einbauen? Dann wäre jeder Aufruf individuell.

Ich habe statt "client=tw-ob", "client=abcde" probiert.
Das hat 18 mal funktioniert mit einem Text, der in 20 kurz hintereinander liegende Anfragen gesplittet wurde.
Beim 2. Mal kamen nur noch mp3-Dateien mit dem Google Hinweis zurück.

Dann habe ich "client=abcdx" probiert, es kamen nur mp3-Dateien mit dem Google Hinweis zurück.
Neue WAN-IP erzeugt. Dann kamen 19 richtige mp3-Dateien zurück und eine mit Google Hinweis.

Nach dem Wechsel auf "client=tw-ob" hat wieder alles funktioniert. Ohne Wechsel der WAN-IP.

Den Cache habe ich vor jedem Versuch gelöscht.

Schlussfolgerung: Ein beliebiger, zufälliger client-String funktioniert nicht dauerhaft, da nach etwa 18 kurz hintereinander liegenden Anfragen keine korrekten mp3-Dateien zurück gesendet werden.

Daher meine Frage, welche gültigen client-Strings gibt es noch?
Und gibt es eine Methode das heraus zu finden?

@boke: Wo hast Du den Hinweis auf "tw-ob" gefunden?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marvin78 am 01 November 2015, 13:01:19
Warum speichert DBLog seine Statistiken (die ich weder brauche noch möchte - es soll NICHTS aus dem Cache gelöscht werden) eigentlich in alle DbLog-Datenbanken (und dann auch noch in current, welches bei mir gar nicht verwendet werden soll)? Warum ist das nicht vernünftig dokumentiert?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 01 November 2015, 14:52:22
@marvin78: Mach einfach ein Kommentarzeichen "#" in der 98_Text2Speech.pm, vor die Zeile mit folgendem Inhalt:
  DbLog_Push($defs{$DbLogDev}, "Current", TimeNow(), $hash->{NAME} ."|". $file, $hash->{TYPE}, $text, "Usage", $NewValue, "");
also so:
#  DbLog_Push($defs{$DbLogDev}, "Current", TimeNow(), $hash->{NAME} ."|". $file, $hash->{TYPE}, $text, "Usage", $NewValue, "");
Dann speichern und neu laden.

Dann werden keine Statistiken in DBLog geschrieben.

Hier gibt es noch einige Infos, die Deine Fragen streifen könnten: http://forum.fhem.de/index.php/topic,18481.msg320044.html#msg320044 (http://forum.fhem.de/index.php/topic,18481.msg320044.html#msg320044)

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marvin78 am 01 November 2015, 18:13:06
Danke für deinen (vergeblichen) Hilfsversuch. Wenn du meinen Beitrag aufmerksam gelesen hättest, wüsstest du, dass ich schon weiß, was da passiert. Und ich weiß auch wo es steht. Das Auskommentieren kann bei einem lebenden Modul aber nicht die Lösung für so etwas sein.

Hat man 3 DbLog Instanzen, wird auch in 3 DbLog Instanzen die Tabelle current mit Text2Speech Einträgen geflutet, hat man 10 Instanzen, werden 10 geflutet. Auch dann, wenn man die current Tabelle eigentlich gar nicht braucht. Dass das ganze im Ansatz durchaus seinen Sinn macht (für einige) und dass das alles nur eine Vorbereitung ist (ja auch das hatte ich schon gesehen), mag ja sein. Dann sollte so etwas aber konfigurierbar sein (Attribut und zwar mit opt in) und/oder besser durchdacht. In eine Produktivversion gehört so etwas aber nicht. Und schon gar nicht undokumentiert.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 01 November 2015, 20:18:28
@marvin78: Sieh Dir doch mal die Beiträge an, mit denen andere Modulnutzer, ihre Vorschläge ins Modul bekommen.



Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marvin78 am 01 November 2015, 21:27:53
Suchst du Streit? Es geht hier nicht um Vorschläge für das Modul sondern um eine völlig verbuggte Funktion, die in der Form noch überhaupt keinen Sinn macht und nicht in eine Produktivversion eines Moduls gehört (und da wird mir jeder, der etwas Ahnung hat zustimmen). Ich muss keine anderen Beiträge lesen, um das zu merken und ich mache auch keinen Vorschlag für das Modul sondern ich melde einen Bug. Für mich kann es nur ein Versehen sein, dass so etwas überhaupt außerhalb einer Entwicklerversion Platz findet.

@Tobias (damit es mal den erreicht, den es tatsächlich angeht): Könntest du diese Sache mit dem Cache in der DB bitte entweder ausbauen oder per Attribut (opt-in) aktivierbar machen, bis es so funktioniert, wie es funktionieren soll?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Karlchen am 02 November 2015, 19:30:29
Hallo bekomme bei jedem Aufruf von MyTTS diesen Fehler.

Terminal Type 'unknow' is not defined



Was könnte das sein

Mit freundlichen Grüßen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 03 November 2015, 07:09:17
aktuellen Stand jetzt endlich eingecheckt
@marvin78: ich bin nicht davon ausgegangen das jemand mehrere DBLog Instanzen aufbaut. Kannst du mir kurz einen fachlichen Hintergrund geben? Was ist der Vorteil?
Ich merke es mir vor dieses Verhalten per Attr zu deaktivieren.
Warum ist es drin aber die Löschroutine noch nicht implementiert?
1. Zeit
2. braucht man einen bestimten Fundus über eine längere Zeit um Löschkandidaten zu erkennen  und zu testen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marvin78 am 03 November 2015, 07:18:58
Es gibt viele Gründe, das zu tun: Mein Grund ist, alltägliche Daten der meisten Devices, die ich nicht länger als eine Woche vorhalten möchte und muss, in einer kleinen DB und die Wetter-/Temperatur-/Stromverbrauchsdaten in einer anderen zu speichern. Erstere bekomme ich dann mit deleteOldDays klein gehalten, während die andere nicht angefasst wird und wächst (aber eben nur mit Daten, die man auch wirklich länger benötigen würde). Die Daten meiner Waschmaschine kommen in eine dritte, weil ich diese auch noch extern auswerte und die Übersicht somit höher ist. Hier im Forum gibt es viele User, die mehrere Instanzen verwenden (einigen davon habe ich es geraten ;)), weil sie Daten voneinander unabhängig ausdünnen  oder auswerten möchten. Auf meinem alten Cubietruck-Server brachte diese Vorgehensweise auch einen großen Performance Gewinn (Plotfork ist ja mit MySQL nicht wirklich verwendbar).

Dass du das nicht fertig eingebaut hast, ist völlig ok für mich. Eigentlich war es zuerst auch wirklich nur die Frage, warum diese undokumentierte Funktion gibt, die noch dazu nicht deaktivierbar ist. "Eskaliert" ist es erst durch die Einmischung anderer ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: ChrisD am 07 November 2015, 19:47:35
Hallo,

Anbei befindet sich ein Patch der es den Squeezebox-Modulen erlaubt Text2Speech für die TTS-Ausgabe zu verwenden.

Grüße,

ChrisD
Titel: Text2Speech Offline Voices
Beitrag von: SGi am 25 November 2015, 22:27:01
Hallo zusammen,

um noch mal die Frage nach der Stimme anzugehen:

Ich nutze derzeit sowohl TTS (Google) als auch den Homematic-MP3-Funkgong für verschiedene Ansagen. Für letzteres hatte ich mir vor einiger Zeit auch eine Stimme zugelegt, mir gefiel "Julia" von der acapela-group ziemlich gut, weil ich die Aussprache sehr natürlich finde. Leider ist natürlich der Umweg über das Erzeugen von festen MP3s für den Gong mit Hilfe einer separaten Applikation (TextAloud) ziemlich lästig und natürlich sehr unflexibel, weswegen ich danach irgendwann auch das TTS-Modul dazugenommen habe (z.B. für Ansagen von Anrufern).

Inziwschen hat sich auch noch ein SONOS-System dazugesellt, das derzeit auch per Google quatscht, mit den bekannten Problemen von gelegentlich nicht zur Verfügung stehenden Services etc.

Gibt es eine Möglichkeit, solche Offline-Stimmen wie von acapela (ich mag Julia immer noch am liebsten :) ) zentral zu verwenden, könnte ich für TTS (lokal am Raspi) und SONOS z.B. ein zentrale TTS-Engine konfigurieren ?  Wie geht es mit der Offline-TTS-Entwicklung weiter ?

Ich wäre auch ein großer Fan eines gut klingenden Offline-TTS-Systems und würde dafür auch Geld ausgeben...

Sven
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PsychoD am 26 November 2015, 01:54:45
Ich habe Text2Speech nun am laufen, scheitere aber daran es mittels Bluetooth ans laufen zu bekommen. Ich würde ja gern dem Ablauf im Wiki folgen, scheitere aber an dem folgenden Schritt:
osmc@osmc:~$ sudo apt-get install bluez bluez-alsa mplayer
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'mplayer2' instead of 'mplayer'
Package bluez-alsa is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'bluez-alsa' has no installation candidate


Mein FHEM läuft auf einem RPI2 mit OSMC, das wiederum auf Debian Jessie basiert. Ich vermute, dass ist das Problem - die Frage ist nun nur: Wie bekomme ich TExt2Speech auf die Bluetooth Box?

Danke & VG
psy
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 26 November 2015, 09:14:33
ZitatThis may mean...available from another source
Greift osmc auf alle Paketquellen von Raspian Jessie zurück? Wenn nein, dann probier doch mal die Paketquellen hinzuzufügen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PsychoD am 26 November 2015, 10:02:10
Das ist eine gute Frage, wie kann ich das denn machen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 26 November 2015, 16:47:56
Kennst Du Google? Versuch mal "raspbian paketquellen hinzufügen".
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PsychoD am 02 Dezember 2015, 17:03:03
Zitat von: Ellert am 26 November 2015, 16:47:56
Kennst Du Google? Versuch mal "raspbian paketquellen hinzufügen".

Danke für den Tip! Aber kennst du Forum? Da helfen sich Menschen untereinander, wenn einer es besser weiß als der andere!  ;D ;D

Ich habe es mittlerweile hinbekommen, für alle die ein ähnliches Problem haben: Die entsprechenden ALSA Pakete scheint es nicht zu geben, sie sind einfach veraltet. Ist aber auch kein Problem, ich habe es mittels PulseAudio realisiert.

Nachdem ich an dem Versuch das Bluetoothgerät in ALSA reinzukriegen verzweifelt bin, habe ich zunächst dieses Paket installiert:
https://discourse.osmc.tv/t/testing-bluetooth-audio-streaming-a2dp/9116
Anschließend habe ich den Bluetooth-Speaker gekoppelt (über bluetoothctl) und konnte dann via PulseAudio auf dem Bt-Speaker abspielen (mplayer untertützt pulseaudio bereits standardmäßig):

define speakerbot Text2Speech pulse

Ich muss noch einen Weg finden, dass der BT-Speaker nach dem reboot automatisch verbunden wird, das ist nicht ganz so einfach, oder?

Verbleibend ist auch das Problem, das ab und zu ein BlockingCall entsteht, der dazu führt dass vor der nächsten Ansage zunächst "Array23213" oder so vorgelesen wird:

Im Log steht dann sowas:
2015.12.02 15:22:20 1: Timeout for Text2Speech_DoIt reached, terminated process 26476
2015.12.02 15:22:20 2: Text2Speech: BlockingCall for speakerbot was aborted


Meine Textansagen sind dabei nicht zu lang, alles ein Satz und maximal 6 Sekunden lang... Weiß jemand wie man der Sache auf denn Grund gehen kann?

Viele Grüße
Psy
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 02 Dezember 2015, 20:30:41
Ich selbst nutze kein BT, daher konnte ich nur Hilfe zur Selbsthilfe geben. Wenn ich gewusst hätte, das Debian Jessie kein bluez-alsa Paket enthält, hätte ich dies
ZitatGreift osmc auf alle Paketquellen von Raspian Jessie zurück? Wenn nein, dann probier doch mal die Paketquellen hinzuzufügen.
gar nicht erst geschrieben.

Da ich aber noch ein BT-Dongle herumliegen habe, habe ich auch mal ein bisschen gesucht und bin auf das hier gestoßen: http://www.instructables.com/id/Enhance-your-Raspberry-Pi-media-center-with-Blueto/?ALLSTEPS (http://www.instructables.com/id/Enhance-your-Raspberry-Pi-media-center-with-Blueto/?ALLSTEPS) Da hört sich
ZitatStep 6: Fix for automatic audio after reboot
interresant an.

Text2Speech nutzt den BlockingCall bei jedem Aufruf des Mplayer. Wenn der ganze Prozess, nicht nur die Ansage, länger als 60 Sekunden dauert, wird der Blockierende Aufruf abgebrochen. Zum Untersuchen des Verhaltens kannst Du das Attribut "verbose" auf 5 setzen, dann bekommst Du ein sehr umfangreiches Log.

Du kannst ebenfalls das Attribut "TTS_TimeOut" auf einen anderen Wert setzen, um dem Prozess mehr Zeit zugeben.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PsychoD am 02 Dezember 2015, 21:37:05
Zitat von: Ellert am 02 Dezember 2015, 20:30:41
Ich selbst nutze kein BT, daher konnte ich nur Hilfe zur Selbsthilfe geben. Wenn ich gewusst hätte, das Debian Jessie kein bluez-alsa Paket enthält, hätte ich dies  gar nicht erst geschrieben.

Alles gut, bin ja Dankbar für jeden Rat!

Zitat von: Ellert am 02 Dezember 2015, 20:30:41
Da ich aber noch ein BT-Dongle herumliegen habe, habe ich auch mal ein bisschen gesucht und bin auf das hier gestoßen: http://www.instructables.com/id/Enhance-your-Raspberry-Pi-media-center-with-Blueto/?ALLSTEPS (http://www.instructables.com/id/Enhance-your-Raspberry-Pi-media-center-with-Blueto/?ALLSTEPS) Da hört sich  interresant an.

Oh, das ist wirklich interessant, denn das war bisher kein Problem bei mir. Das Problem ist viel mehr, den Connect mit dem BT-Speaker nach dem Boot hinzubekommen.

Das will nicht so recht, so dass ich aktuell versuche mir mit einem Cronjob nach dem boot zu helfen, das in etwa so aussieht:

#!/bin/bash
sudo rfkill unblock all
{ echo connect "11:11:12:13:4A:25"; sleep 10; echo "info 11:11:12:13:4A:25"; echo "quit"; } | bluetoothctl


Ich brauche die Pause nach dem connect, da bluetoothctl einige Zeit braucht bis der connect zustandekommt, und diesen nicht vollendet wenn die bluetoothctl console voher beendet wird...

Das klappt aber auch noch nicht so recht, warum habe ich noch nicht rausgefunden.


Zitat von: Ellert am 02 Dezember 2015, 20:30:41
Text2Speech nutzt den BlockingCall bei jedem Aufruf des Mplayer. Wenn der ganze Prozess, nicht nur die Ansage, länger als 60 Sekunden dauert, wird der Blockierende Aufruf abgebrochen. Zum Untersuchen des Verhaltens kannst Du das Attribut "verbose" auf 5 setzen, dann bekommst Du ein sehr umfangreiches Log.

Du kannst ebenfalls das Attribut "TTS_TimeOut" auf einen anderen Wert setzen, um dem Prozess mehr Zeit zugeben.

Hmm, ich glaube eigentlich nicht, dass ich da mehr als 60 Sekunden brauche. Gibt es noch andere Gründe, warum der Blockingcall fehlschlagen kann? Ich hab verbose mal hochgesetzt, und dadurch gemerkt, dass sich anscheinend ein paar mplayer Zombieprozesse gesammelt haben. Im FHEM log stand dann sowas:

A:   1.1 (01.1) of 1.2 (01.1) 1718.7%                                           
A:   0.6 (00.5) of 0.7 (00.6) 3014.8%                                           
A:   1.1 (01.1) of 1.2 (01.1) 1718.8%                                           
A:   0.6 (00.5) of 0.7 (00.6) 3014.8%                                           
A:   1.1 (01.1) of 1.2 (01.1) 1718.8%                                           
A:   0.6 (00.5) of 0.7 (00.6) 3014.9%                                           
A:   0.6 (00.5) of 0.7 (00.6) 3014.9%                                           
A:   1.1 (01.1) of 1.2 (01.1) 1718.8%                                           
A:   1.1 (01.1) of 1.2 (01.1) 1718.8%                                           
A:   0.6 (00.5) of 0.7 (00.6) 3014.9%       


Was bedeuten die %-Werte?

Viele Grüße & Danke
Psy
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 03 Dezember 2015, 10:08:39
ZitatWas bedeuten die %-Werte?
Da kann ich leider nicht weiter helfen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: JoJota am 05 Dezember 2015, 18:29:38
Hallo,
erst einmal danke für das Modul. Läuft über Klinke am Raspi ohne Probleme. Versuche jetzt aber auch meinen Bluetooth Stick zu koppeln. Die Anleitung im Wiki war leider nicht ganz so erfolgreich, scheint etwas veraltet zu sein (/etc/init.d/alsasound restart funktioniert nicht, nehme an, das muss alsa-utils heißen und der Google Translate Link funktioniert auch nur noch mit API Key).

Bin jetzt dieser Anleitung gefolgt http://www.nikolaus-lueneburg.de/2015/08/raspberry-pi-mit-bluetooth-lautsprecher/ und eine Ausgabe funktioniert über diesen Befehl ohne Probleme:

mplayer -ao alsa:device=bluetooth http://1live-diggi.akacast.akamaistream.net/7/965/119435/v1/gnl.akacast.akamaistream.net/1live-diggi

Daraufhin im TTS Modul unter DEF "bluetooth" eingetragen, Neustart des RPi, und siehe da es geht, naja, zumindest einigermaßen. Text wird am Ende immer abgeschnitten, was ja aber auch schon hier (http://forum.fhem.de/index.php?topic=38559.0) angesprochen wurde.

Edit: Konnte das Problem jetzt mit einer stillen MP3 unter FileMapping beheben.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 17 Dezember 2015, 14:08:52
Gibts es eigentlich inzwischen eine Endlösung für die Problematik Google Captcha? Hin und wieder werde ich noch geblockt, habe aber auch länger kein Update des Moduls gemacht. Woher weiss dieses überhaupt, was schon im Cache ist? Gibt's da einen Index dafür?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marty29ak am 19 Dezember 2015, 09:58:04
Hallo,
da ich im Tread für das Alarmanlagen Modul leider keine Antwort zu meiner Frage bekommen habe, versuche ich es mal hier:

Ich nutze zum ausgeben vom Status der Alarmanlage  Text2Speech und hatte mir gedacht auch den Alarm an sich damit aus zu geben. Dazu habe ich eine lange mp3 mit Sirenen Klang erstellt und lasse die bei Alarm abspielen.
Nur wie kann ich beim Alarm widerrufen die Ausgabe der Mp3 abbrechen? Hab im Wiki dazu keinen Befehl gefunden. Evtl. geht es auch mit einem Befehl für den Mplayer. Habe aber auch hier kein Kommando über die suche finden können, obwohl dieser ja eigentlich laut Beschreibung komplett über die Kommandozeile bedient wird!?!
Ach ja in dem Zusammenhang, gibt es auch einen Befehl eine Sprachausgabe solange zu wiederholen bis mit einem weiteren Befehl diese Schleife abgebrochen wird?

Wäre schön wenn mir Jemand helfen könnte, da ich sonst extra eine zusätzliche Sirene anschaffen müsste.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 19 Dezember 2015, 10:33:35
ZitatAch ja in dem Zusammenhang, gibt es auch einen Befehl eine Sprachausgabe solange zu wiederholen bis mit einem weiteren Befehl diese Schleife abgebrochen wird?
Das kannst Du mit einem DOIF lösen. http://fhem.de/commandref_DE.html#DOIF_repeatcmd (http://fhem.de/commandref_DE.html#DOIF_repeatcmd)

ZitatNur wie kann ich beim Alarm widerrufen die Ausgabe der Mp3 abbrechen? Hab im Wiki dazu keinen Befehl gefunden.
Text2Speech stellt m.W. keinen Befehl zur Verfügung, um die Ausgabe explizit abzubrechen.

Nimm doch eine kurze mp3-Datei und wiederhole die Ausgabe, s.o.

Vielleicht klappt es, eine kurze Ansage hinterher zu schieben, um das Vorhergehende abzubrechen.

Aber: Text2Speech ist , wie der Name schon sagt, in erster Linie ein Modul um Sprache in Text umzuwandeln und auszugeben.

Du könntest den Mplayer auch als Systemaufruf starten und dann den Thread selbst beenden.

ZitatEvtl. geht es auch mit einem Befehl für den Mplayer. Habe aber auch hier kein Kommando über die suche finden können, obwohl dieser ja eigentlich laut Beschreibung komplett über die Kommandozeile bedient wird!?!
Mit der Kommandozeile ist die Betriebssystemkonsole gemeint.
https://wiki.ubuntuusers.de/MPlayer (https://wiki.ubuntuusers.de/MPlayer)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hollo am 19 Dezember 2015, 14:04:07
Zitat von: Dittel am 17 Dezember 2015, 14:08:52
Gibts es eigentlich inzwischen eine Endlösung für die Problematik Google Captcha? Hin und wieder werde ich noch geblockt, habe aber auch länger kein Update des Moduls gemacht. Woher weiss dieses überhaupt, was schon im Cache ist? Gibt's da einen Index dafür?
Mit dem aktuellsten Stand funktioniert Google eigentlich wieder zuverlässig.
Für wie lange ist schwer zu sagen, aber es läuft.  :D
Außerdem wurde eine weitere TTS-Ressource eingebaut; also mach mal wieder ein Update.

Das mit dem Cache ist relativ einfach... das Modul "berechnet" einen Namen für die Textdatei, und guckt dann nach, ob diese Datei schon vorhanden ist.   :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marty29ak am 19 Dezember 2015, 20:17:36
Zitat von: Ellert am 19 Dezember 2015, 10:33:35
Das kannst Du mit einem DOIF lösen. http://fhem.de/commandref_DE.html#DOIF_repeatcmd (http://fhem.de/commandref_DE.html#DOIF_repeatcmd)
Text2Speech stellt m.W. keinen Befehl zur Verfügung, um die Ausgabe explizit abzubrechen.

Nimm doch eine kurze mp3-Datei und wiederhole die Ausgabe, s.o.

Vielleicht klappt es, eine kurze Ansage hinterher zu schieben, um das Vorhergehende abzubrechen.

Eine Ansage nach zu schieben hat leider nicht funktioniert, aber habe es jetzt mit einem DOIF und dem Attribut repeatcmd hin bekommen.
Danke für deine Hilfe!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 19 Dezember 2015, 20:25:59
Hallo marty29ak,

Zitataber habe es jetzt mit einem DOIF und dem Attribut repeatcmd hin bekommen
kannst Du Deine Lösung mal kurz genauer beschreiben? Um den abgespielten MP3 Alarm abzubrechen, habe ich bisher immer den Raspberry durchstarten lassen, was zugegeben nicht die eleganteste Lösung ist ;-)
Mit DOIF kenn ich mich so garnicht aus..

Danke und Grüße
stoxx
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marty29ak am 19 Dezember 2015, 21:06:33
Du erstellst einen Dummy

define alarm dummy

dann in das Attribut  setList   state:on,off eintragen und in webCmd state

Jetzt einen DOIF erstellen

define di_alarm DOIF ([alarm] eq "on")(set MyTTS tts :alarm.mp3:)

Hier dann das Attribut repeatcmd mit der Zahl 1 setzen.

Das war`s.

Du kannst dann im Alarmmodul set alarm on zum auslösen  und entsprechend set alarm off zum Alarm abbrechen nutzen.

Die Alarm MP3 halt nicht zu lange erstellen, damit das nicht zu lange nachläuft.


Ps.: Hatte oben im Code ein DOIF vergessen und eben geändert. Sorry!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: shady88 am 25 Dezember 2015, 12:08:09
Hallo, ich habe mich jetzt auch an Text2Speech gewagt und nach kleinen Startschwierigkeiten funktioniert jetzt alles außer, dass der Text 4-5 Sekunden zeitverzögert ausgegeben wird.

Ich habe Text2Speech wie im Wiki beschrieben installiert (http://www.fhemwiki.de/wiki/Text2Speech) wobei ich mir bei den "lokalen Sprachengines" nicht sicher bin, was damit gemeint ist. Ich hab hier nur "lame" installiert und die Umwandlung in MP3 scheint zu funktioniert.

Hier mal die Attribute:

TTS_MplayerCall /usr/bin/mplayer
TTS_UseMP3Wrap 1
room Text2Speech
verbose 5


Auszug aus dem Logfile:

2015.12.25 12:09:45 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2015.12.25 12:09:45 4: MyTTS: 0 => Alarmanlage wird in 30 Sekunden aktiviert
2015.12.25 12:09:45 4: Verwende TTS Spracheinstellung: Deutsch
2015.12.25 12:09:45 4: Text2Speech: Bearbeite jetzt den Text: Alarmanlage wird in 30 Sekunden aktiviert
2015.12.25 12:09:45 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: e8c74049126e6d8adcf7e53c3c8dec09.mp3
2015.12.25 12:09:45 4: Text2Speech: cache/e8c74049126e6d8adcf7e53c3c8dec09.mp3 gefunden, kein Download
2015.12.25 12:09:45 4: Text2Speech_CalcMP3Duration: cache/e8c74049126e6d8adcf7e53c3c8dec09.mp3 hat eine Länge von 4 Sekunden.
2015.12.25 12:09:45 4: MyTTS: Text2Speech MyTTS playing: 1
2015.12.25 12:09:45 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols cache/e8c74049126e6d8adcf7e53c3c8dec09.mp3
Cannot find HOME directory.
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
Terminal type `unknown' is not defined.

Playing cache/e8c74049126e6d8adcf7e53c3c8dec09.mp3.
Detected file format: MP2/3 (MPEG audio layer 2/3) (libavformat)
[mp3 @ 0x75b64a38]Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: audio (mp3), -aid 0
Load subtitles in cache/
Selected audio codec: MPEG 1.0/2.0/2.5 layers I, II, III [mpg123]
AUDIO: 16000 Hz, 2 ch, s16le, 32.0 kbit/6.25% (ratio: 4000->64000)
AO: [alsa] 16000Hz 2ch s16le (2 bytes per sample)
[AO_ALSA] Unable to find simple control 'Master',0.
Video: no video
Starting playback...
A:   4.0 (04.0) of 4.0 (04.0)  0.5%                                             


Exiting... (End of file)



Das "Cannot find HOME directory." wirkt nicht so ganz richtig. Kann es sein, dass er die MP3 Dateien, die er 3 Zeilen darüber im "Cache" erstellt danach in das Home-Directory schreiben möchte, das jedoch nicht kann, weil er eben dieses nicht findet?
Allerdings schreibt er auch, dass er es im Cache "gefunden" hat und kein Download (von Google) stattfindet).

Edit: Habe den Cache "gefunden". Dort sind alle bereits einmal erstellten Dateien drin.

Zum Home-Directory:
Es existiert kein /home/fhem Directory auf meinem Raspberry mit raspian drauf. Eine manuelle Erstellung dieses Directories bringt nichts (Rechte richtig gesetzt).
Auch das Folgende führte zu keinem Ergebnis:
root@raspberrypi2:/etc# mkhomedir_helper fhem
root@raspberrypi2:/etc# cd /home/
root@raspberrypi2:/home# ls
pi

(kein fhem Home Dir :/ )

Ich hab nach diesem Cache und auch den erstellten MP3-Dateien mit dem MD5-Hashwert als Dateinamen gesucht, konnte dieser aber nirgends finden, d.h. dieser werden wohl direkt nach der Ausführung gelöscht?!
Edit: MP3-Dateien liegen im Cache

Am "längsten" bleibt er nach der Zeile "MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team" hängen.
Danach kommt "Terminal type `unknown' is not defined." - Da stimmt wohl auch was nicht. Aber viel sagt die Fehlermeldung nicht aus. Zumindest mir nicht.

Das Setzen der HOME-Variable in /etc/profile hat nichts gebracht.
Wird mplayer als "fhem" User ausgeführt? (Habe eine Standardinstallation durchgeführt) Edit: zu 99,9% wird er als "fhem"-User ausgeführt.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: simonTS am 30 Dezember 2015, 00:11:48
Hi,

das Ding macht echt Spass! Würde gerne dem mplayer folgendes mitgeben
-af scaletempo -speed 1.2
Die Dame ist doch was langsam ;-) Geht das irgendwie als attr?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: ChHerrm am 16 Januar 2016, 10:35:21
Hallo!
Die Frage hatte ich schon in einem einzelnen Thema gestellt aber im Prinzip passt sie hier wohl besser hin:

Ich habe ein Problem mit der Sprachausgabe per Bluetooth-Lautsprecher dass ich trotz viel Recherchearbeit bislang nicht lösen konnte. Vom Raspberry Pi 2 kann ich den Bluetoothlautsprecher über
{system('mplayer -ao alsa:device=bluetooth /home/pi/NAS/Weckton.mp3')}

ein Lied abspielen lassen. Das Pairing und die Rechte scheinen also eher nicht das Problem zu sein. Was jetzt aber noch nicht geht, ist die Ausgabe von Sprache bzw. auch des Speakweather-Moduls und das Webstream Modul zwecks Radio. In der 98_Text2Speech.pm habe ich außerdem folgende Zeile angepasst:
my $mplayerAudioOpts = '-ao alsa:device=bluetooth';
Das interessiert FHEM jedoch erstmal herzlich wenig. Kann mir jemand damit auf die Sprünge helfen? :-\

PS: Sprache wird jetzt auch nicht mehr per Audiokabel ausgegeben nach der Anpassung. Scheint wohl irgendwie das Device so nicht zu finden (?)

Hier nochmal die Auswertung des Logfiles:

2016.01.15 17:15:20 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=bluetoothhw=0.0  -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 100 cache/3c4f47c016c723c4c6ba0d0716a69822.mp3
MPlayer svn r34540 (Raspbian), built with gcc-4.6 (C) 2000-2012 MPlayer Team

Playing cache/3c4f47c016c723c4c6ba0d0716a69822.mp3.
libavformat version 53.21.1 (external)
Mismatching header version 53.19.0
Audio only file format detected.
Load subtitles in cache/
==========================================================================
Requested audio codec family [mpg123] (afm=mpg123) not available.
Enable it at compilation.
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 53.35.0 (external)
Mismatching header version 53.32.2
AUDIO: 16000 Hz, 1 ch, floatle, 32.0 kbit/6.25% (ratio: 4000->64000)
Selected audio codec: [ffmp3float] afm: ffmpeg (FFmpeg MPEG layer-3 audio)
==========================================================================
[AO_ALSA] alsa-lib: pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM bluetoothhw:0,0
[AO_ALSA] Playback open error: No such file or directory
Failed to initialize audio driver 'alsa:device=bluetoothhw=0.0'
Could not open/initialize audio device -> no sound.
Audio: no sound
Video: no video
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 16 Januar 2016, 11:00:52
Warum fummelst Du in der Modul Datei rum? Zitat commandref
ZitatLocal Device
Die Ausgabe erfolgt auf angeschlossenen Audiodevices, zb. Lautsprecher direkt am Gerät oder per Bluetooth-Lautsprecher per Mplayer. Dazu ist Mplayer zu installieren.
apt-get install mplayer
Das angegebene Alsadevice ist in der /etc/asound.conf zu konfigurieren.
Special AlsaDevice: none
Ist als Alsa-Device none angegeben, so wird mplayer ohne eine Audiodevice Angabe aufgerufen. Dementsprechend verwendet mplayer das Standard Audio Ausgabedevice.

Beispiel:
define MyTTS Text2Speech hw=0.0
define MyTTS Text2Speech none

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: ChHerrm am 16 Januar 2016, 11:42:54
Okay, danke! Klingt sinnvoll, aber war noch nicht so zielführend. Ich habe MyTTS wie folgt angepasst:
define MyTTS Text2Speech pcm.bluetooth #hw=0.0
attr MyTTS TTS_MplayerCall /usr/bin/mplayer
attr MyTTS TTS_UseMP3Wrap 1
attr MyTTS verbose 5


In der /etc/asound.conf steht Folgendes:
pcm.bluetooth {
type bluetooth
device AA:AA:AA:AA:AA:AA
profile "auto"
}


Ich habe beim define sowohl nur bluetooth als auch pcm.bluetooth getestet. Beides funktioniert aber nicht. Wie muss ich das sonst angeben? ???


Edit: Okay jetzt gehts doch. Nicht nur FHEM sondern den ganzen Pi nochmal neu gestartet. Aber das Radio geht noch nicht. Wie kann ich das umstellen? :-\
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 16 Januar 2016, 11:54:23
Was genau meinst Du mit Radio? Also welches Modul? MPD (http://www.forum-raspberrypi.de/Thread-tutorial-music-player-daemon-mpd-und-mpc-auf-dem-raspberry-pi)?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: ChHerrm am 16 Januar 2016, 12:16:27
Das Modul von FHEM (http://www.fhemwiki.de/wiki/Modul_StreamRadio_Einrichtungshilfe), so habe ich es definiert:
define Radiostream StreamRadio /opt/fhem/log/WebStreams.txt
attr Radiostream group Radio
attr Radiostream icon rc_RADIO
attr Radiostream room Wohnzimmer
attr Radiostream telnetport 7072
attr Radiostream volume_command amixer cset numid=2 -- %Volume%


Das wird noch nicht über Bluetooth übertragen. Dafür will ich dann wie in der Anleitung aodevice hinzufügen also:
attr Radiostream aodevice -ao alsa:device=bluetooth
Da meint FHEM aber dass es das Attribut aodevice nicht für Radiostream gibt...

Edit: Das Attribut heißt inzwischen scheinbar nur noch aodev. Ton kommt aber trotzdem nicht:
attr Radiostream aodev -ao alsa:device=bluetooth
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 16 Januar 2016, 15:45:20
Sorry da kann ich Dir nicht helfen und das ist jetzt auch ziemlich Off Topic.
Vielleicht solltest Du die Frage nochmal separat zu stellen.
Im Wiki steht ja auch, dass das Modul weit weg von perfekt ist.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hollo am 17 Januar 2016, 17:55:08
Zitat von: ChHerrm am 16 Januar 2016, 11:42:54
...
Edit: Okay jetzt gehts doch. Nicht nur FHEM sondern den ganzen Pi nochmal neu gestartet. Aber das Radio geht noch nicht. Wie kann ich das umstellen? :-\
Dir ist aber schon klar, dass (im Normalfall) nicht beides gleichzeitig geht !?
Wenn Du das TTS dafür definiert hast und nutzt; kannst Du nicht gleichzeitig "Musik" über das selbe PC-Audio-Device abspielen. Das bekommt beim Zugriff dann eigentlich ein "busy" gemeldet.
 
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 17 Januar 2016, 18:40:47
Ich möchte einen kleinen Schönheitfehler korrigieren.

Das Reading "playing" wird auch gesetzt, wenn Text2Speech als Remote definiert ist.
Im Remote-Betrieb hat "playing" keinen Sinn, da nur das entfernte Text2Speech die Ansage abspielt. Das lokale Text2Speech sendet nur den Befehl.

Änderung im Code:

Zeile 426    readingsSingleUpdate($hash, "playing", "1", 1);  Zeile löschen
Zeile 427      readingsSingleUpdate($hash, "playing", "1", 1); dann nach Zeile 426 einfügen


Mit der anliegenden Datei wird das Reading "playing" nur im "DIREKT" Modus bedient.
Grundlage der Änderung ist die Version: # $Id: 98_Text2Speech.pm 9758 2015-11-03 06:06:33Z tobiasfaust $

@Tobias: Würdest Du bitte die Änderung bei Gelegenheit übernehmen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Lobot am 27 Januar 2016, 15:19:02
Hallo Zusammen!

Ich habe mich auch mal an dem Text2Speech Modul versucht, bekomme es in Fhem jedoch nicht zu laufen.

MPlayer und Lautsprecher sind korrekt eingerichtet und funktionieren auch beim Abspielen von MP3 Files über die Console.

Binde ich das ganze in Fhem ein, bekomme ich folgendes im Log:

Zitat2016.01.27 15:13:34 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2016.01.27 15:13:34 4: MyTTS: 0 => Hallo Welt!
2016.01.27 15:13:34 4: Verwende TTS Spracheinstellung: Deutsch
2016.01.27 15:13:34 4: Text2Speech: Bearbeite jetzt den Text: Hallo Welt!
2016.01.27 15:13:34 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: d8ec986b05f68a0d71bf7777a67cca5e.mp3
2016.01.27 15:13:34 4: Text2Speech: Verwende Google OnlineResource zum Download
2016.01.27 15:13:34 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=Hallo%20Welt%21
2016.01.27 15:13:34 4: Text2Speech: Schreibe mp3 in die Datei cache/d8ec986b05f68a0d71bf7777a67cca5e.mp3 mit 0 Bytes
2016.01.27 15:13:34 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 610.
2016.01.27 15:13:34 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols cache/d8ec986b05f68a0d71bf7777a67cca5e.mp3
MPlayer svn r34540 (Raspbian), built with gcc-4.6 (C) 2000-2012 MPlayer Team

Playing cache/d8ec986b05f68a0d71bf7777a67cca5e.mp3.
libavformat version 53.21.1 (external)
Mismatching header version 53.19.0


Exiting... (End of file)


Die Zeile
ZitatText2Speech: Schreibe mp3 in die Datei cache/d8ec986b05f68a0d71bf7777a67cca5e.mp3 mit 0 Bytes

fällt mir dabei auf, die erstellte MP3 hat wohl 0 Byte.

Woran kann der liegen? Berechtigungen wurden genau wie im Wiki incl. Neustart korrekt angelegt.

Ich würde mich freuen, wenn jemand einen Rat für mich hat.

Gruß, Martin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: TeeVau am 27 Januar 2016, 17:22:30
Zitat von: Ellert am 17 Januar 2016, 18:40:47
Ich möchte einen kleinen Schönheitfehler korrigieren.

Das Reading "playing" wird auch gesetzt, wenn Text2Speech als Remote definiert ist.
Im Remote-Betrieb hat "playing" keinen Sinn, da nur das entfernte Text2Speech die Ansage abspielt. Das lokale Text2Speech sendet nur den Befehl.

Änderung im Code:

Zeile 426    readingsSingleUpdate($hash, "playing", "1", 1);  Zeile löschen
Zeile 427      readingsSingleUpdate($hash, "playing", "1", 1); dann nach Zeile 426 einfügen


Mit der anliegenden Datei wird das Reading "playing" nur im "DIREKT" Modus bedient.
Grundlage der Änderung ist die Version: # $Id: 98_Text2Speech.pm 9758 2015-11-03 06:06:33Z tobiasfaust $

@Tobias: Würdest Du bitte die Änderung bei Gelegenheit übernehmen.

Hi,

ich bin mir nicht mehr genau sicher, glaube aber, dass das reading durch mich so eingeführt wurde. Das hat auch einen Grund:
Ich möchte im "Master" FHEM natürlich sehen, welchen Zustand das TTS Device hat, auch wenn es remote ausgeführt wird. Wie möchtest du sonst im Master-FHEM Steuerungen in Abhängigkeit von dem TTS machen? Ich triggere z.B. im Master-FHEM etwas (Musik aus schalten) wenn per TTS etwas abgespielt wird.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 27 Januar 2016, 18:03:42
Das Reading "playing" hatte ich mal vorgeschlagen.
Ich möchte im "Master" FHEM natürlich sehen, welchen Zustand das TTS Device hat Das kannst Du nicht, weil der Slave seinen Zustand nicht zurückmeldet. Wenn readingsSingleUpdate so bleibt, wie es ist, dann wird playing auf 1 gesetzt, wenn der Master zum Slave schreibt, playing wird aber nicht zurück gesetzt. Das ist mir erst vor Kurzem aufgefallen. Der Schreibvorgang zum Slave dauert ja nur einen Bruchteil einer Sekunde. Hier könnte man alternativ auch nach Zeile 431 Zeile 431 Text2Speech_Write($hash, "tts " . join(" ", @a));
ZitatreadingsSingleUpdate($hash, "playing", "0", 1);
einfügen, dann würde playing auch zurückgesetzt.

Wenn man eine echte Rückmeldung vom Slave möchte, dass nicht mehr angesagt wird, dann müsste man das über FHEM2FHEM machen.

Änderung rot
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 27 Januar 2016, 23:27:08
Zitat von: Lobot am 27 Januar 2016, 15:19:02
Die Zeile
fällt mir dabei auf, die erstellte MP3 hat wohl 0 Byte.
Ich würde mich freuen, wenn jemand einen Rat für mich hat.
Hallo Martin,

hast Du die aktuelle Version? Der Link den er im Log wirft geht nicht, dass sieht mir so aus, als ob Google Dich  nicht will (wird ein paar Seiten weiter vorne behandelt)

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Lobot am 28 Januar 2016, 07:41:05
Hallo Otto,

Danke für die Rückmeldung.

Das System ist auf dem neusten Stand. Hab eben zur Sicherheit noch mal ein Update gemacht. Immer noch der gleiche Fehler mit 0 Byte.

Leider gibt das Log für mich auch nicht mehr her, wo ich vielleicht ansetzen könnte.

Andere Vorschläge, woran es liegen könnte?

Gruß, Martin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 28 Januar 2016, 09:26:06
Hast Du aus dem cache alle Dateien mit 0 Byte gelöscht?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 28 Januar 2016, 09:33:43
Hallo Martin,

naja es liegt eigentlich immer daran, dass der Link der zum Google Translater gesendet wird, nicht das gewünschte Ergebnis zurückliefert und dann die Datei leer oder sehr kurz ist (weil sie nur Text und kein MP3 enthält).
Bei mir sieht der Link so aus http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=Hallo%20Welt%21
Bei Dir so http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=Hallo%20Welt%21

Deine 98_Text2speech ist wirklich die?:
# $Id: 98_Text2Speech.pm 9758 2015-11-03 06:06:33Z tobiasfaust $

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 28 Januar 2016, 09:39:03
Hast DU nach dem Update ein shutdown restart durchgeführt?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Lobot am 28 Januar 2016, 12:53:12
Mist, es lag tatsächlich am shutdown restart.... Wie konnte ich das denn vergessen..!?  :o Sorry Leute, peinlich... ::)

Besten Dank für die Hilfe, läuft nun wie Butter :)

Gruß, Martin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: marty29ak am 29 Januar 2016, 08:32:59
Sorry vielleicht habe ich es übersehen, aber gibt es eine Möglichkeit das Modul zu nutzen wenn Fhem auf einem Windows7 Rechner läuft?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PsychoD am 10 Februar 2016, 11:17:31
Text2speech funktioniert bei mir mittlerweile gut und meist zuverlässig, bis auf zwei Probleme:

- Ab und zu schmiert irgendwas ab, so dass eine Textausgabe ausfällt, bei der nächsten dann "Arrayblabla" vor der eigentlichen Ansage gesagt wird. Das könnte auch mit dem zweiten Problem zu tun haben
- Wenn ich nach einigen Tagen schaue per ssh in den TOP schaue, habe ich jede Menge mplayer-Zombieprozesse da liegen, die sich anscheinend alleine nicht mehr schließen.

Kennt jemand die Probleme oder hat eine Abhilfeidee?

Danke & Gruß
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 10 Februar 2016, 12:56:35
ZitatAb und zu schmiert irgendwas ab, so dass eine Textausgabe ausfällt, bei der nächsten dann "Arrayblabla" vor der eigentlichen Ansage gesagt wird

Wenn die Ansage zu lang ist schlägt das Standarttimeout von 60s zu, das führt zu dieser Arrayansage.
Setz mal das Attribut TTS_TimeOut höher.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PsychoD am 10 Februar 2016, 13:13:24
Zitat von: Ellert am 10 Februar 2016, 12:56:35
Wenn die Ansage zu lang ist schlägt das Standarttimeout von 60s zu, das führt zu dieser Arrayansage.
Setz mal das Attribut TTS_TimeOut höher.

Hi,

das hatte ich bereits versucht, ohne Linderung. Die Ansagen sind auch höchstens 5-10 Sekunden lang, ich glaube also nicht, dass ein Timeout zuschlägt.

VG
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Carsten K. am 12 Februar 2016, 15:24:25
Zitat von: Lobot am 28 Januar 2016, 12:53:12
Mist, es lag tatsächlich am shutdown restart.... Wie konnte ich das denn vergessen..!?  :o Sorry Leute, peinlich... ::)

Besten Dank für die Hilfe, läuft nun wie Butter :)

Gruß, Martin
Hi Martin,
wenn eine .pm-Datei geändert wurde (z.B. durch Update) sollte ein "reload [datei]" im Command-Feld ausreichen.
In diesem Fall: "reload 98_Text2speech.pm"

Gruß,
Obi
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Markus Hermann am 19 Februar 2016, 13:36:05
Hallo zusammen!

Ich nutze das Modul 98_DLNAClient.pm (UPnP) von dominik um meine Peaq WLAN-Lautsprecher zu beschallen.
Ich kann damit auch einzelne MP3-Files streamen:

set MyPlayer stream http://192.168.2.2:8083/fhem/soundfiles/test.mp3


Nun würde ich gerne die Text2Speech-MP3's aus /opt/cache streamen, aber leider haben die ja keinen eindeutigen Namen.

Hat jemand eine Idee wie ich das lösen kann?

Gruß
Markus
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 19 Februar 2016, 16:46:55
Die Dateinamen sind eindeutig, sie werden gebildet aus dem Ansagetext, der in einen MD5 Hash gewandelt wird, deshalb wird der gleiche Ansagetext nur einmal umgewandelt

ZitatHat jemand eine Idee wie ich das lösen kann?

Du könntest Dir die Beziehung Ansagetext zu Dateinamen speichern und zum Steamen darauf zugreifen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PsychoD am 07 März 2016, 22:31:50
Zitat von: PsychoD am 10 Februar 2016, 11:17:31
Text2speech funktioniert bei mir mittlerweile gut und meist zuverlässig, bis auf zwei Probleme:

- Ab und zu schmiert irgendwas ab, so dass eine Textausgabe ausfällt, bei der nächsten dann "Arrayblabla" vor der eigentlichen Ansage gesagt wird. Das könnte auch mit dem zweiten Problem zu tun haben
- Wenn ich nach einigen Tagen schaue per ssh in den TOP schaue, habe ich jede Menge mplayer-Zombieprozesse da liegen, die sich anscheinend alleine nicht mehr schließen.

Kennt jemand die Probleme oder hat eine Abhilfeidee?

Danke & Gruß

Hi,

da mir das Problem echt auf den Nerv geht, habe ich es weiter analyisert. Meinen Bluetooth Speaker spreche ich über pulseaudio an. Pulseaudio scheint ziemlich verbuggt zu sein. Ich habe beobachtet, dass mplayer weiterspielt, obwohl das Audiofile zuende ist (sieht man mit verbose 5 und auch im "top"). Das passt zu einem Bugbericht hier: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=674145

FHEM bricht den Aufruf dann irgendwann ab, und interpretiert das als "BlockingCall". Der mplayer bleibt aber laufen, und das Problem ist, dass die laufende mplayer-ausgabe Folgeausgaben behindert, oder diese bescheuerte "arrayblabla" Folgemeldung verursacht (nach dem Blockingcall).

Die von Text2Speech ermittelte "Duration" ist aber richtig. Der einzige Workaround der mir einfällt ist daher die Duration auszulesen, und nach dieser Dauer einen system-call mit "sudo killall mplayer" abzufeuern.

Fällt jemandem dazu etwas besseres / eleganteres ein?

VG
Psy

Update:
Löse es nun erstmal so...
sub
say($) {
my ($text) = @_;
system( "sudo killall mplayer");
fhem("set speakerbot tts $text");
my ($duration) = ReadingsVal("speakerbot","duration", "30" );
$duration=$duration+5;
fhem("sleep $duration; {system('sudo killall mplayer')}");
}

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Starkstrombastler am 10 März 2016, 23:22:43
@Markus
Zitat von: Markus Hermann am 19 Februar 2016, 13:36:05
Nun würde ich gerne die Text2Speech-MP3's aus /opt/cache streamen, aber leider haben die ja keinen eindeutigen Namen.
Die Dateinamen sind nicht selbstredend, aber eindeutig sind sie schon.
Wenn dir die Dateinamen nicht gefallen, kannst du sie ja umbenennen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: michaelfhem am 17 Mai 2016, 22:01:21
@PsychoD: Ich habe das gleiche Problem. Array Blabla wird angesagt, danach geht kein TTS mehr, viele mplayer Prozesse. Dabei ist mir folgendes aufgefallen. Wenn Ich eine _mp3wrap.mp3 aus dem cahce-Directory per Hand aufrufe läuft mplayer forever.

sudo -u fhem /usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols /opt/fhem/cache/f88c33ff270924bf967bc060d6972294_MP3WRAP.mp3 -volume 40

Dabei gibt mplayer folgende Meldungen aus:
mpg123 decoding failed: No stream opened. (code 24)
A:   6.4 (06.3) of 14.0 (14.0)  1.5%
mpg123 decoding failed: No stream opened. (code 24)
A:   6.4 (06.3) of 14.0 (14.0)  1.5%
mpg123 decoding failed: No stream opened. (code 24)
A:   6.4 (06.3) of 14.0 (14.0)  1.5%
mpg123 decoding failed: No stream opened. (code 24)
A:   6.4 (06.3) of 14.0 (14.0)  1.5%
mpg123 decoding failed: No stream opened. (code 24)
^C   6.4 (06.3) of 14.0 (14.0)  1.6%


die %-Zahl endet dabei nicht bei 100%...

Ich werds mals ohne mp3wrap versuchen

Grüße
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PsychoD am 17 Mai 2016, 22:13:43
Hi,

Na wenigstens bin ich nicht mehr allein damit :-)

Ich glaube nicht, dass mp3wrap daran was ändert, aber halt uns mal auf dem Laufenden. Ich habe es immer noch so umgangen, dass ich den mplayer Prozess einfach Kille. Unschön, ich weiß...

Vg
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: michaelfhem am 17 Mai 2016, 22:37:54
Anbei noch die komplette Ausgabe vom Mplayer. Ich würde vermuten das mit dem mp3-File etwas nicht stimmt. Dann läuft der mplayer forever und damit ist das Ausgabe-Device belegt und es kann anderes File mehr abgespielt werden. Evtl. kann ja jemand mit der Ausgabe etwas anfangen.
Evtl. ist ja auch ein mplayer2 Problem, wenn man nach dem Fehler sucht wird empfohlen "Use "mad -mp3" as USE flags for mplayer.". Allerdings ist mir noch nicht ganz klar wo man das einstellen soll.

MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team

Playing /opt/fhem/cache/f88c33ff270924bf967bc060d6972294_MP3WRAP.mp3.
Detected file format: Audio only
Load subtitles in /opt/fhem/cache/
Selected audio codec: MPEG 1.0/2.0/2.5 layers I, II, III [mpg123]
AUDIO: 24000 Hz, 2 ch, s16le, 32.0 kbit/4.17% (ratio: 4000->96000)
AO: [alsa] 24000Hz 2ch s16le (2 bytes per sample)
[AO_ALSA] Unable to find simple control 'Master',0.
[Mixer] No hardware mixing, inserting volume filter.
Video: no video
Starting playback...
A:   5.7 (05.6) of 14.0 (14.0)  1.0%
mpg123 decoding failed: Unable to set up output format! (code 1)
A:   5.9 (05.8) of 14.0 (14.0)  1.0%
mpg123 decoding failed: No stream opened. (code 24)
A:   5.9 (05.9) of 14.0 (14.0)  1.0%
mpg123 decoding failed: No stream opened. (code 24)
.....


Update: Seit ich mp3wrap ausgeschaltet habe läuft tts seit 5 Tagen stabil
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: duu75 am 19 Mai 2016, 16:27:49
Habe seit einigen Tagen mit TTS ein Problem.
Erst fing es an, dass bei der Wetteransage aus MyUtils auf einmal ein Wert mit ganz langsamer Stimme wiedergegeben wurde.
Aber auch nur ein Parameter von mind. 10.!
Nach Neustart keine Änderung!
Dann die MP3 Files aus dem Cahce gelöscht, da waren inzwischen so einige zusammengekommen.
Dann war der langsam sprechende Wetterteil wieder normal.

Dafür kann TTS jetzt aber keine Sekunden in Verbindung anderen Wörtern mehr aussprechen!

set TTS tts Sekunden         - sekunden       - ok
set TTS tts 5 Sekunden      - fünf s              - nok
set TTS tts fünf Sekunden   - fünf s             - nok
set TTS tts die Sekunden    - die s               - nok

Mit Minuten und Stunden geht es sauber, nur Sekunden werden einfach als "S" ausgesprochen!

Was da los?


Ein aktuelles Update hat auch nicht geholfen.

Latest Revision: 11481
fhem.pl              11476 2016-05-18 06:42:04Z rudolfkoenig
98_Text2Speech.pm     9758 2015-11-03 06:06:33Z tobiasfaust

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: duu75 am 19 Mai 2016, 17:00:00
Jetzt bin ich ganz verwirrt!
cache frisch gelöscht!

set TTS tts 60 Sekunden.
Geht nicht, es wird 60 S gesagt.

ABER

set TTS tts 10 Sekunden
11, 13...
set TTS tts 18 Sekunden
Geht sauber mit Sekunden!

1-9, 12 nicht, 19 bis k.A. geht nicht
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hollo am 20 Mai 2016, 09:22:30
So einen ähnlichen Effekt hatte ich auch schon...

"Lautstärke auf 35% verringert"
"Lautstarke auf 30% verringert"
"Lautstärke auf 25% verringert"

Da der Text über eine Funktion generiert wird, konnte kein Schreibfehler vorhanden sein.
Hab es dann mehrfach direkt im Webfrontend vom Google Translator probiert, und siehe da... sporadisch hatte ich dort den selben Effekt.
Wenn so ein "falscher Text" dann im Cache landet, bleibt das natürlich.
Liegt also IMHO nicht am TTS-Modul.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: duu75 am 20 Mai 2016, 09:33:43
Zitat von: Hollo am 20 Mai 2016, 09:22:30
So einen ähnlichen Effekt hatte ich auch schon...

"Lautstärke auf 35% verringert"
"Lautstarke auf 30% verringert"
"Lautstärke auf 25% verringert"

Da der Text über eine Funktion generiert wird, konnte kein Schreibfehler vorhanden sein.
Hab es dann mehrfach direkt im Webfrontend vom Google Translator probiert, und siehe da... sporadisch hatte ich dort den selben Effekt.
Wenn so ein "falscher Text" dann im Cache landet, bleibt das natürlich.
Liegt also IMHO nicht am TTS-Modul.

Soll heißen es liegt an Googles TTS Engine bzw. Cache?
Weil den FHEM Cache habe ich ja bereits geleert.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hollo am 20 Mai 2016, 12:56:23
Zitat von: duu75 am 20 Mai 2016, 09:33:43
Soll heißen es liegt an Googles TTS Engine bzw. Cache?
Weil den FHEM Cache habe ich ja bereits geleert.
Darauf wollte ich hinaus.   ;)
Hatte den Fehler natürlich auch erst bei mir gesucht und dann aus Verzweiflung mal "direkt" probiert.
Seitdem bin ich da ruhiger geworden und beobachte Probleme zunächst etwas, bevor ich wild probiere.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: michaelfhem am 25 Mai 2016, 13:16:18
@PsychoD: Ohne mp3wrap läuft tts seit ca. 5 Tagen stabil.

Grüße
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PsychoD am 25 Mai 2016, 13:37:31
Hochinteressant - Danke für das Update! Ich stell dann auch mal um und teste mal mit.

VG
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 29 Mai 2016, 05:07:11
Ich hatte das Problem mit der teilweise langsamen Wiedergabe auch seit einiger Zeit.

Dabei habe ich festgestellt, dass es nur auftritt, wenn die im MP3WRAP zusammengefassten Dateien unterschiedliche Bitraten hatten. Das waren bei mir einige Templates. Nach dem ich die Templates auf 32 kBit/s umgestellt und den Cache gelöscht habe, läuft alles fehlerfrei bei eingeschaltetem MP3WRAP.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: duu75 am 31 Mai 2016, 19:08:02
Mein Problem mit den Sekunden besteht leider immer noch. :-(

Wieso kriegt das Google nicht auf die Reihe?
Das muss doch auch schon mehreren aufgefallen sein.

Total doof.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: td am 03 August 2016, 12:03:57
Hallo Tobias,

nun bin ich urplötzlich wieder in derselben Situation wie im März letzten Jahres (https://forum.fhem.de/index.php/topic,18481.msg272585.html#msg272585 (https://forum.fhem.de/index.php/topic,18481.msg272585.html#msg272585)): Beim Aufruf von text2speech mit einer mp3-Datei (unerheblich, ob als template oder mit direkter Pfadangabe) wird nicht die entsprechende mp3-Datei abgespielt, sondern Pfad- und Dateiname ausgesprochen.
An der Konfiguration hat sich seit mehr als einem Jahre nichts geändert; fhem läuft unter root, darüber hinaus wären cache/ und die Dateien darunter auch mit nicht-root-Rechten erreichbar.

total 0
drwxr-xr-x 1 root root  18 Aug  3 11:40 ./
drwxr-xr-x 1 root root 260 Nov 18  2015 ../
drwxr-xr-x 1 root root 474 Jul  3  2015 templates/
olymp:/opt/fhem/cache #

Auch der damals von Dir genannte Workaround funktioniert nicht mehr.
Das cache/-Verzeichnis habe ich geleert. Bei dem Aufruf von
set wstts tts :whistle:
wird der Text ausgesprochen "template/tos_intercomm_whistle.mp3", ebenso bei dem Aufruf
set wstts tts :tos_intercom_whistle.mp3: oder
set wstts tts whistle
Das cache/-Verzeichnis habe ich probehalber gelöscht. Trotzdem wird der Text ausgesprochen, aber für den Text keine mp3-Datei erzeugt; das Verzeichnis bleibt leer - verblüffend.
Das log zeigt folgendes

2016.08.03 11:58:33 4: wstts: Auflistung der Textbausteine nach Aufbereitung:
2016.08.03 11:58:33 4: wstts: 0 => templates/tos_intercom_whistle.mp3
2016.08.03 11:58:33 4: Verwende TTS Spracheinstellung: Deutsch
2016.08.03 11:58:33 4: Text2Speech: Bearbeite jetzt den Text: templates/tos_intercom_whistle.mp3
2016.08.03 11:58:33 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 886091935b6045aec4a6c97c07b93992.mp3
2016.08.03 11:58:33 4: Text2Speech: cache/886091935b6045aec4a6c97c07b93992.mp3 gefunden, kein Download
2016.08.03 11:58:33 4: Text2Speech_CalcMP3Duration: cache/886091935b6045aec4a6c97c07b93992.mp3 hat eine Länge von 6 Sekunden.
2016.08.03 11:58:33 4: Text2Speech:sudo /usr/bin/mplayer  -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 100 -volume 40 cache/886091935b6045aec4a6c97c07b93992.mp3

tts behauptet, die Datei sei keine mp3-Datei, was "file" jedoch bestätigt:

olymp:/opt/fhem/cache/templates # file tos_intercom_whistle.mp3
tos_intercom_whistle.mp3: Audio file with ID3 version 2.4.0

Auch würde im Cache eine entsprechende Datei gefunden werden können, der Cache ist jedoch leer (s. o.)!

Weißt Du bitte weiter?

Gruß,
td
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 06 August 2016, 19:16:32
aus igrnedeinem Grund kommt fhem nicht in dein cache verzeichnis rein .....
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: td am 08 August 2016, 13:38:05
Ja, das ist schon merkwürdig.
Von "/" an sind sämtliche Verzeichnisse bis hinunter auf "/opt/fhem/cache" auf 755 gesetzt. Darüber hinaus läuft fhem unter root.
root     20723  0.5  0.3 125560 62872 ?        S    Aug05  24:16 /usr/bin/perl /opt/fhem/fhem.pl /root/bin/fhem/fhem.config

Viel interessanter ist jedoch folgendes:
2016.08.07 14:51:36 4: wstts: Auflistung der Textbausteine nach Aufbereitung:
2016.08.07 14:51:36 4: wstts: 0 => "Anruf von " .
2016.08.07 14:51:36 4: wstts: 1 => <Name entfernt>
2016.08.07 14:51:36 4: Verwende TTS Spracheinstellung: Deutsch
2016.08.07 14:51:36 4: Text2Speech: Bearbeite jetzt den Text: "Anruf von " .
2016.08.07 14:51:36 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: f638ada5d8fdcc9a6a6a9d6d4bddb4b9.mp3
2016.08.07 14:51:36 4: Text2Speech: cache/f638ada5d8fdcc9a6a6a9d6d4bddb4b9.mp3 gefunden, kein Download
2016.08.07 14:51:36 4: Text2Speech_CalcMP3Duration: cache/f638ada5d8fdcc9a6a6a9d6d4bddb4b9.mp3 hat eine Länge von 1 Sekunden.
2016.08.07 14:51:36 4: Text2Speech:sudo /usr/bin/mplayer  -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 100 -volume 40 cache/f638ada5d8fdcc9a6a6a9d6d4bddb4b9.mp3
2016.08.07 14:51:38 4: Verwende TTS Spracheinstellung: Deutsch
2016.08.07 14:51:38 4: Text2Speech: Bearbeite jetzt den Text: <Name entfernt>
2016.08.07 14:51:38 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 12c12134fc2a361356a7f3584c4085b9.mp3
2016.08.07 14:51:38 4: Text2Speech: Verwende Google OnlineResource zum Download
2016.08.07 14:51:38 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=Hubert%2C%20Wolfgang%20jun.
2016.08.07 14:51:39 4: Text2Speech: Schreibe mp3 in die Datei cache/12c12134fc2a361356a7f3584c4085b9.mp3 mit 10560 Bytes
2016.08.07 14:51:39 4: Text2Speech_CalcMP3Duration: cache/12c12134fc2a361356a7f3584c4085b9.mp3 hat eine Länge von 3 Sekunden.
2016.08.07 14:51:39 4: Text2Speech:sudo /usr/bin/mplayer  -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 100 -volume 40 cache/12c12134fc2a361356a7f3584c4085b9.mp3


Text2Speech sagt also einerseits, daß er die Datei "cache/f638ada5d8fdcc9a6a6a9d6d4bddb4b9.mp3" gefunden hat (für "Anruf von") und andererseits, daß er "cache/12c12134fc2a361356a7f3584c4085b9.mp3" geschrieben hat. Das cache-Verzeichnis ist aber leer!
olymp:/opt/fhem/cache # ll
total 0
drwxr-xr-x 1 root root 474 Jul  3  2015 templates

Das Problem tritt seit dem letzten Update von text2speech auf.

Hast Du noch irgendwelche Ideen?

Gruß,
td
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: td am 08 August 2016, 13:58:46
So, Ursache gefunden:
Seit dem letzten Update scheint text2speech die modpath-Variable zu ignorieren. Sie ist bei mir auf "/opt/fhem" eingerichtet und text2speech nutzte brav das dortige Unterverzeichnis "cache".
Nun aber nutzt text2speech "/root/bin/fhem/cache"; in "/root/bin/fhem" liegt meine fhem-Konfigurationsdatei.
Mit

attr wstts TTS_CacheFileDir /opt/fhem/cache
attr wstts TTS_FileTemplateDir /opt/fhem/cache/templates

sollte es nun funktionieren.

Gruß,
td
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 09 August 2016, 12:34:20
Zitat von: td am 08 August 2016, 13:58:46
So, Ursache gefunden:
Seit dem letzten Update scheint text2speech die modpath-Variable zu ignorieren. Sie ist bei mir auf "/opt/fhem" eingerichtet und text2speech nutzte brav das dortige Unterverzeichnis "cache".
Nun aber nutzt text2speech "/root/bin/fhem/cache"; in "/root/bin/fhem" liegt meine fhem-Konfigurationsdatei.
Mit

attr wstts TTS_CacheFileDir /opt/fhem/cache
attr wstts TTS_FileTemplateDir /opt/fhem/cache/templates

sollte es nun funktionieren.

leider aktuell works-as-designed.

Für TTS ist der Rootpath das FHEM Rootpath und beachtet kkein Modpath. Sorry, benutze ich nicht und war mir dessen Existenz nicht bewusst.
Kannst du hier einen Patch bereitstellen? Ich denke an mehreren Stellen müsste die Variable im Modul beachtet werden.

Gruß,
td
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Simon74 am 14 August 2016, 17:07:20
Ich habe auf von mplayer auf play umgestellt,
wird aber vom Modul nicht erkannt, bzw. die mplayer Paramater werden trotzdem aufgerufen.

play erscheint perfomanter, weniger abhängigkeiten, keine "Terminal type `unknown' is not defined." Meldungen mehr im Log

Wenn ich TTS_TimeOut löschen will sagt fhem: Only Numbers allowed
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 16 August 2016, 19:07:28
Ich sehe aktuell keine Veranlassung auch play zu unterstützen. Die log Meldung wegzunehmen gibt's nen workaround, aber noch nicht geschafft den einzubauen

Gesendet von meinem Leap mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Devender am 20 August 2016, 01:10:19
Hallo zusammen,

ich bin jetzt mit meiner TTS Einrichtung fast durch.
Mit Hilfe vom Wiki und dem Forum läuft auch alles ganz gut.  Danke!  :)

Nun zu meine zwei Problemen:

Ich habe mit eine Templatedatei alarm.mp3 (für die Alarmanlage) angelegt.


Internals:
   ALSADEVICE hw=0.0
   DEF        hw=0.0
   MODE       DIRECT
   NAME       TTSystem
   NR         327
   STATE      Initialized
   TYPE       Text2Speech
   VOLUME     100
   Readings:
     2016-08-20 00:56:26   duration        3
     2016-08-20 00:56:26   endTime         00:00:00
     2016-08-20 00:56:30   playing         0
     2016-08-20 00:50:18   volume          100
   Helper:
     Text2Speech:
Attributes:
   TTS_FileMapping alarm:alarm.mp3
   TTS_FileTemplateDir /opt/fhem/cache
   TTS_Language Deutsch
   TTS_UseMP3Wrap 1
   TTS_VolumeAdjust 5000
   verbose    5


Nur leider wird diese nicht abgespielt sondern nur das Verzeichnis nebst Dateinamen beim Aufruf von set TTSystem tts :alarm: vorgelesen.
Der Befehl aus dem Log
sudo /usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols -softvol -softvol-max 5000 -volume 100 cache/ca44f9d979184a19ce5d7dd2b2e7cfc9.mp3
nach dem Aufruf lässt sich über die Konsole aber ohne Probleme abspielen.

Mein FHEM läuft unter root und die Verzeichnisse nebst Datei haben alle Berechtigungen.
-rwxrwxrwx 1 pi   pi   88398 Aug 20 00:55 alarm.mp3

Was kann ich hier noch prüfen?

Zweite Frage: Die Ausgabe über meine Kabellautsprecher (altes Teil von einem Rekorder) ist eher schlecht.
Gibt es mittlerweile eine Empfehlung für einen guten passiven kabelgebundenen Lautsprecher?

Danke!
Dirk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 21 August 2016, 12:07:28
Hallo Dirk,

passive Lautsprecher - wie soll das gehen? Der PI hat einen Signalausgang, im Kopfhörer sicher hörbar.
Also ich bin der Meinung da geht nur was mit Aktivboxen. Ich setze mini Bass cube SA-101 ein. Allerdings nicht ohne zusätzliche Filter am USB vom PI mit Strom zu versorgen.

Warum lässt Du das template Verzeichnis nicht wo es ist? Was bringt es, es mit dem cache Verzeichnis gleichzusetzen?  :o
Ganz woanders hin macht vielleicht Sinn, aber so?
/opt/fhem/cache
/opt/fhem/cache/templates


Lässt sich denn die Datei alarm.mp3 mit set TTSystem tts :/opt/fhem/cache/alarm.mp3:
abspielen?

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Devender am 21 August 2016, 12:57:34
Hallo Otto,

mit dem passiven PI Ausgang sieht es wirklich schlecht aus mit guter Qualität. Ließt man ja auch schon in den 44 Seiten hier.
Dein Vorschlag mit dem Jay-Tech mini Bass cube klingt super  :). Da ich meine gesammte Haustechnik in einer Wandluke untergebracht habe, passt der Jay-Tech auch mit den
Abmessungen: 5 x 5 x 5 cm (Laut Herstellerseite) noch gerade so rein.
Könntest du mit bitte noch sagen, was du als Filter für den USB genommen hast?
Ich habe eine Raspberry2 - du holst dir somit die Stormversorgung auch vom PI, korrekt?

Ich hatte bisher folgende Kombinationen ausprobiert.

/opt/fhem/cache
/opt/fhem/cache/templates
/tmp


Bei allen Verzeichniskombinatione wird mir bei Eingabe von:
set TTSystem tts :/opt/fhem/cache/alarm.mp3:
genau der Text vorgelesen aber nicht das mp3 abgespielt.

Der Test auf der Konsole spielt das mp3 allerdings ab.

sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols /opt/fhem/cache/alarm.mp3


Ich bin mir sicher, dass ich irgendwas bei der Konfiguration falsch gemacht habe - komme aber nicht drauf  :(

Danke!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 21 August 2016, 14:43:26
Der mini Bass cube passt in eine UP Dose und einem Standard Abdeckrahmen[/url] egal ob 50 oder 55 mm.  Nur hinten mit dem USB Stecker kann es fummelig werden.

Wenn Du die Stromversorgung aus einem separaten Netzteil nimmst ist alles ok, wenn die vom USB Anschluss vom raspi kommt, "hörst Du wie er arbeitet". Der Lautsprecher hat einen eingebauten Akku, ich verwende ihn nicht als Radio sondern für Durchsagen, also vielleicht einmal die Stunde. Der Akku wird vom USB geladen.
Ich wollte ne simple Entstörung und habe nach ein paar Experimenten ein RC Glied aus 100 µF Elko und 10 Ohm genommen. Dadurch wird der Ladestrom des Akkus drastisch reduziert, reicht bei mir aber aus. Ich hatte mal den Fall nach einem Stromausfall, das diese Kombi nicht von alleine wieder zum Laufen kam. Scheinbar geht das so nur als "Erhaltungsladung", wenn der Akku leer ist braucht er offenbar doch mal kurz direkt USB. Ich habe das Filter deshalb als Zwischenstecker aus einem alten USB Kabel gebaut. Sicher kann man das optimaler machen.

Vorlesen tut er den Dateinamen, wenn er ihn nicht finden kann - warum auch immer. Ich habe alles gelassen, einfach:sudo mkdir /opt/fhem/cache/templates
sudo chown fhem /opt/fhem/cache/templates
sudo chmod 777 /opt/fhem/cache/templates
gemacht und die mp3 da rein gespielt. Die muss auch nur lesbar sein, andere Berechtigung brauch die nicht.

Was ist wenn Du mal {system ('mplayer /opt/fhem/cache/templates/alarm.mp3')} auf der Kommandozeile in FHEm eingibst?

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Devender am 21 August 2016, 15:50:39
Zitat von: Otto123 am 21 August 2016, 14:43:26
Was ist wenn Du mal {system ('mplayer /opt/fhem/cache/templates/alarm.mp3')} auf der Kommandozeile in FHEm eingibst?

Der Befehl funktioniert und der Alarmton wird abgespielt...
Somit kein Rechteproblem *hm...
Mein Filemappingattr. habe ich so: TTS_FileMapping alarm:alarm.mp3

Den Lautsprecher habe ich mit jetzt mal bestellt. Teile für ein RC Glied müsste ich sogar noch in einer Elektrokiste haben.
Da ich den Lautsprecher auch nur verwende für Ansagen probiere ich mal, wie lange der Akku damit hält. ggf. ziehe ich mir den Strom von der Fritzbox.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 21 August 2016, 18:10:11
Hast Du das ganze in einer FHEM Instanz oder über 2 Instanzen verteilt? Ich habe das nämlich über eine Remote TTS (kann ja Text2Speech) und dann müssen die Dateien auf dem System liegen welches wirklich den Sound wiedergibt.

Ich habe FileMapping und TemplateDir gar nicht definiert (also default) und es funktioniert. Also dann natürlich mit set TTSystem tts :alarm.mp3: 

Ich hatte mal noch festgestellt, dass offenbar keine Sonderzeichen7Striche/Unterstriche im Namen sein dürfen, aber hast Du ja nicht.

Die Sache mit dem mini Bass cube funktioniert bei mir seit fast zwei Jahren ohne Probleme,  bis auf den einen Stromausfall. Aber eigentlich weiß ich da  nicht so richtig was passiert war. Es hatte im Anschluss nur noch geknackt im LS wenn eine Ansage kam. Ich hatte den Tod vom Audio vom Raspi vermutet aber am Ende musste ich den LS mal aus und ein schalten. Das ist natürlich ein klein wenig doof in der UP Dose, aber es ging.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Devender am 21 August 2016, 19:07:13
Hallo Otto!

Jetzt klappt es  :) mit meiner einzigen FHEM Instanz.
Ich habe die beiden Attribute FileMapping und TemplateDir eben gelöscht
und dann den set Befehl ausgefürt. Ergebnis positiv. Der Alarmton wird abgespielt.
Dabei bin ich nur nach Wiki vorgegangen...

Hab mir auch gerade für 10€ einen fast neuen JAY-Tech bei den kleinanzeigen ergattern können.

Vielen lieben Dank!

Grüße,
Dirk
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 21 August 2016, 19:19:16
Zitat von: Devender am 21 August 2016, 19:07:13
Jetzt klappt es  :) mit meiner einzigen FHEM Instanz.
Ich habe die beiden Attribute FileMapping und TemplateDir eben gelöscht
Hab mir auch gerade für 10€ einen fast neuen JAY-Tech bei den kleinanzeigen ergattern können.
Naja manchmal ist weniger eben doch mehr  8)

Mann-O-Mann ich habe die Dinger mal vor 1,5 Jahren für 7,99 bei Rossmann gekauft. Das war ja wirklich ein Schnäppchen.

Viel Spaß damit
Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Elbgeist am 21 August 2016, 19:21:27
Hallo,

da mich diese Thematik seit langem beschäftigt klinke ich mich hier mal ein.

Mich verwundert diese Tatsache
ZitatIch habe die beiden Attribute FileMapping und TemplateDir eben gelöscht

TemplateDir habe ich nicht mehr gesetzt, FileMapping schon. letzteres ist doch wichtig, dass die mp3's überhaupt erkannt werden oder deute ich das Wiki hier völlig falsch?

Ich habe nämlich auch das Problem, dass FHEM mp3's in Verbindung mit Text auch nicht immer richtig umsetzt. Manchmal wird die mp3 vorgelesen, manchmal klappt es.
Beispiel:
*20:00:00 set MyTTS tts :gong.mp3: Hier steht dann der Text.

Ist diese Aufgabenstellung für einen RPi3 zu viel? Kann ich mir gar nicht vorstellen. Die mp3's liegen übrigens alle in /opt/fhem/cache/templates neben einigen anderen - wohl von Google generierten - mp3-Dateien mit der langen Nummer als Name  :) .

Den JAY-tech Mini Bass Cube SA101 betreffend - klappt es dann auch mit der Lautstärke besser? Denn es ist schon ein wenig leise, trotz Volume 100.

Gruß
Thomas
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 21 August 2016, 20:27:22
Zitat von: Elbgeist am 21 August 2016, 19:21:27
FileMapping schon. letzteres ist doch wichtig, dass die mp3's überhaupt erkannt werden oder deute ich das Wiki hier völlig falsch?
Ist diese Aufgabenstellung für einen RPi3 zu viel? Kann ich mir gar nicht vorstellen.
Die mp3's liegen übrigens alle in /opt/fhem/cache/templates neben einigen anderen - wohl von Google generierten - mp3-Dateien mit der langen Nummer als Name  :) .

Den JAY-tech Mini Bass Cube SA101 betreffend - klappt es dann auch mit der Lautstärke besser? Denn es ist schon ein wenig leise, trotz Volume 100.
Hallo Thomas,

mit dem mini Bass Cube geht es so laut - das wird unangenehm. Lautstärke kann man ja
- am Würfel
- im alsamixer
- und in Text2Speech einstellen.

Google schreibt die Dateien in /cache, das existiert von Hause aus. Den Ordner /cache/templates muss man anlegen und dort schreibt man eigentlich nur selbst rein.

Ich mache das mit einem Pi der ersten Stunde, das ist nicht zu viel.

FileMapping ist nur dafür, dass man :alarm: verwenden will, die Datei aber :DasIsteinAlarm.mp3: heißt.
Man könnte also :alarm: an 27 Stellen in FHEM verwenden und bei Bedarf den Sound an einer Stelle ändern.

Und wie schon gesagt, ich glaube die Namen der mp3 spielen manchmal eine Rolle für den Erfolg. Wenn Du allerdings ein und dieselbe Datei meinst mit einmal vorlesen und einmal spielen - da habe ich keine Erklärung.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Elbgeist am 22 August 2016, 11:37:11
Hi Otto,

danke wegen der Info mit dem Lautsprecher.... werde ich wohl ordern.

Nochmals, falls ich mich undeutlich ausgedrückt hatte. Meine originalen mp3's sind im Verzeichnis /opt/fhem/cache/templates abgelegt. Zugriff auf das Verzeichnis ist frei.
Das sich mir zeigende Szenario ist, dass - wenn ich :gong: verwende die mp3 vorgelesen wird und dann der Text folgt. Verwende ich :gong.mp3: ertönt der Gong aber der Text wird wird ausgelassen.
Hier der Logauszug:
2016.08.22 11:29:45 4: Verwende TTS Spracheinstellung: Deutsch
2016.08.22 11:29:45 4: Text2Speech: Bearbeite jetzt den Text: Auf dem privaten Anrufbeantworter ist eine neue Nachricht
2016.08.22 11:29:45 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: c9cd46138c60421cf391c2adea28cb8a.mp3
2016.08.22 11:29:45 4: Text2Speech: Verwende Google OnlineResource zum Download
2016.08.22 11:29:45 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=Auf%20dem%20privaten%20Anrufbeantworter%20ist%20eine%20neue%20Nachricht
2016.08.22 11:29:45 4: Text2Speech: Schreibe mp3 in die Datei cache/c9cd46138c60421cf391c2adea28cb8a.mp3 mit 21024 Bytes
2016.08.22 11:29:45 4: Text2Speech_CalcMP3Duration: cache/c9cd46138c60421cf391c2adea28cb8a.mp3 hat eine Länge von 5 Sekunden.
2016.08.22 11:29:45 4: Text2Speech:/usr/bin/mplayer  -really-quiet -nolirc -noconsolecontrols cache/c9cd46138c60421cf391c2adea28cb8a.mp3
Terminal type `unknown' is not defined.


Mir leuchtet nicht ein, warum der Fehler so wie beschrieben auftritt. Beide Teile gehen ja, Gong wie auch Text. Nur eben nicht miteinander.

Gruß
Thomas
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 22 August 2016, 12:05:49
Hi Elbgeist,

naja das ist eine neue Frage. Meine Antwort gestern bezog sich darauf ob man FileMapping machen muss oder nicht. Man muss nicht, man kann!
Ich habe kein FileMapping! Ich habe die mp3 Dateien auch in /opt/fhem/cache/templates, Rechte sind rw-r--r-- Besitzer pi.
Wenn ich set MyTTS tts Hallo :DingDong.mp3: oderset MyTTS tts :DingDong.mp3: Hallo geht beides:DingDong und der Text davor oder danach. Wie eigentlich erwartet.

Dein Logauszug zeigt ja die Umwandlung von dem Text in mp3 über google, von gong.mp3 sehe ich da nichts. Hier mal mein Log mit einem text davor und danach. Weiß nicht ob Dir das hilft.
2016.08.22 12:03:38 4: MyTTS: Angabe einer direkten MP3-Datei gefunden:  DingDong1.mp3 => FileTpl_1471860218_#0
2016.08.22 12:03:38 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2016.08.22 12:03:38 4: MyTTS: 0 => Hallo
2016.08.22 12:03:38 4: MyTTS: 1 => templates/DingDong1.mp3
2016.08.22 12:03:38 4: MyTTS: 2 => Das war der Text
2016.08.22 12:03:38 4: Verwende TTS Spracheinstellung: Deutsch
2016.08.22 12:03:38 4: Text2Speech: Bearbeite per MP3Wrap jetzt den Text: Hallo templates/DingDong1.mp3
2016.08.22 12:03:38 4: Text2Speech_CalcMP3Duration: cache/dd249b448b3c2b53953f8ce0580eacfe_MP3WRAP.mp3 hat eine Länge von 13 Sekunden.
2016.08.22 12:03:38 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 30 cache/dd249b448b3c2b53953f8ce0580eacfe_MP3WRAP.mp3
MPlayer svn r34540 (Raspbian), built with gcc-4.6 (C) 2000-2012 MPlayer Team

Playing cache/dd249b448b3c2b53953f8ce0580eacfe_MP3WRAP.mp3.
libavformat version 53.21.1 (external)
Mismatching header version 53.19.0
Audio only file format detected.
Load subtitles in cache/
==========================================================================
Requested audio codec family [mpg123] (afm=mpg123) not available.
Enable it at compilation.
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 53.35.0 (external)
Mismatching header version 53.32.2
AUDIO: 24000 Hz, 1 ch, floatle, 32.0 kbit/4.17% (ratio: 4000->96000)
Selected audio codec: [ffmp3float] afm: ffmpeg (FFmpeg MPEG layer-3 audio)
==========================================================================
[AO_ALSA] Format floatle is not supported by hardware, trying default.
AO: [alsa] 24000Hz 1ch s16le (2 bytes per sample)
[Mixer] No hardware mixing, inserting volume filter.
Video: no video
Starting playback...
A:   0.0 (00.0) of 12.0 (12.0) ??,?% 
A:   0.0 (00.0) of 12.0 (12.0)  4.5% 
A:   0.0 (00.0) of 12.0 (12.0)  4.5% 
A:   0.1 (00.0) of 12.0 (12.0)  4.4% 
A:   0.1 (00.0) of 12.0 (12.0)  4.3% 
A:   0.1 (00.1) of 12.0 (12.0)  4.3% 
A:   0.2 (00.1) of 12.0 (12.0)  4.2% 
A:   0.2 (00.1) of 12.0 (12.0)  4.1% 
AO: [alsa] 24000Hz 2ch s16le (2 bytes per sample)
A:   0.8 (00.8) of 12.0 (12.0)  4.5% 
A:   0.5 (00.5) of 12.0 (12.0)  4.9% 
A:   0.5 (00.5) of 12.0 (12.0)  4.7% 
A:   0.5 (00.5) of 12.0 (12.0)  4.8% 
A:   0.5 (00.5) of 12.0 (12.0)  4.8% 
A:   0.6 (00.5) of 12.0 (12.0)  4.7% 
A:   0.6 (00.5) of 12.0 (12.0)  4.8% 
A:   0.6 (00.6) of 12.0 (12.0)  4.8% 
A:   0.6 (00.6) of 12.0 (12.0)  4.8% 
A:   0.6 (00.5) of 12.0 (12.0)  4.8% 
A:   0.7 (00.6) of 12.0 (12.0)  4.8% 
A:   0.7 (00.6) of 12.0 (12.0)  4.8% 
A:   0.6 (00.6) of 12.0 (12.0)  4.9% 
A:   0.7 (00.6) of 12.0 (12.0)  4.8% 
A:   0.7 (00.6) of 12.0 (12.0)  4.9% 
A:   0.7 (00.7) of 12.0 (12.0)  4.8% 
A:   0.7 (00.7) of 12.0 (12.0)  4.8% 
A:   0.7 (00.7) of 12.0 (12.0)  4.9% 
A:   0.8 (00.7) of 12.0 (12.0)  4.8% 
A:   0.8 (00.7) of 12.0 (12.0)  4.9% 
A:   0.8 (00.7) of 12.0 (12.0)  4.9% 
A:   0.8 (00.8) of 12.0 (12.0)  4.9% 
A:   0.8 (00.8) of 12.0 (12.0)  4.9% 
A:   0.9 (00.8) of 12.0 (12.0)  4.8% 
A:   0.8 (00.8) of 12.0 (12.0)  4.9% 
A:   0.9 (00.8) of 12.0 (12.0)  4.8% 
A:   0.9 (00.8) of 12.0 (12.0)  4.8% 
A:   0.9 (00.8) of 12.0 (12.0)  4.9% 
A:   0.9 (00.9) of 12.0 (12.0)  4.8% 
A:   0.9 (00.9) of 12.0 (12.0)  4.9% 
A:   0.9 (00.9) of 12.0 (12.0)  4.9% 
A:   1.0 (00.9) of 12.0 (12.0)  4.8% 
A:   0.9 (00.9) of 12.0 (12.0)  4.9% 
A:   1.0 (01.0) of 12.0 (12.0)  4.8% 
A:   1.0 (00.9) of 12.0 (12.0)  4.9% 
A:   1.0 (00.9) of 12.0 (12.0)  4.9% 
A:   1.1 (01.0) of 12.0 (12.0)  4.8% 
A:   1.0 (01.0) of 12.0 (12.0)  4.9% 
A:   1.0 (01.0) of 12.0 (12.0)  4.9% 
A:   1.1 (01.0) of 12.0 (12.0)  4.9% 
A:   1.1 (01.0) of 12.0 (12.0)  4.9% 
A:   1.1 (01.1) of 12.0 (12.0)  4.8% 
A:   1.1 (01.1) of 12.0 (12.0)  4.9% 
A:   1.1 (01.1) of 12.0 (12.0)  4.9% 
A:   1.1 (01.1) of 12.0 (12.0)  4.8% 
A:   1.1 (01.1) of 12.0 (12.0)  4.9% 
A:   1.2 (01.1) of 12.0 (12.0)  4.8% 
A:   1.2 (01.1) of 12.0 (12.0)  4.9% 
A:   1.2 (01.1) of 12.0 (12.0)  4.9% 
A:   1.2 (01.2) of 12.0 (12.0)  4.8% 
A:   1.2 (01.2) of 12.0 (12.0)  4.9% 
A:   1.3 (01.2) of 12.0 (12.0)  4.8% 
A:   1.3 (01.2) of 12.0 (12.0)  4.9% 
A:   1.3 (01.2) of 12.0 (12.0)  4.9% 
A:   1.3 (01.3) of 12.0 (12.0)  4.8% 
A:   1.3 (01.3) of 12.0 (12.0)  4.9% 
A:   1.3 (01.2) of 12.0 (12.0)  4.9% 
A:   1.3 (01.3) of 12.0 (12.0)  4.8% 
A:   1.3 (01.3) of 12.0 (12.0)  4.9% 
A:   1.4 (01.3) of 12.0 (12.0)  4.8% 
A:   1.4 (01.3) of 12.0 (12.0)  4.8% 
A:   1.4 (01.3) of 12.0 (12.0)  4.9% 
A:   1.4 (01.4) of 12.0 (12.0)  4.8% 
A:   1.4 (01.4) of 12.0 (12.0)  4.9% 
A:   1.4 (01.4) of 12.0 (12.0)  4.9% 
A:   1.4 (01.4) of 12.0 (12.0)  4.8% 
A:   1.4 (01.4) of 12.0 (12.0)  4.9% 
A:   1.5 (01.5) of 12.0 (12.0)  4.8% 
A:   1.5 (01.4) of 12.0 (12.0)  4.9% 
A:   1.5 (01.4) of 12.0 (12.0)  4.9% 
A:   1.5 (01.5) of 12.0 (12.0)  4.9% 
A:   1.5 (01.5) of 12.0 (12.0)  4.9% 
A:   1.6 (01.5) of 12.0 (12.0)  4.9% 
A:   1.6 (01.5) of 12.0 (12.0)  4.9% 
A:   1.6 (01.5) of 12.0 (12.0)  4.9% 
A:   1.6 (01.6) of 12.0 (12.0)  4.9% 
A:   1.6 (01.6) of 12.0 (12.0)  4.9% 
A:   1.6 (01.5) of 12.0 (12.0)  4.9% 
A:   1.7 (01.6) of 12.0 (12.0)  4.9% 
A:   1.6 (01.6) of 12.0 (12.0)  4.9% 
A:   1.7 (01.7) of 12.0 (12.0)  4.9% 
A:   1.7 (01.6) of 12.0 (12.0)  4.9% 
A:   1.7 (01.6) of 12.0 (12.0)  4.9% 
A:   1.7 (01.7) of 12.0 (12.0)  4.9% 
A:   1.7 (01.7) of 12.0 (12.0)  4.9% 
A:   1.7 (01.7) of 12.0 (12.0)  4.9% 
A:   1.8 (01.7) of 12.0 (12.0)  4.9% 
A:   1.7 (01.7) of 12.0 (12.0)  4.9% 
A:   1.8 (01.8) of 12.0 (12.0)  4.9% 
A:   1.8 (01.7) of 12.0 (12.0)  4.9% 
A:   1.8 (01.8) of 12.0 (12.0)  4.9% 
A:   1.8 (01.8) of 12.0 (12.0)  4.9% 
A:   1.8 (01.8) of 12.0 (12.0)  4.9% 
A:   1.9 (01.8) of 12.0 (12.0)  4.9% 
A:   1.9 (01.8) of 12.0 (12.0)  4.9% 
A:   1.9 (01.8) of 12.0 (12.0)  4.9% 
A:   1.9 (01.9) of 12.0 (12.0)  4.9% 
A:   1.9 (01.9) of 12.0 (12.0)  4.9% 
A:   2.0 (01.9) of 12.0 (12.0)  4.9% 
A:   2.0 (01.9) of 12.0 (12.0)  4.9% 
A:   1.9 (01.9) of 12.0 (12.0)  4.9% 
A:   2.0 (01.9) of 12.0 (12.0)  4.9% 
A:   2.0 (01.9) of 12.0 (12.0)  4.9% 
A:   2.0 (01.9) of 12.0 (12.0)  4.9% 
A:   2.0 (02.0) of 12.0 (12.0)  4.9% 
A:   2.1 (02.0) of 12.0 (12.0)  4.9% 
A:   2.1 (02.0) of 12.0 (12.0)  4.9% 
A:   2.1 (02.0) of 12.0 (12.0)  4.9% 
A:   2.1 (02.1) of 12.0 (12.0)  4.9% 
A:   2.1 (02.1) of 12.0 (12.0)  4.9% 
A:   2.1 (02.0) of 12.0 (12.0)  4.9% 
A:   2.2 (02.1) of 12.0 (12.0)  4.9% 
A:   2.2 (02.1) of 12.0 (12.0)  4.9% 
A:   2.1 (02.1) of 12.0 (12.0)  5.0% 
A:   2.2 (02.1) of 12.0 (12.0)  4.9% 
A:   2.2 (02.1) of 12.0 (12.0)  4.9% 
A:   2.2 (02.2) of 12.0 (12.0)  4.9% 
A:   2.2 (02.2) of 12.0 (12.0)  4.9% 
A:   2.2 (02.2) of 12.0 (12.0)  5.0% 
A:   2.3 (02.2) of 12.0 (12.0)  4.9% 
A:   2.3 (02.2) of 12.0 (12.0)  5.0% 
A:   2.2 (02.2) of 12.0 (12.0)  5.0% 
A:   2.3 (02.3) of 12.0 (12.0)  4.9% 
A:   2.3 (02.3) of 12.0 (12.0)  5.0% 
A:   2.4 (02.3) of 12.0 (12.0)  5.0% 
A:   2.4 (02.3) of 12.0 (12.0)  4.9% 
A:   2.3 (02.3) of 12.0 (12.0)  5.0% 
A:   2.4 (02.3) of 12.0 (12.0)  4.9% 
A:   2.4 (02.3) of 12.0 (12.0)  5.0% 
A:   2.4 (02.4) of 12.0 (12.0)  4.9% 
A:   2.4 (02.4) of 12.0 (12.0)  4.9% 
A:   2.4 (02.3) of 12.0 (12.0)  5.0% 
A:   2.5 (02.4) of 12.0 (12.0)  4.9% 
A:   2.4 (02.4) of 12.0 (12.0)  5.0% 
A:   2.4 (02.4) of 12.0 (12.0)  5.0% 
A:   2.5 (02.4) of 12.0 (12.0)  5.0% 
A:   2.5 (02.4) of 12.0 (12.0)  5.0% 
A:   2.5 (02.5) of 12.0 (12.0)  4.9% 
A:   2.5 (02.5) of 12.0 (12.0)  5.0% 
A:   2.5 (02.5) of 12.0 (12.0)  5.0% 
A:   2.6 (02.5) of 12.0 (12.0)  5.0% 
A:   2.6 (02.5) of 12.0 (12.0)  5.0% 
A:   2.6 (02.5) of 12.0 (12.0)  5.0% 
A:   2.6 (02.6) of 12.0 (12.0)  5.0% 
A:   2.6 (02.6) of 12.0 (12.0)  5.0% 
A:   2.6 (02.6) of 12.0 (12.0)  4.9% 
A:   2.6 (02.6) of 12.0 (12.0)  5.0% 
A:   2.7 (02.6) of 12.0 (12.0)  4.9% 
A:   2.7 (02.6) of 12.0 (12.0)  5.0% 
A:   2.7 (02.6) of 12.0 (12.0)  5.0% 
A:   2.7 (02.7) of 12.0 (12.0)  5.0% 
A:   2.7 (02.7) of 12.0 (12.0)  5.0% 
A:   2.8 (02.7) of 12.0 (12.0)  4.9% 
A:   2.8 (02.8) of 12.0 (12.0)  4.9% 
A:   2.8 (02.8) of 12.0 (12.0)  4.9% 


Exiting... (End of file)
2016.08.22 12:03:45 4: Verwende TTS Spracheinstellung: Deutsch
2016.08.22 12:03:45 4: Text2Speech: Bearbeite jetzt den Text: Das war der Text
2016.08.22 12:03:45 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 73a5e201068fc02d0ff82f23c6763a49.mp3
2016.08.22 12:03:45 4: Text2Speech: Verwende Google OnlineResource zum Download
2016.08.22 12:03:45 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=Das%20war%20der%20Text
2016.08.22 12:03:45 4: Text2Speech: Schreibe mp3 in die Datei cache/73a5e201068fc02d0ff82f23c6763a49.mp3 mit 6624 Bytes
2016.08.22 12:03:45 4: Text2Speech_CalcMP3Duration: cache/73a5e201068fc02d0ff82f23c6763a49.mp3 hat eine Länge von 2 Sekunden.
2016.08.22 12:03:45 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 30 cache/73a5e201068fc02d0ff82f23c6763a49.mp3
MPlayer svn r34540 (Raspbian), built with gcc-4.6 (C) 2000-2012 MPlayer Team

Playing cache/73a5e201068fc02d0ff82f23c6763a49.mp3.
libavformat version 53.21.1 (external)
Mismatching header version 53.19.0
Audio only file format detected.
Load subtitles in cache/
==========================================================================
Requested audio codec family [mpg123] (afm=mpg123) not available.
Enable it at compilation.
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 53.35.0 (external)
Mismatching header version 53.32.2
AUDIO: 24000 Hz, 1 ch, floatle, 32.0 kbit/4.17% (ratio: 4000->96000)
Selected audio codec: [ffmp3float] afm: ffmpeg (FFmpeg MPEG layer-3 audio)
==========================================================================
[AO_ALSA] Format floatle is not supported by hardware, trying default.
AO: [alsa] 24000Hz 1ch s16le (2 bytes per sample)
[Mixer] No hardware mixing, inserting volume filter.
Video: no video
Starting playback...
A:   0.0 (00.0) of 1.0 (01.0) ??,?% 
A:   0.0 (00.0) of 1.0 (01.0)  2.5% 
A:   0.0 (00.0) of 1.0 (01.0)  2.6% 
A:   0.1 (00.0) of 1.0 (01.0)  2.6% 
A:   0.1 (00.0) of 1.0 (01.0)  2.6% 
A:   0.1 (00.1) of 1.0 (01.0)  2.7% 
A:   0.2 (00.1) of 1.0 (01.0)  2.7% 
A:   0.2 (00.1) of 1.0 (01.0)  2.7% 
A:   0.2 (00.2) of 1.0 (01.0)  2.7% 
A:   0.2 (00.2) of 1.0 (01.0)  2.7% 
A:   0.3 (00.2) of 1.0 (01.0)  2.8% 
A:   0.3 (00.3) of 1.0 (01.0)  2.8% 
A:   0.3 (00.3) of 1.0 (01.0)  2.8% 
A:   0.4 (00.3) of 1.0 (01.0)  2.8% 
A:   0.4 (00.3) of 1.0 (01.0)  2.8% 
A:   0.4 (00.4) of 1.0 (01.0)  2.7% 
A:   0.5 (00.4) of 1.0 (01.0)  2.8% 
A:   0.5 (00.4) of 1.0 (01.0)  2.8% 
A:   0.5 (00.5) of 1.0 (01.0)  2.8% 
A:   0.5 (00.5) of 1.0 (01.0)  2.8% 
A:   0.6 (00.5) of 1.0 (01.0)  2.8% 
A:   0.6 (00.6) of 1.0 (01.0)  2.8% 
A:   0.6 (00.6) of 1.0 (01.0)  2.8% 
A:   0.7 (00.6) of 1.0 (01.0)  2.8% 
A:   0.7 (00.6) of 1.0 (01.0)  2.8% 
A:   0.7 (00.7) of 1.0 (01.0)  2.8% 
A:   0.8 (00.7) of 1.0 (01.0)  2.8% 
A:   0.8 (00.7) of 1.0 (01.0)  2.8% 
A:   0.8 (00.8) of 1.0 (01.0)  2.8% 
A:   0.8 (00.8) of 1.0 (01.0)  2.8% 
A:   0.9 (00.8) of 1.0 (01.0)  2.8% 
A:   0.9 (00.9) of 1.0 (01.0)  2.8% 
A:   0.9 (00.9) of 1.0 (01.0)  2.8% 
A:   1.0 (00.9) of 1.0 (01.0)  2.8% 
A:   1.0 (00.9) of 1.0 (01.0)  2.8% 
A:   1.0 (01.0) of 1.0 (01.0)  2.9% 
A:   1.1 (01.0) of 1.0 (01.0)  2.8% 
A:   1.1 (01.0) of 1.0 (01.0)  2.8% 
A:   1.1 (01.1) of 1.0 (01.0)  2.9% 
A:   1.1 (01.1) of 1.0 (01.0)  2.8% 
A:   1.2 (01.1) of 1.0 (01.0)  2.8% 
A:   1.2 (01.1) of 1.0 (01.0)  2.8% 


Exiting... (End of file)


Habe eben noch probiert: FileMapping funktioniert bei mir nicht. Wenn ich dort was definiere wird nur vorgelesen.
Da ist wohl was kaputt?

Ich habe auch noch festgestellt:
Wenn man ein Mapping definiert, kann man es nur löschen wenn die Datei existiert!? Also
attr MyTTS TTS_FileMapping gong:willi.mp3
deleteattr MyTTS TTS_FileMapping
erzeugt die Ausgabe file does not exist: <cache/templates/willi.mp3>

Aus der Nummer kommt man nur noch mit shutdown restart raus vorausgesetzt man hat noch nicht save gemacht.  :'(

ZitatVerwende ich :gong.mp3: ertönt der Gong aber der Text wird wird ausgelassen.
Das funktioniert bei mir aber nach wie vor. Auch bei definiertem FileMapping, der Gong ertönt und der Text folgt- allerdings mit überhöhter Geschwindigkeit "Mickimaus"

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Elbgeist am 22 August 2016, 13:16:13
Hi Otto,

anhand Deines Logfiles sehe ich schon einen Unterschied, ich kann ihn nur nicht zuordnen bzw. weiß ich nicht ob er von Bedeutung ist hinsichtlich der "Fehlfunktion".

Gebe ich diesen Befehl ein

set MyTTS tts :gong.mp3: Hallo

dann ertönt der Gong, das Hallo bleibt aber aus.

Hier das Log für diesen Vorgang:

2016.08.22 12:57:31 4: MyTTS: Angabe einer direkten MP3-Datei gefunden:  gong.mp3 => FileTpl_1471863451_#0
2016.08.22 12:57:31 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2016.08.22 12:57:31 4: MyTTS: 0 => templates/gong.mp3
2016.08.22 12:57:31 4: MyTTS: 1 => Hallo
2016.08.22 12:57:31 4: Verwende TTS Spracheinstellung: Deutsch
2016.08.22 12:57:31 4: Text2Speech: Bearbeite per MP3Wrap jetzt den Text: templates/gong.mp3 Hallo
2016.08.22 12:57:31 4: Text2Speech_CalcMP3Duration: cache/d6dfa8e2ca9ebc02aa482e1407e86ffb_MP3WRAP.mp3 hat eine Länge von 4 Sekunden.
2016.08.22 12:57:31 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols cache/d6dfa8e2ca9ebc02aa482e1407e86ffb_MP3WRAP.mp3


Drehe ich das Ganze um, also


set MyTTS tts Hallo :gong.mp3:

dann passiert gar nichts  - weder Gong noch Text - und es gibt folgendes Log:

2016.08.22 13:03:38 2: Text2Speech: BlockingCall for MyTTS was aborted
2016.08.22 13:04:18 4: MyTTS: Angabe einer direkten MP3-Datei gefunden:   => FileTpl_1471863858_#1
2016.08.22 13:04:18 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2016.08.22 13:04:18 4: MyTTS: 0 => ARRAY(0x2fea520)
2016.08.22 13:04:18 4: MyTTS: 1 => Hallo
2016.08.22 13:04:18 4: MyTTS: 2 => templates/gong.mp3
2016.08.22 13:04:18 4: Verwende TTS Spracheinstellung: Deutsch
2016.08.22 13:04:18 4: Text2Speech: Bearbeite per MP3Wrap jetzt den Text: ARRAY(0x2fea520) Hallo templates/gong.mp3
2016.08.22 13:04:18 4: Text2Speech: mp3wrap cache/e26f8ea7add3eff13b35fdff920f6002.mp3 cache/1814713ad3c1f9f3c7c525798dd95be4.mp3 cache/71ce4185214eb43202358604a63cdcab.mp3 cache/templates/gong.mp3 >/dev/null
2016.08.22 13:04:18 4: Text2Speech_CalcMP3Duration: cache/e26f8ea7add3eff13b35fdff920f6002_MP3WRAP.mp3 hat eine Länge von 27 Sekunden.
2016.08.22 13:04:18 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols cache/e26f8ea7add3eff13b35fdff920f6002_MP3WRAP.mp3
Terminal type `unknown' is not defined.


Zum einen fällt auf, dass im Vergleich zu Deinen Logs diese Zeile

Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0 -[b]really-quiet -nolirc -noconsolecontrols[/b] cache/e26f8ea7add3eff13b35fdff920f6002_MP3WRAP.mp3

von Deiner abweicht .
Zum anderen habe ich einen Abbruch von MyTTS:

Text2Speech: BlockingCall for MyTTS was aborted

warum und wieso auch immer. Ohne einen Neustart von FHEM spricht hier gar nichts mehr was TTS betrifft. Dieser BlockingCall fiel mir heute zum ersten Male auf. Hab in der Referenz nach gelesen, aber wirklich schlau bin ich daraus nicht geworden.

Vielleicht fällt Dir Otto, oder gerne auch jemanden anderen etwas dazu ein wie dieses Problem behoben werden kann. Der Teufel steckt wie immer wohl im Detail.

Gruß
Thomas
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 23 August 2016, 09:06:01
Moin Thomas,

ich habe mir das Ganze nochmal genau durchgelesen. Ich denke er spielt Dein "Hallo" schon, aber eben "-really-quiet " --> ganz leise.
Nein das stimmt natürlich nicht, realy-quiet bedeutet ohne jede Ausgabe und Statusmeldung  8)

Was er bei der zweiten Variante mit BlockingCall macht? Es ist aber auch 30 sec vorher..
Aber dann diese Sache mit "MyTTS: 0 => ARRAY(0x2fea520)" Wo nimmt er das her?

Du sagst er schaltet damit quasi jede Textausgabe ab bis zum Neustart von FHEM? Nur Text geht aber ansonsten?

Ich habe keine Ahnung was da passiert, da kann wenn überhaupt noch Tobias helfen.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Elbgeist am 24 August 2016, 09:34:07
Moin Otto,

ich habe das TTS-Modul nun komplett entfernt und nach einem Update neu aufgebaut.
In den Attributen nichts eingesetzt, alles so gelassen wie es nach der Installation stand,
Anfangs ging es einwandfrei..... bis zum Abend jedoch stellten sich wieder Fehler ein. Zuletzt heute Morgen.
Der Gong ertönt.... dann ist es vorbei.

2016.08.24 08:45:00 5: exec at command at_Wetter_morgens
2016.08.24 08:45:00 5: redefine at command at_Wetter_morgens as *08:45:00 set T2S tts :gong.mp3: Die aktuellen Wetterdaten. {speakWetterDaten()}
2016.08.24 08:46:00 1: Timeout for Text2Speech_DoIt reached, terminated process 8945
2016.08.24 08:46:00 2: Text2Speech: BlockingCall for T2S was aborted


Nach Recherche hier im Forum fand ich den Hinweis, dass der gesamt Prozess zu lang sein könnte. Bei 60 Sekunden ist hier die Begrenzung.
Das kann jedoch auch nicht sein. Alles in allem liege ich bei rund 30 Sekunden.

Vielleicht liest Tobias hier ja zufällig mit und kann helfend eingreifen.

Für Deine Unterstützung herzlichen Dank und einen schönen Tag.

Gruß
Thomas
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Elbgeist am 26 August 2016, 09:12:03
Noch ein Nachtrag der eventuell zur Fehlerbehebung beiträgt.
Es funktioniert nur, wenn ich mittels eines Cronjobs alle 30 Minuten die temporärer mp3-Dateien (von Goggle) löschen lasse.
Aber - immer wieder liest TTS einen Array vor und kümmert sich dann erst um die eigentlichen Texte.

2016.08.26 09:06:25 4: T2S: 0 => ARRAY(0x26d26d0)

Gruß
Thomas
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Devender am 27 August 2016, 16:59:59
Hallo und kurze Rückmeldung von mir :-)

Mein Jay-tech Lautsprecher ist heute angekommen und ich habe ihn direkt angeschlossen.

Ergebnis: Eine klare und deutlich lautere Sprachausgabe über den neuen aktiven Lautsprecher  :)
Ich habe diesen bei mir direkt an den PI (Line out) und USB (Strom) angeschlossen. Bei der Sprachausgabe habe ich bisher keine Störgeräusche wahrgenommen.
Auch passt er durch die gerine Größe noch in meinen Technikbereich in der Wand.

Danke nochmal an Otto für den wirklichen klasse Tipp!!!!  ;D
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PsychoD am 29 August 2016, 14:47:27
Zitat von: Elbgeist am 26 August 2016, 09:12:03
Noch ein Nachtrag der eventuell zur Fehlerbehebung beiträgt.
Es funktioniert nur, wenn ich mittels eines Cronjobs alle 30 Minuten die temporärer mp3-Dateien (von Goggle) löschen lasse.
Aber - immer wieder liest TTS einen Array vor und kümmert sich dann erst um die eigentlichen Texte.

2016.08.26 09:06:25 4: T2S: 0 => ARRAY(0x26d26d0)

Gruß
Thomas

Dieses Problem quält mich leider auch nach wie vor. michaelfhem hatte geholfen mp3wrap umzustellen, mir leider nicht. Mehr hier:
https://forum.fhem.de/index.php/topic,18481.msg451875.html#msg451875
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 30 August 2016, 13:20:59
Hi,
in dem Beispiel sieht man ab er, das nach exakt 60sek abgebrochen wird:
2016.08.24 08:45:00 5: redefine at command at_Wetter_morgens as *08:45:00 set T2S tts :gong.mp3: Die aktuellen Wetterdaten. {speakWetterDaten()}
2016.08.24 08:46:00 1: Timeout for Text2Speech_DoIt reached, terminated process 8945


Irgendwo liegen dann Laichen als Folgefehler rum, das ist dann das Array. Nach einem Fhem Neustart ist auch das Array wieder weg. Die exakten Fehler dazu habe ich aber auch noch nicht finden können. Aber: Bekommt man das ursächliche Problem weg, ist auch die Array-Geschichte von gestern ;) :(

Folge mal bitte https://forum.fhem.de/index.php/topic,18481.msg451875.html#msg451875
und poste auch die Ergebnisse wenn du den mplayeraufruf mit der mp3wrap datei von Hand machst. Ev. wird es dann schon ersichtlich
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: chunter1 am 01 September 2016, 17:00:17
Kurze Frage...

Wenn ich folgenden Code verwende, spricht er nur die erste und manchmal die letzte Zeile.
Was mach ich denn da falsch?
Muss ich zwischen den Zeilen eine Wartebedingung einfügen die prüft, ob der Player fertig ist?
Aber dadurch würde dann FHEM hängen?


if (...) {
  fhem("set MyTTS tts Guten Morgen.");
  fhem("set MyTTS tts Es gibt Stau.");
  fhem("set MyTTS tts Zeitverlust zirka $valDelay Minuten.");
}
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 01 September 2016, 17:55:40
Was spricht dagegen, alles mit einem set-Befehl auszuführen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: chunter1 am 01 September 2016, 20:56:36
Zitat von: Ellert am 01 September 2016, 17:55:40
Was spricht dagegen, alles mit einem set-Befehl auszuführen?

Wäre eine Lösung, wenn nicht weiter unten im Code dann wieder optionale Sprachausgaben folgen würden.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PsychoD am 01 September 2016, 22:30:02
Zitat von: chunter1 am 01 September 2016, 17:00:17
Kurze Frage...

Wenn ich folgenden Code verwende, spricht er nur die erste und manchmal die letzte Zeile.
Was mach ich denn da falsch?
Muss ich zwischen den Zeilen eine Wartebedingung einfügen die prüft, ob der Player fertig ist?
Aber dadurch würde dann FHEM hängen?


if (...) {
  fhem("set MyTTS tts Guten Morgen.");
  fhem("set MyTTS tts Es gibt Stau.");
  fhem("set MyTTS tts Zeitverlust zirka $valDelay Minuten.");
}


Hi,
ist nicht getestet, aber ich glaube du kannst das so lösen:


fhem("sleep 5;;set tts Türöffnung bei Abwesenheit. Alarm ausgelöst.");;\
fhem("sleep 15;;set tts Türöffnung bei Abwesenheit. Alarm ausgelöst.");;\


Viele Grüße
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 01 September 2016, 23:32:12
Zitat von: chunter1 am 01 September 2016, 20:56:36
Wäre eine Lösung, wenn nicht weiter unten im Code dann wieder optionale Sprachausgaben folgen würden.

Ich baue den Text vollständig zusammen und spiele ihn erst dann ab, das gibt dann auch eine flüssige Ausgabe. Diese Verfahrensweise wurde hier im Thread schon mehrfach empfohlen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hollo am 02 September 2016, 09:14:37
Zitat von: Ellert am 01 September 2016, 23:32:12
Ich baue den Text vollständig zusammen und spiele ihn erst dann ab...
Mach ich auch so.  :)
Mit mehreren Ausgaben hintereinander bin ich auch schon "auf die Nase gefallen".
Da läuft dann noch die eine "Abfrage", und wird schon von der nächsten "überschrieben".
Ich hab da irgendwie noch im Hinterkopf, dass der Punkt auch eine Trennung bzw. Ende des Sprachkommandos darstellt.  :-\
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 02 September 2016, 09:26:59
Moin,

ich erzeuge an unterschiedlichen Stellen einzelne Sprachausgaben und gestartet werden die jeweils über den Bewegungsmelder im Flur. Also Temperaturansage, Willkommensnachrichten (auch mal zwei wenn zwei kommen)...
Normalerweise kommen die separat, aber auch mal gemeinsam und dann schön hintereinander.
Läuft bei mir ohne Probleme  8) Ohne das ich was besonderes gemacht habe.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PsychoD am 02 September 2016, 11:16:19
Ich mache es ähnlich, wird jedoch über Geofence und Sensor an der Tür getriggert  ;D ;D

Ich hab bspw. eine Warnausgabe, wenn der Alarm noch aktiv ist, weil bspw. der Geofence mal nicht funktioniert hat oder so - abhängig davon ob dann jemand den versteckten Schalter zuhause drückt oder nicht erfolgen weitere Ausgaben.

@Otto: Rein interessehalber würde mich interessieren, wie du das gelöst hast. Ich habe immer noch hier und da das "Array" Problem mit Google, und finde den Grund nicht so recht...

Viele Grüße
Psy
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Elbgeist am 02 September 2016, 14:16:36
Hi PsychoD,

ich möchte es jetzt nicht beschwören..... nicht dass es gleich wieder los geht mit Array-Bla-Bla.....

Ich lasse FHEM tagsüber alle 30 Minuten die temporären mp3-Dateien in /cache löschen. Das läuft nun seit knapp 3 Tagen, bisher ohne Probleme. Mit folgendem Aufruf wird das bewerkstelligt:

+*00:30:00 { system("rm /opt/fhem/cache/*.mp3") }

Das löst zwar weiterhin nicht die spannende Frage, warum hier ein Array vorgelesen wird, es hilft aber, dass diese völlig unsinnige Ansage weg bleibt.

Vielleicht bringt Dich das zumindest in der Form weiter, dass sich die Ansagen auf das Wesentliche konzentrieren und kein Zahlenbingo veranstalten.

Gruß
Thomas
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 03 September 2016, 10:20:51
Hi Psy,

wie soll ich das jetzt mal kurz beschreiben? Eigentlich habe ich mir keinen Kopf gemacht:
Temperatur einmal pro halbe Stunde DOIF   DEF        ([?06:00 - 20:00] and [PIR1:"motion: on"]) ( set MyTTS volume 30, set MyTTS tts Es sind [SensorAussen:tempText] Grad)
   NAME       di_TemperaturAnsage
...
Attributes:
   cmdpause   1800
   do         always

Begrüßung, gibt es für alle in der Familie. HalloPerson DOIF DEF        ([PersonOtto] eq "present" and [PIR1:?motion]) (set MyTTS tts Hallo Otto)
Wenn jetzt 2 Leute kommen und von draußen die Tür aufmachen, dann wird ganz brav die Temperatur angesagt und die beiden hintereinander begrüßt. Klappt zuverlässig.

Frag mich jetzt nicht warum der Trigger für den Bewegungsmelder so unterschiedlich ist, ist irgendwie historisch gewachsen. Es gab mal Änderungen im HM Modul und auch im DOIF danach hat sich alles etwas anders verhalten und ich habe rum experimentiert.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PsychoD am 03 September 2016, 16:02:15
Danke euch beiden!!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Pfriemler am 09 September 2016, 23:25:01
Nur mal doof zwischengefragt: Bei mir wird nach wie vor alles störungsfrei angesagt (vielleicht aber auch, weil es keine neuen Texte gibt und alles wohl im Cache liegt). Aber jede Ansage wirft auch nach Dutzenden Updates ein

Terminal type `unknown' is not defined.

ins Logfile. Sollte das nicht mal gefixt werden?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 10 September 2016, 08:34:26
Wenn es Dich stört könntest Du es selbst abstellen indem Du die Meldung unterdrückst und das Modul vom Update ausschliesst.

unter Jessie "Terminal type `unknown' is not defined." verhindern (https://forum.fhem.de/index.php/topic,55860.0.html)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Pfriemler am 10 September 2016, 23:47:55
Danke nochmal für den Tipp, aber das war mir schon mal untergekommen.
Schicker fände ich es doch, wenn das Tobias updatesicher einbauen könnte, bitte?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: DeepB am 02 Oktober 2016, 16:11:30
Ich bin mir nicht sicher ob das hierher gehört, aber kann ich die ausgabe auf einem Chromecast (eingebunden in den LMS, dieser ist mit dem Squeezeboxmodul eingebunden) abspielen?

vielen Dank
Daniel
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 02 Oktober 2016, 21:24:51
Hallo Daniel,

Text2Speech verwendet den mplayer und den "Audio Systemausgang"
Zitat commandref:
ZitatLocal Device
Die Ausgabe erfolgt auf angeschlossenen Audiodevices, zb. Lautsprecher direkt am Gerät oder per Bluetooth-Lautsprecher per Mplayer. Dazu ist Mplayer zu installieren.
apt-get install mplayer
Das angegebene Alsadevice ist in der /etc/asound.conf zu konfigurieren.

Also alles was Du dort "angeschlossen" bekommst geht, alles andere geht nicht mit Text2Speech.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: ChrisD am 02 Oktober 2016, 21:48:47
Hallo,

Für die Textausgabe per LMS wird Text2Speech nicht benötigt. Wenn der Player im LMS eingebunden ist kannst du Texte direkt mit
set playerName talk Textausgeben.

Grüße,

ChrisD
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Gleb-CH am 07 Oktober 2016, 11:43:39
Hallo zusammen,

hat jemand vielleicht schon Erfahrungen mit kyrillischen Buchstaben?
Die russische Sprache in Text2Speech habe ich bereits hinzugefügt. Sprachausgabe funktioniert jetzt auch auf russisch. 
Wenn ich aber etwas in "set MyTTS tts" auf russisch schicke, wird es wahrscheinlich von Google nicht erkannt.

Besten Dank!


Habe das Problem gefunden.

im HttpUtils --> HttpUtils_Connect2($)

UserAgent: FHEM
habe durch folgendes ersetzt:
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.872.0 Safari/535.2

Jetzt geht auch mit Kyrillischen Alphabet.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: derNeue am 19 November 2016, 20:34:35
Hallo, bin hier bei diesem Thema ganz neu.....und finde die Idee hier echt super...
Ich habe eine Pi3 mit WLan und Bluetooth seid 2 Wochen und habe seid diesen Tag keine anderen Hobbys mehr :-)

Habe Text2Speech auch laufen....
so habe ich es gemacht....wie in der Wiki (nicht aktuell)

sudo apt-get install mplayer
sudo apt-get install mp3wrap

sudo usermod -aG audio fhem

define MyTTS Text2Speech hw=0.0
attr MyTTS TTS_MplayerCall /usr/bin/mplayer
attr MyTTS TTS_UseMP3Wrap 1
attr MyTTS icon audio_volume_high
attr MyTTS room Text2Speech

und es läuft ohne Probleme.....

Jetzt kann ich im Modul Text2Speech bei Set mytts tts (einen Text eingeben und Fhem bekommt eine Frauenstimme und sie spricht....)   echt super.

Ich würde jetzt gerne noch vieles mit diesem Modul machen...

als 1. Ich möchte gerne über Bluetooth die Fhem Dame sprechen lassen (warum....weil ich zwei Bluetoothlautsprecher habe die sich untereinander Pairen lassen und ich somit ohne Kabel eine Große reichweite habe.
Kann mir da einer Helfen einen Bluetoothlauftsprecher zu koppeln.....(mit der Wiki komme ich nicht klar....dort stimmt glaube ich so einiges nicht mehr)

wenn ich das habe werde ich gerne den Rest wie Temperatur, Wetter und so aus netatmo übertragen und ansagen lassen...aber erst einmal Bluetooth!!!!

Danke



Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PsychoD am 19 November 2016, 23:48:27
Hallo Neuer,

ich habe mir mit Bluetooth auch ganz schön einen abgebrochen. Das was im Wiki steht scheint für Jessie nicht mehr zu stimmen. Ich habe es auch von Hand nicht hinbekommen, Bluetooth Audio zu installieren und FHEM damit zu benutzen. Die gute Nachricht ist aber, es geht. Ich verwende OSMC als Distribution (basiert aber auch auf Jessie), und habe irgendwann diesen Thread im OSMC Board gefunden:

https://discourse.osmc.tv/t/testing-bluetooth-audio-streaming-a2dp/9116

Das habe ich installiert, und auf einmal hat es geklappt. Bei mir läuft also die Sprachausgabe über die Bluetooth Box, ohne dass ich genau weiß warum es geklappt hat. Vielleicht hilft es dir ja trotzdem. Wäre aber sicher cooler, wenn ein Linux Crack mal das Wiki aktualisieren könnte...

Viel Erfolg!

Psy
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: derNeue am 20 November 2016, 10:19:47
Danke für die Info......das Modul ist echt gut, aber die Pflege nicht....ich habe im moment einen normalen PC lautsprecher dran....es ist aber sehr leise....wie bekomme ich die sprachausgabe etwas lauter ???
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 23 November 2016, 07:28:54
Hallo Neuer,
als erstes alsamixer checken ob dort alles auf 100% steht
Dann kann man mit set <ttsdev> volume ?? die Lautstärke setzen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 23 November 2016, 09:10:43
Zitat von: derNeue am 20 November 2016, 10:19:47
Danke für die Info......das Modul ist echt gut, aber die Pflege nicht....ich habe im moment einen normalen PC lautsprecher dran....es ist aber sehr leise....wie bekomme ich die sprachausgabe etwas lauter ???
Die Zusatzfrage ist: Wo dran? Was ist ein "normaler" PC Lautsprecher - aktiv oder passiv?

Ganz allgemein würde ich sagen: Es wird lauter wenn man den "Ton" aufdreht. Das beginnt mit der richtigen Anpassung des Lautsprechers an den Soundausgang. Und dann wie Tobias sagt:
Alle Lautstärke Regler im System aufdrehen und dann kann man am Modul noch was einstellen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: derNeue am 23 November 2016, 11:45:51
Ich habe jetzt 2 Paar aktive PC Lautsprecher an meinem Pi3 gehabt, also das rauschen ist nicht zu ertragen....und die Lautstärke der Stimme ist nicht zu hören.....

ich gehe einfach nur mit dem Chinch 3,5 in den Pi....und das rauscht so laut das es unerträglich ist.....durch das rauschen kommt dann eine ganz leise Stimme. und wenn ich den Lautsprecher runter drehe, also leiser...ist das rauschen komplett weg aber die Stimme natürlich auch....

Gruß
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 23 November 2016, 12:37:45
Hallo derNeue,

Was macht ein speakertest?
speaker-test -t sine -f 440 -c 2 -s 1 bzw. in der FHEM Kommandozeile"speaker-test -t sine -f 440 -c 2 -s 1"
Welcher Ausgang ist eingestellt? hast Du einen HDMI Stecker dran?

BTW: Cinch hat der Pi3 nicht mehr, der hat nur 3,5 mm Klinke  ;)

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: derNeue am 23 November 2016, 21:36:48
Hallo Otto, sorry hast recht Klinke 3,5

Ja der test war wieder einmal nicht so gut....die speaker test hat natürlich funktioniert....aber sie Sirene oder der TEST war viel zu leise und das rauschen war schlimmer als in den 70 Jahren.......

Ich habe keinen HDMI stecker am Pi angeschlossen....

WO kann ich sehen welchen anschluss ich eingestellt habe ???

Gruß
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 23 November 2016, 21:47:20
Im Terminal
sudo raspi-config
dann 8 advanced
dann A9 audio

Wobei Du bei falschen Ausgang nichts hören dürftest. Der Stecker steckt wirklich drin? Als richtig bis am Anschlag?

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: derNeue am 23 November 2016, 21:50:24
ja, der Stecker ist bis zum anschlag....habe grade einen Kopfhörer eingesteckt, der Kopfhörer hat nicht gerauscht wie die Boxen mit netzteil....aber wenn der ton kommt ist der nicht klar, er rauscht beim ton im hintergrund ohne ende
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 23 November 2016, 22:00:43
Was ist wenn Du alsamixer aufrufst? Wo steht die Lautstärke?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: derNeue am 23 November 2016, 22:16:28
Card: bcm2835 ALSA                                   F1:  Help               x
x Chip: Broadcom Mixer                                 F2:  System information x
x View: F3:[Playback] F4: Capture  F5: All             F6:  Select sound card  x
x Item: PCM [dB gain: -20.10]                          Esc: Exit             

db ist was niedrieg
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 23 November 2016, 22:21:05
wäre aber "normal" kannst Du mit "Pfeil hoch" hochdrehen ...

da ist entweder was kaputt, oder die Klinke kaputt, oder Gehäuse lässt den Stecker nicht rein ....
Normale dreipolige Klinke?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: derNeue am 23 November 2016, 22:25:18
Ich werde es etwas hoch drehen und mal etwas neues besorgen....und nicht den alten scheiß hier....wenn der Geiz die Welt regiert....das kann ja nichts werden....ich danke dir erst einmal und werde dich natürlich auf dem laufenden halten....

Danke
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 23 November 2016, 22:32:34
Ist für den Thread hier auch völlig OffTopic - hat nix mit dem Modul zu tun  :-[
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 15 Dezember 2016, 16:39:40
@Tobias: Ich habe einige Vorschläge aufgegriffen und ins Modul eingebaut, es handelt sich um:

a) Die Behandlung des Reading "playing" verbessert, es ist nur für den lokalen Betrieb sinnvoll, da es aus der Ferne keine Rückmeldung gibt.

b) Bei Abbruch der Blocking-Funktion wurde "playing" nicht auf "0" gesetzt.

c) Wenn der ferne Host nicht erreichbar ist, dann blockiert "Text2Speech_OpenDev" für einige Sekunden (6 s bei Pi B+), das ist z.B. problematisch bei Homematic Fenster- u. Türkontakten, da die Quitting verzögert wird.
Neu ist, wenn ein PRESENCE Gerät die Host IP-Adresse abfragt, wird die blockierende interne Prüfung auf Erreichbarkeit umgangen und das PRESENCE Gerät genutzt.

d) Es gibt ein Attribut "TTS_noStatisticsLog", um das Logging in DbLog abzustellen.

Die Hilfe habe ich angepasst.

Grundlage ist die aktuelle Version: 98_Text2Speech.pm 12241 2016-10-02 17:41:28Z tobiasfaust

Einen Patch kann ich leider nicht liefern, die geänderte Datei habe ich angehängt.
Es wäre schön, wenn die Änderungen in die offizielle Version einfliessen würden.

Ellert

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 16 Dezember 2016, 08:03:40
Hi, warum eigentlich Punkt D?? Das logging wirkt doch nur wenn DBlog aktiv ist?
Das logging hat seine Gründe, es soll noch die Funktionalität kommen, alte und länger nicht genutzte cache files löschen zu können

Gesendet von meinem Leap mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 17 Dezember 2016, 07:37:53
Ja, ich weiss, aber danach wurde mal gefragt.
Außerdem soll, bei mehreren DbLog Geräten die Statistik in alle Geräte geschrieben werden,  jedesmal in das erste gefundene Gerät.
Per default wird die Statistik geschrieben, wer es nicht möchte kann es abschalten. Der User sollte die Freiheit zur Entscheidung haben.
Ich selbst habe es auskommentiert, da ich nur ein 14 Tage Logfile vorhalte, insofern habe ich Eigeninteresse.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 20 Dezember 2016, 09:13:08
erledigt
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 21 Dezember 2016, 19:58:44
Kann mal bitte jemand "40 Sekunden" per TTS ausgeben lassen? Bei mir werden bei allen Wörtern die mit "zig" enden, beim darauf folgenden Wort Sekunden nur ein "S" ausgegeben?  :o
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 21 Dezember 2016, 20:08:54
Zitat von: Dittel am 21 Dezember 2016, 19:58:44
Kann mal bitte jemand "40 Sekunden" per TTS ausgeben lassen? Bei mir werden bei allen Wörtern die mit "zig" enden, beim darauf folgenden Wort Sekunden nur ein "S" ausgegeben?  :o
Hi,

stimmt bei mir auch. Aber auch bei "4 Sekunden" ich kann noch keine wirkliche Regel erkennen.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 21 Dezember 2016, 20:11:57
.... stimmt, geht auch nicht. Ich habe aber im Cache eine alte Datei liegen wo das noch problemlos klappte.  ::)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 21 Dezember 2016, 20:22:43
Liegt aber an Google, kannst Du im Übersetzer  (https://translate.google.de/?hl=de)testen

Es gibt bei mir auch  immer wieder Situationen wo Sie mir bei Einsen also z.B 4.1 vier komma einen vorliest.
Wenn ich das anschließend teste, weil ich denke ich habe mich verhört, geht es einwandfrei
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 21 Dezember 2016, 20:24:31
... achso, na dann ists ja geklärt.  ;D
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Nemo0815 am 09 Januar 2017, 16:48:40
Hallo zusammen,

nachdem ich meinen Raspi3 neu aufgesetzt hatte funktionert TTS irgendwie nicht mehr. Über den Speakertest (via console) bekomme ich einen Ton, aber nicht über FHEM und TTS:


2017.01.09 15:01:37 4: TTS_Wohnzimmer: Auflistung der Textbausteine nach Aufbereitung:
2017.01.09 15:01:37 4: TTS_Wohnzimmer: 0 => test
2017.01.09 15:01:37 4: Verwende TTS Spracheinstellung: Deutsch
2017.01.09 15:01:37 4: Text2Speech: Bearbeite jetzt den Text: test
2017.01.09 15:01:37 4: Text2Speech: test als direkte MP3 Datei erkannt!
2017.01.09 15:01:37 4: Text2Speech: test gefunden, kein Download
2017.01.09 15:01:37 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 641.
2017.01.09 15:01:37 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=2.0
  -nolirc -noconsolecontrols test
Cannot find HOME directory.
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
Usage:   mplayer [options] [url|path/]filename

Basic options: (complete list in the man page)
-vo <drv>        select video output driver ('-vo help' for a list)
-ao <drv>        select audio output driver ('-ao help' for a list)
vcd://<trackno>  play (S)VCD (Super Video CD) track (raw device, no mount)
dvd://<titleno>  play DVD title from device instead of plain file
-alang/-slang    select DVD audio/subtitle language (by 2-char country code)
-ss <position>   seek to given (seconds or hh:mm:ss) position
-nosound         do not play sound
-fs              fullscreen playback (or -vm, -zoom, details in the man page)
-x <x> -y <y>    set display resolution (for use with -vm or -zoom)
-sub <file>      specify subtitle file to use (also see -subfps, -subdelay)
-playlist <file> specify playlist file
-vid x -aid y    select video (x) and audio (y) stream to play
-fps x -srate y  change video (x fps) and audio (y Hz) rate
-pp <quality>    enable postprocessing filter (details in the man page)
-framedrop       enable frame dropping (for slow machines)

Basic keys: (complete list in the man page, also check input.conf)
<-  or  ->       seek backward/forward 10 seconds
down or up       seek backward/forward  1 minute
pgdown or pgup   seek backward/forward 10 minutes
< or >           step backward/forward in playlist
p or SPACE       pause movie (press any key to continue)
q or ESC         stop playing and quit program
+ or -           adjust audio delay by +/- 0.1 second
o                cycle OSD mode:  none / seekbar / seekbar + timer
* or /           increase or decrease PCM volume
x or z           adjust subtitle delay by +/- 0.1 second
r or t           adjust subtitle position up/down, also see -vf expand
double click     toggle fullscreen
right click      pause (press again to continue)

* * * SEE THE MAN PAGE FOR DETAILS, FURTHER (ADVANCED) OPTIONS AND KEYS * * *

sh: 2: -nolirc: not found


Die Berechtigungen für den mplayer usw. sind gesetzt. Irgendeine Idee?

Hier noch das TTS device:

Internals:
   ALSADEVICE hw=2.0

   DEF        hw=2.0

   MODE       DIRECT
   NAME       TTS_Wohnzimmer
   NR         162
   STATE      Initialized
   TYPE       Text2Speech
   Readings:
     2017-01-09 15:02:34   duration
     2017-01-09 15:02:34   endTime         00:00:00
     2017-01-09 15:02:34   playing         0
     2017-01-08 20:40:10   volume          100
   Helper:
     Text2Speech:
Attributes:
   TTS_Language Deutsch
   TTS_MplayerCall /usr/bin/mplayer
   TTS_Ressource Google
   TTS_UseMP3Wrap 1
   verbose    5
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 09 Januar 2017, 16:54:17
Hallo,

fhem in Gruppe audio?

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Nemo0815 am 09 Januar 2017, 17:22:35
Zitat von: Otto123 am 09 Januar 2017, 16:54:17
Hallo,

fhem in Gruppe audio?

Gruß Otto

Jo,

id fhem
uid=999(fhem) gid=20(dialout) Gruppen=20(dialout),29(audio),998(i2c),997(gpio),120(pulse-access)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 09 Januar 2017, 17:45:09
ok gerade gesehen, dein Modul hat ein Problem:
ZitatPERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 641.
Der mplayer sieht aus als startet er und weiß nicht was er machen soll.

Kannst Du die mp3 abspielen? Also ist die erzeugte / gefundene Datei intakt?

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Nemo0815 am 09 Januar 2017, 18:11:15
Zitat von: Otto123 am 09 Januar 2017, 17:45:09
ok gerade gesehen, dein Modul hat ein Problem:Der mplayer sieht aus als startet er und weiß nicht was er machen soll.

Kannst Du die mp3 abspielen? Also ist die erzeugte / gefundene Datei intakt?

Gruß Otto

Hm,  sieht nicht so aus (hab mal irgendeine mp3 aus dem CACHE Verzeichnis genommen, test hab ich nicht gefunden:

/usr/bin/mplayer -ao alsa:device=hw=2.0 -nolirc -noconsolecontrols 507bf3947094663bd3800f4a75f6bfe9.mp3                                   
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team                                                                                                                   
                                                                                                                                                                           
Playing 507bf3947094663bd3800f4a75f6bfe9.mp3.                                                                                                                               
Detected file format: MP2/3 (MPEG audio layer 2/3) (libavformat)                                                                                                           
[mp3 @ 0x75c145b8]Estimating duration from bitrate, this may be inaccurate                                                                                                 
[lavf] stream 0: audio (mp3), -aid 0                                                                                                                                       
Load subtitles in .                                                                                                                                                         
Selected audio codec: MPEG 1.0/2.0/2.5 layers I, II, III [mpg123]                                                                                                           
AUDIO: 24000 Hz, 2 ch, s16le, 32.0 kbit/4.17% (ratio: 4000->96000)                                                                                                         
[AO_ALSA] alsa-lib: pcm_hw.c:1557:(snd_pcm_hw_open) open '/dev/snd/pcmC2D0p' failed (-16): Device or resource busy                                                         
[AO_ALSA] Playback open error: Device or resource busy                                                                                                                     
Failed to initialize audio driver 'alsa:device=hw=2.0'                                                                                                                     
Could not open/initialize audio device -> no sound.                                                                                                                         
Audio: no sound                                                                                                                                                             
Video: no video                                                                                                                                                             
                                                                                                                                                                           
                                                                                                                                                                           
Exiting... (End of file)           
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 09 Januar 2017, 18:53:43
Hi,

das ist jetzt ein anderes Problem.
ZitatFailed to initialize audio driver 'alsa:device=hw=2.0'                                                                                                                     
Could not open/initialize audio device -> no sound.       
Du verwendest eine Soundkarte?
Hast du gemacht:
ZitatThe given alsadevice has to be configured in /etc/asound.conf

Ich meinte eigentlich ob die mp3 (die mit Test) generell in Ordnung ist also ich hätte die mal an einem anderen Gerät versucht. Aber so geht es auch, aber ist nicht Dein Fehler in FHEM.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Nemo0815 am 13 Januar 2017, 11:32:21
Hi,

sorry für die späte Antwort, ich verwende einen USB Lautsprecher (Logitech), die MP3 Datei ist ok, kann sie in Windows ganz normal abspielen.

Hab auch mal den mplayer neu installiert, hat aber nichts gebracht bisher :/
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 13 Januar 2017, 11:39:36
Hi,

Dann stimmt die Konfiguration Deiner Soundkarte nicht. Kannst Du aber selbst auf der Kommandozeile mit mplayer testen. Wenn es dann dort funktioniert sollte der Rest auch in Text2Speech funktionieren.
Wie gesagt: Text2Speech arbeitet mit alsa, Du musst alsa für Deine Soundkarte richtig konfigurieren.
alsamixer kann Dir dabei auch helfen.


Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Nemo0815 am 13 Januar 2017, 13:05:04
Habs eben nochmal probiert, mittels

pi@raspberrypi:/opt/fhem/cache $ mplayer -ao alsa:device=hw=2.0  24297495b7b784402bcd06f751a7e832.mp3                                               
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team                                                                                           
                                                                                                                                                   
Playing 24297495b7b784402bcd06f751a7e832.mp3.                                                                                                       
Detected file format: MP2/3 (MPEG audio layer 2/3) (libavformat)                                                                                   
[mp3 @ 0x75b9b5b8]Estimating duration from bitrate, this may be inaccurate                                                                         
[lavf] stream 0: audio (mp3), -aid 0                                                                                                               
Load subtitles in .                                                                                                                                 
Selected audio codec: MPEG 1.0/2.0/2.5 layers I, II, III [mpg123]                                                                                   
AUDIO: 24000 Hz, 2 ch, s16le, 32.0 kbit/4.17% (ratio: 4000->96000)                                                                                 
AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)                                                                                                   
Video: no video                                                                                                                                     
Starting playback...                                                                                                                               
A:   1.2 (01.2) of 1.2 (01.2)  2.4%                                                                                                                 
                                                                                                                                                   
                                                                                                                                                   
Exiting... (End of file)           


funktioniert die Ausgabe korrekt. Nur wenn der mplayer über TTS aus FHEM aufgerufen wird kommts zu keiner Ausgabe und dem Fehler im Log:

2017.01.13 12:58:52 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=2.0
  -nolirc -noconsolecontrols cache/24297495b7b784402bcd06f751a7e832.mp3
[b]Cannot find HOME directory.[/b]
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
Usage:   mplayer [options] [url|path/]filename

Basic options: (complete list in the man page)
-vo <drv>        select video output driver ('-vo help' for a list)
...


Scheinbar findet der mplayer die Datei über diesen Aufruf nicht, als ob das aktuelle Verzechnis nicht gesetzt wäre, ist das der Grund mglw. für die Meldung über das HOME directory?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 13 Januar 2017, 14:14:47
Hi,

nö sieht bei mir genauso aus:2017.01.13 14:11:29 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 30 cache/15f3ee2c2bd4e05acae32c787e103a17.mp3
Cannot find HOME directory.


Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Nemo0815 am 13 Januar 2017, 14:44:18
OMG ich habs, war schon komisch dass im Log immer die manpage vom Mplayer auftaucht, so als ob man keine oder zuwenige Parameter angibt.

Wenn man genau hinschaut sieht man dass nach  dem -ao device ein Zeilenumbruch ist (!!!), d.h. es wurde zwar etwas im Log angezeigt, aber der mplayer call bekommt nur die Daten bis zum Zeilenumbruch und spuckt dann die Hilfe aus  :o

Hab mal im fhem.cfg geschaut und siehe da,

define TTS_Wohnzimmer Text2Speech hw=2.0\

attr TTS_Wohnzimmer TTS_Language Deutsch
attr TTS_Wohnzimmer TTS_Ressource Google
attr TTS_Wohnzimmer TTS_UseMP3Wrap 1
attr TTS_Wohnzimmer verbose 5


Den "\" nach hw=2.0 entfernt und schon funktionierts! Keine Ahnung wie der dahin gekommen ist  :-X

2017.01.13 14:42:59 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 641.
2017.01.13 14:43:33 4: TTS_Wohnzimmer: Auflistung der Textbausteine nach Aufbereitung:
2017.01.13 14:43:33 4: TTS_Wohnzimmer: 0 => ARRAY(0x23ea178)
2017.01.13 14:43:33 4: TTS_Wohnzimmer: 1 => Hallo Test

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 13 Januar 2017, 16:44:22
Stimmt jetzt wo Du es sagst, mir war in Deinem list aufgefallen, dass die ersten Zeilen komisch aussahen. Normal sieht es so aus:
Internals:
   ALSADEVICE hw=0.0
   DEF        hw=0.0
   MODE       DIRECT
   NAME       MyTTS
   NR         25
   STATE      Initialized
   TYPE       Text2Speech
   VOLUME     30
   Readings:
     2017-01-13 16:01:43   duration        2
     2017-01-13 16:01:43   endTime         00:00:00
     2017-01-13 16:01:47   playing         0
     2017-01-13 16:01:41   volume          30
   Helper:
     Text2Speech:
Attributes:
   TTS_MplayerCall /usr/bin/mplayer
   TTS_UseMP3Wrap 1
   verbose    5


Na prima 8)
Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 03 März 2017, 12:52:38
Hi,
ich möchte hier eine neue Testversion mal reinstellen.
Folgende Neuerungen:

Doku im Modul ist ergänzt.
Bitte mal testen, dann checke ich es ein....
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Wzut am 03 März 2017, 13:06:47
Donnerwetter, das ging ja schnell :) Big THX, da werden dir mit Sicherheit ein paar SIP User um den Hals fallen  8)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 03 März 2017, 13:11:50
Zitat von: Wzut am 03 März 2017, 13:06:47
Donnerwetter, das ging ja schnell :) Big THX, da werden dir mit Sicherheit ein paar SIP User um den Hals fallen  8)
Hat bei mir auch ziemlich viel Kopfzerbrechen verursacht und ein paar Tassen Kaffee gekostet... Hoffe es klappt auf Anhieb...
Eine direkte Funktion mit Rückgabewert des Filenamens kann ich nicht anbieten da es NonBlocking läuft
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Wzut am 05 März 2017, 19:58:36
Ich habe das jetzt so im SIP Modul eingebunden :
1. ich überschreibe lastFilename mit ---
2. rufe tts mit Text auf
3. warte das lastFilename einen Wert ungleich --- hat (Abbruch nach vom User definierter Zeit)
4. wandle mit sox das mp3 File in ein raw audio
5. starte den Anruf und spiele das File ab.

Absolut perfekt ! Ich bin auch von der Sprachqualität selbst nach dem Umwandeln in raw 8000 total begeistert  8)

Edit :
Zitatund mittels Modulnotify Funktion auf das Reading reagieren
das wird der nächste Schritt :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: kaihs am 05 März 2017, 21:11:35
Hallo,

auch ich kann die neue Funktion für mein DFPlayerMini Modul sehr gut gebrauchen.
Es funktioniert auch wie gewünscht, inkl. Weiterverarbeitung in meiner Notify Funktion.

Danke.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 06 März 2017, 08:41:00
hmm, da dann wage ich mal den Repo-Sprung....
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 07 März 2017, 12:54:40
eingecheckt
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: chunter1 am 08 März 2017, 20:18:10
Also bei mir kommt seit heute eine Mickey Mouse Stimme aus dem Lautsprecher.
Tritt allerdings nur auf, wenn vor dem Text eine mp3 Datei mit abgespielt wird.

Also z.B. bei set MyTTS tts :sounds/s0.mp3:Bla bla.

Was hilft ist TTS_UseMP3Wrap auf 0 zu setzen - dann ist die Geschwindigkeit wieder normal.



Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 09 März 2017, 09:32:01
setz mal bitte das Attribut TTS_speakAsFastAsPossible auf 1, dann verhält sich wieder alles wie vorher. Hilft das??

An der internen VErarbeitung habe ich nämlich nix geändert...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: chunter1 am 09 März 2017, 10:29:55
Zitat von: Tobias am 09 März 2017, 09:32:01
setz mal bitte das Attribut TTS_speakAsFastAsPossible auf 1, dann verhält sich wieder alles wie vorher. Hilft das??

An der internen VErarbeitung habe ich nämlich nix geändert...

Danke, werds am Abend ausprobieren.
Was ist denn dann das geringere Übel?
TTS_speakAsFastAsPossible auf 1 setzen oder MP3wrap auf 0 setzen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 09 März 2017, 14:25:14
probier bitte erstemal das Attribut TTS_speakAsFastAsPossible

Das mit der Mickeymausstimme kann ich hier leider nicht nachvollziehen, es scheint nur sporatisch bei einigen Usern aufzutreten. Hier im Thread gab es schon dikussionen dazu...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Roger am 09 März 2017, 21:13:05
Hallo Tobias,
kannst Du bitte ein paar Änderungen in 98_Text2Speech.pm einbauen?
Diese habe ich aus diversen Beiträgen zusammengesucht und baue sie immer wieder nach Änderungen händisch ein.

Zunächst, dass auch Hostname bei remote zusätzlich zu IP-Adresse möglich ist.
Zeile 193:

alt: if($dev =~ m/^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*/ ) {
neu: if($dev =~ m/^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*/ || $dev =~ m/[^:]+:[0-9]+/) {


Dann damit Geräte mit mehreren IP-Adressen zuverlässig angesprochen werden können (beim Verbindungsaufbau Parameter MultiHomed)
Zeile 340:

alt: $conn = IO::Socket::SSL->new(PeerAddr => "$dev") if(!$@);
neu: $conn = IO::Socket::SSL->new(PeerAddr => "$dev", MultiHomed => 1) if(!$@);

und Zeile 342:

alt: $conn = IO::Socket::INET->new(PeerAddr => $dev);
neu: $conn = IO::Socket::INET->new(PeerAddr => $dev, MultiHomed => 1);


Und wenn Du Zeile 547 so ändern könntest (vielleicht über zusätzliches Reading), dass man auch ein komplett anderes Programm zur Wiedergabe starten kann. Ich nutze z.B. play, welches viel schneller als mplayer startet und die gleiche Funktion bietet.

alt: $cmd = $TTS_MplayerCall . " " . $mplayerAudioOpts . $AlsaDevice . " " .$NoDebug. " " . $mplayerOpts . " " . $file;
neu: $cmd = "play -q " . $file;


viele Grüße
Roger
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 09 März 2017, 22:01:13
Hallo Roger,

das mit play hatte ich mal "extern" gelöst -> https://forum.fhem.de/index.php/topic,56523.msg564666.html#msg564666

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: chunter1 am 09 März 2017, 22:36:05
Zitat von: Tobias am 09 März 2017, 14:25:14
probier bitte erstemal das Attribut TTS_speakAsFastAsPossible

Das mit der Mickeymausstimme kann ich hier leider nicht nachvollziehen, es scheint nur sporatisch bei einigen Usern aufzutreten. Hier im Thread gab es schon dikussionen dazu...

TTS_speakAsFastAsPossible auf 1 setzten hat leider nicht geholfen.
Werd wohl bei der Lösung mit TTS_UseMP3Wrap = 0 bleiben.

Wie gesagt, das Problem tritt nur auf, wenn eine mp3-Datei mit abgespielt wird, sonst nicht.
Hat es möglicherweise seit neuestem etwas mit der Samplerate der mp3-Datei zu tun?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 10 März 2017, 13:05:05
@Roger, das mit Multihomed hatte ich schon gleich mit eingebaut... den Rest noch nicht

@chunter1, soweit ich weiß tritt das auf, wenn die Dateien unterschiedliche Bit- oder Sampleraten haben. Das liegt dann aber am mp3wrap selbst :( da kann ich nix machen
Kannst du bitte mal das Mickeymousestimmen mp3 hier anhängen?
* das fertige MP3WRAP File
* die einzelnen Tracks die im MP3WRAP file drin sind

Ich will mal versuchen das nachzustellen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fhemhurz am 11 März 2017, 14:50:25
Hallo zusammen,

ich setze dieses Modul schon lange ein und bin damit sehr zufrieden. Nun hätte ich eine Bitte bzw. Anregung für einen kleinen "Fix", der zumindest mir das (FHEM-)Leben erleichtern würde ;)

Ich verwende kein Alsa-Device sondern mpg123 für die mp3-Ausgabe. Dazu dürfen natürlich keine Alsa-spezifischen Parameter beim Aufruf von mpg123 übergeben werden, was aber in der Funktion Text2Speech_BuildMplayerCmdString so geschieht.

Als Fix müssen in dieser Funktion im Falle eines Nicht-Alsa-Devices "nur 2 Zeilen" eingefügt werden:
Zitat
sub Text2Speech_BuildMplayerCmdString($$) {
...
  my $AlsaDevice = $hash->{ALSADEVICE};
  if($AlsaDevice eq "none") {
    $AlsaDevice = "";
    $mplayerAudioOpts = "";
    $mplayerNoDebug = "";
    $mplayerOpts = "";
  }
...

$mplayerNoDebug und $mplayerOpts werden bei der Initialisierung am Modul-Anfang immer mit Alsa-spezifischen Werten vorbelegt und müssen hier nur zurückgesetzt werden.

Ich hatte das schon mal hier: https://forum.fhem.de/index.php/topic,18481.msg311903/topicseen.html#msg311903 (https://forum.fhem.de/index.php/topic,18481.msg311903/topicseen.html#msg311903) beschrieben, was aber wohl irgendwie untergegangen war.
Da ich nach jedem Update des Moduls manuell die 2 Zeilen in den Source-Code einfügen muss, dies aber meistens vergesse und dann der Raspi schweigt, wäre es echt toll, wenn die Änderung aufgenommen werden könnte.

EDIT: Ich glaube diese Änderung wäre auch die Lösung für Rogers https://forum.fhem.de/index.php/topic,18481.msg602425.html#msg602425 (https://forum.fhem.de/index.php/topic,18481.msg602425.html#msg602425) letzten Änderungswunsch:
Zitat
Und wenn Du Zeile 547 so ändern könntest (vielleicht über zusätzliches Reading), dass man auch ein komplett anderes Programm zur Wiedergabe starten kann. Ich nutze z.B. play, welches viel schneller als mplayer startet und die gleiche Funktion bietet.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fhemhurz am 11 März 2017, 16:05:15
Nachdem ich gerade die beiden Zeilen (s. voriges Posting) wieder manuell eingefügt hatte, spricht mein Raspi trotzdem nicht mehr mit mir :( Der Grund ist die neu eingeführte Server-Option: 
Ich definiere mein TTS-Device (Kein AlsaDevice !) gemäß CommandRef so:

define MYTTS Text2Speech none
attr MYTTS TTS_UseMP3Wrap 1
attr MYTTS TTS_MplayerCall sudo /usr/bin/mpg123 -q
attr MYTTS verbose 4


Nun hat sich aber seit dem neuen Sever-Feature die Interpretation des AlsaDevice-Parameters none geändert. Bisher wurde, wenn für Alsa-Device none angegeben wurde, mplayer (aka TTS_MplayerCall) ohne eine Audiodevice Angabe aufgerufen.
Jetzt wird none als Sever-Mode-Switch verwendet und es erfolgt keine Sprachausgabe mehr. Der Direct-Mode ist ohne Angabe eines AlsaDevices also nicht mehr möglich.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 13 März 2017, 03:54:02
Zitat von: fhemhurz am 11 März 2017, 14:50:25
Hallo zusammen,

ich setze dieses Modul schon lange ein und bin damit sehr zufrieden. Nun hätte ich eine Bitte bzw. Anregung für einen kleinen "Fix", der zumindest mir das (FHEM-)Leben erleichtern würde ;)

Ich verwende kein Alsa-Device sondern mpg123 für die mp3-Ausgabe. Dazu dürfen natürlich keine Alsa-spezifischen Parameter beim Aufruf von mpg123 übergeben werden, was aber in der Funktion Text2Speech_BuildMplayerCmdString so geschieht.

Als Fix müssen in dieser Funktion im Falle eines Nicht-Alsa-Devices "nur 2 Zeilen" eingefügt werden:
$mplayerNoDebug und $mplayerOpts werden bei der Initialisierung am Modul-Anfang immer mit Alsa-spezifischen Werten vorbelegt und müssen hier nur zurückgesetzt werden.

Ich hatte das schon mal hier: https://forum.fhem.de/index.php/topic,18481.msg311903/topicseen.html#msg311903 (https://forum.fhem.de/index.php/topic,18481.msg311903/topicseen.html#msg311903) beschrieben, was aber wohl irgendwie untergegangen war.
Da ich nach jedem Update des Moduls manuell die 2 Zeilen in den Source-Code einfügen muss, dies aber meistens vergesse und dann der Raspi schweigt, wäre es echt toll, wenn die Änderung aufgenommen werden könnte.

EDIT: Ich glaube diese Änderung wäre auch die Lösung für Rogers https://forum.fhem.de/index.php/topic,18481.msg602425.html#msg602425 (https://forum.fhem.de/index.php/topic,18481.msg602425.html#msg602425) letzten Änderungswunsch:

Hi,
bis auf Rogers Servernamen (anstatt IP-Adressen) habe ich alles eingebaut.
Bitte beachtet, das das special AlsaDevice nun nicht mehr "none" ist, sondern "default"
Sorry, das special AlsaDevice hatte ich bei der Implementation der Server Option völlig übersehen :(

Bitte testet mal die angehängte Version.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: fhemhurz am 13 März 2017, 09:36:34
Vielen Dank für die prompte Erledigung! Ich habe getestet und alles funktioniert, zumindest aus meiner Sicht, jetzt wunschgemäß \o/
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 13 März 2017, 10:01:32
Super,
btw: mit der serverfunktionalität verfolge ich das Ziel, das die Kern TTS Funktionalität hier in diesem Modul gekapselt bleibt und alle Audio-Module sich hier bedienen können.
Es ist IMHO völlig irrsinnig und verschwendete Ressourcen dasselbe woanders immer und immer wieder nachzubauen ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: JoWiemann am 17 März 2017, 11:37:22
Hallo,

ich habe wohl noch einen Fehler in Text2Speech gefunden. Auf einem meiner RPi läuft Fhem aus historischen Gründen unter /usr/share/fhem. Ich hatte zunächst vergessen TTS_CacheFileDir zu setzen. Als folge läuft Text2Speech auf einen Fehler in der sub Text2Speech_DoIt($) bei:
Code: [Auswählen]
  unless(-e $TTS_CacheFileDir or mkdir $TTS_CacheFileDir) {
    #Verzeichnis anlegen gescheitert
    Log3 $hash->{NAME}, 2, "Text2Speech: Angegebenes Verzeichnis $TTS_CacheFileDir konnte erstmalig nicht angelegt werden.";
    return undef;
  }

Dadurch wird $hash->{helper}{RUNNING_PID} nicht gelöscht und Text2Speech funktioniert erst wieder, wenn Fhem neu gestartet wird.

Grüße Jörg
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: martin2day am 19 März 2017, 17:56:25
Guten Abend,

ich nutze dieses sehr schöne Tool bereits auf meinem FHEM Server und gebe damit Ereignisse vom Kalender aus.
Da meine Frau davon recht angetan ist, habe ich versucht auf dem WLAN Radio (Raspberry + HifiBerryAmp) ebenfalls die Sprachausgaben zu aktivieren.
Dazu habe ich ein zweites FHEM installiert und wie in der Anleitung (https://wiki.fhem.de/wiki/Text2Speech) erst einmal direkt aus dem FHEM auf dem zweiten Raspberry die Ausgabe versucht.

Die Lautsprecher gehen zwar an, aber ich höre keine Sprache. Wie kann das sein?
2017.03.19 17:49:54 4: TTS_BadOG: Auflistung der Textbausteine nach Aufbereitung:
2017.03.19 17:49:54 4: TTS_BadOG: 0 => Test Hallo
2017.03.19 17:49:54 4: Verwende TTS Spracheinstellung: Deutsch
2017.03.19 17:49:54 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: e73c942070af13045c7ee77855c224a3.mp3
2017.03.19 17:49:54 4: Text2Speech: Verwende Google OnlineResource zum Download
2017.03.19 17:49:54 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=Test%20Hallo
2017.03.19 17:49:55 4: Text2Speech: Schreibe mp3 in die Datei cache/e73c942070af13045c7ee77855c224a3.mp3 mit 4320 Bytes
2017.03.19 17:49:55 4: Text2Speech: Bearbeite jetzt den Text: Test Hallo
2017.03.19 17:49:55 4: Text2Speech: cache/e73c942070af13045c7ee77855c224a3.mp3 gefunden, kein Download
2017.03.19 17:49:55 4: Text2Speech_CalcMP3Duration: cache/e73c942070af13045c7ee77855c224a3.mp3 hat eine Länge von 1 Sekunden.
2017.03.19 17:49:55 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols cache/e73c942070af13045c7ee77855c224a3.mp3
Cannot find HOME directory.
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
Terminal type `unknown' is not defined.

Playing cache/e73c942070af13045c7ee77855c224a3.mp3.
Detected file format: MP2/3 (MPEG audio layer 2/3) (libavformat)
[mp3 @ 0x75bbc5b8]Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: audio (mp3), -aid 0
Load subtitles in cache/
Selected audio codec: MPEG 1.0/2.0/2.5 layers I, II, III [mpg123]
AUDIO: 24000 Hz, 2 ch, s16le, 32.0 kbit/4.17% (ratio: 4000->96000)
AO: [alsa] 22050Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A:   0.0 (00.0) of 1.1 (01.0) ??,?%                                             
A:   0.3 (00.2) of 1.1 (01.0)  1.2%                                             
A:   0.5 (00.4) of 1.1 (01.0)  1.1%                                             
A:   0.7 (00.7) of 1.1 (01.0)  1.1%                                             
A:   0.7 (00.7) of 1.1 (01.0)  1.1%                                             
A:   0.8 (00.7) of 1.1 (01.0)  1.1%                                             
A:   0.8 (00.7) of 1.1 (01.0)  1.1%                                             
A:   0.8 (00.7) of 1.1 (01.0)  1.1%                                             
A:   0.8 (00.8) of 1.1 (01.0)  1.1%                                             
A:   0.8 (00.8) of 1.1 (01.0)  1.1%                                             
A:   0.9 (00.8) of 1.1 (01.0)  1.1%                                             
A:   0.9 (00.8) of 1.1 (01.0)  1.1%                                             
A:   0.9 (00.8) of 1.1 (01.0)  1.1%                                             
A:   0.9 (00.9) of 1.1 (01.0)  1.1%                                             
A:   0.9 (00.9) of 1.1 (01.0)  1.1%                                             
A:   1.0 (00.9) of 1.1 (01.0)  1.1%                                             
A:   1.0 (00.9) of 1.1 (01.0)  1.1%                                             
A:   1.0 (00.9) of 1.1 (01.0)  1.1%                                             
A:   1.0 (01.0) of 1.1 (01.0)  1.1%                                             
A:   1.0 (01.0) of 1.1 (01.0)  1.1%                                             


Exiting... (End of file)


Device:
Internals:
   ALSADEVICE hw=0.0
   DEF        hw=0.0
   MODE       DIRECT
   NAME       TTS_BadOG
   NR         20
   STATE      Initialized
   TYPE       Text2Speech
   Readings:
     2017-03-19 17:49:55   duration        1
     2017-03-19 17:49:55   endTime         00:00:00
     2017-03-19 17:49:56   lastFilename    cache/e73c942070af13045c7ee77855c224a3.mp3
     2017-03-19 17:49:56   playing         0
     2017-03-19 15:19:38   volume          100
   Helper:
     Text2Speech:
Attributes:
   TTS_MplayerCall /usr/bin/mplayer
   TTS_UseMP3Wrap 1
   room       Text2Speech
   verbose    5


Wähle ich den Text länger, dann höre ich auch, dass die Lautsprecher länger eingeschaltet sind.
Weiterhin finde ich unter global das Attribut globalpassword nicht wie es in der Anleitung für Client Server beschrieben ist?

Ich bitte um Hilfe. :-)

Gruß Martin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 19 März 2017, 18:24:01
Zitat von: martin2day am 19 März 2017, 17:56:25
Die Lautsprecher gehen zwar an, aber ich höre keine Sprache. Wie kann das sein?
Hallo Martin,

falscher Soundausgang? HDMI statt analog oder umgekehrt?
user fhem nicht in der Gruppe audio? sudo gpasswd -a fhem audio

Funktioniert "speaker-test -t sine -f 440 -c 2 -s 1" in der FHEM Kommandozeile an dem System wo die Lautsprecher  angeschlossen sind?

Das Passwort wird jetzt über allowed  (https://fhem.de/commandref_DE.html#allowed)definiert. Das globale Passwort unter global gibt es schon eine Weile nicht mehr.

Der Wiki Artikel muss eigentlich überarbeitet werden, ich habe auf die Schnelle mal das mit dem Passwort korrigiert.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: martin2day am 19 März 2017, 19:00:31
Hallo Otto,

der Soundtest aus FHEM funktioniert.
Da ich über Airplay und auch über MPD bereist den Raspberry nutze, gehe ich davon aus das hier auch die richtige Soundausgabe eingestellt ist.
Hier mal meine Konfiguration:

pi@Bad_OG:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_amp], device 0: HifiBerry AMP HiFi tas5713-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
pi@Bad_OG:~ $ amixer
Simple mixer control 'Master',0
  Capabilities: volume volume-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 248
  Mono: 112 [45%]
Simple mixer control 'Channels',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 248
  Front Left: 218 [88%]
  Front Right: 218 [88%]


In der Gruppe ist der Nutzer auch aufgenommen.
Wie gesagt, man hört das die Lautsprecher angehen, es knackt beim einschalten und dann rauscht es laut... aber keine Sprache kommt. Nach kurzer Zeit ist es wieder leise. Gebe ich einen längeren Text ein, dann rauscht es auch lauter...

Gruß Martin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 19 März 2017, 19:13:56
Hi Martin,

ok erst jetzt gesehen - > 2017.03.19 17:49:55 4: Text2Speech_CalcMP3Duration: cache/e73c942070af13045c7ee77855c224a3.mp3 hat eine Länge von 1 Sekunden.

Ich denke die mp3 Datei ist "keine", versuch die mal mit etwas anderem abzuspielen oder schau die mit einem Texteditor an.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: martin2day am 19 März 2017, 19:31:28
Hallo Otto,

doch, die MP3 funktioniert wunderbar wenn ich sie auf dem MAC runterlasse und abspiele.
Der Sonntest aus FHEM heraus funktioniert ja auch....
Wo soll da das Problem liegen? WLAN Radio und Airplay gehen ja auch.... sehr komisch.

Martin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Wzut am 19 März 2017, 19:35:29
Zitat von: martin2day am 19 März 2017, 19:00:31
und auch über MPD bereist den Raspberry nutze, gehe ich davon aus das hier auch die richtige Soundausgabe eingestellt ist.
d.h. der MPD und Text2Speech benutzen das gleiche Alsa Device zur gleichen Zeit ?
Hat bei mir nie geklappt ...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: martin2day am 19 März 2017, 19:36:19
Hallo,

nein. Entweder oder... MPD ist derzeit deaktiviert...

Martin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 19 März 2017, 19:38:32
Was ist wenn Du /usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols cache/e73c942070af13045c7ee77855c224a3.mp3
Auf Kommandozeile (Terminal) abspielst?

Geht sowas "/usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols <irgendeine mp3 datei>"  aus der FHEM Kommandozeile?

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: martin2day am 19 März 2017, 19:44:18
Hallo Otto,

da erhalte ich eine Menge Fehler... :-)
pi@Bad_OG:~ $ /usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols cache/e73c942070af13045c7ee77855c224a3.mp3
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
Cannot open file '/home/pi/.mplayer/input.conf': No such file or directory
Failed to open /home/pi/.mplayer/input.conf.
Cannot open file '/etc/mplayer/input.conf': No such file or directory
Failed to open /etc/mplayer/input.conf.

Playing cache/e73c942070af13045c7ee77855c224a3.mp3.
Cannot open file 'cache/e73c942070af13045c7ee77855c224a3.mp3': No such file or directory
Failed to open cache/e73c942070af13045c7ee77855c224a3.mp3.


Exiting... (End of file)


Martin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Wzut am 19 März 2017, 19:49:32
ersetze cache/ durch den vollen Pfad , also vermutlich
/opt/fhem/cache/e73c942070af13045c7ee77855c224a3.mp3
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: martin2day am 19 März 2017, 19:54:26
Hallo,

mein Fehler, sorry :-)
Jetzt funktioniert der Befehl, aber es passiert nichts. Es knackt immer noch wie vorher ...  im Terminal wird der Vorschritt angezeigt.
Scheint wohl ein mplayer Problem zu sein.

/usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols /opt/fhem/cache/1a736ed3824cafda02d407ef65c0af26.mp3
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
Cannot open file '/home/pi/.mplayer/input.conf': No such file or directory
Failed to open /home/pi/.mplayer/input.conf.
Cannot open file '/etc/mplayer/input.conf': No such file or directory
Failed to open /etc/mplayer/input.conf.

Playing /opt/fhem/cache/1a736ed3824cafda02d407ef65c0af26.mp3.
Detected file format: MP2/3 (MPEG audio layer 2/3) (libavformat)
[mp3 @ 0x75bd85b8]Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: audio (mp3), -aid 0
Load subtitles in /opt/fhem/cache/
Selected audio codec: MPEG 1.0/2.0/2.5 layers I, II, III [mpg123]
AUDIO: 24000 Hz, 2 ch, s16le, 32.0 kbit/4.17% (ratio: 4000->96000)
AO: [alsa] 22050Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A:   1.3 (01.2) of 1.3 (01.3)  1.1%


Exiting... (End of file)


Martin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 19 März 2017, 20:02:36
mir fällt gerade auf, ändere mal die DEF im TTS_BadOG  auf default anstatt hw=0.0
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: martin2day am 19 März 2017, 20:09:21
Otto,
aber wenn es direkt vom Terminal über mplayer nicht geht, dann wird das nicht viel helfen... :-)
Auf dem funktionierendem System steht auch hw=0.0...

Martin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 19 März 2017, 20:10:21
Dann versuche
mplayer /opt/fhem/cache/1a736ed3824cafda02d407ef65c0af26.mp3

Ich denke hw=0.0 ist bei Dir nicht der default Ausgang.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: martin2day am 19 März 2017, 20:15:36
Hallo Otto,

gleiche Ausgabe aus den Lautsprechern wie bei den anderen Befehlen...
mplayer /opt/fhem/cache/1a736ed3824cafda02d407ef65c0af26.mp3
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
Cannot open file '/home/pi/.mplayer/input.conf': No such file or directory
Failed to open /home/pi/.mplayer/input.conf.
Cannot open file '/etc/mplayer/input.conf': No such file or directory
Failed to open /etc/mplayer/input.conf.

Playing /opt/fhem/cache/1a736ed3824cafda02d407ef65c0af26.mp3.
Detected file format: MP2/3 (MPEG audio layer 2/3) (libavformat)
[mp3 @ 0x75bb65b8]Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: audio (mp3), -aid 0
Load subtitles in /opt/fhem/cache/
Selected audio codec: MPEG 1.0/2.0/2.5 layers I, II, III [mpg123]
AUDIO: 24000 Hz, 2 ch, s16le, 32.0 kbit/4.17% (ratio: 4000->96000)
AO: [pulse] Init failed: Connection refused
AO: [alsa] 22050Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A:   1.3 (01.2) of 1.3 (01.3)  1.1%


Exiting... (End of file)


Aber aplay-l sagt doch:
aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_amp], device 0: HifiBerry AMP HiFi tas5713-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0


Martin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 19 März 2017, 20:54:37
Hallo Martin,

da bin ich jetzt langsam mit meinen Ideen am Ende.

Ich mag mplayer sowieso nicht, wenn Du willst kannst Du mal play versuchen.
Installation sudo apt-get install sox libsox-fmt-all
Dann mal einfach play <mp3 Datei>

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: martin2day am 20 März 2017, 08:48:50
Guten Morgen Otto,

damit bekomme ich ebenfalls einen Fehler.
pi@Bad_OG:~ $ play /opt/fhem/cache/1a736ed3824cafda02d407ef65c0af26.mp3
play FAIL formats: can't open output file `default': snd_pcm_hw_params error: Invalid argument

Ich ahne, dass es etwas mit der HifiBerry AMP zu tuen hat...
Nach dieser Anleitung habe ich es installiert: https://www.hifiberry.com/build/documentation/hifiberry-software-configuration/

Gruß Martin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 20 März 2017, 09:39:51
Moin Martin,

das vermute ich auch. Leider habe ich bisher die Soundsysteme von Linux/raspbian nicht wirklich verstanden, obwohl ich da schon viel versucht habe (Bluetooth, alsa, pulse-audio).
Am Ende war mir alles was über die onboard Klinke hinausging zu kompliziert / nicht wirklich begreifbar. Es hat immer mal was funktioniert, aber warum?
Tut mir leid, da kann ich nicht weiterhelfen.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: martin2day am 20 März 2017, 14:11:28
Hallo Otto,

da ich gelesen habe, dass es eventuell Probleme mit MP3 und MPLAYER geben kann, habe ich auch mal eine WAV Datei getestet. Leider auch hier kein positives Ergebnis.

Ich teste weiter.

Martin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: martin2day am 20 März 2017, 21:28:48
Guten Abend,

kurze Zwischenmeldung von mir:
Ich habe kurzer Hand die 3,5mm Klinke wieder aktiviert.
Nun kann ich mit dem Befehl /usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols /opt/fhem/cache/e73c942070af13045c7ee77855c224a3.mp3
die Ansage über die Klinke hören...

Aber, mit: /usr/bin/mplayer -ao alsa:device=hw=1.0 -nolirc -noconsolecontrols /opt/fhem/cache/e73c942070af13045c7ee77855c224a3.mp3
höre ich wieder nur ein Rauschen auf den Boxen...
Ich werde das Gefühl nicht los, dass es ein Problem mit dem Hifiberry AMP+ gibt.... HifiBerry direkt sagt nur es könnte eine defekte Speicherkarte sein.... tztztztz

Gruß Martin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: martin2day am 22 März 2017, 21:16:27
Guten Abend,

es liegt wohl an der Abtastrate (SampleRate) Ich habe mal eine andere MP3 abgespielt mit 44,1kHz die funktioniert super.
Text2Speech gibt 24kHz aus... mittels TTS_Quality habe ich versucht auf 44,1kHz zu verstellen, aber es kommt dennoch eine MP3 mit 24kHz heraus...
Ich denke das macht MP3Wrap...?

Was kann ich ändern? :-)

Martin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Frank_Huber am 22 März 2017, 21:27:26
Zitat von: Wzut am 05 März 2017, 19:58:36
Ich habe das jetzt so im SIP Modul eingebunden :
1. ich überschreibe lastFilename mit ---
2. rufe tts mit Text auf
3. warte das lastFilename einen Wert ungleich --- hat (Abbruch nach vom User definierter Zeit)
4. wandle mit sox das mp3 File in ein raw audio
5. starte den Anruf und spiele das File ab.

Hi Wzut,
kannst das bischen näher beschreiben? Würde das auch gern nachbauen und mit SIP Telefonie etwas vorgelesen bekommen. :-)
big thx!

Grüße
Frank
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Wzut am 23 März 2017, 07:28:57
ist zwar hier OT , aber lies zur Einstimmung https://wiki.fhem.de/wiki/SIP-Client und stelle danach bitte eventuelle Fragen im SIP Thread.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: martin2day am 23 März 2017, 08:48:29
Guten Morgen,

hat schon mal einer mit dem Attribut TTS_Quality herumgespielt...?
Bei mir werden immer nur 24kHz MP3's erzeugt?

Gruß Martin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 23 März 2017, 08:55:12
TTS_Quality gibts IMHO für Google nicht. nur für die anderen Engines
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 14 April 2017, 10:57:55
Hat jemand eine Idee, warum bei mir die erzeugten Dateien, wenn sie aus mehreren als Wraps zusammengesetzt sind, manchmal zu langsam und manchmal zu schnell wiedergegeben werden? Die Stimmen klingen dadurch verzerrt. Ich habe die Dateien mal mit dem VLC Player wiedergegeben. Dort werden sie korrekt abgespielt. Der Mediaplayer spielt sie aber auch verzerrt ab, zumindest immer nur den zweiten zusammengesetzen Teil... Sehr merkwürdig.

Update: mit deaktiviertem MP3Wrap scheint es zu funktionieren.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 14 April 2017, 12:40:49
Zitat von: Dittel am 14 April 2017, 10:57:55
Hat jemand eine Idee, warum bei mir die erzeugten Dateien, wenn sie aus mehreren als Wraps zusammengesetzt sind, manchmal zu langsam und manchmal zu schnell wiedergegeben werden? Die Stimmen klingen dadurch verzerrt. Ich habe die Dateien mal mit dem VLC Player wiedergegeben. Dort werden sie korrekt abgespielt. Der Mediaplayer spielt sie aber auch verzerrt ab, zumindest immer nur den zweiten zusammengesetzen Teil... Sehr merkwürdig.

Update: mit deaktiviertem MP3Wrap scheint es zu funktionieren.
https://forum.fhem.de/index.php/topic,18481.msg602741.html#msg602741
Kannst Du die unterschiedlichen Bit- o. Sampleraten der Originaldateien bestätigen, wenn Du MP3Wrap verwendest?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 14 April 2017, 14:11:41
Ich habe mir die Dateien mal angesehen. Eine ist mit 16000Hz die andere mit 24000Hz aufgenommen. Allerdings muss ich dazusagen, daß erstere Datei aus dem Cache kommt und vom März 2016 ist. Ich habe diese gelöscht und neu genierieren lassen und es funktioniert jetzt.  Hat wohl hier mal Anpassungen vom Wrapper gegeben oder?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 14 April 2017, 21:31:30
Der Wrapper packt die Dateien nur zusammen, Google sampled nach meiner Erfahrung manchmal unterschiedlich.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tueftler1983 am 14 April 2017, 23:45:31
Hallo ich wollte gerne das Modul mit dem Bluetooth Lautsprecher nutzen.
Habe alles nach dem Wiki eingerichtet und über Console kann ich auch den Livestream von 1Live wiedergeben aber über fhem bekomme ich keinen Ton raus.
Im log steht das

2017.04.14 23:23:47 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2017.04.14 23:23:47 4: MyTTS: 0 => Hallo
2017.04.14 23:23:47 4: Verwende TTS Spracheinstellung: Deutsch
2017.04.14 23:23:47 4: Text2Speech: Bearbeite jetzt den Text: Hallo
2017.04.14 23:23:47 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 71ce4185214eb43202358604a63cdcab.mp3
2017.04.14 23:23:47 4: Text2Speech: cache/71ce4185214eb43202358604a63cdcab.mp3 gefunden, kein Download
2017.04.14 23:23:47 4: Text2Speech_CalcMP3Duration: cache/71ce4185214eb43202358604a63cdcab.mp3 hat eine Länge von 1 Sekunden.
2017.04.14 23:23:47 4: Text2Speech:sudo /usr/bin/mplayer  -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 100 cache/71ce4185214eb43202358604a63cdcab.mp3


Warum bekomme ich keinen Ton über FHEM?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 15 April 2017, 11:59:26
Ich glaube nicht das dein bluetooth Device auf hw=0:0 sitzt

Gesendet von meinem Leap mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tueftler1983 am 15 April 2017, 21:00:14
default oder none funktioniert auch nicht
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 15 April 2017, 21:56:34
Need, aber deine asound.conf musst du anpassen und hier referenziert. Woher soll mplayer denn wissen wo dein bt device sitzt??

Gesendet von meinem Leap mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tueftler1983 am 15 April 2017, 22:29:40
asound.conf und in der rfcomm.conf
Ist jeweils der BT Lautsprecher eingetragen... Siehe Screenshots
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tueftler1983 am 15 April 2017, 23:01:39
Wie definiere ich denn jetzt in FHEM das ausgabedevice also Device:bluetooth??
Weil in der Console der Aufruf siehe Screenshot funktioniert
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tueftler1983 am 15 April 2017, 23:20:27
Ah so einfach geht's bluetooth in die definition.

Aber wieso kann ich keine Werte wie 6,5 Grad ausgeben?
Nach der 6 kommt nix mehr. Und bei 6.7 Grad kommt kommt die Ausgabe 6 sprechpause 7 Grad
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 16 April 2017, 07:54:52
Genau das meine ich, Fhem musst du schon sagen das Bluetooth dein bt device ist ;)
Ein Komma und ein punkt ist ein satztrenner. Wie machen denn das die anderen?

Gesendet von meinem Leap mit Tapatalk
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Devender am 16 April 2017, 10:01:15
Wenn du mit die anderen, die Nutzer von TTS meinst (also z.b mich  :D )...

Bei mir klappt das Vorlesen von einem Satz : der Verbrauch liegt bei 13,7 Watt.
Ohne Probleme. Es wird "der Verbrauch liegt bei 13 komma 7 Watt." vorgelesen.


Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 16 April 2017, 10:40:02
Ok, also kein Problem des Moduls :)

Gesendet von meinem Leap mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 16 April 2017, 14:19:41
Hi,

ich wandle die Temperaturwerte (mit Punkt vom gerät) in einem userreading um:
attr SensorAussen userReadings tempText { my $val = (ReadingsVal("$name","temperature","Fehler"));; $val =~ s/\./ komma /;; return $val;;}
Und gebe dann das userReading aus.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tueftler1983 am 16 April 2017, 21:09:02
Super Idee darauf bin ich garnicht gekommen das umzuwandeln als geschriebenes (komma)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 16 April 2017, 21:19:37
nicht von mir - kam irgendwo aus dem Forum. Und wenn ich darüber nachdenke, ist das vielleicht der Grund warum Tante Google seit einiger Zeit "fünf komma einen Grad" sagt? Da muss ich mal probieren wie das mit 5,1 ist.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: burgi400 am 20 April 2017, 18:39:01
Hallo zusammen,

Ich versuche gerade eine Soundausgabe hinzubekommen, leider erfolglos. Im Log folgende Fehlermeldung (mit der ich nichts anfangen kann):. 2017.04.20 18:33:43 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -softvol -softvol-max 150 -volume 100 /opt/fhem/cache/5f683f6b4be03bca064615f705127d73_MP3WRAP.mp3 Cannot find HOME directory. MPlayer 1.2.1 (Debian), built with gcc-5.3.1 (C) 2000-2016 MPlayer Team Terminal type `unknown' is not defined. Playing /opt/fhem/cache/5f683f6b4be03bca064615f705127d73_MP3WRAP.mp3. libavformat version 56.40.101 (external) Audio only file format detected. Load subtitles in /opt/fhem/cache/ ========================================================================== Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III AUDIO: 24000 Hz, 2 ch, s16le, 32.0 kbit/4.17% (ratio: 4000->96000) Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III) ========================================================================== [AO_ALSA] alsa-lib: pcm_hw.c:1590:(snd_pcm_hw_open) open '/dev/snd/pcmC0D0p' failed (-16): Device or resource busy [AO_ALSA] Playback open error: Device or resource busy Failed to initialize audio driver 'alsa:device=hw=0.0' Could not open/initialize audio device -> no sound. Audio: no sound Video: no video

Rufe ich mplayer genau so auf, wie im Log, funjti9niert es perfekt. User fhem ist in die mplayer-Gruppe aufgenommen. Versuch mit sudo hilft auch nicht.
Jemand eine Idee?

Grüße
Ralf
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 20 April 2017, 22:19:22
Hallo Ralf,

mplayer Gruppe? fhem muss Mitglied der Gruppe audio sein!

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: burgi400 am 22 April 2017, 22:05:44
Hab es falsch gesagt. User fhem kann mplayer nutzen. Kopiere ich den mplayer-Befehl und führe ich ihn als fhem aus, funktionierts. Nur in fhem funktioniert es nur ab und zu. Das auch nur, wenn ich def auf default setze.
Heute wieder: ging eine ganze Zeit aus fhem, nach ein paar Stunden wieder nix....
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 23 April 2017, 07:44:47
ich tippe eher, das etwas mit deiner alsa konfiguration nicht stimmt.
Wenn es aus fhem heraus"mal" funktioniert heißt es, das die Rechte passen und in fhem alles korrekt ist.

Ev. würde ich mal saubere asound.conf Einträge anlegen und auf diese in der tts def verweisen. Ansonsten probier mal ein anderes Audiodevice, ev. mal eine USB Soundkarte anstecken...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: pi-user am 09 Juni 2017, 13:21:49
Hallo Tobias,

zuerst vielen Dank für das tolle Text2Speech Modul. Ich habe folgendes Problem:

Ich verwende mein Raspberry Pi mit der Soundkarte HiFiBerry Amp+. Diese Soundkarte kann die mp3 Dateien von Google nicht abspielen, weil sie eine sample rate auf 24kHz haben. Ich habe vom HiFiBerry Team folgende Antwort erhalten:

--------------------
Hi,

the file that you're trying to play back used a sample rate of 24kHz. This isn't supported by the Amp+.  Note that with this sample rate, the sound quality will be quite bad as the frequency response will be limited to less than 12kHz, which isn't high quality audio.

You can convert the MP3 to a higher sample rate, but the sound quality of the file still won't be very good.
--------------------

Kann Text2Speech so erweitert werden, dass die mp3 Dateien von Google vor dem Abspielen automatisch konvertiert werden?

Vielen Dank im Voraus für die Hilfe. :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 09 Juni 2017, 15:45:32
Es ist geplant das alle einzelnen kleinen mp3 Dateien vor dem mp3wrap in eine einheitliche (per Attr festlegbar) Zielrate zu konvertieren. Das soll der "Mickeymaus"Stimme abhilfe schaffen, würde auch dir helfen.
Hilft dir aber nicht da ich auch in absehbarer Zeit leider nicht zu komme und die Zielgruppe für dieses Feature "überschaubar" ist
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 15 Juni 2017, 23:38:08
Vielen Dank für das Modul. Habe soeben die ersten Worte über den angeschlossenen Bluetooth Lautsprecher gehört. Das war eine ziemliche Fummelei das irgendwie mit dem Raspberry hinzubekommen und es gab auch kein Tutorial, das die ganzen Schritte so beschrieben hätten, dass sie auf Anhieb funktionieren.

Falls Bedarf besteht, kann ich versuchen die Schritte nachzuvollziehen und hier zu posten. Falls nicht, kann ich mir den Aufwand sparen. :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 16 Juni 2017, 14:56:46
Bitte den Wiki-Eintrag zum TTS Modul bzgl BT Lautsprecher aktualisieren :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Arminus am 17 Juni 2017, 16:29:20
Ich schließe mich der Bitte von Tobias an.
Vielen Dank für Deine Mühe.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 18 Juni 2017, 11:30:55
Mail mit Accountanfrage ist raus...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tueftler1983 am 18 Juni 2017, 19:49:53
Hallo zusammen nutze das tts Modul mittlerweile ausgiebig.
Derzeit Ein RPI3 als Fhem Server und ein B+ Als Client mit lirc zur Steuerung von Soundbar und RGB Schrankbeleuchten und der Ausgabe von TTS.

JETZT meine neue Herrausfoderung:
Ich hätte gerne auch eine Sprachausgabe bestimmter Ereignisse auf einem e. PI, ein B+. Dieser steht im Garten und ist nur mit Openelec als MediaPlayer bestückt.

Ich würde gerne Pool Temperatur und einige andere Sachen auf dem PI im Garten wiedergeben geht das?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 18 Juni 2017, 20:32:49
Hi,

eine FHEM Instanz im Garten und myTTS Remote angebunden, kann das Modul an sich.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tueftler1983 am 18 Juni 2017, 20:46:31
Ja aber unter openelec kann ich kein apt-get ausführen und fhem läuft darauf wohl nicht.
Ich müsste irgendwie die erzeugte tts ausgabedatei mit kodi wiedergeben
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 18 Juni 2017, 20:50:43
Nur als Idee: Das Cache Verzeichniss freigeben und entweder mit ssh oder einem Kodi Befehl lokal auf dem openelec die remote liegende mp3 abspielen?
Aber ich habe davon keine Ahnung.
Die remote myTTS Anbindung habe ich laufen und das geht super.

Viel Erfolg
Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tueftler1983 am 18 Juni 2017, 22:42:50
Die remote tts habe ich auch laufen. Server RPI3 mit Jessi und Remote B+ mit Weeley als Wohnzimmer Media Player mit IR

Werde mal deinen Vorschlag testen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 18 Juni 2017, 22:57:37
vielleicht nutzt Dir das dafür etwas -> https://forum.fhem.de/index.php/topic,56523.msg564666.html#msg564666

Viel Erfolg
Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tueftler1983 am 18 Juni 2017, 23:08:40
Wo befinden sich denn die erzeugten mp3 Dateien
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 18 Juni 2017, 23:10:42
Hängt ja von Deiner Konfiguration ab - die Doku sagt:
ZitatTTS_CacheFileDir
Optional: Die per Google geladenen Sprachbausteine werden in diesem Verzeichnis zur Wiedeverwendung abgelegt. Es findet zurZEit keine automatisierte Löschung statt.
Default: cache/
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tueftler1983 am 19 Juni 2017, 07:03:41
Ja habe ich gefunden jetzt stehe ich vor dem Problem das ich nicht weiß wie ich fhem in dem Befehl sagen soll das es immer das zuletzt generierte File an den GartenMedia zum abspielen soll.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 19 Juni 2017, 08:47:48
Vielleicht geht ein notify auf lastFilename?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hollo am 19 Juni 2017, 09:04:48
Zitat von: Tueftler1983 am 19 Juni 2017, 07:03:41
Ja habe ich gefunden jetzt stehe ich vor dem Problem das ich nicht weiß wie ich fhem in dem Befehl sagen soll das es immer das zuletzt generierte File an den GartenMedia zum abspielen soll.
Entweder wertest Du den Dateinamen aus, der da über Event/Log abgreifbar sein sollte, oder Du guckst nach der Datei mit dem neusten timestamp.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 19 Juni 2017, 09:28:25
Zitat von: Tueftler1983 am 19 Juni 2017, 07:03:41
Ja habe ich gefunden jetzt stehe ich vor dem Problem das ich nicht weiß wie ich fhem in dem Befehl sagen soll das es immer das zuletzt generierte File an den GartenMedia zum abspielen soll.
Ich habe Dir doch den Link weiter oben gegeben. Text2Speech gibt doch die richtige Datei aus, mit meinem Script hast Du doch genau diese, Du brauchst sie oder die Info darüber doch bloß weiterzuleiten.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 23 Juni 2017, 00:31:24
Ich habe die Wiki Seite mal nach bestem Wissen und Gewissen erweitert. Kann sich das mal bitte jemand durchlesen, ob irgendwo grobe Schnitzer sind? Vielleicht kann ja auch mal jemand versuchen einen Bluetooth Lautsprecher mit dieser Anleitung in Betrieb zu nehmen. Vielleicht ging es ja auch nur bei mir und bei anderen funktioniert es gar nicht...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 26 Juni 2017, 11:50:01
Hi,

ich habe schon so viel Zeit in den BT Mist investiert und mir geschworen: ich streame Musik darüber und telefoniere im Auto darüber - aber linux und BT geht einfach nicht zusammen.
Ich will mich doch nochmal hinsetzen und deine Anleitung nachvollziehen.  :D

Beim durchlesen ergeben sich diese Fragen:

- Wozu braucht man die Pakete python-gobject python-gobject-2 ?
- Du machst in Punkt 3 die Rechte Anpassung für Pi, das muss doch auch für User fhem passieren!?
Allgemeine Frage:
Sollte der alte Folgeabschnitt nach deinem (ich denke Original von Tobias) nicht einfach gestrichen werden? Ich hatte da schon mal die Randbemerkungen dran gemacht.
Ich weiß allerdings nicht genau, wie man diese Information händeln soll. Ich befürchte, wie mit vielen Dingen, müsste man exakt die Systemvoraussetzungen hinschreiben, denn mit dem nächsten Release eines Treibers/ Kernels/ Systems ist alles grundlegend anders.  :-\ :'(

So, ich arbeite Schritt für Schritt ab mal sehen wie weit ich komme.

Edit:
Nur als Hinweis: Schritt 8 status pulseaudio ist in Ordnung -> läuft  auf den ersten Blick - aber???● pulseaudio.service - PulseAudio Sound System
   Loaded: loaded (/etc/systemd/system/pulseaudio.service; enabled)
   Active: active (running) since Mo 2017-06-26 12:11:00 CEST; 8min ago
Main PID: 424 (pulseaudio)
   CGroup: /system.slice/pulseaudio.service
           └─424 /usr/bin/pulseaudio

Jun 26 12:11:00 raspib2W pulseaudio[424]: N: [pulseaudio] main.c: System-Modus aktiv, Exit-Idle-Time gezwungenermaßen deaktiviert!
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] main.c: OK, nun wird PA im System Mode betrieben. Vorsicht, dies sollte man nicht tun.
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] main.c: Bei Nichtbeachtung, selber Schuld wenn Dinge nicht funktionieren.
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] main.c: Für eine Erklärung warum System Mode eine schlechte Idee ist, bitte http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode lesen
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] authkey.c: Failed to open cookie file '/var/run/pulse/.config/pulse/cookie': Datei oder Verzeichnis nicht gefunden
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] authkey.c: Failed to load authorization key '/var/run/pulse/.config/pulse/cookie': Datei oder Verzeichnis nicht gefunden
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] authkey.c: Failed to open cookie file '/var/run/pulse/.pulse-cookie': Datei oder Verzeichnis nicht gefunden
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] authkey.c: Failed to load authorization key '/var/run/pulse/.pulse-cookie': Datei oder Verzeichnis nicht gefunden
Jun 26 12:11:00 raspib2W pulseaudio[424]: E: [pulseaudio] bluez4-util.c: org.bluez.Manager.GetProperties() failed: org.freedesktop.DBus.Error.UnknownMethod: Method "GetProperties" with signature "" on interface "org.bluez.Manager" doesn't exist
Jun 26 12:11:00 raspib2W systemd[1]: Started PulseAudio Sound System.



Bei Schritt 10 bin ich gestorben -> pacmd set-sink-volume 0 65535 Ausgabe: Es läuft kein PulseAudio-Dienst oder nicht als Sessiondienst.
Schritt 11 geht dann auch nicht -> Abbruch


:-[
Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Intruder1956 am 26 Juni 2017, 16:27:53
hallo,
ich habe es jetzt mal versucht nachzubauen wie @Otto auch
Habe einen Raspi 3 mit aktuellem Jessie lite vom 21.06.17 gerade neu installiert
Fhem installiert, aber noch nichts in Fhem eingegeben außer "update"

also beides ganz frisch.
bis Schritt 10 bin ich auch und bekomme die gleiche Meldung wie @Otto
pacmd set-sink-volume 0 65535
Es läuft kein PulseAudio-Dienst oder nicht als Sessiondienst.


bei Punkt 11 bekomme ich aber trotzdem über die Klinkenbuchse und einen Lautsprecher
paplay /usr/share/sounds/alsa/Front_Left.wav
die Ansage des Mädel "Left"
ich werde jetzt bei Punkt 12 weitermachen  ;)

Muss ich denn anschl. oben den Mplayer bis zum define myTTS auch installieren ??? <erl. ist installiert

Edit: bin jetzt bis Punkt 13 gekommen
Damit sollte die Einrichtung abgeschlossen sein und wir können überprüfen, ob wir etwas über Bluetooth ausgeben können

mplayer -ao pulse http://stream01.iloveradio.de/iloveradio1.mp3


der Stream wird im Lautsprecher ausgegeben.
dann habe ich in Fhem

define TTS Text2Speech default

angelegt und bei set tts kommt nix an, ich denke da fehlt noch was

Nach einem "sudo reboot" connectet der Lautsprecher nicht automatisch

da müssen wir noch dran arbeiten  ;) ;) ;)

gruß Werner


Nach einem "sudo reboot" ist der Lautsprecher weg



Gruß Werner



Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 26 Juni 2017, 16:54:07
Erst einmal Danke das es jemand versucht hat nachzuvollziehen!


Ich kontrolliere heute Abend aber noch mal sicherheitshalber alle Kommandos aus dem Wiki, vielleicht ist irgendwo doch noch ein Fehler drin. Aber wenn PulseAudio startet ist das schon mal 90% der Miete! Das hat mich 2,5 Tage gekostet...

Zitat von: Otto123 am 26 Juni 2017, 11:50:01
Hi,

ich habe schon so viel Zeit in den BT Mist investiert und mir geschworen: ich streame Musik darüber und telefoniere im Auto darüber - aber linux und BT geht einfach nicht zusammen.
Ich will mich doch nochmal hinsetzen und deine Anleitung nachvollziehen.  :D

Beim durchlesen ergeben sich diese Fragen:

- Wozu braucht man die Pakete python-gobject python-gobject-2 ?
- Du machst in Punkt 3 die Rechte Anpassung für Pi, das muss doch auch für User fhem passieren!?
Allgemeine Frage:
Sollte der alte Folgeabschnitt nach deinem (ich denke Original von Tobias) nicht einfach gestrichen werden? Ich hatte da schon mal die Randbemerkungen dran gemacht.
Ich weiß allerdings nicht genau, wie man diese Information händeln soll. Ich befürchte, wie mit vielen Dingen, müsste man exakt die Systemvoraussetzungen hinschreiben, denn mit dem nächsten Release eines Treibers/ Kernels/ Systems ist alles grundlegend anders.  :-\ :'(

So, ich arbeite Schritt für Schritt ab mal sehen wie weit ich komme.

Edit:
Nur als Hinweis: Schritt 8 status pulseaudio ist in Ordnung -> läuft  auf den ersten Blick - aber???● pulseaudio.service - PulseAudio Sound System
   Loaded: loaded (/etc/systemd/system/pulseaudio.service; enabled)
   Active: active (running) since Mo 2017-06-26 12:11:00 CEST; 8min ago
Main PID: 424 (pulseaudio)
   CGroup: /system.slice/pulseaudio.service
           └─424 /usr/bin/pulseaudio

Jun 26 12:11:00 raspib2W pulseaudio[424]: N: [pulseaudio] main.c: System-Modus aktiv, Exit-Idle-Time gezwungenermaßen deaktiviert!
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] main.c: OK, nun wird PA im System Mode betrieben. Vorsicht, dies sollte man nicht tun.
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] main.c: Bei Nichtbeachtung, selber Schuld wenn Dinge nicht funktionieren.
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] main.c: Für eine Erklärung warum System Mode eine schlechte Idee ist, bitte http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode lesen
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] authkey.c: Failed to open cookie file '/var/run/pulse/.config/pulse/cookie': Datei oder Verzeichnis nicht gefunden
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] authkey.c: Failed to load authorization key '/var/run/pulse/.config/pulse/cookie': Datei oder Verzeichnis nicht gefunden
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] authkey.c: Failed to open cookie file '/var/run/pulse/.pulse-cookie': Datei oder Verzeichnis nicht gefunden
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] authkey.c: Failed to load authorization key '/var/run/pulse/.pulse-cookie': Datei oder Verzeichnis nicht gefunden
Jun 26 12:11:00 raspib2W pulseaudio[424]: E: [pulseaudio] bluez4-util.c: org.bluez.Manager.GetProperties() failed: org.freedesktop.DBus.Error.UnknownMethod: Method "GetProperties" with signature "" on interface "org.bluez.Manager" doesn't exist
Jun 26 12:11:00 raspib2W systemd[1]: Started PulseAudio Sound System.



Bei Schritt 10 bin ich gestorben -> pacmd set-sink-volume 0 65535 Ausgabe: Es läuft kein PulseAudio-Dienst oder nicht als Sessiondienst.
Schritt 11 geht dann auch nicht -> Abbruch


:-[
Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 26 Juni 2017, 17:00:56
Ich habe mplayer alle Rechte eingeräumt, wie es unter a.) beschrieben ist (ganz oben). Und dann natürlich das Device in FHEM anlegen mit:

define MyTTS Text2Speech default
attr MyTTS room Text2Speech
attr MyTTS TTS_UseMP3Wrap 1


Wenn du was hörst ist das schon mal sehr sehr gut!!! Das Bluetooth Zeugs hat bei mir auf Anhieb geklappt. Pass aber bitte auf, das du nicht lepresenced oder sowas in der Art auf den BT Dongle laufen hast, das wird nicht klappen.

Zitat von: Intruder1956 am 26 Juni 2017, 16:27:53
hallo,
ich habe es jetzt mal versucht nachzubauen wie @Otto auch
Habe einen Raspi 3 mit aktuellem Jessie lite vom 21.06.17 gerade neu installiert
Fhem installiert, aber noch nichts in Fhem eingegeben außer "update"

also beides ganz frisch.
bis Schritt 10 bin ich auch und bekomme die gleiche Meldung wie @Otto
pacmd set-sink-volume 0 65535
Es läuft kein PulseAudio-Dienst oder nicht als Sessiondienst.


bei Punkt 11 bekomme ich aber trotzdem über die Klinkenbuchse und einen Lautsprecher
paplay /usr/share/sounds/alsa/Front_Left.wav
die Ansage des Mädel "Left"
ich werde jetzt bei Punkt 12 weitermachen  ;)

Muss ich denn anschl. oben den Mplayer bis zum define myTTS auch installieren ???

Gruß Werner
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 26 Juni 2017, 17:11:27
Eventuelle Lösungen für Schritte 10 und 11:

http://www.forum-raspberrypi.de/Thread-tutorial-bluetooth-audio-streaming-mit-a2dp-raspbian-jessie?pid=221787#pid221787 (http://www.forum-raspberrypi.de/Thread-tutorial-bluetooth-audio-streaming-mit-a2dp-raspbian-jessie?pid=221787#pid221787)

oder

pulseaudio -D

eingeben und es noch einmal probieren.

Wenn das zweite funktioniert, dann könnt ihr mit "pulseaudio -D" über exit 0 in der Datei eintragen:
sudo nano /etc/rc.local

Falls die Musik irgendwie stottern sollte, hilft eventuell ein Kernel Update (steht jedenfalls so in den Kommentaren der Quelle drin). Schuld können z.B. veraltete Treiber sein.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Intruder1956 am 26 Juni 2017, 17:25:14
es läuft  ;) :D

Der Lautsprecher musste nur 2 x kurz auf die ON/OFF Taste geklickt werden, dann connectet er sich automatisch wieder.

Dann habe ich den Lautsprecher ausgeschaltet ein "sudo reboot" durchgeführt, dann Lautspecher an und er connectet automatisch.

Text2Speech läuft  :D :D

Bei aus und wieder einschalten des Lautsprecher klappt es immer noch und er connectet wieder automatisch

Wie geil, endlich  ;) ;)

Danke Danke

Gruß Werner

Danke, danke
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 26 Juni 2017, 17:56:41
Oh schön. Das freut mich zu hören. Jetzt muss man nur noch einen günstigen Bluetooth Lautsprecher finden (so um 50€ wäre super), der einen guten Klang hat und sich per Bluetooth aus dem Standby wecken lässt, dann kann man sich die völlig überteuerten Sonos Systeme usw. echt sparen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 26 Juni 2017, 21:41:26
Ich versuche es morgen noch einmal, mit einem völlig frischen System.
Das mit den Rechten ist mir noch unklar, warum braucht pi dann diese Rechte? Na egal, da denke ich nochmal drüber nach.
Das Du die alte Anleitung zu BT nicht gleich gelöscht hast ist schon richtig  :D die Frage wollte ich eher perspektivisch so in die "Runde" stellen.

Gerade bei Textansagen, wird es immer ein Problem sein, dass BT erst verbinden muss. Sonos würde ich auch nicht für Ansagen anschaffen, die erfüllen primär einen anderen Zweck.

Mal sehen was im zweiten Anlauf passiert  ;)

Schönen Abend
Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 26 Juni 2017, 23:09:30
Jetzt habe ich noch 3 Fragen:
1.) Kann ich irgendwie realisieren, das die Ansage erst leiser beginnt und erst nach 3s die Lautstärke auf 100% setzt?
2.) Muss ich darauf achten das 100 Zeichen Limit einzuhalten oder kümmert sich das Modul darum.
3.) Gibt's eine einfache Möglichkeit bestimmte Dinge aus einem Reading zu ersetzen, bevor man es dem Modul übergibt? Z.b. °C in grad celsius?

@Otto: Ich helfe gern wenn ich irgendwie zur Lösungsfindung beitragen kann.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 27 Juni 2017, 07:19:06
1. Nicht, dass ich wüste.
2. Das Modul kümmert sich.
3. Ja, über eine Perl-Funktion oder RegexP.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Intruder1956 am 27 Juni 2017, 07:41:48
mein  Bluetooth Lautsprecher verfällt nicht in einen Sleepmodus, ist immer aktiv
Ist ein 13 Euro Teil vom Billigmarkt Action.
Gruß Werner
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 27 Juni 2017, 11:54:32
Zitat von: mumpitzstuff am 26 Juni 2017, 23:09:30
3.) Gibt's eine einfache Möglichkeit bestimmte Dinge aus einem Reading zu ersetzen, bevor man es dem Modul übergibt? Z.b. °C in grad celsius?
Zur Antwort von Ellert fällt mir hier noch ein: am einfachsten userReadings definieren und Text2Speech Ausgabe mit "set magic"

Beispiel:attr SensorAussen userReadings tempText { my $val = (ReadingsVal("$name","temperature","Fehler"));; $val =~ s/\./ komma /;; return $val;;}

set MyTTS tts Es sind [SensorAussen:tempText] Grad)

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 27 Juni 2017, 14:49:39
Okay stimmt. Daran habe ich nicht gedacht mit dem ersetzen. Sieht gut aus, werde ich probieren.

Ein fade in Effekt für die Sprachausgabe lässt sich vielleicht hiermit realisieren:

http://www.linuxquestions.org/questions/linux-software-2/mplayer-volume-increasing-4175524145/ (http://www.linuxquestions.org/questions/linux-software-2/mplayer-volume-increasing-4175524145/)

Meine Frau fällt sonst jedes Mal vom Stuhl, wenn die Ansagen ertönen...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 27 Juni 2017, 16:43:39
Du kannst doch einen Jingel (MP3 Datei) vorneweg spielen, die entsprechend sanft darauf hinweist.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 07 Juli 2017, 21:37:43
Das mit dem Jingle hab ich jetzt so umgesetzt. Funktioniert aber nur, wenn man das mp3 file separat abspielt, sonst kackt das gesamte Modul ab. Jetzt habe ich aber noch andere Probleme. Manchmal wiederholt das Modul Textansagen und auch die Aussprache ist komisch.

defmod WETTER_ANSAGEN_DI DOIF ([06:30-10:00] && ([MOTION_WOHNZIMMER:state] eq "motion" && [?$SELF:B_ANSAGE] ne "done"))\
(\
  set TTS tts :axe.mp3:, set TTS tts Guten Morgen. Das Wetter ist heute [WETTER:ur_fc0_text], setreading $SELF B_ANSAGE done\
)\
DOELSEIF ([06:29])\
(\
  setreading $SELF B_ANSAGE wait\
)
attr WETTER_ANSAGEN_DI do always
attr WETTER_ANSAGEN_DI room WETTER

setstate WETTER_ANSAGEN_DI initialized
setstate WETTER_ANSAGEN_DI 2017-07-07 21:25:44 B_ANSAGE done
setstate WETTER_ANSAGEN_DI 2017-07-07 21:27:52 cmd 0
setstate WETTER_ANSAGEN_DI 2017-07-07 21:27:52 state initialized
setstate WETTER_ANSAGEN_DI 2017-07-07 21:27:52 timer_01_c01 08.07.2017 06:30:00
setstate WETTER_ANSAGEN_DI 2017-07-07 21:27:52 timer_02_c01 08.07.2017 10:00:00
setstate WETTER_ANSAGEN_DI 2017-07-07 21:27:52 timer_03_c02 08.07.2017 06:29:00


Im Reading steht folgender Text:
Zunächst Gewitter. Tiefsttemperatur 18  grad celsius.

Daraus macht das Modul jedes Mal "18 a euro Grad Celsius". Das nervt irgendwie. Wenn ich übrigens [WETTER:ur_fc0_text] direkt durch "18 Grad Celsius" ersetze, wird es richtig ausgesprochen. Hat jemand eine Idee was man noch machen könnte?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 08 Juli 2017, 08:40:22
Ich vermute, dass eines der Zeichen nach 18 kein echtes Leerzeichen ist und daher wird der Zeichencode vorgelesen.
Wenn das der Fall ist, müsstest Du das Zeichen herausfiltern.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 08 Juli 2017, 23:09:55
Danke für den Tipp!!! Habe jetzt das Userreading angepasst und es funktioniert.

ur_fc0_text { my $val = (ReadingsVal("$name","fc0_text","Fehler"));; $val =~ s/[^\d]*°C/ grad celsius/;; $val =~ s/[^\d]*km\/h/ kmh/;; $val =~ s/[^\d]*%/ prozent/;;return $val;; }
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Hanjo am 15 Juli 2017, 02:44:02
Hallo Tobias,

mir sind ein paar Probleme mit dem Parsen von Template MP3s aufgefallen. So war es u.A. nicht möglich in einer Ansage mehrere verschieden Templates zu verwenden. Außerdem fand ich die (Zwangs-)Trennung nicht ideal, da in der derzeitigen Version sehr viele sehr kurze Sprachschnippsel erstellt worden sind, obwohl eigentlich noch Platz gewesen wäre. Außerdem werden derzeit auch Wörter getrennt die "und" beinhalten, z.B. "Stunden", daraus wird dann "St" und "unden".

Ich habe mal einen Patch geschrieben, der diese Punkte adressiert. Der Patch korrigiert das Verhalten, dass nur ein Template verwendet werden kann. Außerdem wird jetzt versucht möglichst lange Sprachschnippsel zu erstellen (meine Lösung ist sicher noch nicht ideal, aber schon besser als das derzeitige). Darüberhinaus ist das Problem mit dem "und" behoben und es kann als letze Maßnahme auch an Leerzeichen getrennt werden. Mir war auch noch aufgefallen, dass nach einem Neustart von FHEM die gespeicherte Lautstärke ignoriert wird. Das wird jetzt auch abgefragt und auf den vorherigen Wert gesetzt.

Vielleicht kannst du ihn dir mal anschauen und bei Gefallen einchecken :)

Danke & Gruß
Hanjo

--- 98_Text2Speech.pm 2017-07-14 22:08:54.841860671 +0200
+++ 98_Text2Speech.pm 2017-07-15 11:53:12.464123999 +0200
@@ -455,8 +455,9 @@
   return "no set cmd on a disabled device !" if(IsDisabled($me));

   if($cmd eq "tts") {
     if($hash->{MODE} eq "DIRECT" || $hash->{MODE} eq "SERVER") {
+      $hash->{VOLUME} = ReadingsNum($me, "volume", 100);
       readingsSingleUpdate($hash, "playing", "1", 1);
       Text2Speech_PrepareSpeech($hash, join(" ", @a));
       $hash->{helper}{RUNNING_PID} = BlockingCall("Text2Speech_DoIt", $hash, "Text2Speech_Done", $TTS_TimeOut, "Text2Speech_AbortFn", $hash) unless(exists($hash->{helper}{RUNNING_PID}));
@@ -537,12 +538,12 @@

   # bei Angabe direkter MP3-Files wird hier ein temporäres Template vergeben
   for(my $i=0; $i<(@text); $i++) {
-    @FileTplPc = ($text[$i] =~ /:(\w+.+[mp3|ogg|wav]):/g);
+    @FileTplPc = ($text[$i] =~ /:(\w+?\.(?:mp3|ogg|wav)):/g);
     for(my $j=0; $j<(@FileTplPc); $j++) {
       my $time = time();
       $time =~ s/\.//g;
-      my $tpl = "FileTpl_".$time."_#".$i; #eindeutige Templatedefinition schaffen
-      Log3 $hash, 4, "$me: Angabe einer direkten MP3-Datei gefunden:  $FileTplPc[$i] => $tpl";
+      my $tpl = "FileTpl_".$time."_#".$j; #eindeutige Templatedefinition schaffen
+      Log3 $hash, 4, "$me: Angabe einer direkten MP3-Datei gefunden:  $FileTplPc[$j] => $tpl";
       push(@FileTpl, $tpl.":".$FileTplPc[$j]); #zb: FileTpl_123645875_#0:/ring.mp3
       $text[$i] =~ s/$FileTplPc[$j]/$tpl/g; # Ersetze die DateiDefinition gegen ein Template
     }
@@ -558,11 +559,15 @@
     @text = Text2Speech_SplitString(\@text, 0, $cutter, 1, "");
   }

+  Log3 $hash, 4, "$me: MaxChar = $ttsMaxChar{$TTS_Ressource}, Delimiter = $TTS_Delemiter, ForceSplit = $TTS_ForceSplit, AddDelimiter = $TTS_AddDelemiter";
+
   @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, $TTS_Delemiter, $TTS_ForceSplit, $TTS_AddDelemiter);
-  @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, "(?<=[\\.!?])\\s*", 0, "");
+  @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, "(?<=[.!?])\\s*", 0, "");
   @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, ",", 0, "al");
   @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, ";", 0, "al");
-  @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, "und", 0, "af");
+  @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, ":", 0, "al");
+  @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, "\\bund\\b", 0, "af");
+  @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, " ", 0, "");

   Log3 $hash, 4, "$me: Auflistung der Textbausteine nach Aufbereitung:";
   for(my $i=0; $i<(@text); $i++) {
@@ -582,22 +587,22 @@
#####################################
# param1: array : Text 2 Speech   
# param2: string: MaxChar
-# param3: string: Delemiter
-# param4: int   : 1 -> es wird am Delemiter gesplittet
+# param3: string: Delimiter
+# param4: int   : 1 -> es wird am Delimiter gesplittet
#                 0 -> es wird nur gesplittet, wenn Stringlänge länger als MaxChar
-# param5: string: Add Delemiter to String? [al|af|<empty>] (AddLast/AddFirst)
+# param5: string: Add Delimiter to String? [al|af|<empty>] (AddLast/AddFirst)
#
# Splittet die Texte aus $hash->{helper}->{Text2Speech} anhand des
-# Delemiters, wenn die Stringlänge MaxChars übersteigt.
-# Ist "AddDelemiter" angegeben, so wird der Delemiter an den
+# Delimiters, wenn die Stringlänge MaxChars übersteigt.
+# Ist "AddDelimiter" angegeben, so wird der Delimiter an den
# String wieder angefügt
#####################################
sub Text2Speech_SplitString($$$$$){
   my @text          = @{shift()};
   my $MaxChar       = shift;
-  my $Delemiter     = shift;
+  my $Delimiter     = shift;
   my $ForceSplit    = shift;
-  my $AddDelemiter  = shift;
+  my $AddDelimiter  = shift;
   my @newText;

   for(my $i=0; $i<(@text); $i++) {
@@ -606,12 +611,35 @@
       next;
     }

-    my @b = split(/$Delemiter/, $text[$i]);
-    for(my $j=0; $j<(@b); $j++) {
-      $b[$j] = $b[$j] . $Delemiter if($AddDelemiter eq "al"); # Am Satzende wieder hinzufügen.
-      $b[$j+1] = $Delemiter . $b[$j+1] if(($AddDelemiter eq "af") && ($b[$j+1])); # Am Satzanfang des nächsten Satzes wieder hinzufügen.
-      push(@newText, $b[$j]);
-    }
+    my @b;
+ if($Delimiter =~/^ $/) {
+   @b = split(' ', $text[$i]);
+ }
+ else {
+   @b = split(/$Delimiter/, $text[$i]);
+ }
+ if((@b)>1) {
+   if(length($Delimiter)==1) {
+     for(my $k=0; $k<(@b); ) {
+          if($k+1<(@b) && length($b[$k])+length($b[$k+1]) <= $MaxChar) {
+         $b[$k] = join($Delimiter, $b[$k], $b[$k+1]);
+            splice(@b, $k+1, 1);
+       }
+   else {
+   $k++;
+   }
+     }
+   }
+      for(my $j=0; $j<(@b); $j++) {
+     (my $boundaryDelimiter = $Delimiter) =~ s/^\\b(.+)\\b$/$1/g;
+        $b[$j] = $b[$j] . $boundaryDelimiter if($AddDelimiter eq "al"); # Am Satzende wieder hinzufügen.
+        $b[$j+1] = $boundaryDelimiter . $b[$j+1] if(($AddDelimiter eq "af") && ($b[$j+1])); # Am Satzanfang des nächsten Satzes wieder hinzufügen.
+        push(@newText, $b[$j]);
+      }
+ }
+ elsif((@b)==1) {
+      push(@newText, $text[$i]);
+ }
   }
   return @newText;
}
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Markus64 am 27 Juli 2017, 07:49:10
Hallo,

ich hab ein kleines Problem mit espeak. Beim erstmaligen ausgeben von Text funktioniert alles bestens. Beim zweiten mal ausgeben des selben Text erfolgt keine Ausgabe.
Nach ein wenig suchen habe ich dan gesehen, das die cache files korrupt sind. Anstelle mp3 sind dort die stdout von espeak zu finden.
Nach ändern der Zeile 764 der
##############################################
# $Id: 98_Text2Speech.pm 13704 2017-03-14 19:33:42Z Tobias.Faust $
#
# 98_Text2Speech.pm

  } elsif ($TTS_Ressource eq "ESpeak") {
    my $FileWav = $file . ".wav";
   
-    $cmd = "sudo espeak -vde+f3 -k5 -s150 \"" . $text . "\">\"" . $FileWav . "\"";
+    $cmd = "sudo espeak -vde+f3 -k5 -s150 \"" . $text . "\" -w \"" . $FileWav . "\"";
      Log3 $hash, 4, "Text2Speech:" .$cmd;
      system($cmd);
   


funktioniert alles wieder wie gewünscht.

Vielleicht kann man das ändern.

LG
Markus
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 27 Juli 2017, 12:40:22
Hi, hab es mir gemerkt, werde ich auch einbauen, komme aber gerade nicht dazu, habe hier jetzt auch noch eine Erweiterung auf niederländische sprachausgabe liegen, die kommt dann auch mit rein.

Gesendet von meinem Leap mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: korreander12 am 12 August 2017, 18:13:58
Hallo zusammen,

wie in « Antwort #790 am: 09 Juni 2017, 13:21:49 » von pi-user beschrieben verlangt der HIFIBerry  44,1kHz
Ich hatte heute die gleiche Herausforderung mein TTS in Verbindung mit dem HiFiBerry Amp+ in Betrieb zu bekommen.


Ich habe für mich eine Lösung gefunden, die funktioniert.
Und zwar kann eine vorgegebene Alsa-sampling-rate eingestellt werden

Dazu in /etc/asound.conf "rate 44100" für den HIFIBerry hinzufügen.

Meine /etc/asound.conf  sieht dann so aus:





pcm.!default  {
type hw card 0
rate 44100
}
ctl.!default {
type hw card 0
}




Mit der "mplayer -af resample=44100" -Option habe ich ebenfalls experimentiert, jedoch erfolglos, da bei mir irgendwie was fehlt:
Couldn't find audio filter 'resample'
[libaf] Couldn't create or open audio filter 'resample'
Error at audio filter chain pre-init!


Jedoch wie oben beschrieben über die Vorgabe als Alsa-rate funktioniert es....


Ich hoffe das hilft dem einen oder anderen. :D :D  :D
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: RomanticBoy83 am 20 August 2017, 19:16:33
Hallo Leute,
ich spiele Gerade mit dem Modul herum und habe etwas für's WIKI.
Mein DbLog lief auf [attr DbLogType history]. Dies führte zum Absturz des Modules in Zeile 992. Dort sollte nicht nur auf das existierende Modul geprüft werden, sondern auch auf die Einstellung zur TABLE current. Optional wäre ein WiKi-Eintrag auch möglich.

Nun zu meinem Problem:
Ich nutze einen RPi2. Auf diesem Läuft neben Fhem auch Kodi für Multimediaanwendungen. Der defaultsound von alsa geht also auf HDMI heraus.

Frage
Ich habe es bisher nicht geschafft dem mplayer den analogen Ausgang nutzen zu lassen ohne dass ich HDMI abschalte. Mit dem Program omxplayer geht das.
omxplayer -o local foo.mp3
Über Google finden sich zahlreiche Einträge, wie man den analogen Ausgang als default setzt - was auch folgendermaßen funktionierte.
amixer cset numid=3 2
Leider möchte ich den HDMI-Ausgang so belassen und nur den mplayer anweisen den analogen Ausgang zu nutzen. Hat jemand einen Tip für mich wie ich alsa konfigurieren muss? Im alsamixer wird mir auch nur das pcm-Gerät angezeigt, was schon seltsam ist. Ein Abspielen mit mplayer auf hw:0,0 ist das selbe Ergebnis wie auf hw:0,1.

mein aplay-l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: ALSA [bcm2835 ALSA], Gerät 0: bcm2835 ALSA [bcm2835 ALSA]
  Sub-Geräte: 8/8
  Sub-Gerät #0: subdevice #0
  ...
  Sub-Gerät #7: subdevice #7
Karte 0: ALSA [bcm2835 ALSA], Gerät 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 20 August 2017, 21:14:57
Hast Du 2 probiert?
-> https://www.raspberrypi.org/forums/viewtopic.php?f=70&t=33101

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: RomanticBoy83 am 20 August 2017, 21:32:07
Hallo Otto,
schön dass wir uns erneut über den Weg laufen und vielen Dank dafür. Ich habe wirklich alles probiert heute und habe soeben versucht das Modul auf meine Bedürfnisse anzupassen.
Die Lösung ist verdamt einfach - VIELEN DANK für das sehr übersichtliche Modul. Es ist wirklich schön zu lesen und zu verstehen. In Zeile 644 bin ich darüber gestolpert, dass ich auch andere Programme starten kann. Diese dürfen nicht mplayer heißen und werden dann mit dem [attr TTS_MplayerCall] ohne weitere Parameter aufgerufen.
ich habe nun [attr TTS_MplayerCall /usr/bin/omxplayer] -o local gesetzt. Als Berechtigungen muste ich die Gruppe video noch setzen und habe nun eine Funktionierende Ausgabe erreicht.
Anmerkung
HDMI ist bei mir noch immer primär im alsa und auch als einziges Device dort vertreten. omxplayer nutzt kein alsa, weshalb externe Karten wahrscheinlich mit diesem Weg nicht funktionieren würden.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 20 August 2017, 21:49:45
Hi,

es geht auch so -> https://forum.fhem.de/index.php/topic,56523.msg564666.html#msg564666

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: RomanticBoy83 am 20 August 2017, 22:19:04
Danke Otto, das hatte ich gesucht - habe ja aber jetzt doch schon hinbekommen - trotzdem danke. Ich gehe exakt den selben Weg wie du. Bei mir reichen aber die Parameter zum Ausgabegerät aus, welche ich halt im Aufruf mir eingeschrieben habe.

Nachtrag
Ich habe in Zeile 987 eine Prüfung für DbLog einbauen müssen, damit mir das Modul nicht ab-raucht.
return undef if(AttrVal($defs{$DbLogDev}, "DbLogType", "History") !~ /Current/); # muss die Tabelle Current nutzen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Schlimbo am 08 Oktober 2017, 21:04:20
Hallo zusammen,
nutze das Modul schon eine ganze Weile und gebe hierüber überwiegend deutsche Sprachnachrichten aus.
Das Attribut "TTS_Language" ist bei mir deswegen auch auf "Deutsch" eingestellt, jetzt möchte ich aber auch manchmal englische Texte ausgeben, könnte vor so einer Nachricht jetzt zwar temporär das Attribut ändern, dies hätte aber dann immer eine Konfig Änderung zur Folge und es würde im Webinterface das speichern-Symbol auftauchen.

Würde mich freuen wenn im Modul einen Möglichkeit eingebaut werden könnte, um temporär die Sprache zu verändern. (ähnlich wie es bei AMAD möglich ist: msg684219 (https://forum.fhem.de/index.php/topic,72373.msg684219.html#msg684219))

Gruß Schlimbo
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Simon74 am 01 November 2017, 15:36:04
Mir ist aufgefallen das meine morgentliche Wetteransage beim verlassen nicht mehr ausgegeben wird, dem bin ich nun nachgegangen.
Wundere mich das es hier im Forum noch nicht zu finden war, verwendet Text2Speech niemand mehr ?
Bei meinem Stretch funktionierte der mplayer Aufruf von Text2Speech nicht mehr, was an der neueren mplayer Version liegen dürfte ?

root@px3 /opt/fhem > mplayer -V
mpv 0.23.0 (C) 2000-2016 mpv/MPlayer/mplayer2 projects
built on UNKNOWN
ffmpeg library versions:
   libavutil       55.34.101
   libavcodec      57.64.101
   libavformat     57.56.101
   libswscale      4.2.100
   libavfilter     6.65.100
   libswresample   2.3.100
ffmpeg version: 3.2.8-1~deb9u1


In der Ausgabe ist folgender Fehler zu sehen: Sub-options for --vo and --ao were removed from mpv in release 0.23.0
root@px3 /opt/fhem > mpv -ao alsa:device=hw=0.0 cache/8027551bd47f8dc12fc2c5804daf99ce.mp3
Option ao: this option does not accept sub-options.
Sub-options for --vo and --ao were removed from mpv in release 0.23.0.
See https://0x0.st/uM for details.
Error parsing option ao (option could not be parsed)
Setting command line option '--ao=alsa:device=hw=0.0' failed.


Eine Liste der Ausgabedevices erhält man nun anscheinend mit:
mpv --audio-device=help

Erfolgreicher Test:
mpv --audio-device=alsa cache/8027551bd47f8dc12fc2c5804daf99ce.mp3

Ich habe mir die 98_Text2Speech.pm wie folgt angepasst das es wieder funktioniert:
nano /opt/fhem/FHEM/98_Text2Speech.pm
my $mplayerOpts     = '';
my $mplayerNoDebug  = '-really-quiet';
my $mplayerAudioOpts = '--audio-device=';


Danach die Anpassung in FHEM:
defmod MyTTS Text2Speech alsa;
reload 98_Text2Speech.pm;

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: f-zappa am 30 November 2017, 10:25:10
Moin, ich habe das gleiche Problem gehabt und ähnlich gelöst, diesen Beitrag hab ich erst hinterher gesehen.
    $cmd = "espeak -vde+f3 -k5 -s150 \"" . $text . "\" -w " . $FileWav ;
Das geht auch erheblich flotter, weil er alsa, pulse & co. links liegen lässt (und falls davon gar nichts konfiguriert ist, ist es auch egal).
Da FHEM normalerweise in sein Cacheverzeichnis schreiben darf, wird auch kein sudo mehr benötigt.

Könnte man diese kleine Änderung denn bitte einpflegen? Ich schließe ungern etwas vom Update aus, aber das wäre meine einzige Alternative, weil es in der jetzigen Form einfach nicht funktioniert ...

Gruß, Uli


Zitat von: Markus64 am 27 Juli 2017, 07:49:10
Hallo,

ich hab ein kleines Problem mit espeak. Beim erstmaligen ausgeben von Text funktioniert alles bestens. Beim zweiten mal ausgeben des selben Text erfolgt keine Ausgabe.
Nach ein wenig suchen habe ich dan gesehen, das die cache files korrupt sind. Anstelle mp3 sind dort die stdout von espeak zu finden.
Nach ändern der Zeile 764 der
##############################################
# $Id: 98_Text2Speech.pm 13704 2017-03-14 19:33:42Z Tobias.Faust $
#
# 98_Text2Speech.pm

  } elsif ($TTS_Ressource eq "ESpeak") {
    my $FileWav = $file . ".wav";
   
-    $cmd = "sudo espeak -vde+f3 -k5 -s150 \"" . $text . "\">\"" . $FileWav . "\"";
+    $cmd = "sudo espeak -vde+f3 -k5 -s150 \"" . $text . "\" -w \"" . $FileWav . "\"";
      Log3 $hash, 4, "Text2Speech:" .$cmd;
      system($cmd);
   


funktioniert alles wieder wie gewünscht.

Vielleicht kann man das ändern.

LG
Markus
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: simonTS am 19 Dezember 2017, 11:51:44
und wie wird aus der Stimme jetzt ein brummendes, weihnachtliches Ho!Ho!  :)

Das würde den KAF (bei mir reicht der WAF allein leider nicht mehr aus) Faktor erheblich nach oben dreiben...

Grüße und Schöne Feiertage!!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: FHEM-Wohnung am 12 Januar 2018, 22:04:19
Hallo,

ich habe ein Problem. Wenn ich ":info.mp3:" eingebe, ertönt der Gong. Wenn ich jetzt jedoch ":info.mp3: Es ist XXX Uhr eingebe" eingebe, ertönt weder der Gong noch die Textausgabe. Das erstemal wird etwas von Array und dann eine Buchstaben/Zahlenkombination ausgegeben. Nach erneuter Eingabe bleibt es still. Ab dann wird nichts mehr vorgelesen bzw. abgespielt.

Nur ein Neustart lässt MyTTS zum leben erwecken.

Außerdem kann ich kein FileMapping einstellen. Es wird dann der Pfad also templates und dann die Abkürzung vorgelesen. Der Gong bleibt aus.

Vielen Dank :)

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 13 Januar 2018, 10:43:40
Hi,

mit verbose 5 im Modul bekommt man meist klare Aussagen was nicht läuft.
mp3wrap installiert? -> https://forum.fhem.de/index.php/topic,81634.0.html

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: gadget am 20 Januar 2018, 15:22:51
Hallo,

Da mich das grad 2 Stunden Sucherei gekostet hat wollte ich es mal hier dokumentieren:

Voraussetzungen:

fhem auf Raspberry Pi2
Raspian stretch
aktive mini-Lautsprecherchen am Klinkenanschluss

Dieses Setup lief monatelang völlig problemlos. Plötzlich aber kein Sprachausgabe mehr. An fhem oder OS nichts geändert.

- Mit amixer Lautstärke kontrolliert -> Alles ok.

aplay /usr/share/sounds/alsa/Front_Center.wav


funktioniert einwandrei

wav und mp3 mit mplayer abspielen funktioniert auch

verbose 5 gesetzt und tail -f aufs fhem.log laufen gelassen.

(Letzteres war für 1 Stunde der 2 Stunden verantwortlich - im Eventmonitor von fhemweb mit angekreuztem "fhem log" sieht man die Fehler nicht !)

Ergebnis:


2018.01.20 14:08:37 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2018.01.20 14:08:37 4: MyTTS: 0 => Hallo
2018.01.20 14:08:37 4: Verwende TTS Spracheinstellung: Deutsch
2018.01.20 14:08:37 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 71ce4185214eb43202358604a63cdcab.mp3
2018.01.20 14:08:37 4: Text2Speech: Bearbeite jetzt den Text: Hallo
2018.01.20 14:08:37 4: Text2Speech: cache/71ce4185214eb43202358604a63cdcab.mp3 gefunden, kein Download
2018.01.20 14:08:37 4: Text2Speech_CalcMP3Duration: cache/71ce4185214eb43202358604a63cdcab.mp3 hat eine Länge von 1 Sekunden.
2018.01.20 14:08:37 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols cache/71ce4185214eb43202358604a63cdcab.mp3
Cannot find HOME directory.
MPlayer 1.3.0 (Debian), built with gcc-6.2.1 (C) 2000-2016 MPlayer Team
Terminal type `unknown' is not defined.

Playing cache/71ce4185214eb43202358604a63cdcab.mp3.
libavformat version 57.56.101 (external)
Mismatching header version 57.56.100
Audio only file format detected.
Load subtitles in cache/
==========================================================================
Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III
AUDIO: 24000 Hz, 2 ch, s16le, 32.0 kbit/4.17% (ratio: 4000->96000)
Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III)
==========================================================================
[AO_ALSA] alsa-lib: pcm_hw.c:1713:(_snd_pcm_hw_open) Invalid value for card
[AO_ALSA] Playback open error: No such file or directory
Failed to initialize audio driver 'alsa:device=hw=0.0'
Could not open/initialize audio device -> no sound.
Audio: no sound
Video: no video


Exiting... (End of file)


Direktes Ausführen von


/usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols /opt/fhem/cache/71ce4185214eb43202358604a63cdcab.mp3


funktioniert aber.

Letztendlich hat dann


sudo adduser fhem audio


geholfen mit anschließendem fhem Neustart.

Warum das bisher trotzdem funktioniert hat erschliesst sich mir aber nicht.

Den mplayer hatte ich schon immer in den sudoers wie im Wiki beschrieben.

Grüsse, gadget
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: joergi am 07 Februar 2018, 17:48:49
Hallo,

ich habe häufig ein merkwürdiges Verhalten.

Vor der eigentlichen Ansage kommt eine merkwürdige Ansage "ARRAY(0x......".

Ich komm da nicht weiter, hat da einer eine Idee?

Danke

Jörg

Hier die Konfiguration:

define MyTTS Text2Speech hw=0.0
attr MyTTS TTS_MplayerCall /usr/bin/mplayer
attr MyTTS TTS_FileTemplateDir /opt/fhem/cache
attr MyTTS TTS_Ressource Google
attr MyTTS TTS_UseMP3Wrap 1

Die Definition:

fhem("set MyTTS tts :Graue_Restmuelltonne_rausbringen.mp3:")

Log im Gutfall:

2018.02.07 17:01:18 4: MyTTS: Angabe einer direkten MP3-Datei gefunden:  Graue_Restmuelltonne_rausbringen.mp3 => FileTpl_151801927822623_#0
2018.02.07 17:01:18 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2018.02.07 17:01:18 4: MyTTS: 0 => /opt/fhem/cache/Graue_Restmuelltonne_rausbringen.mp3
2018.02.07 17:01:30 4: Verwende TTS Spracheinstellung: Deutsch
2018.02.07 17:01:30 4: Text2Speech: /opt/fhem/cache/Graue_Restmuelltonne_rausbringen.mp3 als direkte MP3 Datei erkannt!
2018.02.07 17:01:30 4: Text2Speech: Bearbeite jetzt den Text: /opt/fhem/cache/Graue_Restmuelltonne_rausbringen.mp3
2018.02.07 17:01:30 4: Text2Speech: /opt/fhem/cache/Graue_Restmuelltonne_rausbringen.mp3 gefunden, kein Download
2018.02.07 17:01:30 4: Text2Speech_CalcMP3Duration: /opt/fhem/cache/Graue_Restmuelltonne_rausbringen.mp3 hat eine Länge von 3 Sekunden.
2018.02.07 17:01:30 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols /opt/fhem/cache/Graue_Restmuelltonne_rausbringen.mp3
Cannot find HOME directory.
MPlayer 1.2.1 (Debian), built with gcc-5.3.1 (C) 2000-2016 MPlayer Team
Terminal type `unknown' is not defined.

Playing /opt/fhem/cache/Graue_Restmuelltonne_rausbringen.mp3.
libavformat version 56.40.101 (external)
Audio only file format detected.
Load subtitles in /opt/fhem/cache/
==========================================================================
Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III
AUDIO: 24000 Hz, 2 ch, s16le, 32.0 kbit/4.17% (ratio: 4000->96000)
Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III)
==========================================================================
AO: [alsa] 44100Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...

Log im Schlechtfall:

2018.02.07 16:51:56 4: MyTTS: Angabe einer direkten MP3-Datei gefunden:   => FileTpl_151801871625423_#1
2018.02.07 16:51:56 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2018.02.07 16:51:56 4: MyTTS: 0 => ARRAY(0xe62d168)
2018.02.07 16:51:56 4: MyTTS: 1 => /opt/fhem/cache/Graue_Restmuelltonne_rausbringen.mp3
2018.02.07 16:51:56 4: Verwende TTS Spracheinstellung: Deutsch
2018.02.07 16:51:56 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 9cfddc0e137ee21a65c5f19697942460.mp3
2018.02.07 16:51:56 4: Text2Speech: /opt/fhem/cache/Graue_Restmuelltonne_rausbringen.mp3 als direkte MP3 Datei erkannt!
2018.02.07 16:51:56 4: Text2Speech: Bearbeite per MP3Wrap jetzt den Text: ARRAY(0xe62d168) /opt/fhem/cache/Graue_Restmuelltonne_rausbringen.mp3
2018.02.07 16:51:56 4: Text2Speech_CalcMP3Duration: cache/7e53dd9e2ab6225d45a10cf4556d65d9_MP3WRAP.mp3 hat eine Länge von 9 Sekunden.
2018.02.07 16:51:56 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols cache/7e53dd9e2ab6225d45a10cf4556d65d9_MP3WRAP.mp3
Cannot find HOME directory.
MPlayer 1.2.1 (Debian), built with gcc-5.3.1 (C) 2000-2016 MPlayer Team
Terminal type `unknown' is not defined.

Playing cache/7e53dd9e2ab6225d45a10cf4556d65d9_MP3WRAP.mp3.
libavformat version 56.40.101 (external)
Audio only file format detected.
Load subtitles in cache/
==========================================================================
Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III
AUDIO: 24000 Hz, 2 ch, s16le, 32.0 kbit/4.17% (ratio: 4000->96000)
Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III)
==========================================================================
AO: [alsa] 44100Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 12 Februar 2018, 08:19:13
Mit ein und demselben Aufruf und mp3 Datei geht's und mal nicht? Ganz sicher? Ist sehr merkwürdig. Im schlechtfall sieht man schon in der ersten Zeile das die mp3 Datei nicht aufgelistet ist

Gesendet von meinem Leap mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Lobot am 22 Februar 2018, 07:14:44
Hallo Leute,

ich habe seit kurzem ein Problem mit TTS.

Es lief eine Zeit lang sehr gut. Aber seit kurzem hängt sich FHEM nach erfolgreicher Textausgabe für eine gute Minute auf.

Folgendes ist dabei im LOG zu lesen:
2018.02.22 07:08:48 2: DBLog error: DBD::SQLite::db do failed: database is locked at ./FHEM/93_DbLog.pm line 2417.

2018.02.22 07:09:18 2: DBLog error: DBD::SQLite::db do failed: database is locked at ./FHEM/93_DbLog.pm line 2417.

2018.02.22 07:09:18 2: DBLog retry failed.


Hat jemand eine Idee, wo hier das Fehler liegt?

Gruß, Martin

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 22 Februar 2018, 07:52:26
du hast ein problem mit deiner sqlite datenbank ;) Dem solltest du nachgehen.
Solange kannst du das Attribut TTS_noStatisticsLog = 0 im TTS Modul setzen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Wzut am 22 Februar 2018, 07:58:58
no = 0 wäre dann aber wieder ja ... so lese ich auch deine command.ref :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Lobot am 22 Februar 2018, 08:16:17
Hi,

Danke für die schnelle Rückmeldung.

TTS_noStatisticsLog = 1 hat schon mal geholfen  :)

Ansonsten meckert die Datenbank nicht. Da werde ich die Tage mal genauer nachsehen.

Gruß, Martin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Frank_Huber am 22 Februar 2018, 20:13:24
Zitat von: Tobias am 22 Februar 2018, 07:52:26
du hast ein problem mit deiner sqlite datenbank ;) Dem solltest du nachgehen.
Solange kannst du das Attribut TTS_noStatisticsLog = 0 im TTS Modul setzen.

Das würde ich so nicht sagen.

Mir fiel heute das gleiche auf.
im Log mit Verbose 5 für TTS und Verbose 4 für dblog sieht man sehr deutlich dass ein falscher DEVIVE Name in die DB geschrieben werden soll worauf sich FHEM eine Gedenkminute gönnt:
2018.02.22 19:55:00 4: myTTS: Auflistung der Textbausteine nach Aufbereitung:
2018.02.22 19:55:00 4: myTTS: 0 => testgebabbel
2018.02.22 19:55:01 4: Verwende TTS Spracheinstellung: Deutsch
2018.02.22 19:55:01 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 8263d54f35ea727c8c47184f7b0f5b5c.mp3
2018.02.22 19:55:01 4: Text2Speech: Verwende Google OnlineResource zum Download
2018.02.22 19:55:01 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=testgebabbel
2018.02.22 19:55:01 4: Text2Speech: Schreibe mp3 in die Datei /opt/fhem/TTS/cache/8263d54f35ea727c8c47184f7b0f5b5c.mp3 mit 4992 Bytes
2018.02.22 19:55:01 4: Text2Speech: Bearbeite jetzt den Text: testgebabbel
2018.02.22 19:55:01 4: Text2Speech: /opt/fhem/TTS/cache/8263d54f35ea727c8c47184f7b0f5b5c.mp3 gefunden, kein Download
2018.02.22 19:55:01 4: Text2Speech_CalcMP3Duration: /opt/fhem/TTS/cache/8263d54f35ea727c8c47184f7b0f5b5c.mp3 hat eine Länge von 1 Sekunden.
2018.02.22 19:55:01 4: Text2Speech:/opt/fhem/TTS/mplayer.sh -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols /opt/fhem/TTS/cache/8263d54f35ea727c8c47184f7b0f5b5c.mp3
2018.02.22 19:55:01 4: DbLog logdb -> ################################################################
2018.02.22 19:55:01 4: DbLog logdb -> ###              start of new Logcycle                       ###
2018.02.22 19:55:01 4: DbLog logdb -> ################################################################
2018.02.22 19:55:01 4: DbLog logdb -> number of events received: 1 for device: myTTS
2018.02.22 19:55:01 4: DbLog logdb -> check Device: myTTS , Event: duration: 1
2018.02.22 19:55:01 4: DbLog logdb -> added event - Timestamp: 2018-02-22 19:55:01, Device: myTTS, Type: TEXT2SPEECH, Event: duration: 1, Reading: duration, Value: 1, Unit:
2018.02.22 19:55:01 4: DbLog logdb -> ################################################################
2018.02.22 19:55:01 4: DbLog logdb -> ###         New database processing cycle - synchronous      ###
2018.02.22 19:55:01 4: DbLog logdb -> ################################################################
2018.02.22 19:55:01 4: DbLog logdb -> DbLogType is: History
2018.02.22 19:55:01 4: DbLog logdb -> AutoCommit mode: OFF, Transaction mode: ON
2018.02.22 19:55:01 4: DbLog logdb -> processing event Timestamp: 2018-02-22 19:55:01, Device: myTTS, Type: TEXT2SPEECH, Event: duration: 1, Reading: duration, Value: 1, Unit:
2018.02.22 19:55:01 4: DbLog logdb -> 1 of 1 events inserted into table history
2018.02.22 19:55:01 4: DbLog logdb -> insert table history committed by autocommit
2018.02.22 19:55:01 4: DbLog logdb -> ################################################################
2018.02.22 19:55:01 4: DbLog logdb -> ###              start of new Logcycle                       ###
2018.02.22 19:55:01 4: DbLog logdb -> ################################################################
2018.02.22 19:55:01 4: DbLog logdb -> number of events received: 1 for device: myTTS
2018.02.22 19:55:01 4: DbLog logdb -> check Device: myTTS , Event: endTime: 00:00:00
2018.02.22 19:55:01 4: DbLog logdb -> added event - Timestamp: 2018-02-22 19:55:01, Device: myTTS, Type: TEXT2SPEECH, Event: endTime: 00:00:00, Reading: endTime, Value: 00:00:00, Unit:
2018.02.22 19:55:01 4: DbLog logdb -> ################################################################
2018.02.22 19:55:01 4: DbLog logdb -> ###         New database processing cycle - synchronous      ###
2018.02.22 19:55:01 4: DbLog logdb -> ################################################################
2018.02.22 19:55:01 4: DbLog logdb -> DbLogType is: History
2018.02.22 19:55:01 4: DbLog logdb -> AutoCommit mode: OFF, Transaction mode: ON
2018.02.22 19:55:01 4: DbLog logdb -> processing event Timestamp: 2018-02-22 19:55:01, Device: myTTS, Type: TEXT2SPEECH, Event: endTime: 00:00:00, Reading: endTime, Value: 00:00:00, Unit:
2018.02.22 19:55:01 4: DbLog logdb -> 1 of 1 events inserted into table history
2018.02.22 19:55:01 4: DbLog logdb -> insert table history committed by autocommit
2018.02.22 19:55:02 4: Processing Statement: SELECT
                  TIMESTAMP,
                  DEVICE,
                  READING,
                  VALUE
                  ,TYPE,EVENT,UNIT FROM current WHERE 1=1 AND DEVICE  = 'myTTS|/opt/fhem/TTS/cache/8263d54f35ea727c8c47184f7b0f5b5c.mp3' AND READING = 'Usage' AND TIMESTAMP >= '2000-01-01 00:00:00' AND TIMESTAMP < '2099-01-01 00:00:00' ORDER BY TIMESTAMP
2018.02.22 19:55:02 4: Executing INSERT INTO current (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES (
           '2018-02-22 19:55:02','myTTS|/opt/fhem/TTS/cache/8263d54f35ea727c8c47184f7b0f5b5c.mp3','Text2Speech','testgebabbel','Usage','1','')
2018.02.22 19:55:32 2: DBLog error: DBD::SQLite::db do failed: database is locked at ./FHEM/93_DbLog.pm line 2426.

2018.02.22 19:56:02 2: DBLog error: DBD::SQLite::db do failed: database is locked at ./FHEM/93_DbLog.pm line 2426.

2018.02.22 19:56:02 2: DBLog retry failed.


Hier der Auszug des Fehlermoments:
2018.02.22 19:55:02 4: Executing INSERT INTO current (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES (
           '2018-02-22 19:55:02','myTTS|/opt/fhem/TTS/cache/8263d54f35ea727c8c47184f7b0f5b5c.mp3','Text2Speech','testgebabbel','Usage','1','')
2018.02.22 19:55:32 2: DBLog error: DBD::SQLite::db do failed: database is locked at ./FHEM/93_DbLog.pm line 2426.

Ein Freeze von exakt 30 Sekunden.

Attribut dbLogExclude .* bringt nichts da er mit falschem Namen loggt, das zieht da nicht.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Panik am 25 Februar 2018, 08:00:57
Hallo,

Frage:
Hat jemand TTS und MPD gleichzeitig eingerichtet und hat es geschafft, dass gesprochene
Meldungen über TTS vorrangig vor dem Abspielen z.B. eines Radiostreams über MPD bedient wird.

Ich habe beides eingerichtet und es läuft auch prima - einzeln.
Sobald aber Radio über MPD läuft werden die Ausgaben über TTS nicht wiedergeben.

Hat es jemand lösen können oder gibt es eine Vorrang-Einstellung in dem TTS-Modul?

Panik
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Lobot am 25 Februar 2018, 10:00:38
Moin Panik,

ich hab dafür ein DOIF auf das Reading "MyTTS:playing".

Wenn TTS startet, setzt das MPD auf Pause und nach Ende wieder auf Play.

Gruß, Martin
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Panik am 25 Februar 2018, 18:26:06
Danke Martin.
So in etwa hab ich es jetzt auch umgesetzt,
nur dass ich noch ein SLEEP entsprechend der Länge der gesprochenen Meldung
vor das Wiedereinsetzen des MPD gesetzt habe.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: monty_burns_007 am 27 Februar 2018, 14:49:30
Hallo Tobias,

Im moment habe ich FHEM laufen und deine Module "Text2Speech" benutzt.
Es funzt alle, aber ich kann nicht meine eigene Language selectieren (Dutch) (bin von Belgien: flemish dutch)
Habe wie provider "Google" selektiert.
Kannst du deine Module erweitern mit NL (dutch) ?
Google translate :   http://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&q=$*&tl=nl   
funzt :-)

Vielen Danke im vorraus
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 27 Februar 2018, 16:17:43
Attribut TTS_Language setzen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: monty_burns_007 am 02 März 2018, 15:02:53
Zitat von: mumpitzstuff am 27 Februar 2018, 16:17:43
Attribut TTS_Language setzen?

Nur die TTS_Languages (siehe Beitrag) sind möglich. Kein "Dutch" (nl)



Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 02 März 2018, 16:37:24
Stimmt. Das habe ich mir gar nicht angesehen. Dann bleibt dir tatsächlich nur, das Modul manuell zu ändern und es vom Update auszuschliessen. Da es hierfür wahrscheinlich sowieso kein Update mehr gibt, ist das Risiko relativ gering.

my %language        = ("Google"     =>  {"Deutsch"        => "de",
                                         "English-US"     => "en-us",
                                         "Schwedisch"     => "sv",
                                         "Indian-Hindi"   => "hi",
                                         "Arabic"         => "ar",
                                         "France"         => "fr",
                                         "Spain"          => "es",
                                         "Italian"        => "it",
                                         "Chinese"        => "cn"
},


Hier könntest du einfach deinen Fall mit eintragen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 04 März 2018, 09:47:20
Es steht auf meiner ToDo Liste, leider aber wenig Zeit aufgrund anderer Projekte

Gesendet von meinem Leap mit Tapatalk

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: monty_burns_007 am 04 März 2018, 11:31:35
Zitat von: mumpitzstuff am 02 März 2018, 16:37:24
Stimmt. Das habe ich mir gar nicht angesehen. Dann bleibt dir tatsächlich nur, das Modul manuell zu ändern und es vom Update auszuschliessen. Da es hierfür wahrscheinlich sowieso kein Update mehr gibt, ist das Risiko relativ gering.

my %language        = ("Google"     =>  {"Deutsch"        => "de",
                                         "English-US"     => "en-us",
                                         "Schwedisch"     => "sv",
                                         "Indian-Hindi"   => "hi",
                                         "Arabic"         => "ar",
                                         "France"         => "fr",
                                         "Spain"          => "es",
                                         "Italian"        => "it",
                                         "Chinese"        => "cn"
},


Hier könntest du einfach deinen Fall mit eintragen.

Yep, habe ich gerade "Dutch"     => "nl" eingetragt und funzt super ! :-)
danke
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: duke-f am 21 März 2018, 01:59:54
Vielleicht hat hier jemand einen Hinweis. Seit einigen Wochen habe ich große Verzögerungen bei Text2Speech, wenn ich dies automatisch durch den Bewegungsmelder an der Haustür auslöse. Der Bewegungsmelder ist

defmod Antwort_HT2 FS20 632d 56
attr Antwort_HT2 IODev CUL_0
attr Antwort_HT2 follow-on-for-timer 1
attr Antwort_HT2 room FS20
attr Antwort_HT2 showtime 1


Text2Speech wird ausgelöst durch

defmod BewegungAnHaustur2 DOIF ([Antwort_HT2] =~ "on"){Meldung_Bewegung();;}

mit der myUtils-Funktion


sub
Meldung_Bewegung
{
fhem ("set Audio_Cubie on;
       defmod antwort0 at +00:00:02 set MyTTS tts Es ist jemand vor der Haustür;
       defmod antwort1 at +00:00:08 set alabama ttsSay Ja. Das habe ich auch gehört;
       defmod antwort2 at +00:00:12 set MyTTS tts Vielleicht kommt Besuch. Jemand muss mal nachsehen;
       defmod wiederaus at +00:00:20 set Audio_Cubie off;
   setstate Antwort_HT off")
}

Es sollen drei Texte nacheinander gesprochen werden. antwort0 durch die Lautsprecher am Cubie, die dazu erst eingeschaltet werden. antwort1 ist die Antwort es Steuer-Tablets im Flur mit WebViewControl, schließlich antwort2 wieder im Wohnzimmer. Später wird dann der Lautsprecher wieder ausgeschaltet. Die Zeiten habe ich schon öfters versucht anzupassen und vielfach geändert. Leider wird der erste Text erst meist bis zu 10 Sekunden verspätet gesprochen, egal ob das Cache-Verzeichnis leer war, ob der Text bereits von Google aufbereitet vorliegt oder erst online generiert wird. Damit kommt die Antwort im Flur vor dem ersten Text.
Sende ich hingegen einen Text direkt, wird der auch ohne wesentliche Verzögerung gesprochen.
Kennt jemand das Phänomen - und vielleicht auch die Ursache? Das ging über Monate und Jahre ohne Problem, seit einigen Wochen aber nicht mehr.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 23 März 2018, 15:02:24
Wenn die Remote Recher verzögert ausgeben, kann es am Ping liegen, mit denm Text2Speech prüft, ob der Rechner online ist.
Falls es eine PRESENCE Instanz für den Remote Rechenr gibt, sollte es keine verzögerungen geben.

Ggf. gibt es viele gleichzeitige BlockingCalls (s. blockinginfo) auf einem Rechner, auch Text2Speech nutzt BlockingCall (Attribut blockingCallMax)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: duke-f am 23 März 2018, 15:18:11
Ich fürchte, es liegt an den BlockingCalls - da muss ich mal recherchieren. Kapiert habe ich das nämlich noch nicht. Die Verzögerung gibt es dummerweise genau an dem Rechner, auf dem FHEM läuft, also lokal und nicht remote.

Aber danke für den Tipp.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: monty_burns_007 am 13 April 2018, 15:50:45
Zitat von: monty_burns_007 am 04 März 2018, 11:31:35
Yep, habe ich gerade "Dutch"     => "nl" eingetragt und funzt super ! :-)
danke

Hi, wenn wird diese änderung auch in die repo eingetragen ?
Jetzt muss ich immer nach eine update von FHEM diese änderung manuel zuruck eintragen.
wäre schon sein das die Dutch (nl) auch in die repo angepasst wird.

mfg

Monty
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 11 Juni 2018, 10:55:55
Zitat von: monty_burns_007 am 13 April 2018, 15:50:45
Hi, wenn wird diese änderung auch in die repo eingetragen ?
Jetzt muss ich immer nach eine update von FHEM diese änderung manuel zuruck eintragen.
wäre schon sein das die Dutch (nl) auch in die repo angepasst wird.

mfg

Monty

erledigt .... endlich ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: monty_burns_007 am 12 Juni 2018, 09:56:15
Zitat von: Tobias am 11 Juni 2018, 10:55:55
erledigt .... endlich ;)
Ok danke. Funzt. 👍😃
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: micha0815 am 30 September 2018, 23:28:45
Hallo,

ich habe heute mein raspbian von jessie auf stretch upgedatet und mich gewundert warum mein lokales text2speech nicht mehr funktionert.

Wie schon weiter vorne angesprochen liegt es daran, dass sich beim mplayer die Syntax geändert hat.

Der neue Paketname unter debian ist  "mpv" Version 0.23.0-2+deb9u2.

Ich habe es jetzt bei mir wie folgt angepasst.

diff 98_Text2Speech.pm 98_Text2Speech.pm.orig
44c44
< my $mplayerOpts     = '';
---
> my $mplayerOpts     = '-nolirc -noconsolecontrols';
46c46
< my $mplayerAudioOpts  = '--audio-device=';
---
> my $mplayerAudioOpts  = '-ao alsa:device=';


Die Konfig im FHEM geändert von
define MyTTS Text2Speech alsa:device=fhemvol
auf
defmod MyTTS Text2Speech alsa/fhemvol

Wäre toll, wenn man ein Attribut hätte, wo man die mplayer Version einstellen kann.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 01 Oktober 2018, 00:15:06
Mit dem Attribut TTS_MplayerCall kann man doch den Mplayer Aufruf völlig frei vorgeben. Oder habe ich was falsch verstanden?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Toto1973 am 01 Oktober 2018, 09:51:10
Ich habe genau das selbe Problem wie mischa0815.
Bin hier schon verzweifelt!
SRadio funktioniert bei mir auch nicht mehr seit dem Update...
Ebenfalls funktioniert meine Wanduhr nicht mehr. Da muss ich mich erst mit der neuen Syntax vom Player beschäftigen.

Wäre es eigentlich möglich, die alte Mplayer Version auf Stretch zu installieren?
Das würde ein Umbau der Module erübrigen!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Toto1973 am 01 Oktober 2018, 23:12:41
Über apt install mplayer habe ich Text2Speech wieder zum laufen bekommen. Aber SRadio geht dennoch nicht!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: micha0815 am 01 Oktober 2018, 23:19:12
@mumpitzstuff: danke für den Hinweis, manchmal liegt die Lösung direkt vor einem und man kommt nicht drauf.

Habe es jetzt bei mir wie folgt gelöst. Wichtig ist, dass man hier nicht mplayer startet, da dass Script sonst die "alten" Parameter übergibt. Da ist ne Abfrage drin, ob mplayer aufgerufen wird.
defmod MyTTS Text2Speech alsa/fhemvol
attr MyTTS TTS_MplayerCall sudo /usr/bin/mpv --audio-device=alsa/fhemvol -really-quiet


Noch in die "visudo" den mpv eingetragen, dass dieser auch ohne Passwort aufgerufen werden kann.
ALL ALL = NOPASSWD: /usr/bin/mpv
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Toto1973 am 03 Oktober 2018, 09:34:46
Wenn ich bei mir das Atribut "TTSMplayerCall" auf den neuen mpv setze, bekomme ich alle Textansagen als Mickeymaus-Stimme ausgegeben. Muss dort noch ein spezielle Option des mpv mit übergeben werden?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Toto1973 am 03 Oktober 2018, 11:34:04
Und noch eine Frage zum mpv:
Wie bekomme ich denn eine laufende instanz (Webstream) beendet?
Ich suche jetzt schon stunden und bekomme den Webstream, den ich über fhem mit {system "mpv http://sunshinelive.hoerradar.de/sunshinelive-live-mp3-hq"} gestartet habe, nicht mehr abgeschaltet.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 03 Oktober 2018, 11:59:51
https://stackoverflow.com/questions/35013075/pause-programmatically-video-player-mpv (https://stackoverflow.com/questions/35013075/pause-programmatically-video-player-mpv)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Toto1973 am 03 Oktober 2018, 13:26:22
Danke für die Antwort!
Manchmal sitzt man einfach auf dem Schlauch!
killall mpv hat den gewünschten Erfolg gebracht!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: riker1 am 06 Oktober 2018, 22:40:11
Hallo

we bekomme ich denn am einfachsten Text2 Speack über LMS Squeezebox server und player zum Laufen?

Gibt es da eine Anleitung?

also remote ausgabe über squeezelite - player .
ansonsten natürlich LMS server

Danke

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: duke-f am 15 Oktober 2018, 14:40:46
SB_Server, und dann auch eine SB_Player, der dann auf dem Raspie (vermute ich) über Squeezelite auch Musik ausgibt? Gibt es da nicht eigenständig die Funktion, gesprochenen Text auszugeben?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: riker1 am 15 Oktober 2018, 15:01:54
Hallo,

denke schon, aber klappt eben nicht.

wenn ich es versuche, kommt das im Log.

2018.10.15 14:59:48.620 5 : SB_PLAYER_Set: called with sayText
2018.10.15 14:59:48.638 5 : SB_PLAYER_Set: called with ?
2018-10-15 14:59:48.639 SB_PLAYER SB_PLAYER_000001010089 sayText Hallo
2018.10.15 14:59:48.663 5 : SB_PLAYER_Set: called with ?
2018.10.15 14:59:48.664 5 : SB_PLAYER_Set: called with ?
2018.10.15 14:59:48.665 4 : SB_PLAYER_Get: called with SB_PLAYER_000001010089 ?
2018.10.15 14:59:49.208 5 : SB_PLAYER_Set: called with ?


weiss dann auch nicht weiter.

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: RomanticBoy83 am 24 Oktober 2018, 23:24:44
Ich hatte mal ein großes update gefahren und alle Module aktualisiert. Dabei rannte ich in einen bereits vergessenen Fehler, welcher auch hier noch keine Anwendung fand.
Ich nutze im LogDb keine Tabelle "current". Leider wird dies hier vorausgesetzt, weshalb das Modul nach der ersten Ausgabe immer durcheinander kommt (LogDb wirf einen Fehler, welcher einem %hash zugewiesen werden soll). Wird das nicht berücksichtigt, dann taucht in der sub Text2Speech_PrepareSpeech($$) im @text ein ARRAY an position 0 auf und die $hash->{helper}{RUNNING_PID} existiert weiterhin (delete wird nicht mehr aufgerufen).
Abhilfe hatte ich bereits in #834 gepostet:
Zitatreturn undef if(AttrVal($defs{$DbLogDev}, "DbLogType", "History") !~ /Current/); # muss die Tabelle Current nutzen

Einen eventuellen Patch habe ich angehangen.
Wird das zukünftigt berücksichtigt, oder mache ich etwas utopisches indem ich die Tabelle nicht nutze?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: RomanticBoy83 am 28 Oktober 2018, 19:15:20
Ich habe mal nach einer Lösung für die von euch bezeichnete "MickeyMouseStimme" gesucht.
Ich hatte das Problem nur in verbindung mit meinen Templates und habe mich auf die Suche begeben. Wie von euch bereits vermutet, ist der Fehler im Schritt zur Benutzung von mp3wrap zu suchen.
Meine Templates hatten im vergleich zu den von google geladenen Tönen
wenn ich diese bei allem meinen Templates nun anpasse und diese angleiche auf die empfangenen aus dem Internet, dann funktioniert auch die Zusammenführung mit mp3wrap.

Mein Script dafür (benennt das Original um wenn dieses nicht 24kHz hat und erzeugt ein Neues unter dem Namen[mono,32kbit,24kHz]):
#!/bin/bash

for curr_song in $( ls *mp3 ); do
    curr_song_base_name=${curr_song%.*}
    rate=$(ffprobe -hide_banner "$curr_song" 2>&1 | grep -oE "([0-9]*) Hz" | rev | cut -c 4- | rev)

    if [[ ${curr_song} =~ "_original.mp3" ]]; then
        # ignore this file
        echo "step over ${curr_song_base_name}"
    elif [ ${rate} -eq 24000 ]; then
        echo "-->${curr_song_base_name}"
        echo "-->${rate}"
    else
        echo "-->${curr_song_base_name}"
        echo "-->${rate} -->24000"
        mv ${curr_song} ${curr_song_base_name}_original.mp3
        ffmpeg -i ${curr_song_base_name}_original.mp3 -ac 1 -ab 32k -ar 24000 -f mp3 - >${curr_song}
    fi
done
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 02 November 2018, 10:33:47
super,
kannst du das gleich als FAQ o.ä. im Wiki Artikel zu Text2Speech eintragen??
Titel: Ausgabe aus FHEM heraus klappt nicht, von der Kommandozeile schon
Beitrag von: fstefan1960 am 28 Dezember 2018, 15:06:18
Hallo,

seit Tagen plage ich mich jetzt, suche lese, teste ..
Ich bekomme TTS nicht ans Laufen.

Habe das ganz normal definiert:

Internals:
   ALSADEVICE hw=0.0
   DEF        hw=0.0
   MODE       DIRECT
   NAME       MyTTS
   NR         27
   STATE      Initialized
   TYPE       Text2Speech
   READINGS:
     2018-12-28 15:00:52   duration        1
     2018-12-28 15:00:52   endTime         00:00:00
     2018-12-28 15:00:52   lastFilename    /opt/fhem/www/sounds/S1.mp3
     2018-12-28 15:00:52   playing         0
   helper:
     Text2Speech:
Attributes:
   TTS_FileTemplateDir /opt/fhem/www/sounds
   TTS_MplayerCall /usr/bin/mplayer
   TTS_UseMP3Wrap 1
   verbose    5


mplayer hat auch die richtigen Rechte.

im Log steht:

2018.12.28 15:01:52 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols /opt/fhem/www/sounds/S1.mp3
MPlayer 1.3.0 (Debian), built with gcc-7 (C) 2000-2016 MPlayer Team
Terminal type `unknown' is not defined.

Playing /opt/fhem/www/sounds/S1.mp3.
libavformat version 57.83.100 (external)
Audio only file format detected.
Load subtitles in /opt/fhem/www/sounds/
==========================================================================
Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III
AUDIO: 44100 Hz, 2 ch, s16le, 320.0 kbit/22.68% (ratio: 40000->176400)
Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III)
==========================================================================
[AO_ALSA] alsa-lib: pcm_hw.c:1713:(_snd_pcm_hw_open) Invalid value for card
[AO_ALSA] Playback open error: No such file or directory
Failed to initialize audio driver 'alsa:device=hw=0.0'
Could not open/initialize audio device -> no sound.


Nehme ich den Befehl aus dem Log:
/usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols /opt/fhem/www/sounds/S1.mp3

und gebe den im Terminal ein, läuft alles bestens ....

Was mach ich da falsch?
user fhem ist in der Gruppe audio!

Vielen Dank für Tips
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 28 Dezember 2018, 17:11:17
Hi,

geht denn überhaupt Sound aus FHEM? Das hier in der FHEM Kommmandozeile"speaker-test -t sine -f 440 -c 2 -s 1"
Rechte Problem am Pfad /opt/fhem/www/sounds ? Eigentümer sollte fhem sein!

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tueftler1983 am 01 Januar 2019, 23:17:46
Hallo ich würde TTS gerne an meinem RPI 3b+ mit Bluetooth Lautsprecher nutzen.
Habe das neueste Stretch installiert und der PI startet im Desktop modus und verbindet sich auch automatisch mit dem Lautsprecher. Wenn ich über vlc player eine Datei wiedergebe kommt der sound auch über den BT Lautsprecher.
Aber wie bekomme ich es hin das von FHEM die TTS Wiedergabe auch über Bluetooth kommt?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 02 Januar 2019, 23:44:45
Hi tueftler1983,

obwohl es im Wiki mehrere Beschreibungen (https://wiki.fhem.de/wiki/Text2Speech) gibt, würde ich Dir raten: bau Dir für vlc (da es ja damit geht) eine Gehhilfe - ähnlich hier (https://forum.fhem.de/index.php/topic,56523.msg564666.html#msg564666).

Einfach ist es nicht  :-X

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: RomanticBoy83 am 04 Januar 2019, 21:29:17
Ich habe mich mal an eine Fehlerbeseitigung gemacht!

Problem:
set sprachausgabe tts mein erster text; set sprachausgabe tts mein zweiter text; set sprachausgabe tts mein dritter text;
set sprachausgabe tts :template01.mp3::template02.mp3:
set sprachausgabe tts :template01.mp3:ein Beispieltext:template02.mp3:

und nun der Patch
Nachtrag: Der nachfolgend aufgezeigte Fehler "#system($cmd)" wurde bereits nachträglich hier entfernt.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: bofax am 13 Januar 2019, 18:23:46
Zitat von: RomanticBoy83 am 04 Januar 2019, 21:29:17
Ich habe mich mal an eine Fehlerbeseitigung gemacht!

Problem:

  • DBLog-Device mit unerwarteten Einstellungen führt zum Absturz des Moduls.
    Diesen Fehler hatte ich hier schon einmal beschrieben und auch einen Patch angehangen, dennoch hier noch einmal der Vollständigkeit halber.
    Bei mir läuft DBLog nicht mit der Tabelle Current. In diese möchte jedoch das Modul selbständig reinschreiben.
    Eine Prüfung schaut nun, ob es überhaupt möglich ist und überspringt diesen Punkt wenn die Tabelle nicht vorhanden ist.
  • Array in der Ansage
    Manchmal tauchte ein Array in der Ansage auf, welches von Google mit seiner Adresse Übersetzt worden ist!
    Im Modul war ein wenig etwas durcheinander sobald mehr als nur ein Satz gesprochen werden sollte. Unter Umständen konnte sich so ein ungewolltes Array als einzelnes Wort unterschmugeln. Korigiert wurde dies in dem jeder eingehende Satz nun als eigenes Array abgearbeitet wird und auch nur jene komplett entfernt werden nach der Wiedergabe.
    Konstrukt wie das nachfolgende, welches hintereinander mehrmals eine Sprachausgabe erwünscht, sollten nun problemfrei möglich sein.

Diese Problem scheint nun behoben.

[/list]set sprachausgabe tts mein erster text; set sprachausgabe tts mein zweiter text; set sprachausgabe tts mein dritter text;
  • mehrere Templates in einem Satz
    Mehr als eine Angabe eines Templates war nicht möglich. Eine falsche Regex löste das Problem. Beispielsweise sind nun folgende Satz ebenfalls möglich:
set sprachausgabe tts :template01.mp3::template02.mp3:
set sprachausgabe tts :template01.mp3:ein Beispieltext:template02.mp3:

  • Log-Ausgaben unordentlich
    Beim Fehlersuchen fiel mir die unordentliche Log-Ausgabe auf, welche ich ebenfalls verschönert habe. Das Modul zeigt nun durchweg überall seinen Namen in der Zeile.

und nun der Patch

Vielen Dank für den Patch. Danach ging bei mir erstmal gar nichts mehr. Das Logging war sauber, auf CLI konnte ich mit dem erzeugten cmd auch Dateien abspielen. Dann bin ich auf folgendes gestossen:

-    Log3 $hash->{NAME}, 4, "Text2Speech:" .$cmd;
-    system($cmd);
+    Log3 $hash->{NAME}, 4, $hash->{NAME}.":" .$cmd;
+    #system($cmd);


System ist auskommentiert. Damit geht dann natürlich nichts mehr. Nach entfernen der Raute lief es dann.

Dennoch habe ich weiterhin Probleme, die ganz klar der mp3wrap verursacht. Er erzeugt mp3-Files, die mplayer in eine Endlosschleife schicken.
Ich habe mich damit beholfen, mp3wrap abzuschalten und templates / erzeugten Text nacheinander über zwei Kommandos abzuspielen.

Viele Grüße

bofax
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: RomanticBoy83 am 13 Januar 2019, 21:43:41
ups - meine Schuld. Da hab' ich wohl etwas übersehen, was ich nur zum Testen auskommentierte.
Die Endlosschleife kann ich mir so nicht erklären. MP3Wrap läuft bei mir. Ich nutze jedoch nicht den MPlayer.

Wenn es denn an dem patch liegt, dann hier:
-  splice(@{$hash->{helper}{Text2Speech}}, 0, $tts_done);
+  splice(@{$hash->{helper}{Text2Speech}}, 0, 1);

$tts_done zählte(vor Patch) die Einzelteile und entfernte diese aus der Queue. z.B (set tts Hello:temp.mp3:World) hätte drei entfernt.
Mit dem Patch wird jeder (set tts ...) in einem seperatem array verarbeitet und dieses 1 array entfernt. Eventuell ist hier der Fehler zu suchen in dem was ich geschrieben habe.

Kannst du ein Beispiel geben und beschreiben was eine Endlosschleife ist(Abspielen der selben Datei immer und immer wieder?)!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Billy am 18 Januar 2019, 17:41:14
Zitat von: RomanticBoy83 am 04 Januar 2019, 21:29:17
Ich habe mich mal an eine Fehlerbeseitigung gemacht!

Konstrukt wie das nachfolgende, welches hintereinander mehrmals eine Sprachausgabe erwünscht, sollten nun problemfrei möglich sein.
set sprachausgabe tts mein erster text; set sprachausgabe tts mein zweiter text; set sprachausgabe tts mein dritter text;
  • mehrere Templates in einem Satz
    Mehr als eine Angabe eines Templates war nicht möglich. Eine falsche Regex löste das Problem. Beispielsweise sind nun folgende Satz ebenfalls möglich:
set sprachausgabe tts :template01.mp3::template02.mp3:
set sprachausgabe tts :template01.mp3:ein Beispieltext:template02.mp3:



Rückmeldung nach einspielen des Patch:

set sprachausgabe tts mein erster text; set sprachausgabe tts mein zweiter text; set sprachausgabe tts mein dritter text;
Geht-->
------------------
set sprachausgabe tts :template01.mp3::template02.mp3:
set sprachausgabe tts :template01.mp3:ein Beispieltext:template02.mp3:


Geht nicht, es wird nur immer das erste Template ausgegeben!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: RomanticBoy83 am 19 Januar 2019, 12:25:31
Das kann ich so nicht nachvollziehen. Ich habe das jetzt gerade noch einmal explizit getestet. Läuft genau wie von mir beschrieben.
Deine Beschreibung klingt als würdest du mit der Version vor dem Patch arbeiten.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Billy am 19 Januar 2019, 15:08:13
Zitat von: RomanticBoy83 am 19 Januar 2019, 12:25:31
Das kann ich so nicht nachvollziehen. Ich habe das jetzt gerade noch einmal explizit getestet. Läuft genau wie von mir beschrieben.
Deine Beschreibung klingt als würdest du mit der Version vor dem Patch arbeiten.

  • Hast du den Patch erfolgreich eingespielt?
  • Hast du das Modul erfolgreich neu geladen?
ja, Patch erfolgreich eingespielt!
ja, Modul erfolgreich neu geladen!
die Dateien Hausalarm.mp3 und deaktiviert.mp3 sind im Verzeichnis \TTS\cache\templates\

Nach attr verbose 5 erscheint folgendes im Log

2019.01.19 14:59:46 4: myTTS: Angabe einer direkten MP3-Datei gefunden:  Hausalarm.mp3 => FileTpl_1547906386_#0
2019.01.19 14:59:46 4: myTTS: Angabe einer direkten MP3-Datei gefunden:  deaktiviert.mp3 => FileTpl_1547906386_#0
2019.01.19 14:59:46 4: myTTS: Auflistung der Textbausteine nach Aufbereitung:
2019.01.19 14:59:46 4: myTTS: 0 => /data/fhem/TTS/cache/templates/Hausalarm.mp3
2019.01.19 14:59:46 4: myTTS: 1 => /data/fhem/TTS/cache/templates/Hausalarm.mp3
2019.01.19 14:59:46 4: myTTS: Verwende TTS Spracheinstellung: Deutsch
2019.01.19 14:59:46 4: myTTS: /data/fhem/TTS/cache/templates/Hausalarm.mp3 als direkte MP3 Datei erkannt!
2019.01.19 14:59:46 4: myTTS: Bearbeite jetzt den Text: /data/fhem/TTS/cache/templates/Hausalarm.mp3 /data/fhem/TTS/cache/templates/Hausalarm.mp3
2019.01.19 14:59:46 4: myTTS: /data/fhem/TTS/cache/templates/Hausalarm.mp3 gefunden, kein Download
2019.01.19 14:59:46 4: myTTS: /data/fhem/TTS/cache/templates/Hausalarm.mp3 hat eine Länge von 1 Sekunden.
2019.01.19 14:59:46 4: myTTS:/home/fhem/TTS/mplayer.sh -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols /data/fhem/TTS/cache/templates/Hausalarm.mp3


deaktiviert.mp3 wird nicht abgespielt! :'(

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: RomanticBoy83 am 19 Januar 2019, 18:19:02
Sehr seltsam! Ich sehe den Fehler, kann ihn aber nicht nachstellen.
Ich zeige dir mal was ich eingebe und was herauskommen sollte:
set sprachausgabe tts :tada.mp3::notify.mp3:
2019.01.19 18:14:02 4: sprachausgabe: Angabe einer direkten MP3-Datei gefunden:  tada.mp3 => FileTpl_154791804299809_#0
2019.01.19 18:14:02 4: sprachausgabe: Angabe einer direkten MP3-Datei gefunden:  notify.mp3 => FileTpl_154791804299927_#0
2019.01.19 18:14:03 4: sprachausgabe: Auflistung der Textbausteine nach Aufbereitung:
2019.01.19 18:14:03 4: sprachausgabe: 0 => sounds/tada.mp3
2019.01.19 18:14:03 4: sprachausgabe: 1 => sounds/notify.mp3
2019.01.19 18:14:03 4: sprachausgabe: Verwende TTS Spracheinstellung: Deutsch
2019.01.19 18:14:03 4: sprachausgabe: sounds/tada.mp3 als direkte MP3 Datei erkannt!
2019.01.19 18:14:03 4: sprachausgabe: sounds/notify.mp3 als direkte MP3 Datei erkannt!

Zeig doch einmal deinen Befehl! Ich versuche mal den Fehler einzugrenzen - eventuell liegt es irgendwie an der Bezeichnung der Dateien.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Billy am 19 Januar 2019, 19:01:59
Mein Befehl:
set myTTS tts :Hausalarm.mp3::deaktiviert.mp3:

Ausgabe habe ich ja schon gepostet.

2019.01.19 14:59:46 4: myTTS: Angabe einer direkten MP3-Datei gefunden:  Hausalarm.mp3 => FileTpl_1547906386_#0
2019.01.19 14:59:46 4: myTTS: Angabe einer direkten MP3-Datei gefunden:  deaktiviert.mp3 => FileTpl_1547906386_#0
2019.01.19 14:59:46 4: myTTS: Auflistung der Textbausteine nach Aufbereitung:
2019.01.19 14:59:46 4: myTTS: 0 => /data/fhem/TTS/cache/templates/Hausalarm.mp3
2019.01.19 14:59:46 4: myTTS: 1 => /data/fhem/TTS/cache/templates/Hausalarm.mp3
2019.01.19 14:59:46 4: myTTS: Verwende TTS Spracheinstellung: Deutsch
2019.01.19 14:59:46 4: myTTS: /data/fhem/TTS/cache/templates/Hausalarm.mp3 als direkte MP3 Datei erkannt!
2019.01.19 14:59:46 4: myTTS: Bearbeite jetzt den Text: /data/fhem/TTS/cache/templates/Hausalarm.mp3 /data/fhem/TTS/cache/templates/Hausalarm.mp3
2019.01.19 14:59:46 4: myTTS: /data/fhem/TTS/cache/templates/Hausalarm.mp3 gefunden, kein Download
2019.01.19 14:59:46 4: myTTS: /data/fhem/TTS/cache/templates/Hausalarm.mp3 hat eine Länge von 1 Sekunden.
2019.01.19 14:59:46 4: myTTS:/home/fhem/TTS/mplayer.sh -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols /data/fhem/TTS/cache/templates/Hausalarm.mp3


Du kannst ja mal die komplette 98_Text2Speech.pm zum Vergleich anhängen.
Daran sollte es aber nicht liegen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: RomanticBoy83 am 19 Januar 2019, 19:20:23
Ich habe den Fehler/deine Eigenart gefunden!
Deine Bezeichnung "FileTpl_xxx" ist bei beiden Angaben gleich - zum selben Zeitpunkt erstellt worden:
2019.01.19 14:59:46 4: myTTS: Angabe einer direkten MP3-Datei gefunden:  Hausalarm.mp3 => FileTpl_1547906386_#0
2019.01.19 14:59:46 4: myTTS: Angabe einer direkten MP3-Datei gefunden:  deaktiviert.mp3 => FileTpl_1547906386_#0

FileTpl_1547906386_#0 == FileTpl_1547906386_#0
Was ich mich jetzt frage ist, weshalb gibt dein Rechner/Betriebssystem mit der Funktion time() nicht ein solch genaues ergebnis wie mein Rpi.
Frage, was setzt du denn ein (Rechner und System)?

Workaround:
Du kannst um das Problem zu umgehen in Zeile 543 eine Änderung vornehmen und die Zeit ersetzen indem du den zweiten Counter hinzunimmst. Wahrscheinlich ist das eh die bessere Variante als mit der Zeit zu gehen:
my $tpl = "FileTpl_".$time."_#".$i; #eindeutige Templatedefinition schaffen
my $tpl = "FileTpl_#".$i."_".$j; #eindeutige Templatedefinition schaffen

Anmerkung: Das funktioniert jetzt aber nur ohne Zeit weil ich mit dem Patch jeden Befehl einzeln bearbeite.

Probiere das mal aus!

PS: Ich habe das gerade ausprobiert. Die Zeilen 541 und 542 können somit auch entfernt werden. Ich habe den Patch bei gelegenheit noch einmal neu gemacht und das mit aufgenommen. Nach Dokumentation auf https://perldoc.perl.org/functions/time.html ist das Verhalten der Funktion time() bei dir das richtige.
Anmerkung: Der Patch kommt weiter unten, da noch ein Problem auftrat.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Billy am 19 Januar 2019, 19:53:11
ZitatFrage, was setzt du denn ein (Rechner und System)?
Beaglebone Black mit Debian Wheezy

Nach Änderung in Zeile 543 sieht das so aus!

2019.01.19 19:43:00 4: myTTS: Auflistung der Textbausteine nach Aufbereitung:
2019.01.19 19:43:00 4: myTTS: 0 => Hausalarm
2019.01.19 19:43:00 4: myTTS: 1 => deaktiviert
2019.01.19 19:43:00 4: myTTS: Verwende TTS Spracheinstellung: Deutsch
2019.01.19 19:43:00 4: myTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 2b548a35d13c45da15700da833ef703e.mp3
2019.01.19 19:43:00 4: myTTS: Bearbeite jetzt den Text: Hausalarm deaktiviert
2019.01.19 19:43:00 4: myTTS: /data/fhem/TTS/cache/2b548a35d13c45da15700da833ef703e.mp3 gefunden, kein Download
2019.01.19 19:43:00 4: myTTS: /data/fhem/TTS/cache/2b548a35d13c45da15700da833ef703e.mp3 hat eine Länge von 1 Sekunden.
2019.01.19 19:43:00 4: myTTS:/home/fhem/TTS/mplayer.sh -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols /data/fhem/TTS/cache/2b548a35d13c45da15700da833ef703e.mp3


deaktiviert.mp3 wird weiterhin nicht ausgegeben.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: RomanticBoy83 am 19 Januar 2019, 20:35:55
Ich habe genau den Patch, welchen ich ebend oben angehangen habe noch einmal überprüft. Der sollte jetzt auch bei dir laufen.

Bei deiner Log-Ausgabe sind auf einmal die Endungen verschwunden. Da waren wir doch garnicht dran?!
Anmerkung: Du scheinst keine Templates angegeben zu haben und er hat den Text normal verarbeitet.

Sollte es noch immer nicht gehen, dann versuche nocheinmal bei null zu starten und gib mir bitte Rückantwort.
1) original mit dem neuen Patch patchen
2) modul einspielen
3) modul neu laden
4) Log hier posten

Ich schaue mir das dann noch einmal an.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Billy am 19 Januar 2019, 21:31:01
Zitat von: RomanticBoy83 am 19 Januar 2019, 20:35:55
Ich habe genau den Patch, welchen ich ebend oben angehangen habe noch einmal überprüft. Der sollte jetzt auch bei dir laufen.

Bei deiner Log-Ausgabe sind auf einmal die Endungen verschwunden. Da waren wir doch garnicht dran?!
Anmerkung: Du scheinst keine Templates angegeben zu haben und er hat den Text normal verarbeitet.

Sollte es noch immer nicht gehen, dann versuche nocheinmal bei null zu starten und gib mir bitte Rückantwort.
1) original mit dem neuen Patch patchen
2) modul einspielen
3) modul neu laden
4) Log hier posten

Ich schaue mir das dann noch einmal an.

Alles so durchgeführt.
set myTTS tts :Hausalarm.mp3::deaktiviert.mp3:
ergebnis im Log
2019.01.19 21:24:37 4: myTTS: Angabe einer direkten MP3-Datei gefunden:  Hausalarm.mp3 => FileTpl_#0_0
2019.01.19 21:24:37 4: myTTS: Angabe einer direkten MP3-Datei gefunden:  deaktiviert.mp3 => FileTpl_#0_1
2019.01.19 21:24:37 4: myTTS: Auflistung der Textbausteine nach Aufbereitung:
2019.01.19 21:24:37 4: myTTS: 0 => /data/fhem/TTS/cache/templates/Hausalarm.mp3
2019.01.19 21:24:37 4: myTTS: 1 => /data/fhem/TTS/cache/templates/deaktiviert.mp3
2019.01.19 21:24:37 4: myTTS: Verwende TTS Spracheinstellung: Deutsch
2019.01.19 21:24:37 4: myTTS: /data/fhem/TTS/cache/templates/Hausalarm.mp3 als direkte MP3 Datei erkannt!
2019.01.19 21:24:37 4: myTTS: Bearbeite jetzt den Text: /data/fhem/TTS/cache/templates/Hausalarm.mp3 /data/fhem/TTS/cache/templates/deaktiviert.mp3
2019.01.19 21:24:37 4: myTTS: /data/fhem/TTS/cache/templates/Hausalarm.mp3 gefunden, kein Download
2019.01.19 21:24:37 4: myTTS: /data/fhem/TTS/cache/templates/Hausalarm.mp3 hat eine Länge von 1 Sekunden.
2019.01.19 21:24:37 4: myTTS:/home/fhem/TTS/mplayer.sh -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols /data/fhem/TTS/cache/templates/Hausalarm.mp3


Keine Ausgabe des 2ten Teils
Die mp3 Dateien sind im Ordner templates
TTS_FileTemplateDir
/data/fhem/TTS/cache/templates
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: RomanticBoy83 am 19 Januar 2019, 22:33:20
Jetzt schaut es ja schon ansatzweise richtig aus.
Das Problem muss ich mal in Ruhe versuchen nachzustellen. Ich habe den Code leider auch nicht komplett durchgearbeitet. Ich denke aber ich sehe das Problem. Du nutzt kein Mp3Wrap, wodurch ersteinmal nur der Erste Teil ausgegeben wird. Durch den Patch schneidet es jedoch den gesamten Befehl weg weil davon ausgegangen wird, dass es abgearbeitet wurde. Das ist aber ohne mp3 Wrap nicht der Fall.

Hier noch einmal der Patch, in welchem auch das Problem behoben sein sollte.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Billy am 20 Januar 2019, 08:24:26
Zitat von: RomanticBoy83 am 19 Januar 2019, 22:33:20
Hier noch einmal der Patch, in welchem auch das Problem behoben sein sollte.

Vielen Dank, das geht jetzt! Super
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Billy am 20 Januar 2019, 11:14:37
Wenn man aber MP3Wrap aktiviert
attr MyTTS TTS_UseMP3Wrap 1
geht es nicht mehr!

Gruß Billy
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 20 Januar 2019, 12:12:56
Zitat von: Billy am 20 Januar 2019, 11:14:37
Wenn man aber MP3Wrap aktiviert
attr MyTTS TTS_UseMP3Wrap 1
geht es nicht mehr!

Gruß Billy
Das man da auch ein debian Paket dafür braucht und nicht nur ein Attribut ist aber klar - oder?sudo apt-get install libdigest-sha-perl mp3wrap

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Billy am 20 Januar 2019, 12:21:47
@Otto123 danke
Mea culpa, mea maxima culpa!
Das war's da habe ich mich schlecht vorbereitet!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Neuhier am 28 Januar 2019, 21:10:36
Habe da ein Problem bekommen.
Bisher Ausgabe über Audio-Buchse am RPi + Verstärker, HW=0.0 - klar und deutlich.
Jetzt Ausgabe über USB-DAC, auch + Verstärker, HW=0.0 - nix zu hören.
Laut aplay -l
**** Liste der Hardware-Ger▒te (PLAYBACK) ****
Karte 0: DAC [USB Audio DAC], Ger▒t 0: USB Audio [USB Audio]
  Sub-Ger▒te: 1/1
  Sub-Ger▒t #0: subdevice #0
Karte 1: ALSA [bcm2835 ALSA], Ger▒t 0: bcm2835 ALSA [bcm2835 ALSA]
  Sub-Ger▒te: 7/7
  Sub-Ger▒t #0: subdevice #0
  Sub-Ger▒t #1: subdevice #1
  Sub-Ger▒t #2: subdevice #2
  Sub-Ger▒t #3: subdevice #3
  Sub-Ger▒t #4: subdevice #4
  Sub-Ger▒t #5: subdevice #5
  Sub-Ger▒t #6: subdevice #6
Karte 1: ALSA [bcm2835 ALSA], Ger▒t 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  Sub-Ger▒te: 1/1
  Sub-Ger▒t #0: subdevice #0

Es gibt auch mit Verstärker keine Ausgabe.

Nachtrag:
ein Verbose = 5 bringt
2019-01-28 21:30:08 Text2Speech MyTTS playing: 1
2019-01-28 21:30:08 Text2Speech MyTTS duration: 11
2019-01-28 21:30:09 Text2Speech MyTTS endTime: 00:00:00
2019-01-28 21:30:11 Text2Speech MyTTS lastFilename: /opt/fhem/Sound/doorbell-2.mp3
2019-01-28 21:30:11 Text2Speech MyTTS playing: 0
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 28 Januar 2019, 23:19:16
Bekommst du über commandline Befehle was zu hören?

Hast du das mal geprüft?

https://raspberrypi.stackexchange.com/questions/5475/usb-sound-card-found-but-no-output/9876 (https://raspberrypi.stackexchange.com/questions/5475/usb-sound-card-found-but-no-output/9876)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Neuhier am 29 Januar 2019, 19:19:36
Lustig.
Wenn ich das per Konsole prüfe, ist das Rauschen auf "Front left" zu hören, rechts nix.
Gebe ich testweise was in MyTTS ein, kommt nix, mache ich das innerhalb paar Sekunden nochmal, gibt es eine Ausgabe.
Seltsam, sehr seltsam...

Laut Eventmonitor wird auch irgendwas gelogt, bei beiden Befehlen identisch, aber nur beim 2. kommt was raus.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: RomanticBoy83 am 29 Januar 2019, 20:29:23
Ich hatte mit dem mPlayer auf dem RPi genausoviel Erfolg als ich etwas auf USB hören wollte. Eine Lösung dafür hatte ich nie erarbeiten können und nutze deshalb jetzt /usr/bin/omxplayer -o local --vol 400
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: debe am 03 Februar 2019, 13:07:11
Hallo,

ich denke die API von mpv wurde geändert.
Mein Log von Text2Speech sagt:

2019.02.03 12:54:45 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols cache/2c26d04638370e8efd5ae7da49d5b291_MP3WRAP.mp3
Option ao: this option does not accept sub-options.
Sub-options for --vo and --ao were removed from mpv in release 0.23.0.
See https://0x0.st/uM for details.
Error parsing option ao (option could not be parsed)
Setting command line option '--ao=alsa:device=hw=0.0' failed.

Exiting... (Fatal error)

Gefunden habe ich das:
https://github.com/mpv-player/mpv/wiki/Option-replacement-list#mpv-0210

Ich schau mir das mal an. Ich denke hier muss TTS geupdated werden.

LG,
Dan

UPDATE:

Folgende Zeilen aus 98_Text2Speech.pm ändern:
# path to mplayer
my $mplayer          = 'sudo /usr/bin/mplayer';
my $mplayerOpts         = '';
my $mplayerNoDebug  = '-really-quiet';
my $mplayerAudioOpts    = '--audio-device=';

In FHEM das ALSADEVICE von "hw=*" auf "alsa" ändern.

Läuft wieder :)

Log:

2019.02.03 13:35:58 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2019.02.03 13:35:58 4: MyTTS: 0 => test
2019.02.03 13:35:58 4: Verwende TTS Spracheinstellung: Deutsch
2019.02.03 13:35:59 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 71f783ed67e131a66e252ec9b458daaf.mp3
2019.02.03 13:35:59 4: Text2Speech: Bearbeite jetzt den Text: test
2019.02.03 13:35:59 4: Text2Speech: cache/71f783ed67e131a66e252ec9b458daaf.mp3 gefunden, kein Download
2019.02.03 13:35:59 4: Text2Speech_CalcMP3Duration: cache/71f783ed67e131a66e252ec9b458daaf.mp3 hat eine Länge von 1 Sekunden.
2019.02.03 13:35:59 4: Text2Speech:sudo /usr/bin/mplayer --audio-device=alsa   cache/71f783ed67e131a66e252ec9b458daaf.mp3
Playing: cache/71f783ed67e131a66e252ec9b458daaf.mp3
[ffmpeg/demuxer] mp3: Estimating duration from bitrate, this may be inaccurate
(+) Audio --aid=1 (mp3)
AO: [alsa] 24000Hz mono 1ch s16
A: 00:00:00 / 00:00:00 (4%)
A: 00:00:00 / 00:00:00 (13%)
A: 00:00:00 / 00:00:00 (20%)
A: 00:00:00 / 00:00:00 (26%)
A: 00:00:00 / 00:00:00 (32%)
A: 00:00:00 / 00:00:00 (38%)
A: 00:00:00 / 00:00:00 (45%)
A: 00:00:00 / 00:00:00 (53%)
A: 00:00:00 / 00:00:00 (63%)
A: 00:00:00 / 00:00:00 (70%)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 14 März 2019, 15:14:37
Ich habe den Patch von RomanticBoy83 als auch die Änderungen zur neuen mpv API eingecheckt.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Invers am 15 März 2019, 10:26:06
Läuft leider bei mir nicht mehr, bleibt stumm. Vor dem Update war alles ok. Definition hab ich geändert, war davor hw=0.0
Hier mal die Ausgabe und das List, vielleicht kann jemand helfen?

2019.03.15 10:23:05 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2019.03.15 10:23:05 4: MyTTS: 0 => test
2019.03.15 10:23:05 4: MyTTS: Verwende TTS Spracheinstellung: Deutsch
2019.03.15 10:23:05 4: MyTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 71f783ed67e131a66e252ec9b458daaf.mp3
2019.03.15 10:23:05 4: MyTTS: Bearbeite jetzt den Text: test
2019.03.15 10:23:05 4: MyTTS: cache/71f783ed67e131a66e252ec9b458daaf.mp3 gefunden, kein Download
2019.03.15 10:23:05 4: MyTTS: cache/71f783ed67e131a66e252ec9b458daaf.mp3 hat eine Länge von 1 Sekunden.
2019.03.15 10:23:05 4: MyTTS:sudo /usr/bin/mplayer --audio-device=alsa -really-quiet  -softvol -softvol-max 110 -volume 100 cache/71f783ed67e131a66e252ec9b458daaf.mp3 >/dev/null
2019.03.15 10:23:06 4: MyTTS: Es wurden 1 Teile ausgegeben und der Befehl ist abgearbeitet.


Internals:
   ALSADEVICE alsa
   DEF        alsa
   FUUID      5c6428db-f33f-edf9-355d-0acb8755d474c30d
   MODE       DIRECT
   NAME       MyTTS
   NR         32
   STATE      Initialized
   TYPE       Text2Speech
   VOLUME     100
   READINGS:
     2019-03-15 10:23:05   duration        1
     2019-03-15 10:23:05   endTime         00:00:00
     2019-03-15 10:23:06   lastFilename    cache/71f783ed67e131a66e252ec9b458daaf.mp3
     2019-03-15 10:23:06   playing         0
     2019-03-15 10:22:23   volume          100
   helper:
     Text2Speech:
Attributes:
   TTS_FileMapping Glocke:glocke.mp3 Tischglocke:tischglocke.mp3
   TTS_FileTemplateDir /opt/fhem/mp3
   TTS_Language Deutsch
   TTS_Ressource Google
   TTS_noStatisticsLog 1
   room       System
   verbose    4
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 15 März 2019, 10:51:35
probier mal bitte dann das kommando in der shell manuell abzusetzen. Bitte schau auch vorher, ob das mp3 File noch vorhanden ist und setze den absoluten pfad ein. Ev. auch mal als user root versuchen.
Ev. hast du noch die alte API vom mpv drin?

sudo /usr/bin/mplayer --audio-device=alsa -really-quiet  -softvol -softvol-max 110 -volume 100 cache/71f783ed67e131a66e252ec9b458daaf.mp3
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stratege-0815 am 15 März 2019, 11:06:43
Hallo zusammen,
eine kurze Schnellfrage - sehe ich das richtig (im Wiki) das als Ausgabe "nur" folgende Möglichkeiten bestehen:

- Klinken Ausgang
- HDMI Ausgang
- Bluetooth Speaker
- anderer FHEM Pi mit obigen Ausgängen

?

Also keine Ausgabe z.B. an ein IP Device wie ein WLAN Radio?

Beste Grüße
Jan
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 15 März 2019, 11:08:02
Zitat von: stratege-0815 am 15 März 2019, 11:06:43
Hallo zusammen,
eine kurze Schnellfrage - sehe ich das richtig (im Wiki) das als Ausgabe "nur" folgende Möglichkeiten bestehen:

- Klinken Ausgang
- HDMI Ausgang
- Bluetooth Speaker
- anderer FHEM Pi mit obigen Ausgängen

?

Also keine Ausgabe z.B. an ein IP Device wie ein WLAN Radio?

Beste Grüße
Jan

korrekt, da es kein einheitliches Protokoll dafür gibt. Jeder Hersteller macht da sein eigenes Süppchen

Besser gesagt, alles was man mit alsa anbinden kann, kann per TTS angesprochen werden
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Invers am 15 März 2019, 14:21:00
Es scheint so zu sein, dass die Datei, die erzeugt wird, nicht abgespeichert wird. Ich kann sie jedenfalls auf dem Pi nicht finden.
lastFilename cache/aktuellerDateiname.mp3
ist auf dem gesamten Pi nicht zu finden.
Ich habe vorher den gesamten Pi mit Updates versorgt. Wie kann ich die Version des mpv feststellen?

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo rpi-update

Nach Eingabe von

sudo /usr/bin/mplayer --audio-device=alsa -really-quiet  -softvol -softvol-max 110 -volume 100 cache/aktuellerDateiname.mp3

bleibt der Pi ebenfalls stumm. Klar, die Datei ist ja weg.

Ich könnte zum Test noch einmal das alte Modul einspielen.
   
EDIT: Die Eingabe einer existierenden Datei brachte allerdings auch keine Ausgabe.

EDIT2 Nach restrore und ALSADEVICE hw=0.0 geht alles wieder und auch die Dateien werden gespeichertg.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Invers am 15 März 2019, 14:55:21
Ich hab die Version gefunden:
pi@fhemPi:~ $ cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version k4.19.27-v7+.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 15 März 2019, 16:19:18
funktioniert denn die aktuelle Version bei den anderen?
Wenn zuviele melden das es nicht funktioniert, nehme ich die Anpassung wieder zurück und ich muss mir etwas anderes überlegen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 15 März 2019, 21:59:28
Bei mir funktioniert es auch nicht nach dem Update.

Fehlermeldung nachdem ich die Definition auf alsa umgestellt habe, mit hw=0.0 lief es auch nicht:
Zitat2019.03.15 11:59:06 4: SagEs1Pi2: Auflistung der Textbausteine nach Aufbereitung:
2019.03.15 11:59:06 4: SagEs1Pi2: 0 => templates/stereo_total_suendenbock.mp3
2019.03.15 11:59:07 4: SagEs1Pi2: Verwende TTS Spracheinstellung: Deutsch
2019.03.15 11:59:07 4: SagEs1Pi2: templates/stereo_total_suendenbock.mp3 als direkte MP3 Datei erkannt!
2019.03.15 11:59:07 4: SagEs1Pi2: Bearbeite jetzt den Text: templates/stereo_total_suendenbock.mp3
2019.03.15 11:59:07 4: SagEs1Pi2: cache/templates/stereo_total_suendenbock.mp3 gefunden, kein Download
2019.03.15 11:59:07 4: SagEs1Pi2: cache/templates/stereo_total_suendenbock.mp3 hat eine Länge von 189 Sekunden.
2019.03.15 11:59:07 4: SagEs1Pi2:sudo /usr/bin/mplayer --audio-device=alsa   cache/templates/stereo_total_suendenbock.mp3
Unknown option on the command line: --audio-device
Error parsing option on the command line: --audio-device=alsa
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
2019.03.15 11:59:11 4: SagEs1Pi2: Es wurden 1 Teile ausgegeben und der Befehl ist abgearbeitet.

Ich habe die alte Datei wiederhergestellt, dann ist alles o.k.

Bei mir läuft Raspian Jessie.
Den Befehl auf der Befehlszeile auszuführen hilft auch nicht.
ALSA-Version: Advanced Linux Sound Architecture Driver Version k4.9.35+.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: ComputerZOO am 16 März 2019, 00:39:30
Bei mir kam heute Abend auch keine Gutenachtnachricht  :(
Altes Modul wieder eingespielt und es läuft wieder.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Seli am 16 März 2019, 11:11:19
Bei mir nach Update ebenfalls keine Soundausgabe mehr. Nach Restore läuft es wieder.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 17 März 2019, 10:11:57
gerade zurück auf die alte API Definition gesetzt. Wer unbedingt die neue Definition braucht muss eben mit einem Wrapperscript arbeiten. Falls später wirklich notwendig baue ich dann stattdessen dafür einen Schalter ein.
Bitte morgen per UPDATE nochmal prüfen, oder heute per manuellen download aus dem SVN
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 17 März 2019, 18:23:12
98_Text2Speech.pm 18937 2019-03-17 09:09:41Z Tobias.Faust

Funktioniert bei mir.

Ist nur die mpv Änderung raus oder auch die anderen Änderungen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Audi_Coupe_S am 18 März 2019, 10:19:09
Hallo,
seit einem Update gestern funktioniert bei mir das Text2Speech auch nicht mehr.

Unknown option on the command line: --audio-device=hw0.0
Error parsing option on the command line: --audio-device=hw0.0

Ein neuerlicher Updateversuch gab "nothing to do".

Was kann ich tun, das es wieder funktioniert?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 18 März 2019, 14:45:25
Zitat von: Audi_Coupe_S am 18 März 2019, 10:19:09
Hallo,
seit einem Update gestern funktioniert bei mir das Text2Speech auch nicht mehr.

Unknown option on the command line: --audio-device=hw0.0
Error parsing option on the command line: --audio-device=hw0.0

Ein neuerlicher Updateversuch gab "nothing to do".

Was kann ich tun, das es wieder funktioniert?
Schau Dir den Befehl restore und das globale Attribut exclude_from_update in der Befehlsreferenz an, damit sollte das Problem zulösen sein.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: skydns am 21 März 2019, 21:02:09
Hallo Leute,
Frauchen sagt: Natürlich steigt die Technik immer aus wenn du nicht da bist...

Mir ist der zeitliche Zusammenhang noch nicht klar, jedoch vermute ich auch das es am letzten Update liegt. Mein Text2Speech funktioniert jedenfalls nur noch zum Teil.
Der Text den ich übertrage z.B. Die Raumtemperatur wurde auf 20 Grad eingestellt.
wird umgewandelt und wiedergegeben, jedoch ist in der mp3 irgendein Zahlencode zu hören. Per Fernzugriff konnte ich das Modul erstmal nur deaktivieren.
Gibt es inzwischen schon eine Lösung oder ist das Problem bei jedem anders?
Etwas genauer schauen kann ich erst wieder ab morgen Abend.
Ich werd gleich noch eine mp3 als Beispiel hier anhängen.

Zu hören sollte eigentlich eine Temperaturansage wie oben beschrieben.
Gruß Marco

Logfile:
Zitat
2019.03.21 21:08:39 3: CUL_HM set WZ_Heizung_Clima desired-temp 18.0 2019.03.21 21:08:40 4: MyTTS: Angabe einer direkten MP3-Datei gefunden: doorbell_15.mp3 => FileTpl_#0_0 2019.03.21 21:08:40 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung: 2019.03.21 21:08:40 4: MyTTS: 0 => mp3/doorbell_15.mp3 2019.03.21 21:08:40 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung: 2019.03.21 21:08:40 4: MyTTS: 0 => Die Raumtemperatur wurde auf 18 Grad eingestellt 2019.03.21 21:08:40 3: Die Raumtemperatur wurde auf 18 Grad eingestellt 2019.03.21 21:08:40 4: MyTTS: Verwende TTS Spracheinstellung: Deutsch 2019.03.21 21:08:40 4: MyTTS: mp3/doorbell_15.mp3 als direkte MP3 Datei erkannt! 2019.03.21 21:08:40 4: MyTTS: Bearbeite jetzt den Text: mp3/doorbell_15.mp3 2019.03.21 21:08:40 4: MyTTS: mp3/doorbell_15.mp3 gefunden, kein Download 2019.03.21 21:08:40 4: MyTTS: mp3/doorbell_15.mp3 hat eine Länge von 4 Sekunden. 2019.03.21 21:08:40 4: MyTTS:/usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 200 -volume 60 mp3/doorbell_15.mp3 >/dev/null 2019.03.21 21:08:45 4: MyTTS: Es wurden 1 Teile ausgegeben und der Befehl ist abgearbeitet. 2019.03.21 21:08:45 4: MyTTS: Verwende TTS Spracheinstellung: Deutsch 2019.03.21 21:08:45 4: MyTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: d38876340551dbf3b16149f2a0b09b3e.mp3 2019.03.21 21:08:45 4: MyTTS: Bearbeite jetzt den Text: Die Raumtemperatur wurde auf 18 Grad eingestellt 2019.03.21 21:08:45 4: MyTTS: Verwende Google OnlineResource zum Download 2019.03.21 21:08:45 4: MyTTS: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=ARRAY%280x53658e0%29 2019.03.21 21:08:46 4: MyTTS: Schreibe mp3 in die Datei cache/d38876340551dbf3b16149f2a0b09b3e.mp3 mit 26784 Bytes 2019.03.21 21:08:46 4: MyTTS: cache/d38876340551dbf3b16149f2a0b09b3e.mp3 hat eine Länge von 7 Sekunden. 2019.03.21 21:08:46 4: MyTTS:/usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 200 -volume 60 cache/d38876340551dbf3b16149f2a0b09b3e.mp3 >/dev/null
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Schlimbo am 21 März 2019, 23:15:42
Hallo zusammen,
habe den gleichen Fehler wie skydns, seit dem letzten Update werden nur noch seltsame Zahlenfolgen ausgegeben.
Hier ein Log dazu:
2019.03.21 23:06:48.147 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2019.03.21 23:06:48.148 4: MyTTS: 0 => Test
2019.03.21 23:06:48.153 3: telnetForBlockingFn_1553206008: port 41449 opened
2019.03.21 23:06:48.186 4: MyTTS: Verwende TTS Spracheinstellung: Deutsch
2019.03.21 23:06:48.188 4: MyTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 15f3ee2c2bd4e05acae32c787e103a17.mp3
2019.03.21 23:06:48.189 4: MyTTS: Bearbeite jetzt den Text: Test
2019.03.21 23:06:48.191 4: MyTTS: Verwende Google OnlineResource zum Download
2019.03.21 23:06:48.192 4: MyTTS: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=ARRAY%280x19aab40%29
2019.03.21 23:06:48.356 4: MyTTS: Schreibe mp3 in die Datei /tmp/15f3ee2c2bd4e05acae32c787e103a17.mp3 mit 14688 Bytes
2019.03.21 23:06:48.360 4: MyTTS: /tmp/15f3ee2c2bd4e05acae32c787e103a17.mp3 hat eine Länge von 4 Sekunden.
2019.03.21 23:06:48.361 4: MyTTS:/usr/bin/mplayer -ao alsa:device=hw=1.0  -nolirc -noconsolecontrols /tmp/15f3ee2c2bd4e05acae32c787e103a17.mp3
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: RomanticBoy83 am 21 März 2019, 23:44:44
So kann ich doch etwas lesen. Besten dank für das ordentliche Log.
Ich hab' jetzt zwar keine Lösung für dich, aber eine Vermutung.

Das Log schaut schon absolut richtig aus. Es wird nur zu Google die Referenz des Satzes "Test" gesendet. Das ist natürlich ein Array mit einer Adresse.

Ich habe bereits bemerkt, dass ich im Patch die Leute vergessen hatte, die nicht den mp3wrap aktiviert haben. Vermutlich ist dort irgendwo noch ein Fehler drin.

Du kannst versuchen ob es was bringt wenn du mp3wrap aktivierst. Ich schaue mir die aktuelle Version mit dem nun eingefügten Patch am Wochenende mal an.

Meine schnelle Vermutung für ganz Eilige:
Zeile 894 sollte nicht das Array übergeben sondern einen string. Im Log darüber sieht man die join funktion, welche das erledigt.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: skydns am 22 März 2019, 06:51:57
Als kleiner Nachtrag noch zwei Bilder in dem man auch die Logeinträge besser lesen kann. mp3Wrap ist bereits aktiv.
Besser kriege ich es gerade mit dem Handy nicht hin.
Resource steht natürlich auf google, ich hatte espeak nur mal als Alternative probiert.
Gruß Marco
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: RomanticBoy83 am 22 März 2019, 20:29:12
Hey Leute - Ich habe mir das mal angesehen und den Fehler mit hoher Wahrscheinlichkeit gefunden!

Meine Vermutung war richtig und ich stelle gleich noch eine hinterher: Ihr habt beide das
attr TTS_SpeakAsFastAsPossible != 0
Im Screenshot kann ich das erkennen, dass es bei skydns so ist.

Da ich das nicht gesetzt habe und auch nicht verstehe was es bringen soll fiel mir das nicht weiter auf.

Problemanalyse:
In Zeile 840 wird normalerweise der Dowload gestartet. Bei euch jedoch aufgrund des Attributes nicht. Euer Download geschieht in der Zeile 895. Dort bin ich bisher nie hingekommen und habe somit den Fehler zu verantworten.

Lösung:
--- Text2Speech_Download($hash, $file, $hash->{helper}{Text2Speech}->[0]);
+++ Text2Speech_Download($hash, $file, join(" ",@{$hash->{helper}{Text2Speech}->[0]}));


Weiterer Lösungsvorschlag:
Wir könnten das Attribut auch demnächst entfernen wenn es denn wirklich keinen weiteren Sinn hat. Damit würde der gesamte Absatz dort unten ebenfalls entfallen. Ob das aber wirklich so ginge müsste geprüft werden oder von Tobias mal erörtet werden was der Sinn dahinter war.

Ich haffe ihr könnt damit ersteinmal leben und bekommt die Änderung selber durchgeführt: 1)Ändern, 2)Speichern, 3)Neuladen, 4)Spaßhaben.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Schlimbo am 22 März 2019, 21:12:12
Deine Vermutung stimmt, auch bei mir ist das Attribute TTS_SpeakAsFastAsPossible gesetzt.
Vielen dank, mit der Anpassung funktioniert es jetzt wieder.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: skydns am 23 März 2019, 21:32:09
Ich habe auch zu danken, den Fehler hätte ich nicht gefunden. Es funktioniert nun auch bei mir.
Danke
Titel: Neues Modul: Text2Speech
Beitrag von: Tobias am 01 April 2019, 18:06:14
Das Attribut hat den Sinn einen Satz so schnell als möglich raus zu hauen.
Also, entweder wird der ganze übergebene Text in den Einzelteilen heruntergeladen und per mp3wrap wieder zusammengesetzt ( damit bekommt man eine flüssigen Test gesprochen) oder sobald der erste Teil des Textes als mp3 vorliegt wir dieser ausgegeben. Damit ist unter Umständen eine holperige Textausgabe gegeben, aber eben sehr schnell.

Könntest du den Teil dazu noch anpassen, testen und als Patch Posten?

Gesendet von iPhone mit Tapatalk
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: RomanticBoy83 am 01 April 2019, 18:25:20
Ist nur der eine join welcher in Zeile 895 gefehlt hatte.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 05 April 2019, 11:46:27
bugfix ist jetzt im Repo. Jetzt aber sollte  hoffentlich alles funktionieren.....
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 09 April 2019, 01:03:15
Irgendwie geht das Modul bei mir nicht mehr. Habe jetzt ein Update gezogen und versuche folgenden Wetterbericht auszugeben:

Es werden Höchsttemperaturen von 14 Grad Celsius und schwacher Wind aus Nordwest mit frischen Böen erwartet. Es kommt zu Niederschlagsmengen von 0 Liter pro Quadratmeter, die Niederschlagswahrscheinlichkeit beträgt 41 Prozent, die Sonne scheint 1 Stunden.

Dinge wie 0,5 und 1,5 habe ich bereits entfernt. Als erstes wird mir ales vorgelesen (Bausteine 0-4), was ja richtig ist, dann aber werden danach die Bausteine 1-4, 2-4, 3-4 und zum Schluss noch einmal die 4 ausgegeben.

2019.04.09 00:56:09 4: TTS: Auflistung der Textbausteine nach Aufbereitung:
2019.04.09 00:56:09 4: TTS: 0 => Es werden Hoechsttemperaturen von 14 Grad Celsius
2019.04.09 00:56:09 4: TTS: 1 => und schwacher Wind aus Nordwest mit frischen Boeen erwartet.,;
2019.04.09 00:56:09 4: TTS: 2 => Es kommt zu Niederschlagsmengen von 0 Liter pro Quadratmeter,
2019.04.09 00:56:09 4: TTS: 3 => die Niederschlagswahrscheinlichkeit betraegt 41 Prozent,
2019.04.09 00:56:09 4: TTS: 4 => die Sonne scheint 1 Stunden.,
2019.04.09 00:56:09 4: TTS: Verwende TTS Spracheinstellung: Deutsch
2019.04.09 00:56:09 4: TTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 3af4eafcd330effa6792493fe7164469.mp3
2019.04.09 00:56:09 4: TTS: Bearbeite jetzt den Text: Es werden Hoechsttemperaturen von 14 Grad Celsius und schwacher Wind aus Nordwest mit frischen Boeen erwartet.,; Es kommt zu Niederschlagsmengen von 0 Liter pro Quadratmeter, die Niederschlagswahrscheinlichkeit betraegt 41 Prozent, die Sonne scheint 1 Stunden.,
2019.04.09 00:56:09 4: TTS: Verwende Google OnlineResource zum Download
2019.04.09 00:56:09 4: TTS: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=Es%20werden%20Hoechsttemperaturen%20von%2014%20Grad%20Celsius%20und%20schwacher%20Wind%20aus%20Nordwest%20mit%20frischen%20Boeen%20erwartet.%2C%3B%20Es%20kommt%20zu%20Niederschlagsmengen%20von%200%20Liter%20pro%20Quadratmeter%2C%20die%20Niederschlagswahrscheinlichkeit%20betraegt%2041%20Prozent%2C%20die%20Sonne%20scheint%201%20Stunden.%2C
2019.04.09 00:56:09 4: TTS: Schreibe mp3 in die Datei cache/3af4eafcd330effa6792493fe7164469.mp3 mit 0 Bytes
2019.04.09 00:56:09 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 655.
2019.04.09 00:56:09 1: stacktrace:
2019.04.09 00:56:09 1:     main::__ANON__                      called by ./FHEM/98_Text2Speech.pm (655)
2019.04.09 00:56:09 1:     main::Text2Speech_BuildMplayerCmdString called by ./FHEM/98_Text2Speech.pm (902)
2019.04.09 00:56:09 1:     main::Text2Speech_DoIt              called by FHEM/Blocking.pm (194)
2019.04.09 00:56:09 1:     main::BlockingStart                 called by FHEM/Blocking.pm (107)
2019.04.09 00:56:09 1:     main::BlockingCall                  called by ./FHEM/98_Text2Speech.pm (463)
2019.04.09 00:56:09 1:     main::Text2Speech_Set               called by fhem.pl (3693)
2019.04.09 00:56:09 1:     main::CallFn                        called by fhem.pl (1883)
2019.04.09 00:56:09 1:     main::DoSet                         called by fhem.pl (1915)
2019.04.09 00:56:09 1:     main::CommandSet                    called by fhem.pl (1229)
2019.04.09 00:56:09 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2664)
2019.04.09 00:56:09 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (939)
2019.04.09 00:56:09 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (567)
2019.04.09 00:56:09 1:     main::FW_Read                       called by fhem.pl (3698)
2019.04.09 00:56:09 1:     main::CallFn                        called by fhem.pl (745)
2019.04.09 00:56:09 4: TTS:/usr/bin/mplayer -ao pulse::bluez_sink.00_02_3C_44_F6_27.a2dp_sink   -nolirc -noconsolecontrols cache/3af4eafcd330effa6792493fe7164469.mp3
Cannot find HOME directory.
MPlayer 1.3.0 (Debian), built with gcc-6.2.1 (C) 2000-2016 MPlayer Team
Terminal type `unknown' is not defined.

Playing cache/3af4eafcd330effa6792493fe7164469.mp3.
libavformat version 57.56.101 (external)
Mismatching header version 57.56.100


Exiting... (End of file)
2019.04.09 00:56:10 4: TTS: Es wurden 5 Teile ausgegeben und weitere folgen!
2019.04.09 00:56:10 4: TTS: Verwende TTS Spracheinstellung: Deutsch
2019.04.09 00:56:10 4: TTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: c3535e52ad7377674a7b28a12a29381e.mp3
2019.04.09 00:56:10 4: TTS: Bearbeite jetzt den Text: und schwacher Wind aus Nordwest mit frischen Boeen erwartet.,; Es kommt zu Niederschlagsmengen von 0 Liter pro Quadratmeter, die Niederschlagswahrscheinlichkeit betraegt 41 Prozent, die Sonne scheint 1 Stunden.,
2019.04.09 00:56:10 4: TTS: Verwende Google OnlineResource zum Download
2019.04.09 00:56:10 4: TTS: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=und%20schwacher%20Wind%20aus%20Nordwest%20mit%20frischen%20Boeen%20erwartet.%2C%3B%20Es%20kommt%20zu%20Niederschlagsmengen%20von%200%20Liter%20pro%20Quadratmeter%2C%20die%20Niederschlagswahrscheinlichkeit%20betraegt%2041%20Prozent%2C%20die%20Sonne%20scheint%201%20Stunden.%2C
2019.04.09 00:56:10 4: TTS: Schreibe mp3 in die Datei cache/c3535e52ad7377674a7b28a12a29381e.mp3 mit 0 Bytes
2019.04.09 00:56:10 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 655.
2019.04.09 00:56:10 3: eval: {Text2Speech_Done('TTS|1|cache/3af4eafcd330effa6792493fe7164469.mp3')}
2019.04.09 00:56:10 1: stacktrace:
2019.04.09 00:56:10 1:     main::__ANON__                      called by ./FHEM/98_Text2Speech.pm (655)
2019.04.09 00:56:10 1:     main::Text2Speech_BuildMplayerCmdString called by ./FHEM/98_Text2Speech.pm (902)
2019.04.09 00:56:10 1:     main::Text2Speech_DoIt              called by FHEM/Blocking.pm (194)
2019.04.09 00:56:10 1:     main::BlockingStart                 called by FHEM/Blocking.pm (107)
2019.04.09 00:56:10 1:     main::BlockingCall                  called by ./FHEM/98_Text2Speech.pm (951)
2019.04.09 00:56:10 1:     main::Text2Speech_Done              called by (eval 1029) (1)
2019.04.09 00:56:10 1:     (eval)                              called by fhem.pl (1128)
2019.04.09 00:56:10 1:     main::AnalyzePerlCommand            called by fhem.pl (1153)
2019.04.09 00:56:10 1:     main::AnalyzeCommand                called by fhem.pl (1082)
2019.04.09 00:56:10 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (255)
2019.04.09 00:56:10 1:     main::telnet_Read                   called by fhem.pl (3698)
2019.04.09 00:56:10 1:     main::CallFn                        called by fhem.pl (745)
2019.04.09 00:56:10 4: TTS:/usr/bin/mplayer -ao pulse::bluez_sink.00_02_3C_44_F6_27.a2dp_sink   -nolirc -noconsolecontrols cache/c3535e52ad7377674a7b28a12a29381e.mp3
Cannot find HOME directory.
MPlayer 1.3.0 (Debian), built with gcc-6.2.1 (C) 2000-2016 MPlayer Team
Terminal type `unknown' is not defined.

Playing cache/c3535e52ad7377674a7b28a12a29381e.mp3.
libavformat version 57.56.101 (external)
Mismatching header version 57.56.100


Exiting... (End of file)
2019.04.09 00:56:10 4: TTS: Es wurden 4 Teile ausgegeben und weitere folgen!


2019.04.09 00:56:10 4: TTS: Verwende TTS Spracheinstellung: Deutsch
2019.04.09 00:56:10 4: TTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: d42429a1a26a2a8ad6a0900c7ccbbc37.mp3
2019.04.09 00:56:10 4: TTS: Bearbeite jetzt den Text: Es kommt zu Niederschlagsmengen von 0 Liter pro Quadratmeter, die Niederschlagswahrscheinlichkeit betraegt 41 Prozent, die Sonne scheint 1 Stunden.,
2019.04.09 00:56:10 4: TTS: Verwende Google OnlineResource zum Download
2019.04.09 00:56:10 4: TTS: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=Es%20kommt%20zu%20Niederschlagsmengen%20von%200%20Liter%20pro%20Quadratmeter%2C%20die%20Niederschlagswahrscheinlichkeit%20betraegt%2041%20Prozent%2C%20die%20Sonne%20scheint%201%20Stunden.%2C
2019.04.09 00:56:10 4: TTS: Schreibe mp3 in die Datei cache/d42429a1a26a2a8ad6a0900c7ccbbc37.mp3 mit 48672 Bytes
2019.04.09 00:56:10 4: TTS: cache/d42429a1a26a2a8ad6a0900c7ccbbc37.mp3 hat eine Länge von 12 Sekunden.
2019.04.09 00:56:10 4: TTS:/usr/bin/mplayer -ao pulse::bluez_sink.00_02_3C_44_F6_27.a2dp_sink   -nolirc -noconsolecontrols cache/d42429a1a26a2a8ad6a0900c7ccbbc37.mp3
Cannot find HOME directory.
MPlayer 1.3.0 (Debian), built with gcc-6.2.1 (C) 2000-2016 MPlayer Team
Terminal type `unknown' is not defined.

Playing cache/d42429a1a26a2a8ad6a0900c7ccbbc37.mp3.
libavformat version 57.56.101 (external)
Mismatching header version 57.56.100
Audio only file format detected.
Load subtitles in cache/
==========================================================================
Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III
AUDIO: 24000 Hz, 2 ch, s16le, 32.0 kbit/4.17% (ratio: 4000->96000)
Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III)
==========================================================================
AO: [pulse] 24000Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A:  -0.0 (unknown) of 12.0 (12.0) ??,?%                                         
A:   0.1 (00.0) of 12.0 (12.0) ??,?%                                           
A:   0.1 (00.1) of 12.0 (12.0) ??,?%                                           
A:   0.2 (00.1) of 12.0 (12.0) ??,?%                                           
A:   0.3 (00.2) of 12.0 (12.0)  0.1%                                           
A:   0.3 (00.3) of 12.0 (12.0)  0.2%                                           
A:   0.4 (00.3) of 12.0 (12.0)  0.2%                                           
A:   0.5 (00.4) of 12.0 (12.0)  0.2%                                           
A:   0.6 (00.5) of 12.0 (12.0)  0.2%                                           
A:   0.6 (00.6) of 12.0 (12.0)  0.2%                                           
A:   0.7 (00.7) of 12.0 (12.0)  0.2%                                           
A:   0.8 (00.8) of 12.0 (12.0)  0.2%                                           
A:   0.9 (00.8) of 12.0 (12.0)  0.2%                                           
A:   1.0 (00.9) of 12.0 (12.0)  0.2%                                           
A:   1.1 (01.0) of 12.0 (12.0)  0.2%                                           
A:   1.1 (01.1) of 12.0 (12.0)  0.2%                                           
A:   1.2 (01.2) of 12.0 (12.0)  0.2%                                           
A:   1.3 (01.3) of 12.0 (12.0)  0.2%                                           
A:   1.4 (01.4) of 12.0 (12.0)  0.2%                                           
A:   1.5 (01.4) of 12.0 (12.0)  0.2%                                           
A:   1.6 (01.5) of 12.0 (12.0)  0.2%                                           
A:   1.6 (01.6) of 12.0 (12.0)  0.2%                                           
A:   1.7 (01.7) of 12.0 (12.0)  0.2%                                           
A:   1.8 (01.8) of 12.0 (12.0)  0.2%                                           
A:   1.9 (01.9) of 12.0 (12.0)  0.2%                                           
A:   2.0 (01.9) of 12.0 (12.0)  0.2%                                           
A:   2.1 (02.0) of 12.0 (12.0)  0.2%                                           
A:   2.1 (02.1) of 12.0 (12.0)  0.2%                                           
A:   2.2 (02.2) of 12.0 (12.0)  0.2%                                           
A:   2.3 (02.3) of 12.0 (12.0)  0.2%                                           
A:   2.4 (02.3) of 12.0 (12.0)  0.2%                                           
A:   2.5 (02.4) of 12.0 (12.0)  0.2%                                           
A:   2.6 (02.5) of 12.0 (12.0)  0.2%                                           
A:   2.6 (02.6) of 12.0 (12.0)  0.2%                                           
A:   2.7 (02.7) of 12.0 (12.0)  0.2%                                           
A:   2.8 (02.7) of 12.0 (12.0)  0.2%                                           
A:   2.9 (02.8) of 12.0 (12.0)  0.2%                                           
A:   3.0 (02.9) of 12.0 (12.0)  0.2%                                           
A:   3.0 (03.0) of 12.0 (12.0)  0.2%                                           
A:   3.1 (03.1) of 12.0 (12.0)  0.2%                                           
A:   3.2 (03.2) of 12.0 (12.0)  0.2%                                           
A:   3.3 (03.2) of 12.0 (12.0)  0.2%                                           
A:   3.4 (03.3) of 12.0 (12.0)  0.2%                                           
A:   3.5 (03.4) of 12.0 (12.0)  0.2%                                           
A:   3.5 (03.5) of 12.0 (12.0)  0.2%                                           
A:   3.6 (03.6) of 12.0 (12.0)  0.2%                                           
A:   3.7 (03.6) of 12.0 (12.0)  0.2%                                           
A:   3.8 (03.7) of 12.0 (12.0)  0.2%                                           
A:   3.9 (03.8) of 12.0 (12.0)  0.2%                                           
A:   3.9 (03.9) of 12.0 (12.0)  0.2%                                           
A:   4.0 (04.0) of 12.0 (12.0)  0.2%                                           
A:   4.1 (04.1) of 12.0 (12.0)  0.2%                                           
A:   4.2 (04.1) of 12.0 (12.0)  0.2%                                           
A:   4.3 (04.2) of 12.0 (12.0)  0.2%                                           
A:   4.3 (04.3) of 12.0 (12.0)  0.2%                                           
A:   4.4 (04.4) of 12.0 (12.0)  0.2%                                           
A:   4.5 (04.5) of 12.0 (12.0)  0.2%                                           
A:   4.6 (04.5) of 12.0 (12.0)  0.2%                                           
A:   4.7 (04.6) of 12.0 (12.0)  0.2%                                           
A:   4.7 (04.7) of 12.0 (12.0)  0.2%                                           
A:   4.8 (04.8) of 12.0 (12.0)  0.2%                                           
A:   4.9 (04.9) of 12.0 (12.0)  0.2%                                           
A:   5.0 (04.9) of 12.0 (12.0)  0.2%                                           
A:   5.1 (05.0) of 12.0 (12.0)  0.2%                                           
A:   5.2 (05.1) of 12.0 (12.0)  0.2%                                           
A:   5.2 (05.2) of 12.0 (12.0)  0.2%                                           
A:   5.3 (05.3) of 12.0 (12.0)  0.2%                                           
A:   5.4 (05.3) of 12.0 (12.0)  0.2%                                           
A:   5.5 (05.4) of 12.0 (12.0)  0.2%                                           
A:   5.6 (05.5) of 12.0 (12.0)  0.2%                                           
A:   5.6 (05.6) of 12.0 (12.0)  0.2%                                           
A:   5.7 (05.7) of 12.0 (12.0)  0.2%                                           
A:   5.8 (05.8) of 12.0 (12.0)  0.2%                                           
A:   5.9 (05.8) of 12.0 (12.0)  0.2%                                           
A:   6.0 (05.9) of 12.0 (12.0)  0.2%                                           
A:   6.1 (06.0) of 12.0 (12.0)  0.2%                                           
A:   6.1 (06.1) of 12.0 (12.0)  0.2%                                           
A:   6.2 (06.2) of 12.0 (12.0)  0.2%                                           
A:   6.3 (06.3) of 12.0 (12.0)  0.2%                                           
A:   6.4 (06.3) of 12.0 (12.0)  0.2%                                           
A:   6.5 (06.4) of 12.0 (12.0)  0.2%                                           
A:   6.5 (06.5) of 12.0 (12.0)  0.2%                                           
A:   6.6 (06.6) of 12.0 (12.0)  0.2%                                           
A:   6.7 (06.7) of 12.0 (12.0)  0.2%                                           
A:   6.8 (06.7) of 12.0 (12.0)  0.2%                                           
A:   6.9 (06.8) of 12.0 (12.0)  0.2%                                           
A:   6.9 (06.9) of 12.0 (12.0)  0.2%                                           
A:   7.0 (07.0) of 12.0 (12.0)  0.2%                                           
A:   7.1 (07.1) of 12.0 (12.0)  0.2%                                           
A:   7.2 (07.1) of 12.0 (12.0)  0.2%                                           
A:   7.3 (07.2) of 12.0 (12.0)  0.2%                                           
A:   7.4 (07.3) of 12.0 (12.0)  0.2%                                           
A:   7.4 (07.4) of 12.0 (12.0)  0.2%                                           
A:   7.5 (07.5) of 12.0 (12.0)  0.2%                                           
A:   7.6 (07.5) of 12.0 (12.0)  0.2%                                           
A:   7.7 (07.6) of 12.0 (12.0)  0.2%                                           
A:   7.8 (07.7) of 12.0 (12.0)  0.2%                                           
A:   7.8 (07.8) of 12.0 (12.0)  0.2%                                           
A:   7.9 (07.9) of 12.0 (12.0)  0.2%                                           
A:   8.0 (08.0) of 12.0 (12.0)  0.2%                                           
A:   8.1 (08.0) of 12.0 (12.0)  0.2%                                           
A:   8.2 (08.1) of 12.0 (12.0)  0.2%                                           
A:   8.3 (08.2) of 12.0 (12.0)  0.2%                                           
A:   8.3 (08.3) of 12.0 (12.0)  0.2%                                           
A:   8.4 (08.4) of 12.0 (12.0)  0.2%                                           
A:   8.5 (08.4) of 12.0 (12.0)  0.2%                                           
A:   8.6 (08.5) of 12.0 (12.0)  0.2%                                           
A:   8.7 (08.6) of 12.0 (12.0)  0.2%                                           
A:   8.7 (08.7) of 12.0 (12.0)  0.2%                                           
A:   8.8 (08.8) of 12.0 (12.0)  0.2%                                           
A:   8.9 (08.9) of 12.0 (12.0)  0.2%                                           
A:   9.0 (08.9) of 12.0 (12.0)  0.2%                                           
A:   9.1 (09.0) of 12.0 (12.0)  0.2%                                           
A:   9.2 (09.1) of 12.0 (12.0)  0.2%                                           
A:   9.2 (09.2) of 12.0 (12.0)  0.2%                                           
A:   9.3 (09.3) of 12.0 (12.0)  0.2%                                           
A:   9.4 (09.4) of 12.0 (12.0)  0.2%                                           
A:   9.5 (09.5) of 12.0 (12.0)  0.2%                                           
A:   9.6 (09.5) of 12.0 (12.0)  0.2%                                           
A:   9.6 (09.6) of 12.0 (12.0)  0.2%                                           
A:   9.7 (09.7) of 12.0 (12.0)  0.2%                                           
A:   9.9 (09.8) of 12.0 (12.0)  0.2%                                           
A:  10.0 (09.9) of 12.0 (12.0)  0.2%                                           
A:  10.1 (10.0) of 12.0 (12.0)  0.2%                                           
A:  10.1 (10.1) of 12.0 (12.0)  0.2%                                           
A:  10.2 (10.1) of 12.0 (12.0)  0.2%                                           
A:  10.3 (10.2) of 12.0 (12.0)  0.2%                                           
A:  10.3 (10.3) of 12.0 (12.0)  0.2%                                           
A:  10.4 (10.3) of 12.0 (12.0)  0.2%                                           
A:  10.4 (10.4) of 12.0 (12.0)  0.2%                                           
A:  10.5 (10.5) of 12.0 (12.0)  0.2%                                           
A:  10.6 (10.5) of 12.0 (12.0)  0.2%                                           
A:  10.6 (10.6) of 12.0 (12.0)  0.2%                                           
A:  10.7 (10.7) of 12.0 (12.0)  0.2%                                           
A:  10.8 (10.7) of 12.0 (12.0)  0.2%                                           
A:  10.9 (10.8) of 12.0 (12.0)  0.2%                                           
A:  10.9 (10.9) of 12.0 (12.0)  0.2%                                           
A:  11.0 (11.0) of 12.0 (12.0)  0.2%                                           
A:  11.1 (11.0) of 12.0 (12.0)  0.2%                                           
A:  11.2 (11.1) of 12.0 (12.0)  0.2%                                           
A:  11.2 (11.2) of 12.0 (12.0)  0.2%                                           
A:  11.3 (11.3) of 12.0 (12.0)  0.2%                                           
A:  11.4 (11.3) of 12.0 (12.0)  0.2%                                           
A:  11.5 (11.4) of 12.0 (12.0)  0.2%                                           
A:  11.6 (11.5) of 12.0 (12.0)  0.2%                                           
A:  11.6 (11.6) of 12.0 (12.0)  0.2%                                           
A:  11.7 (11.7) of 12.0 (12.0)  0.2%                                           
A:  11.8 (11.8) of 12.0 (12.0)  0.2%                                           
A:  11.9 (11.8) of 12.0 (12.0)  0.2%                                           


Exiting... (End of file)
2019.04.09 00:56:23 4: TTS: Es wurden 3 Teile ausgegeben und weitere folgen!
2019.04.09 00:56:23 4: TTS: Verwende TTS Spracheinstellung: Deutsch
2019.04.09 00:56:23 4: TTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 642ef57d00248568ea9b5efda2c3ef9c.mp3
2019.04.09 00:56:23 4: TTS: Bearbeite jetzt den Text: die Niederschlagswahrscheinlichkeit betraegt 41 Prozent, die Sonne scheint 1 Stunden.,
2019.04.09 00:56:23 4: TTS: Verwende Google OnlineResource zum Download
2019.04.09 00:56:23 4: TTS: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=die%20Niederschlagswahrscheinlichkeit%20betraegt%2041%20Prozent%2C%20die%20Sonne%20scheint%201%20Stunden.%2C
2019.04.09 00:56:23 4: TTS: Schreibe mp3 in die Datei cache/642ef57d00248568ea9b5efda2c3ef9c.mp3 mit 28800 Bytes
2019.04.09 00:56:23 4: TTS: cache/642ef57d00248568ea9b5efda2c3ef9c.mp3 hat eine Länge von 7 Sekunden.
2019.04.09 00:56:23 4: TTS:/usr/bin/mplayer -ao pulse::bluez_sink.00_02_3C_44_F6_27.a2dp_sink   -nolirc -noconsolecontrols cache/642ef57d00248568ea9b5efda2c3ef9c.mp3
Cannot find HOME directory.
MPlayer 1.3.0 (Debian), built with gcc-6.2.1 (C) 2000-2016 MPlayer Team
Terminal type `unknown' is not defined.

Playing cache/642ef57d00248568ea9b5efda2c3ef9c.mp3.
libavformat version 57.56.101 (external)
Mismatching header version 57.56.100
Audio only file format detected.
Load subtitles in cache/
==========================================================================
Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III
AUDIO: 24000 Hz, 2 ch, s16le, 32.0 kbit/4.17% (ratio: 4000->96000)
Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III)
==========================================================================
AO: [pulse] 24000Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A:  -0.0 (unknown) of 7.0 (07.0) ??,?%                                         
A:   0.1 (00.0) of 7.0 (07.0) ??,?%                                             
A:   0.1 (00.1) of 7.0 (07.0) ??,?%                                             
A:   0.2 (00.1) of 7.0 (07.0) ??,?%                                             
A:   0.3 (00.2) of 7.0 (07.0)  0.1%                                             
A:   0.3 (00.3) of 7.0 (07.0)  0.1%                                             
A:   0.4 (00.3) of 7.0 (07.0)  0.1%                                             
A:   0.5 (00.4) of 7.0 (07.0)  0.1%                                             
A:   0.5 (00.5) of 7.0 (07.0)  0.1%                                             
A:   0.6 (00.5) of 7.0 (07.0)  0.1%                                             
A:   0.7 (00.6) of 7.0 (07.0)  0.2%                                             
A:   0.8 (00.7) of 7.0 (07.0)  0.2%                                             
A:   0.8 (00.8) of 7.0 (07.0)  0.2%                                             
A:   0.9 (00.9) of 7.0 (07.0)  0.2%                                             
A:   1.0 (01.0) of 7.0 (07.0)  0.2%                                             
A:   1.1 (01.0) of 7.0 (07.0)  0.2%                                             
A:   1.2 (01.1) of 7.0 (07.0)  0.2%                                             
A:   1.3 (01.2) of 7.0 (07.0)  0.2%                                             
A:   1.3 (01.3) of 7.0 (07.0)  0.2%                                             
A:   1.4 (01.4) of 7.0 (07.0)  0.2%                                             
A:   1.5 (01.5) of 7.0 (07.0)  0.2%                                             
A:   1.6 (01.5) of 7.0 (07.0)  0.2%                                             
A:   1.7 (01.6) of 7.0 (07.0)  0.2%                                             
A:   1.7 (01.7) of 7.0 (07.0)  0.2%                                             
A:   1.8 (01.8) of 7.0 (07.0)  0.2%                                             
A:   1.9 (01.8) of 7.0 (07.0)  0.2%                                             
A:   2.0 (01.9) of 7.0 (07.0)  0.2%                                             
A:   2.1 (02.0) of 7.0 (07.0)  0.2%                                             
A:   2.1 (02.1) of 7.0 (07.0)  0.2%                                             
A:   2.2 (02.2) of 7.0 (07.0)  0.2%                                             
A:   2.3 (02.2) of 7.0 (07.0)  0.2%                                             
A:   2.4 (02.3) of 7.0 (07.0)  0.2%                                             
A:   2.4 (02.4) of 7.0 (07.0)  0.2%                                             
A:   2.5 (02.5) of 7.0 (07.0)  0.2%                                             
A:   2.6 (02.5) of 7.0 (07.0)  0.2%                                             
A:   2.7 (02.6) of 7.0 (07.0)  0.2%                                             
A:   2.8 (02.7) of 7.0 (07.0)  0.2%                                             
A:   2.8 (02.8) of 7.0 (07.0)  0.2%                                             
A:   2.9 (02.9) of 7.0 (07.0)  0.2%                                             
A:   3.0 (02.9) of 7.0 (07.0)  0.2%                                             
A:   3.1 (03.0) of 7.0 (07.0)  0.2%                                             
A:   3.2 (03.1) of 7.0 (07.0)  0.2%                                             
A:   3.2 (03.2) of 7.0 (07.0)  0.2%                                             
A:   3.3 (03.3) of 7.0 (07.0)  0.2%                                             
A:   3.4 (03.3) of 7.0 (07.0)  0.2%                                             
A:   3.5 (03.4) of 7.0 (07.0)  0.2%                                             
A:   3.6 (03.5) of 7.0 (07.0)  0.2%                                             
A:   3.6 (03.6) of 7.0 (07.0)  0.2%                                             
A:   3.7 (03.7) of 7.0 (07.0)  0.2%                                             
A:   3.8 (03.7) of 7.0 (07.0)  0.2%                                             
A:   3.9 (03.8) of 7.0 (07.0)  0.2%                                             
A:   3.9 (03.9) of 7.0 (07.0)  0.2%                                             
A:   4.0 (04.0) of 7.0 (07.0)  0.2%                                             
A:   4.1 (04.0) of 7.0 (07.0)  0.2%                                             
A:   4.2 (04.1) of 7.0 (07.0)  0.2%                                             
A:   4.3 (04.2) of 7.0 (07.0)  0.2%                                             
A:   4.3 (04.3) of 7.0 (07.0)  0.2%                                             
A:   4.4 (04.4) of 7.0 (07.0)  0.2%                                             
A:   4.5 (04.4) of 7.0 (07.0)  0.2%                                             
A:   4.6 (04.5) of 7.0 (07.0)  0.2%                                             
A:   4.7 (04.6) of 7.0 (07.0)  0.2%                                             
A:   4.7 (04.7) of 7.0 (07.0)  0.2%                                             
A:   4.8 (04.8) of 7.0 (07.0)  0.2%                                             
A:   4.9 (04.8) of 7.0 (07.0)  0.2%                                             
A:   5.0 (04.9) of 7.0 (07.0)  0.2%                                             
A:   5.0 (05.0) of 7.0 (07.0)  0.2%                                             
A:   5.1 (05.1) of 7.0 (07.0)  0.2%                                             
A:   5.2 (05.2) of 7.0 (07.0)  0.2%                                             
A:   5.3 (05.2) of 7.0 (07.0)  0.2%                                             
A:   5.4 (05.3) of 7.0 (07.0)  0.2%                                             
A:   5.4 (05.4) of 7.0 (07.0)  0.2%                                             
A:   5.5 (05.5) of 7.0 (07.0)  0.2%                                             
A:   5.6 (05.5) of 7.0 (07.0)  0.2%                                             
A:   5.7 (05.6) of 7.0 (07.0)  0.2%                                             
A:   5.7 (05.7) of 7.0 (07.0)  0.2%                                             
A:   5.8 (05.8) of 7.0 (07.0)  0.2%                                             
A:   5.9 (05.9) of 7.0 (07.0)  0.2%                                             
A:   6.0 (05.9) of 7.0 (07.0)  0.2%                                             
A:   6.1 (06.0) of 7.0 (07.0)  0.2%                                             
A:   6.1 (06.1) of 7.0 (07.0)  0.2%                                             
A:   6.2 (06.2) of 7.0 (07.0)  0.2%                                             
A:   6.3 (06.3) of 7.0 (07.0)  0.2%                                             
A:   6.4 (06.3) of 7.0 (07.0)  0.2%                                             
A:   6.5 (06.4) of 7.0 (07.0)  0.2%                                             
A:   6.5 (06.5) of 7.0 (07.0)  0.2%                                             
A:   6.6 (06.6) of 7.0 (07.0)  0.2%                                             
A:   6.7 (06.6) of 7.0 (07.0)  0.2%                                             
A:   6.8 (06.7) of 7.0 (07.0)  0.2%                                             
A:   6.9 (06.8) of 7.0 (07.0)  0.2%                                             
A:   6.9 (06.9) of 7.0 (07.0)  0.2%                                             
A:   7.0 (06.9) of 7.0 (07.0)  0.2%                                             


Exiting... (End of file)
2019.04.09 00:56:31 4: TTS: Es wurden 2 Teile ausgegeben und weitere folgen!


Mehr Text kann ich nicht posten...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 09 April 2019, 01:15:26
Mein list sieht so aus:

Internals:
   ALSADEVICE default
   DEF        default
   FUUID      5c4b8856-f33f-55cb-1398-1fa02cbec5dd4f32
   FVERSION   98_Text2Speech.pm:0.191160/2019-04-05
   MODE       DIRECT
   NAME       TTS
   NR         133
   STATE      Initialized
   TYPE       Text2Speech
   READINGS:
     2019-04-09 00:56:36   duration        2
     2019-04-09 00:56:36   endTime         00:00:00
     2019-04-09 00:56:39   lastFilename    cache/3db4c6b48e103772f53354070c331c7f.mp3
     2019-04-09 00:56:39   playing         0
     2017-07-08 00:03:00   volume          100
   helper:
     Text2Speech:
Attributes:
   TTS_Language Deutsch
   TTS_MplayerCall /usr/bin/mplayer -ao pulse::bluez_sink.00_02_3C_44_F6_27.a2dp_sink
   TTS_SpeakAsFastAsPossible 1
   TTS_TimeOut 60
   TTS_UseMP3Wrap 0
   room       TOOLS
   verbose    5
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 09 April 2019, 09:13:31
wie sieht es aus bei:
TTS_SpeakAsFastAsPossible 0
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 09 April 2019, 18:43:12
Da kommt auch wieder erst der gesamte Text und dann hinterher immer noch mal 3-4 kürzere Teile davon. Kann vielleicht mal jemand probieren ob das bei ihm auch so ist?

Es werden Höchsttemperaturen von 14 Grad Celsius und schwacher Wind aus Nordwest mit frischen Böen erwartet. Es kommt zu Niederschlagsmengen von 0 Liter pro Quadratmeter, die Niederschlagswahrscheinlichkeit beträgt 41 Prozent, die Sonne scheint 1 Stunden.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 09 April 2019, 18:57:06
Wenn ich UseMP3Wrap einschalte geht es, unabhängig davon ob SpeakAsFastAsPossible eingeschaltet ist oder nicht.

Die Routine, welche den Text in Blöcke zerlegt und dann an Google übergibt, muss falsch programmiert sein. Das Verhalten ist anscheinend wie folgt:

Blöcke 0, 1, 2 werden z.B. aus einem Text erzeugt. Daraus werden 3 mp3 Dateien erzeugt, leider aber mit dem falschen Text.

mp3 Datei 1 enthält: Blöcke 0, 1, 2
mp3 Datei 2 enthält: Blöcke 1, 2
mp3 Datei 3 enthält: Blöcke 2

Da scheint irgendein join zuviel drin zu sein. Richtig wäre:

mp3 Datei 1 enthält: Block 0
mp3 Datei 2 enthält: Block 1
mp3 Datei 3 enthält: Block 2

Komisch ist nur, das die Blöcke richtig zusammengesetzt werden, wenn UseMP3Wrap aktiviert ist. Ich glaub ich schaue mir den Code mal im Detail an. Kann ja nicht so schwer sein, das zu finden.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 10 April 2019, 00:01:41
Der Code kann meines Erachtens so gar nicht funktionieren. Wenn MP§Wrap nicht aktiv ist, dann reduziert sich das Ganze auf genau diese Zeilen:

Hier werden alle vorhandenen mühsam identifizierten Bausteine einfach zusammen kopiert. Das sprengt dann auch irgendwann die 100 Zeichen bei Google.
Text2Speech_Download($hash, $file, join(" ",@{$hash->{helper}{Text2Speech}->[0]}));

Hier wird einfach der erste Block entfernt.
splice(@{$hash->{helper}{Text2Speech}->[0]}, 0, $tts_done);

Und hier wird alles noch einmal gestartet, nur das jetzt der erste Block fehlt.
$hash->{helper}{RUNNING_PID} = BlockingCall("Text2Speech_DoIt", $hash, "Text2Speech_Done", $TTS_TimeOut, "Text2Speech_AbortFn", $hash);

Die Option TTS_SpeakAsFastAsPossible ergibt für mich beim ersten Überfliegen des Codes auch irgendwie keinen Sinn.

Aber das ist ja erst einmal nicht so wichtig.

Text2Speech_Download($hash, $file, join(" ",@{$hash->{helper}{Text2Speech}->[0]}));
An dieser Stelle darf auf jeden Fall kein join verwendet werden. Vielmehr muss man hier jeweils den Index 0 des Arrays verwenden. In der Log Ausgabe eine zeile darüber muss man das dann genauso machen, damit auch die Logausgaben stimmen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 10 April 2019, 00:16:06
In der etwas älteren Version sieht das auch genauso aus, wie es sein sollte:

https://github.com/mhop/fhem-mirror/blob/78165781376a8abbb094eb85a109022fc0214d53/fhem/FHEM/98_Text2Speech.pm

Die letzten Änderungen passen an der Stelle so nicht.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 10 April 2019, 01:16:52
Sry wenn ich an dem Modul rumpfusche, aber so in etwa macht es für mich erst einmal wieder Sinn.

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: FranzB94 am 10 April 2019, 09:38:17
Hi

ich habe auch seit einigen Tagen zusammenhanglose Wiedergaben.


Gruß Franz
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Dr. Boris Neubert am 10 April 2019, 18:38:58
Hallo,

hier eine Metainformation aus der Moderation.

Zitat von: mumpitzstuff am 10 April 2019, 00:16:06
https://github.com/mhop/fhem-mirror/blob/78165781376a8abbb094eb85a109022fc0214d53/fhem/FHEM/98_Text2Speech.pm

Es gibt nur eine Wahrheit, und die liegt im SVN: https://svn.fhem.de/trac/browser/trunk (https://svn.fhem.de/trac/browser/trunk)

Bitte hier Patches posten und den Maintainer idealerweise per PM informieren, wenn sich zeigt, dass er nicht auf die Nachrichten hier anspricht.

Viele Grüße
Boris
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 11 April 2019, 17:27:39
Bekomme seit gestern keine neuen Ausgaben aus dem TTS Modul..

Zitat2019.04.11 17:07:16 3: MyTTS: Fehler beim abrufen der Daten von Google Translator
2019.04.11 17:07:16 3: MyTTS: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=BAUMA: Can't connect(1) to http://translate.google.com:80: IO::Socket::INET: Bad hostname 'translate.google.com:80'
2019.04.11 17:07:16 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 756.
2019.04.11 17:07:16 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 655.
2019.04.11 17:11:34 3: MyTTS: Fehler beim abrufen der Daten von Google Translator
2019.04.11 17:11:34 3: MyTTS: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=hihohuuu: Can't connect(1) to http://translate.google.com:80: IO::Socket::INET: Bad hostname 'translate.google.com:80'
2019.04.11 17:11:34 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 756.
2019.04.11 17:11:34 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 655.
2019.04.11 17:12:25 3: MyTTS: Fehler beim abrufen der Daten von Google Translator
2019.04.11 17:12:25 3: MyTTS: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=hghfhf: Can't connect(1) to http://translate.google.com:80: IO::Socket::INET: Bad hostname 'translate.google.com:80'
2019.04.11 17:12:25 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 756.
2019.04.11 17:12:25 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 655.

Hat jemand eine Erklärung? Oder ist das nur ein temporärer Ausfall?

Danke für Ideen,
vg
stoxx
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 11 April 2019, 17:36:43
Hi,

das muss bei Dir was lokales sein Netzwerk DNS ...
Wenn ich auf die links in deinem Post klicke geht der Browser auf und ich habe Sound. Bei Dir auch?

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 11 April 2019, 17:53:23
ZitatWenn ich auf die links in deinem Post klicke geht der Browser auf und ich habe Sound. Bei Dir auch?
Ja, aus meinem Headset kommt das auch, aber halt nicht mehr über das Text2Spech Modul - nutzt Du das? Klappt bei Dir ein set <<DeinTTSDevice>> tts aaabbbcccddddeeeeee

vg stoxx
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 11 April 2019, 21:14:26
Naja alle meine Ansagen funktionieren den ganzen Tag.

Ich habe allerdings ein paar Tage kein update gemacht.

Aber deine Log Auszüge klingen danach, als ob der FHEM Rechner (dein PC funktioniert ja, also ist es kein globales Problem) Probleme hat die Namen aufzulösen?

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 12 April 2019, 15:56:51
Hier ist mal ein verbose 5:
Zitat2019.04.12 15:52:35 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2019.04.12 15:52:35 4: MyTTS: 0 => warum geht text2speech nicht mehr?
2019.04.12 15:52:35 4: MyTTS: Verwende TTS Spracheinstellung: Deutsch
2019.04.12 15:52:35 4: MyTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: c9c7633bec995f9dfea60331411052a0.mp3
2019.04.12 15:52:35 4: MyTTS: Verwende Google OnlineResource zum Download
2019.04.12 15:52:35 4: MyTTS: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=warum%20geht%20text2speech%20nicht%20mehr%3F
2019.04.12 15:52:35 3: MyTTS: Fehler beim abrufen der Daten von Google Translator
2019.04.12 15:52:35 3: MyTTS: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=warum%20geht%20text2speech%20nicht%20mehr%3F: Can't connect(1) to http://translate.google.com:80: IO::Socket::INET: Bad hostname 'translate.google.com:80'
2019.04.12 15:52:35 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 756.
2019.04.12 15:52:35 4: MyTTS: Schreibe mp3 in die Datei cache/c9c7633bec995f9dfea60331411052a0.mp3 mit  Bytes
2019.04.12 15:52:35 4: MyTTS: Bearbeite jetzt den Text: warum geht text2speech nicht mehr?
2019.04.12 15:52:35 4: MyTTS: cache/c9c7633bec995f9dfea60331411052a0.mp3 gefunden, kein Download
2019.04.12 15:52:35 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 655.
2019.04.12 15:52:35 4: MyTTS:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols cache/c9c7633bec995f9dfea60331411052a0.mp3
MPlayer svn r34540 (Raspbian), built with gcc-4.6 (C) 2000-2012 MPlayer Team

Playing cache/c9c7633bec995f9dfea60331411052a0.mp3.
libavformat version 53.21.1 (external)
Mismatching header version 53.19.0


Exiting... (End of file)
2019.04.12 15:52:37 4: MyTTS: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.

Habe ich auf dem Raspberry irgendeine zu alte Version von etwas installiert? Ich gebe zu, dass ich schon lange kein Wheezy Update mehr gemacht habe...

Hier noch ein list vom device, vielleicht erkennt ja wer was..

Zitat
Internals:
   ALSADEVICE hw=0.0
   DEF        hw=0.0
   FUUID      5c5554b2-f33f-1574-93af-8fe91cdd22264e4c
   MODE       DIRECT
   NAME       MyTTS
   NR         46
   STATE      Initialized
   TYPE       Text2Speech
   READINGS:
     2019-04-12 15:52:35   duration       
     2019-04-12 15:52:35   endTime         00:00:00
     2019-04-12 15:52:36   lastFilename    cache/c9c7633bec995f9dfea60331411052a0.mp3
     2019-04-12 15:52:37   playing         0
     2016-02-20 10:29:35   volume          100
   helper:
     Text2Speech:
Attributes:
   TTS_Language Deutsch
   TTS_UseMP3Wrap 1
   disable    0
   room       xxxxxx
   verbose    5

vg stoxx
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 12 April 2019, 16:47:49
Ich kann mich nur wiederholen, der Schlüssel liegt für mich hier
ZitatCan't connect(1) to http://translate.google.com:80: IO::Socket::INET: Bad hostname 'translate.google.com:80'

Kannst Du denn ping absetzen im Terminal deines FHEM Servers?
ping translate.google.com

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 12 April 2019, 17:07:17
Hi Otto123,

das ist das Ergebnis:
Zitatpi@raspberrypi ~ $ ping translate.google.com
ping: unknown host translate.google.com

..?

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Dr. Boris Neubert am 12 April 2019, 17:25:20
Endlich...!

Du musst Deinen Raspi so konfigurieren, dass die Namensauflösung funktioniert. Das ist aber eher etwas für ein anderes Forum.

Wenn Neustart nicht hilft: zeig mal /etc/resolv.conf

Grüße
Boris
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 12 April 2019, 17:35:59
Danke für den Tipp mit dem ping. Das habe ich von verschiedenen Geräten in meinem Netzwerk getestet - Ergebnis: bei einem Gerät gings, bei einem anderen nicht.. Das roch dann nach einem Netzwerk Problem - FritzBox durchgestartet und jetzt gehts wieder!
@all: Danke fürs Mitdenken und
@Otto123, Dr. Boris Neubert für Eure Lösungsvorschläge!

vg und schönes we stoxx
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 12 April 2019, 20:50:19
Ich habe jetzt das Perl-Interface zu Amazon Polly zum Laufen bekommen. Viel bessere Stimme als bei Google, keine Längenbeschränkung. Und das künstliche Nachbearbeiten, um ggf. eine Pause für Audiosysteme entfällt auch, weil Polly die Speech Synthesis Markup Language unterstützt.

Und schneller als das wget ist es auch noch.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 13 April 2019, 00:06:20
Besteht die Möglichkeit uns an deinem Wissen teilhaben zu lassen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 13 April 2019, 00:08:52
Meine angepasste Version entspricht exakt der SVN Version. Ich muss gucken das ich einen Patch erstelle. Ich mache das nie, weil ich das selbst nicht mag. File compare ist mir immer am liebsten.

Zitat von: Dr. Boris Neubert am 10 April 2019, 18:38:58
Hallo,

hier eine Metainformation aus der Moderation.

Es gibt nur eine Wahrheit, und die liegt im SVN: https://svn.fhem.de/trac/browser/trunk (https://svn.fhem.de/trac/browser/trunk)

Bitte hier Patches posten und den Maintainer idealerweise per PM informieren, wenn sich zeigt, dass er nicht auf die Nachrichten hier anspricht.

Viele Grüße
Boris
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 13 April 2019, 15:49:32
ZitatBesteht die Möglichkeit uns an deinem Wissen teilhaben zu lassen?
Klar, ist ein Kapitel im neuen FHEM-Buch  ;D ;D

Spaß beiseite: Ich habe derzeit die Endredaktion des Buchs zu machen, das hat Vorrang. Irgendwann in den nächsten Wochen werde ich den Code zur Verfügung stellen.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 17 April 2019, 20:48:29
Hier die Änderungen noch mal als Diff.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 17 April 2019, 20:55:14
Amazon Polly einzubinden scheint gar nicht so kompliziert zu sein, das könnte man bestimmt auch einfach in dieses Modul integrieren.

sudo pip3 install awscli
sudo -u fhem aws configure


Und dann an geeigneter Stelle im Code:

aws polly synthesize-speech --output-format mp3 --voice-id Marlene --text '%text%' abc.mp3

Das splitten des Textes müsste man dann einfach nicht machen, da es bei Amazon ja keine Limitierung gibt.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 18 April 2019, 08:41:01
Es fällt nicht nur das Splitten weg, sondern wegen des SSML Markup kann man auch Pausen einbauen.

Die Python-Lösung hatte ich längere Zeit in Betrieb, inzwischen bin ich bei der Perl-Bindung gelandet

cpan Paws

ist die Lösung.

LG

pah

Hier gibt es eine Anleitung dazu: https://forum.fhem.de/index.php/topic,99790.0.html


Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 22 April 2019, 07:45:23
Zitat von: mumpitzstuff am 17 April 2019, 20:48:29
Hier die Änderungen noch mal als Diff.

Bitte prüft mal, ob es jetzt funktioniert. Ist eingecheckt. Ich wollte erst NUR die erine ZEile mit dem Join zurücknehmen, hab mich dann aber doch für den patch entschieden
Ich bin bei mir gerade am umbauen und haben keine TTS Hardware angeschlossen. Deswegen konnte ich die Funktionalität nur ohne Ton in der FHEM WebUI testen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 22 April 2019, 07:48:07
Zitat von: mumpitzstuff am 17 April 2019, 20:55:14
Amazon Polly einzubinden scheint gar nicht so kompliziert zu sein, das könnte man bestimmt auch einfach in dieses Modul integrieren.

sudo pip3 install awscli
sudo -u fhem aws configure


Und dann an geeigneter Stelle im Code:

aws polly synthesize-speech --output-format mp3 --voice-id Marlene --text '%text%' abc.mp3

Das splitten des Textes müsste man dann einfach nicht machen, da es bei Amazon ja keine Limitierung gibt.

Das merke ich mir auf jeden Fall. Hört sich nach einer ernstzunehmenden neuen TTS Engine an :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 22 April 2019, 17:19:49
ZitatHört sich nach einer ernstzunehmenden neuen TTS Engine an
Nein. Amazon hat die Firma Ivona aufgekauft, die die anerkannt beste Engine hatte. Seitdem heißt das Amazon Polly.

Für Android-Systeme gibt es heute noch Pakete, die Marlene als TTS-Engine installieren. Noch ein Zitat aus dem Buch:
ZitatWer Glück hat, findet auch heute noch im Internet ein kostenloses Software-Paket von Ivona, mit dem die beste
deutsche Stimme "Marlene" an Stelle der normalen TTS-Engine auf Android-Smartphones installiert werden kann. Suchen Sie
nach den Regulären Ausdrücken
com.ivona.tts..*.apk
com.ivona.tts.voicebeta.deu.deu.marlene*...apk

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 23 April 2019, 13:49:29
Bitte testet mal das neue Modul mit AWS Polly Engine

https://github.com/tobiasfaust/MyFHEM

Ich habe auch das Wiki bzgl Installation geupdatet. https://wiki.fhem.de/wiki/Text2Speech#Amazon_Polly
Sobald es rund läuft pushe ich das Modul ins FHEM Repo rein
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 23 April 2019, 13:56:12
Die Stimme müsste konfigurierbar sein. Für die deutsche Stimme allein gibt es 3 an der Zahl und nicht nur Marlene. Und sobald man eine andere Sprache wünscht, muss man das im Prinzip frei vorgeben können, oder du tippst die gesamte Liste bei dir ins Modul ein:

https://docs.aws.amazon.com/de_de/polly/latest/dg/voicelist.html (https://docs.aws.amazon.com/de_de/polly/latest/dg/voicelist.html)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 23 April 2019, 19:02:02
Zitat von: Tobias am 22 April 2019, 07:45:23
Bitte prüft mal, ob es jetzt funktioniert. Ist eingecheckt. Ich wollte erst NUR die erine ZEile mit dem Join zurücknehmen, hab mich dann aber doch für den patch entschieden
Ich bin bei mir gerade am umbauen und haben keine TTS Hardware angeschlossen. Deswegen konnte ich die Funktionalität nur ohne Ton in der FHEM WebUI testen

Ich habe alle 4 Kombinationen mit SpeakAsFastAsPossible und Mp3Wrap durchprobiert, jeweils mit leerem Cache und ein weiteres Mal, wo die mp3 Dateinen bereits vorliegen. Alle Varianten funktionieren einwandfrei!

Vielen Dank!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Wzut am 24 April 2019, 07:19:27
@Tobias , ich will die Tage auch mal ran. Gerade auch weil mein SIP Modul ja oft direkt mit T2S zum Einsatz kommt.
Sehe ich das in deiner Doku soweit richtig das du ganz auf die aws Phyton Lösung setzt ohne die von pah bevorzugte Perl Paws Variante ? 
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 24 April 2019, 08:04:19
Go
Ich nutze die aws cli. Die verwendet imho Python im Hintergrund

Ich habe mir das paws Modul noch nicht angeschaut. Gibts das als Debian Package?


Gesendet von iPhone mit Tapatalk
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 24 April 2019, 11:12:49
ZitatGibts das als Debian Package

m.E. nicht - es hängen zu viele andere Packages dran. Da muss man den langen Weg über cpan bzw. cpanm gehen. Lohnt sich aber, weil der ganze Python-Overhead wegfällt. Ich habe beides ausprobiert.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 24 April 2019, 17:03:27
Bitte testet mal die Amazon Polly Engine im TTS Modul.
Ich habe auf Paws umgestellt.
Es gibt ein neues Attribut: TTS_Language_Custom
Dort kann man einen exakten Language Code reinschreiben. Gilt für alle Engines. zb. bei AWS Polly: George, oder bei Google: de-de
Ist natürlich nur interessant für diegenigen, die die Standard Sprachen und Stimmen die ich ins Modul gebaut habe nicht wollen ;)

Bei Einstellung der TTS_Ressource auf Amazon-Polly wird zuerst geprüft, ob das Paws::Polly installiert ist (cpan paws). Anschließend, ob die credentials in ~/.aws/credentials liegen

https://github.com/tobiasfaust/MyFHEM

2019.04.24 16:54:05 4: TTS_EG_WZ: Auflistung der Textbausteine nach Aufbereitung:
2019.04.24 16:54:05 4: TTS_EG_WZ: 0 => Das ist mein Test Nummer 2.
2019.04.24 16:54:05 4: TTS_EG_WZ: Verwende TTS Spracheinstellung: Deutsch
2019.04.24 16:54:05 4: TTS_EG_WZ: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 7c564a078d42029883d0c5f20f1f1f94.mp3
2019.04.24 16:54:06 4: TTS_EG_WZ: Schreibe mp3 in die Datei cache/7c564a078d42029883d0c5f20f1f1f94.mp3 mit 27 Chars
2019.04.24 16:54:06 4: TTS_EG_WZ: Bearbeite jetzt den Text: Das ist mein Test Nummer 2.
2019.04.24 16:54:06 4: TTS_EG_WZ: cache/7c564a078d42029883d0c5f20f1f1f94.mp3 gefunden, kein Download
2019.04.24 16:54:06 4: TTS_EG_WZ: cache/7c564a078d42029883d0c5f20f1f1f94.mp3 hat eine Länge von 2 Sekunden.
2019.04.24 16:54:06 4: TTS_EG_WZ:/usr/bin/mplayer -ao alsa:device=hw=1,0 -really-quiet -nolirc -noconsolecontrols cache/7c564a078d42029883d0c5f20f1f1f94.mp3 >/dev/null
2019.04.24 16:54:08 4: TTS_EG_WZ: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 25 April 2019, 08:15:13
Hab noch etwas ergänzt für die "play" Fraktion (https://forum.fhem.de/index.php/topic,56523.msg657292.html#msg657292)

Auszug aus der CommandRef
Zitat<li>TTS_MplayerCall<br>
    Optional: Angabe des Systemaufrufes zu Mplayer oder einem anderem Tool. Wird ein anderes Tool als mplayer<br>
    dort verwendet gelten folgende Templates: <br>
    <ul>
        <li>{device}</li>
        <li>{volume}</li>
        <li>{volumeadjust}</li>
        <li>{file}</li>
    </ul>
    Beispiele:<br>
    <code>attr myTTS TTS_MplayerCall sudo /usr/bin/mplayer</code>
    <code>attr myTTS TTS_MplayerCall AUDIODEV={device} play -q -v {volume} {file}</code>
  </li>

bitte die Version in meinem Repo testen. Wenn io pushe ich die versions ins fhem Repo
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 25 April 2019, 08:37:46
Nachdem da jetzt mein Polly-Code eingeflossen ist, würde ich gerne noch weitere Anregungen geben - denn das Modul scheint mir eine Basis für weitere Entwicklungen zu bieten.

- Umlaute: Google (und Polly) haben eigentlich gar kein Problem mit Umlauten, wenn diese richtig encoded sind.

  use Text::Iconv;
  ...
  #-- we may have problems with umlaut characters
  my $converter = Text::Iconv->new("utf-8", "iso-8859-1");
  my $text = $converter->convert($texti);


- Ausgabe: Für die Ausgabe auf Soundsystemen wäre es schön, wenn der Mechanismus implementiert wäre, den ich in dem Polly-Code auch habe: Kombination des gesamten Audiomaterials in einer Datei mit festem Namen, diese wird in ein bestimmtes Verzeichnis (eines DLNA-Servers...) geschoben, nachdem die vorher dort vorhandene Datei gleichen Namens gelöscht worden ist (Aushebeln des DLNA Caching). Dann müsste eiN Abspielbefehl an ein FHEM-Device übermittelt werden.

- Ausgabe: Für die Ausgabe auf Android-Devices könnte man zusammen mit CoolTux eine Erweiterung des Automagic Flowset bauen, die a.) eine Datei übertträgt und b.) diese dann abspielt.

- Ausgabe: Versand per Instant Messenger, z.B. Telegram.

Ich beteilige mich gerne mit weiteren Codefragmenten.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mr.breil am 25 April 2019, 09:05:22
Finde ich eine super Idee. Sowas suche Ich zurzeit.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 25 April 2019, 09:26:55
Zitat von: Prof. Dr. Peter Henning am 25 April 2019, 08:37:46
- Ausgabe: Für die Ausgabe auf Soundsystemen wäre es schön, wenn der Mechanismus implementiert wäre, den ich in dem Polly-Code auch habe: Kombination des gesamten Audiomaterials in einer Datei mit festem Namen, diese wird in ein bestimmtes Verzeichnis (eines DLNA-Servers...) geschoben, nachdem die vorher dort vorhandene Datei gleichen Namens gelöscht worden ist (Aushebeln des DLNA Caching). Dann müsste eiN Abspielbefehl an ein FHEM-Device übermittelt werden.

Hi Pah,
ich könnte mittels Attribut einen festen dateinamen vorgeben. Das setzt aber ein mp3wrap zwingend voraus. Man kann das Zielverzeichnis der Dateien jetzt schon angeben. Man müsste das Zielverzeichnis mit Linux Boardmitteln einmounten und dieses dann im TTS Modul TTS_CachFileDir referenzieren.
Mittels notify kann man auf ein filename event des TTs Moduls reagieren.

Ich würde ungern nice-to-have Sachen reinimplementieren wenn diese über bereits vorhandene Module abgedeckt werden. Ist ja auch eine Komplexitätsfrage ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 25 April 2019, 09:57:04
Warum muss der Dateiname fest sein? Mit einem Notify kann man doch auf den erzeugten Dateinamen reagieren und diesen abspielen lassen. Dann hat man auch keine Probleme mit Caching. Oder verstehe ich da was falsch?

define TTS_SERVER Text2Speech none
attr TTS_SERVER TTS_Language Deutsch
attr TTS_SERVER TTS_TimeOut 60
attr TTS_SERVER TTS_UseMP3Wrap 1


defmod nty_TTS_SERVER notify TTS_SERVER:lastFilename.* set RADIO_WOHNZIMMER stream $EVTPART1

Das Beispiel spielt jetzt bei mir den Stream z.B. über ein WLAN Radio ab.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 25 April 2019, 09:59:06
ZitatFinde ich eine super Idee. Sowas suche Ich zurzeit.

Was genau? Anleitungen zur Ausgabe auf Android und Audiosystemen habe ich zur Genüge als Auszüge aus dem neuen FHEM-Buch gepostet, damit muss ich etwas zurückhaltend sein, sonst verletze ich meinen Autorenvertrag.

@Tobias: Hmmm.
Zitatnice-to-have
ist das eher nicht - und "löschen plus neu schreiben" statt einfach nur "überschreiben" wären nur 2 Codezeilen im Modul. Dann könnte man durch ein einzelnes Attribut abhaken, welche der beiden Schreibmöglichkeiten für die endgültige Datei gewählt wird.

Betreffend MP3wrap: Ich finde es immer unschön, auf die Betriebssystemebene gehen zu müssen. Der Code vom MP3Wrap ist Open Source, zusammen mit SWIG (siehe https://www.thegeekstuff.com/2012/03/swig-perl-examples/) sollte es einfach sein, ein natives Perl-Modul für MP3Wrap zu bauen.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 25 April 2019, 10:06:58
ZitatWarum muss der Dateiname fest sein?
Bose-Systeme können keine Streams abspielen, die sie über das Netz bekommen. Und die Verbindung über Bluetooth ist mir zu wackelig.

Also hilft hier nur der Umweg über einen DLNA-Server. Es geht aber auch nicht, den jedesmal seinen Index erneuern zu lassen - sondern der muss den Namen der Datei bereits kennen.

Ich habe eine ganze Weile gebraucht, um den letztlich einfachen Weg zum Aushebeln des Caching-Mechanismus beim miniDLNA zu finden.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Wzut am 25 April 2019, 10:16:00
Zitat von: Tobias am 25 April 2019, 09:26:55
Mittels notify kann man auf ein filename event des TTs Moduls reagieren.
Du sprichst hier lastFilename an ?
Es wäre sehr schön wenn das in jedem Fall auch so bleiben würde, da ich das im SIP Modul mittels NOTIFYDEV nutze.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 25 April 2019, 10:28:50
"lastfilename" würde ich nicht anfassen.
Falls man wirklich einen festen Dateinamen benötigt sehe ich ein neues Attribut wo man einen Pfad mit Dateinamen angeben kann Diesen kann man nur setzen wenn mp3wrap aktiviert ist. Ist dieser gesetzt wird das EndErgebnis immer in diese Datei geschrieben und "lastfilename" angetriggert.
Das wäre mein Lösungsvorschlag.

zu mp3wrap, ja - ich gebe pah recht das es immer unschön ist auf BS-Ebene zu gehen. Sicher werde ich aber nicht ein mp3wrap PerlModul nur dafür schreiben. Wenn es eines gibt kann ich es nutzen. Wenn nicht, bleibt es auf BS-Ebene
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 25 April 2019, 10:49:32
ZitatFalls man wirklich einen festen Dateinamen benötigt sehe ich ein neues Attribut wo man einen Pfad mit Dateinamen angeben kann Diesen kann man nur setzen wenn mp3wrap aktiviert ist. Ist dieser gesetzt wird das EndErgebnis immer in diese Datei geschrieben und "lastfilename" angetriggert.
Klingt gut.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 25 April 2019, 17:51:05
Ist eigentlich hier Off-Topic, die Anleitung dazu steht aber auf https://wiki.fhem.de/wiki/Text2Speech#Sprachausgabe_per_Bluetooth-Lautsprecher_unter_Raspbian_Jessie.

Ich habe das Problem, dass mein System immer wieder die manuell eingetragene  Class=0x20041C aus
Zitat/var/lib/bluetooth/XX:XX:XX:XX:XX:XX/settings
löscht.

Damit kriege ich zwar mein Bluetooth-Audiosystem gepairt, aber ein connect schlägt jedes Mal fehl.

Kennt sich jemand damit näher aus ?

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 25 April 2019, 20:42:46
Das steht bei mir auch nicht da drin.

Bei mir taucht das in:

sudo nano /etc/bluetooth/audio.conf

[General]
Enable=Source,Sink,Headset,Gateway,Control,Media,Socket
Class=0x20041C


und

sudo nano /etc/bluetooth/main.conf

[General]

Name = UD100
Class = 0x20041C


In der von dir erwähnten Datei steht:

[General]
Discoverable=false
DiscoverableTimeout=60
Alias=UD100


UD100 ist der von mir vergebene Name des Bluetooth Dongles.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 25 April 2019, 20:54:38
OK, das ist ein Fehler im FhemWiki.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 26 April 2019, 11:38:30
in meinem Repo steht die Testversion mit der verbesserten Umlautbehandlung (danke an pah!) zum test bereit. Bitte testet. ohne Test schiebe ich es nicht ins FHEM Repo
https://github.com/tobiasfaust/MyFHEM

Ich habe mal den Wetterbericht ausgeben lassen mit Google und mit Amazon-Polly. Ich dachte Google wär super, aber AmazonPolly ist Welten besser :)
Umlaute werden jetzt sowohl bei Google als auch bei AmazonPolly sauber ausgesprochen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 26 April 2019, 14:07:58
Ich habe die Version aus dem Repo für Google getestet.
Bisher hatte ich keine Probleme mit den Umlauten, diese Version lässt jetzt Sonderzeichen statt Umlaute sprechen, a1/4 statt ü.

Der Text von der Website soll UTF-8 kodiert sein.

Auch wenn ich in der Detailansicht "gemütliche Hühner" sagen lasse, werden die Sonderzeichen gesprochen, wie im Anhang zu hören.

Sehe ich das richtig, Amazon ist nach spätestens einem Jahr kostenpflichtig?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 26 April 2019, 15:12:16
ich schau mir das an. Ich hatte genau den Testcase mit Google und Amazon getestet und es hat funktioniert....
Und Ja, Amazon ist kostenpflichtetig, ABER: https://aws.amazon.com/de/polly/pricing/
ZitatKostenloses Kontingent
5 Millionen Zeichen pro Monat
Das kostenlose Kontingent von Amazon Polly umfasst 5 Mio. Zeichen pro Monat für Sprach- oder Sprach-Metadaten-Anforderungen während der ersten 12 Monate ab Ihrer ersten Sprachanfrage.
ZitatNutzungsabhängiges Modell
Sie erhalten monatlich eine Rechnung über die Anzahl der verarbeiteten Textzeichen. Außerhalb des kostenlosen Kontingents werden für Amazon Polly für Sprach- oder Sprach-Metadaten-Anforderungen 4,00 USD pro 1 Millionen Zeichen berechnet.
1Mio Zeichen für 4$ bezeichne ich als so gut wie kostenlos

Ich hatte heute Zeit und habe heute das Attribut "TTS_OutputFile" hinzugefügt
ZitatTTS_OutputFile
      Angabe eines fixen Dateinamens als mp3 Output. Das Attribut ist nur relevant in Verbindung mit TTS_UseMP3Wrap.
      Wenn ein Dateinamen angegeben wird, so wird zusätzlich TTS_CacheFileDir beachtet. Bei einer absoluten Pfadangabe
      muss der Dateipfad durch FHEM schreibbar sein.
      <code>attr myTTS TTS_OutputFile output.mp3</code>
      <code>attr myTTS TTS_OutputFile /media/miniDLNA/output.mp3</code>

Edit: Umlautproblem gefunden, irgendwie reagiert Google nicht auf die neue Codepage konvertierung von pah.
Explizit für Google habe ich die manuelle Umformung vor der Codepagekonvertierung wieder eingebaut.
Bei mir klappt es jetzt mit der neuesten Version.

Im Anhang auch der gesprochene Wetterbericht im Vergleich Google vs. Amazon
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 26 April 2019, 15:56:31
Mit dem Umlautkonverter geht das in alle Richtungen - man muss nur wissen, was geliefert wird und was erwartet wird.
ZitatAmazonPolly ist Welten besser
Sag ich ja - und nicht Amazon hats erfunden...

Dass hier zugekauft worden ist, erkennt man auch daran, dass die umgekehrte Richtung (also STT) nur mit dem doofen Umweg über Amazon S3 Buckets funktioniert - da ist Google voraus.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 26 April 2019, 16:10:37
sudo -u fhem aws polly synthesize-speech --output-format mp3 --voice-id Marlene --text 'Das ist ein Test' test.mp3

Eine Datei test.mp3 wird zwar erzeugt (inhalt habe ich noch nicht abgespielt), aber der Fehler wird ebenfalls ausgegeben:

Unknown output type: mp3

Hat jemand eine Ahnung was ich falsch mache? Beim Aufruf von aws configure habe ich 'mp3' als default output format angegeben. Ist das falsch?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 26 April 2019, 16:12:18
War auch mein Fehler
Beim aws configure musst du json als Output Format nehmen

Ich nutze im Modul aber nicht mehr die awscli


Gesendet von iPhone mit Tapatalk
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 26 April 2019, 16:19:22
Ah okay danke. Dann muss ich mal rein gucken was da jetzt verwendet wird.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 26 April 2019, 16:20:43
Cpan Paws

Steht auch im TTS Wiki :)


Gesendet von iPhone mit Tapatalk
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 26 April 2019, 16:28:40
Amazon Polly kann übrigens "nur" 3000 Zeichen direkt verarbeiten. Alles darüber hinaus muss man irgendwie als Auftrag oder sowas ablegen. Hab ich irgendwo gelesen gehabt bei der Einrichtung.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 26 April 2019, 16:30:04
Die Umlaute funktionieren jetzt auch bei mir wieder.

Ein bestehendes Problem bleibt die Trennung bei "und".

Ein Beispiel, hörbar im Anhang:
Ich habe keinen Grund zugehen aber Du gehst immer wieder grundlos oder ist es weil du rundlich bist oder was ist los mit dir und deinem Hund Marie

Edit:
Die Amazon Stimme haut mich jetzt nicht vom Hocker, sie spricht ziemlich schnell und hat kaum Modulation in Vergleich zu Google. Das ist auch die unvoreingenommene Einschätzung meiner Frau.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 26 April 2019, 16:45:12
Im wiki sollte erwähnt werden, das credentials unter /opt/fhem/.aws/credentials abgelegt werden müssen, da diese ja für den fhem user und nicht pi oder irgendwas angelegt werden müssen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 26 April 2019, 16:48:58
Zitat von: Ellert am 26 April 2019, 16:30:04
Die Umlaute funktionieren jetzt auch bei mir wieder.

Ein bestehendes Problem bleibt die Trennung bei "und".

Ein Beispiel, hörbar im Anhang:
Ich habe keinen Grund zugehen aber Du gehst immer wieder grundlos oder ist es weil du rundlich bist oder was ist los mit dir und deinem Hund Marie

Edit:
Die Amazon Stimme haut mich jetzt nicht vom Hocker, sie spricht ziemlich schnell und hat kaum Modulation in Vergleich zu Google. Das ist auch die unvoreingenommene Einschätzung meiner Frau.

Da ist vermutlich das regex nicht korrekt. Es sollte nur getrennt werden, wenn 'und' ein eigenständiges Wort ist und nicht Bestandteil eines Wortes.

Versuchs mal indem du:

@text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, "und", 0, "af");

mit

@text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, "\bund\b", 0, "af");

ersetzt.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 26 April 2019, 16:51:31
Betreffend Umlaute bei Google: In den Aufruf muss natürlich das encoding auch rein,

system("wget -q --user-agent='Mozilla/5.0' \'http://translate.google.de/translate_tts?ie=UTF-8&tl=de&client=tw-ob&q=$text\' -O $file.mp3")

Das ie=UTF-8 ist also wichtig, fehlt noch im Modul - dann sollte das Umlautproblem unabhängig von der TTS-Engine gelöst sein.

Edit: Stimmt natürlich nicht - denn den Konverter habe ich ja gerade so eingesetzt, dass er von UTF-8 nach ISO8859-1 codiert (was Polly benötigt). Google benötigt aber UTF-8. Siehe weiterer Post unten.


ZitatIch habe keinen Grund zugehen aber Du gehst immer wieder grundlos oder ist es weil du rundlich bist oder was ist los mit dir und deinem Hund Marie

Pack mal Interpunktion rein - das wirkt Wunder. Etwa
ZitatIch habe keinen Grund zu gehen, aber Du gehst immer wieder grundlos - oder ist es weil du rundlich bist? Oder was ist los mit dir und deinem Hund, Marie?

Nicht unterscheiden können die Kisten bisher "Das sieht Dir ungeheuer ähnlich" und "Das sieht Dir Ungeheuer ähnlich".


LG

pah

Edit:
ZitatDie Amazon Stimme haut mich jetzt nicht vom Hocker, sie spricht ziemlich schnell und hat kaum Modulation in Vergleich zu Google.
.

Erstens kann man das mit der SSML sehr gut steuern - auch die Geschwindigkeit. Zweitens ist der Fachbegriff nicht "Modulation", sondern "Prosodie". Dass die hier fehlt, hängt mit der fehlenden Interpunktion zusammen - der Testsatz ist eben so. Beweis: Siehe oben.

ZitatDas ist auch die unvoreingenommene Einschätzung meiner Frau.

Hmmmm. Spiel ihr das mal mit der Stimme "Hans" statt "Marlene" vor.

LG

pah

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 26 April 2019, 17:02:39
Zitat von: Prof. Dr. Peter Henning am 26 April 2019, 16:51:31
Pack mal Interpunktion rein - das wirkt Wunder
Das Beispiel ist zur Verdeutlichung gedacht. Die fehlerhafte Trennung kommt in der Praxis vor.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 26 April 2019, 17:22:56
Zitat von: mumpitzstuff am 26 April 2019, 16:48:58

@text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, "\bund\b", 0, "af");


Das wird nicht klappen, weil in "Text2Speech_SplitString" der Trenner wieder eingebaut wird und dann stört \b.

Es gibt schon einen Patch, der ist aber etwas komplexer: https://forum.fhem.de/index.php/topic,18481.msg659665.html#msg659665
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 26 April 2019, 17:28:05
Danke, werd ich die Tage noch einbauen


Gesendet von iPhone mit Tapatalk
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 26 April 2019, 17:50:19
Ich halte von diesen künstlichen Trennern wenig. In dem Code hier https://forum.fhem.de/index.php/topic,99792.0.html nehme ich den Ausgangstext an Hand der Worte auseinander und setze ihn dann wieder zusammen. Aber zu einzelnen Speechlets, deren jedes höchstens die gewünschte Länge hat. Ist auch viel einfacher, als der andere Patch.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 26 April 2019, 18:03:56
Wenn ich auf Polly umschalte bekomme ich mehrmals folgende Warnings:

2019.04.26 17:56:35 1: PERL WARNING: Use of uninitialized value within %ttsUser in numeric gt (>) at ./FHEM/98_Text2Speech.pm line 460.
2019.04.26 17:56:35 1: PERL WARNING: Use of uninitialized value within %ttsAPIKey in numeric gt (>) at ./FHEM/98_Text2Speech.pm line 459.


Es erfolgt keine weitere Ausgabe im Logfile und eine Sprachausgabe gibt es auch nicht. Schalte ich auf Google um, dann kommt meine Testausgabe wieder.

Mir ist auch nicht klar wozu ich das brauchen sollte bei Polly, denn die credentials sind bereits abgelegt. Zudem wird ein Username gar nicht benötigt.

return "No APIKey specified"                  if (!defined($TTS_APIKey) && defined($ttsAPIKey{$TTS_Ressource}) && length($ttsAPIKey{$TTS_Ressource})>0);
  return "No Username for TTS Access specified" if (!defined($TTS_User) && defined($ttsUser{$TTS_Ressource}) && length($ttsUser{$TTS_Ressource})>0);


Damit komme ich erst mal drüber.

Danach fehlt oben ein:

use paws;

Dummerweise findet Perl bei mir die Bibliothek nicht, obwohl ich siw installiert habe. Habe auch schon paws und Paws probiert, geht beides nicht.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 26 April 2019, 18:19:54
Noch einmal zum Thema Umlaute.

Es hängt sehr stark vom Browser und seinen Einstellungen ab, mit welchem Encoding eingetippte Daten weitergeschickt werden. Das gilt auch für Editoren. Meine Systeme arbeiten alle mit UTF-8 (das ist, wie der Name sagt, eine 8-Bit-Codierung von Unicode-Zeichen => Umlaute werden als 2x 8 Bit codiert).

Polly verlangt ISO8859-1, hängt offenbar mit der Region zusammen, die man beim Aufruf angibt. Daher ist bei mir die Konversion UTF-8 => ISO8859-1 ok

Google hat zwar den Parameter ie=..., kann aber laut API-Beschreibung nur den Wert UTF-8 verarbeiten (ich habe ISO-8859-1) ausprobiert, hört sich schauerlich an. Vielleicht kann jemand anders auch mal suchen, ob das an der Schreibweise "ISO-8859-1" liegt...

Wenn jemand anders hier Probleme mit den Google-Umlauten hatte (irgendwo oben war ein Post), ist dessen System möglicherweise anders eingestellt (Windows, oder Ähnliches ??).

Um das ein für alle Mal zu erledigen, sollte man also versuchen, das Encoding des übergebenen Strings zu erkennen. Das geht hiermit: https://metacpan.org/pod/Encode::Detect

Ich werde es mal probieren.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 26 April 2019, 22:07:42
So jetzt hat es geklappt. Keine Ahnung was es jetzt genau war.

Hier noch mal die Zusammenfassung.

Folgende Schritte fehlen:

Oben fehlt:

use Paws;

Weiter unten muss dieser Code rein:

return "No APIKey specified"                  if (!defined($TTS_APIKey) && defined($ttsAPIKey{$TTS_Ressource}) && length($ttsAPIKey{$TTS_Ressource})>0);
  return "No Username for TTS Access specified" if (!defined($TTS_User) && defined($ttsUser{$TTS_Ressource}) && length($ttsUser{$TTS_Ressource})>0);


Die maximale Zeichenanzahl sollte auf 3000 begrenzt sein.

Im Wiki steht drin, dass man:

cpan paws

starten soll. Es muss aber Paws sein!

Die credentials müssen für den user fhem erstellt werden, also unter /opt/fhem/.aws bzw. im Home Directory von fhem.

Die Installation von Paws ist übrigens ein echter Krampf und ich würde eher den einfachen Weg, dafür eventuell etwas unschöneren Weg, über aws gehen. Das liess sich sauber installieren und configurieren. Bei der CPAN Installation können x Dinge schief laufen und sie dauert ewig. Ich habe hier ne Notebook dran hängen und trotzdem lief das noch 20min. Keine Ahnung wie lange das auf einem Raspberry laufen soll.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 27 April 2019, 11:14:43
ZitatEs muss aber Paws sein!
So steht es in meiner Anleitung, gut bemerkt. Da steht auch, dass es lange dauert. Aber von Krampf kann keine Rede sein, und bei CPAN geht eben in der Regel _nichts_ schief.

Wer es schneller mag, sollte auf cpanminus ausweichen, das überpringt die meisten Tests (muss ggf. erst installiert werden, aufruf dann  als cpanm Paws).

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 29 April 2019, 16:30:31
neue TestVersion in mein Git released. Bitte testen
Einige Bugfixes sind raus. Den Patch von Hanjo habe ich größtenteils übernommen. Die Einbindung der Paws Library habe ich korrigiert

Vor allem bitte mal Umlaute mit Google testen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 29 April 2019, 20:28:08
Zitat von: Tobias am 29 April 2019, 16:30:31
neue TestVersion in mein Git released. Bitte testen
Einige Bugfixes sind raus. Den Patch von Hanjo habe ich größtenteils übernommen. Die Einbindung der Paws Library habe ich korrigiert

Vor allem bitte mal Umlaute mit Google testen.
Die Nutzung von File::HomeDir wird sicherlich für Aufregung sorgen. Kann das Laden des Moduls davon abhängig gemacht werden, ob aws genutzt wird?

Der User fhem hat in der Standardinstallation kein Home-Verzeichnis.

Würde statt File::HomeDir nicht auch $ENV{HOME} funktionieren?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 30 April 2019, 06:42:43
Hi Ellert,
leider funktioniert $ENV{HOME} nicht, habe ich versucht.
Das Modul File::HomeDir musste ich nicht nachladen, war bei mir da. Wenn es aber Bauchschmerzen bereitet kann ich es auch von der AWS Ressource abhängig machen.
Um AWS zu nutzen muss man dem FHEM User ein Homeverzeicvhnis mitgeben, bei mir ist das /opt/fhem/, kann aber auch /home/fhem/ oder sonstetwas sein.
Ist ja schnell eingerichtet und definiert und kein Hexenwerk ;) Mein FHEM User kann sich auch anmelden sodass ich nicht mit root arbeiten muss ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 30 April 2019, 13:28:40
Soweit mir bekannt wird bei einer Standardinstallation der user fhem ohne Homeverzeichnis angelegt.
Und das Perlmodul File::HomeDir ist in der Standardinstallation auch nicht dabei. Wer dann bei einem Update Dein geändertes Modul installiert,  dem Verschwinden erstmal die Text2Speech-Instanzen. Ich schätze mal, das wird bei der Mehrzahl der 468 FHEM-Installationen der Fall sein, die Text2Speech  nutzen.

Ich würde es von der AWS Ressource abhängig machen, um solche Probleme auszuschliessen.

ZitatIst ja schnell eingerichtet und definiert und kein Hexenwerk ;) Mein FHEM User kann sich auch anmelden sodass ich nicht mit root arbeiten muss ;)
Sicher, aber das sollte nicht Voraussetzung für ein funktionierendes Update sein.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 30 April 2019, 13:47:03
Zitat von: Ellert am 30 April 2019, 13:28:40
Soweit mir bekannt wird bei einer Standardinstallation der user fhem ohne Homeverzeichnis angelegt.
Das glaub ich so nicht.
{qx(echo ~fhem)} gibt bei allen meinem Systemen /opt/fhem
Jede Aktion die ich relativ zu Pfaden mache beginnt immer in /opt/fhem

Also meines Wissen wird der user fhem mit dem FHEM Installationspfad als Homedir angelegt. Er wird ohne Anmeldung angelegt.
Eintrag in der passwd
fhem:x:999:20::/opt/fhem:/bin/false

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 30 April 2019, 13:54:39
Zitat von: Otto123 am 30 April 2019, 13:47:03
Also meines Wissen wird der user fhem mit dem FHEM Installationspfad als Homedir angelegt. Er wird ohne Anmeldung angelegt.
Eintrag in der passwd
fhem:x:999:20::/opt/fhem:/bin/false
Gruß Otto

Das ist auch mein stand, ich habe hinterher nur das "login" noch enabled

Aber ja, ich ändere noch File::Homedir

EDIT:erledigt und eingecheckt

Bitte Rückmeldung ob soweit io und funktionsfähig damit ich es ins fhem repo einchecken kann
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 30 April 2019, 14:35:14
Irgendwie ist $ENV innerhalb von FHEM "durcheinander"  :-[
{$ENV{PWD}}enthält den Homepath ?

Und HOME selbst ist leer / existiert nicht im Array ENV.
Im Log steht:
PWD = /opt/fhem
OLDPWD = /
PERL_LWP_SSL_VERIFY_HOSTNAME = 0
LANG = en_GB.UTF-8
PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2019.04.30 14:30:20 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at (eval 4908605) line 1.
2019.04.30 14:30:20 3: eval: {my $key;foreach $key (keys %ENV) { printf "$key = $ENV{$key}\n"   }}
HOME =

Wenn man sowas in der FHEM Kommandozeile macht:
{my $key;;foreach $key (keys %ENV) { printf "$key = $ENV{$key}\n"   }}

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 30 April 2019, 14:47:14
Jupp, bei mir dasselbe.
Da vertraue ich nicht drauf und deshlab nutze ich das File::Homedir Modul :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 30 April 2019, 18:27:21
Die Umlaute funktionieren für Google und die Text2Speech-Instanzen werden geladen. Danke.

Die und Problematik besteht noch.

{qx(echo ~fhem)} liefert bei mir auch /opt/fhem, demnach lag ich falsch.

Die offizielle Installationsanleitung von https://debian.fhem.de/ gibt folgendes vor
useradd --system --home /opt/fhem --gid dialout --shell /bin/false fhem
in der Manpage zu adduser wird zur option --system folgendes gesagt:
Zitat-r, --system
erstellt ein Systemkonto
Systembenutzer werden ohne Hinterlegung ihres Alters in /etc/shadow erstellt. Ihre numerische Kennung wird aus der Spanne SYS_UID_MIN bis SYS_UID_MAX anstelle von UID_MIN bis UID_MAX gewählt (gleiches gilt für die GID bei der Erstellung von Gruppen).
Note that useradd will not create a home directory for such a user, regardless of the default setting in /etc/login.defs ( CREATE_HOME). You have to specify the -m options if you want a home directory for a system account to be created.
Möglicherweise liegt hier die Diskrepanz zwischen $ENV und Home_Dir.

Übrigens:
{qx(echo \$HOME)} liefert nichts
echo $HOME als user pi ausgeführt liefert /home/pi
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 30 April 2019, 19:01:42
Naja, ich verstehe das so: Beim Anlegen des Benutzers wird das Homeverzeichnis selbst nicht erzeugt. Man muss es anderweitig anlegen.
Ich denke, die Diskrepanz bei $ENV ist der Tatsache geschuldet, das FHEM als irgendein Benutzer mit root Recht gestartet wird und FHEM selbst auf den User fhem umschaltet? Aber vielleicht liege ich falsch.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 01 Mai 2019, 10:36:43
Alles klar,
Wenn sonst keiner Probleme meldet checke ich es ein

EDIT: eingecheckt, ab morgen früh per "update" verteilt
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: czcbe am 02 Mai 2019, 20:29:27
Windows scheint damit Mühe zu haben.
Device weg. 

"Messages collected while initializing FHEM:
configfile: Cannot load module Text2Speech"


Log sagt nach Update folgendes:


2019.05.02 20:19:50 1: reload: Error:Modul 98_Text2Speech deactivated:
Can't locate Text/Iconv.pm in @INC (you may need to install the Text::Iconv module) (@INC contains: . D:/fhem_portable/perl/site/lib D:/fhem_portable/perl/vendor/lib D:/fhem_portable/perl/lib ./FHEM) at ./FHEM/98_Text2Speech.pm line 28, <$fh> line 432.
BEGIN failed--compilation aborted at ./FHEM/98_Text2Speech.pm line 28, <$fh> line 432.

2019.05.02 20:19:50 0: Can't locate Text/Iconv.pm in @INC (you may need to install the Text::Iconv module) (@INC contains: . D:/fhem_portable/perl/site/lib D:/fhem_portable/perl/vendor/lib D:/fhem_portable/perl/lib ./FHEM) at ./FHEM/98_Text2Speech.pm line 28, <$fh> line 432.
BEGIN failed--compilation aborted at ./FHEM/98_Text2Speech.pm line 28, <$fh> line 432.
2019.05.02 20:19:55 1: configfile: Cannot load module Text2Speech
Please define MyTTS 5c4eaa1b-f33f-17a4-cc5e-44e272b9ef9d9208 first



Perlmodul Text::Iconv ist tatsächlich nicht installiert. Wird es benötigt?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 02 Mai 2019, 20:30:45
J ist wichtig zur textkonvertierung


Gesendet von iPhone mit Tapatalk
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 02 Mai 2019, 21:16:47
ZitatPerlmodul Text::Iconv ist tatsächlich nicht installiert. Wird es benötigt?
::) ::)
Natürlich nicht. Wir schreiben die Anforderungen für Module nur aus Spaß in den Quellcode.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: czcbe am 03 Mai 2019, 09:28:20
Danke, aber bleiben wir bitte sachlich und konstruktiv.
Wo genau kann man die FHEM-Modulanforderungen bezügl. Perlmodule nachschauen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 03 Mai 2019, 09:30:42
Das Wiki ist noch nicht komplett ergänzt.
Es wird Text::Iconv sowie in der nächsten Version Encode::Guess benötigt.
Wenn du die neue Amazon Polly Engine nutzen willst, kommt noch Paws und File::Homedir dazu

Bitte nachinstallieren
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 03 Mai 2019, 09:51:22
Kann man bei Polly hinkriegen, das die den Text nicht immer so runter rattert? Ich habe Mühe dem Wetterbericht kurz nach dem Aufstehen zu folgen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 03 Mai 2019, 10:57:45
Das bekommst du mit SSML Tags hin. Ich habe aber noch nicht probiert, diese Tags in den TTS Text einzubauen.
Kannst ja mal testen :)

https://docs.aws.amazon.com/polly/latest/dg/ssml.html
https://docs.aws.amazon.com/polly/latest/dg/supported-ssml.html
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 03 Mai 2019, 11:46:02
die aktuelle Version in meinem GIT kann nun auch erkennen, wenn als Text SSML übergeben wird
set myTTS tts <speak>Mary had a little lamb.</speak>
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 03 Mai 2019, 18:17:07
ZitatWo genau kann man die FHEM-Modulanforderungen bezügl. Perlmodule nachschauen?
In den Fehlermeldungen - vorausgesetzt, man ignoriert sie nicht.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 03 Mai 2019, 21:50:47
Zitat von: Prof. Dr. Peter Henning am 03 Mai 2019, 18:17:07
In den Fehlermeldungen - vorausgesetzt, man ignoriert sie nicht.

LG

pah
Sorry, aber das finde ich falsch. Es mag sein, dass mancher durchs Leben geht und nur aus Fehlern lernt oder auch nicht.
Aber es gehört aus meiner Sicht zur guten Doku eines Programmes/Moduls auch die Voraussetzungen zu beschreiben.
Deswegen würde ich antworten:
ZitatWo genau kann man die FHEM-Modulanforderungen bezügl. Perlmodule nachschauen?
Normalerweise in der Doku / Commandref.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 04 Mai 2019, 10:24:07
ZitatSorry, aber das finde ich falsch
Die Erfahrung zeigt, dass die CommandRef erst nach dem ersten Installationsversuch gelesen wird.

LG

pah

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 04 Mai 2019, 10:33:10
Das stimmt, ich werde noch eine bessere Überprüfung einbauen das das Modul nicht beim Start einfach abschmiert

Bitte testet mal die aktuelle git Version bei mir


Gesendet von iPhone mit Tapatalk
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 04 Mai 2019, 13:29:57
Zitat von: Prof. Dr. Peter Henning am 04 Mai 2019, 10:24:07
Die Erfahrung zeigt, dass die CommandRef erst nach dem ersten Installationsversuch gelesen wird.
Ich weiß dies ist jetzt OT. Aber ich kann jetzt nicht anders :)
Diese Erfahrung wäre dann eher eine Annahme, dass sich gleichverteilt alle melden würden. Es melden sich aber eigentlich nur jene, die keine Commandref gelesen haben und die Fehlermeldung auch noch ignorieren.
Gehen wir mal davon aus, es gibt zu gleichen Teilen.
* Dokuleser
* Fehlermeldungsversteher
* "Allesignorierer"
Dann würde man bei fehlender Doku unnötig mindestens die zweite Gruppe und damit eventuell auch die dritte Gruppe auffüllen.

Ich bin positiv eingestellt und behaupte mal die erste Gruppe ist unentdeckt die Größte!
;D ;D ;D

LG Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: czcbe am 04 Mai 2019, 14:10:12
Es ist festzustellen, dass (einmal mehr) Fragen hier im Forum unerwünscht sind.
Man wird degradiert zum:

- Dokuignorierer (obwohl die meisten Module diesbezüglich keine Perlmodule dokumentiert haben)

- Fehlermeldungsignorierer (Fehlermeldungen könnten schon aussagekräftiger und eindeutiger sein, wenn sich ja schon so Mühe gegeben wird im Quellcode):
2019.05.02 20:19:50 1: reload: Error:Modul 98_Text2Speech deactivated:
Can't locate Text/Iconv.pm in @INC (you may need to install the Text::Iconv module) (@INC contains: . D:/fhem_portable/perl/site/lib D:/fhem_portable/perl/vendor/lib D:/fhem_portable/perl/lib ./FHEM) at ./FHEM/98_Text2Speech.pm line 28, <$fh> line 432.
BEGIN failed--compilation aborted at ./FHEM/98_Text2Speech.pm line 28, <$fh> line 43

Schliesslich geht es auch darum evtl. anderen Usern weiterzuhelfen, falls sie auf gleiches Problem stossen. Und nachfragen darf man ja normalerweise, um sicherzugehen.

- Allesignorierer

Der einzige, der hier nett und hilfsbereit auftritt ist Tobias, danke.


Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 04 Mai 2019, 18:41:37
Nun, dann schlage ich doch einfach vor, das Modul in einem alten Versionsstand zu verwenden (bevor ich den Vorschlag mit dem Text::Iconv abgegeben habe). Dann taucht das Problem nicht auf.

ZitatUnd nachfragen darf man ja normalerweise, um sicherzugehen
Das eben empfinde ich als unhöflich.
Wenn eine Fehlermeldung auftaucht, die noch dazu eine klare Handlungsanweisung enthält (you may need to install...), sollte man diese doch erst einmal befolgen, bevor man den Entwicklern die Zeit durch eine unnötige Frage stiehlt.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: JonasE am 04 Mai 2019, 21:08:28
Hallo zusammen,

ich habe festgestellt, dass es Probleme beim Musiccast Modul im Zusammenhang mit dem Text2Speech Modul gibt. Nach längerem Suchen habe ich festgestellt, dass das Problem an den ID3 Tags liegt, die mp3Wrap den mp3s hinzufügt. Ich habe das ganze einmal hier beschrieben: https://forum.fhem.de/index.php/topic,98383.msg933634.html#msg933634

Einmal noch kurz erklärt: Der Titel einer mp3 die mit mp3Wrap erstellt wurde lautet immer "Use Mp3Splt to obtain original tracks". Damit kann man über minidlna die Titel aber nicht mehr eindeutig den Dateien zuordnen. Deshalb macht es Sinn, die ID3Tags für mp3s die von mp3Wrap erstellt wurden zu löschen. Danach liefert minidlna den Dateinamen als Titel und eine Zuordnung ist wieder möglich.

Ich habe das einfach mal eingebaut und eventuell können die Änderungen in das Modul übernommen werden wenn nichts dagegen spricht:
https://github.com/jonaseickhoff/fhem-mirror/commit/8ae28f273aaff2998e151cc7c5e8e2f185ce3b8e

Beste Grüße
Jonas
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 05 Mai 2019, 09:20:23
Es gibt noch ein anderes Problem mit mp3wrap. Es fügt nämlich mp3-Dateien auch dann zusammen, wenn diese eine unterschiedliche Samplingrate haben, und schreibt in die Metadaten der erzeugten Gesamtdatei die Samplingrate der ersten Datei hinein. Wirkt sich auf die Klangqualität sehr negativ aus...

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 05 Mai 2019, 12:29:26
Zitat von: Prof. Dr. Peter Henning am 05 Mai 2019, 09:20:23
Es gibt noch ein anderes Problem mit mp3wrap. Es fügt nämlich mp3-Dateien auch dann zusammen, wenn diese eine unterschiedliche Samplingrate haben, und schreibt in die Metadaten der erzeugten Gesamtdatei die Samplingrate der ersten Datei hinein. Wirkt sich auf die Klangqualität sehr negativ aus...

LG

pah
Zu dem Problem gibt es eine Lösungsmöglichkeit https://forum.fhem.de/index.php/topic,18481.msg850986.html#msg850986
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: schlupp am 05 Mai 2019, 13:11:42
Hallo,

kann es sein, dass neuerdings der Dateiname nicht mehr an den player übergeben wird?

Ich bekomme auf jetzt einmal (nach einem Update gestern 4. Mai - vorher Version vom 30.März; Text::Iconv nachinstalliert)
keine Sprachausgabe, sondern Fehlermeldungen von mgp123, den ich nutze (ATTR: TTS_MplayerCall /usr/bin/mpg123 -q)

Ich habe mal verbose auf 5 gestellt und bekomme im log (reverse => von unten nach oben lesen):


2019.05.05 12:41:14 4: pitTTS: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.
See the manpage mpg123(1) or call mpg123 with --longhelp for more parameters and information.
   -?    this help                      --version  print name + version
   -C    enable control keys            --no-gapless  not skip junk/padding in mp3s
   -u a  HTTP authentication string     -E f  Equalizer, data from file
   -z    shuffle play (with wildcards)  -Z    random play
   -@ f  read filenames/URLs from f     -T get realtime priority
   -m    mix both channels (mono)       -p p  use HTTP proxy p [$HTTP_PROXY]
   -0    decode channel 0 (left) only   -1    decode channel 1 (right) only
   -d n  play every n'th frame only     -h n  play every frame n times
   -2    downsample 1:2 (22 kHz)        -4    downsample 1:4 (11 kHz)
   -o m  select output module           -a d  set audio device
   -r n  set/force samplerate [auto]
   -b n  output buffer: n Kbytes [0]    -f n  change scalefactor [32768]
   -c    check range violations         -y    DISABLE resync on errors
   -k n  skip first n frames [0]        -n n  decode only n frames [all]
   -w f  write output as WAV file
   -t    testmode (no output)           -s    write to stdout
   -v    increase verbosity level       -q    quiet (don't print title)
supported options [defaults in brackets]:
usage: mpg123 [option(s)] [file(s) | URL(s) | -]

free software (LGPL) without any warranty but with best wishes
version 1.23.8; written and copyright by Michael Hipp and others
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
2019.05.05 12:41:14 5: pitTTS: readingsSingleUpdateByName: Dev:pitTTS Reading:endTime Val:00:00:00

You made some mistake in program usage... let me briefly remind you:
2019.05.05 12:41:14 5: pitTTS: readingsSingleUpdateByName: Dev:pitTTS Reading:duration Val:1
2019.05.05 12:41:14 4: pitTTS: /usr/bin/mpg123 -q
2019.05.05 12:41:14 4: pitTTS: cache/71f783ed67e131a66e252ec9b458daaf.mp3 hat eine Länge von 1 Sekunden.
2019.05.05 12:41:14 4: pitTTS: Bearbeite per MP3Wrap jetzt den Text: test
2019.05.05 12:41:14 4: pitTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 71f783ed67e131a66e252ec9b458daaf.mp3
2019.05.05 12:41:14 4: pitTTS: Verwende TTS Spracheinstellung: Deutsch
2019.05.05 12:41:14 4: pitTTS: 0 => test
2019.05.05 12:41:14 4: pitTTS: Auflistung der Textbausteine nach Aufbereitung:
2019.05.05 12:41:13 4: pitTTS: MaxChar = 100, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =


Der direkte Aufruf von /usr/bin/mpg123 -q <cachedatei> auf der Kommandozeile funktioniert weiterhin einwandfrei.
Beim Verhalten in FHEM ändert nichts wenn ich das -q aus dem call rausnehme oder MP3Wrap deaktiviere.

Es sieht für mich so aus, als würde vom TTS device in der aktuellen Version der String für die Kommandozeile nicht mehr richtig verarbeitet: Der Player-Befehl kommt raus, aber der Dateiname hängt nicht mehr dran.


Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 05 Mai 2019, 17:41:21
Schau mal in die commandref zum mplayercall
Da steht warum. Du musst anpassen

Bzgl. Einem Patch, bitte patches per pull request an mein git stellen
Nicht hier posten oder links zu anderen git's


Gesendet von iPhone mit Tapatalk
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: gestein am 05 Mai 2019, 20:04:48
Hallo,

ich wollte das Modul installieren und den Text auf meinen Sonos ausgeben.
Dabei habe ich entdeckt, dass auch das Modul von Sonos Text ausgeben kann (via Speak).
Dabei wird auch der Google-Service verwendet.

Was ist der Vorteil von Text2Speech, wenn ich Sonos bereits installiert habe?
Oder ist es egal?

Danke im Voraus
lg, Gerhard
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: schlupp am 05 Mai 2019, 21:37:46
Danke, in der deutschen commandref hab ich's jetzt gefunden (in der englischen fehlt's noch):
z.B. Einfach {file} hinter den call und im log steht wieder

2019.05.05 21:27:36 4: pitTTS: /usr/bin/mpg123 -q cache/71f783ed67e131a66e252ec9b458daaf.mp3

Prima.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 05 Mai 2019, 22:19:09
Zitat von: gestein am 05 Mai 2019, 20:04:48
Was ist der Vorteil von Text2Speech, wenn ich Sonos bereits installiert habe?
Oder ist es egal?

Danke im Voraus
lg, Gerhard
Hallo Gerhard,

ich habe beides am Start, aber aus meiner Sicht sind es getrennte Dinge. Sonos nimmt für sich die Google Engine und spricht, und Text2Speech spricht auch und kann auch andere Engines.
Für mich läuft beides unabhängig. Sonos über Sonos und Text2Speech über einen Lautsprecher am Raspberry.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 06 Mai 2019, 10:56:54
eine neue Version bei mir im Git.

Die mp3Tag Anpassung von JonasE sowie ein optimiertes ModulLoading ist eingebaut
Jetzt sollte das Modul immer geladen werden auch wenn nicht alle Bibliotheken vorhanden sind.
Die TTS-Generierung startet aber erst wenn alle benötigten Bibiotheken abhängig der TTS_Engine vorhanden sind.

Bitte testen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 07 Mai 2019, 16:55:54
ZitatWas ist der Vorteil von Text2Speech, wenn ich Sonos bereits installiert habe?
Oder ist es egal?

Auch einige der Bose-Boxen können TTS - und ebenfalls nur über Google. Aber beispielsweise nicht die schicke und teure Bose ST300 :-((


Also, zur Sache: Für die Personalisierung der Haussteuerung ist es wichtig (und nicht nur eine Frage des WAF), dass das "Haus" mit einer Stimme spricht. Das ist wirklich eine Frage des guten User Interface Design.

Also entweder mit der Standardstimme von Google (die finde ich grauenhaft), oder mit einer der hervorragenden deutschen Stimmen von Ivona (inzwischen Amazon Polly). Bei mir sprechen alle Ausgabegeräte mit der Stimme "Marlene". Auf Android-Geräten geht das mit der alten Beta-Version des TTS-Paketes sogar kostenlos und ohne Amazon-Account.


Neben "live" und "on-the-fly" generierten Sprachpaketen spiele ich aber auch fertige MP3-Dateien ab. Es muss also nicht jedesmal Amazon bemüht werden, wenn eine meiner Kisten beim Zubettgehen sagt "Bitte an das Teewasser denken". Auch diese Dateien sind von Marlene besprochen, und die "Vorfertigung" bedeutet nicht nur die Einsparung von Bandbreite und Kosten, sondern auch eine deutliche Erhöhung der Antwortgeschwindigkeit.

Der endgültige Use-Case umfasst also: a.) Live-TTS, b.) Abspielen von MP3 und c.) eine Kombination derselben. c.) geht derzeit nur mit Text2Speech (und meinem in Arbeit befindlichen Add-On für das BOSEST-Modul)

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 09 Mai 2019, 18:27:20
Noch ein kleiner Verbesserungsvorschlag zum Modul:

Einheitliche Benennungen der Sprachen - entweder nach dem Land, oder nach der Sprache. Und entweder Englisch, oder Deutsch - aber nicht die gegenwärtige Mischung aus allen Möglichkeiten

"Deutsch"       => "de",
                                          "English-US"    => "en-us",
                                          "Schwedisch"    => "sv",
                                          "France"        => "fr",
                                          "Spain"         => "es",
                                          "Italian"       => "it",
                                          "Chinese"       => "cn",
                                          "Dutch"


Vorschläge also:

1.Deutsch, Englisch-US, Schwedisch, Französisch, Spanisch, Italienisch, Chinesisch, Niederländisch. oder
2.German, English-US, Swedish, French, Spanish, Italian, Chinese, Dutch. oder
3.Deutsch, English-US, Svenska, Francais, Espanol, Italiano, Putonghua, Nederlands oder
4.Deutschland, USA, Schweden, Frankreich, Spanien, Italien, China, Niederlande oder
5.Germany, USA, Sweden, France, Spain, Italy, China, Netherlands oder
6.Deutschland, USA, Sverige, France, Espagna, Italia, Zhongguo, Nederlande

Es darf gerätselt werden, welches am wenigsten lächerlich aussieht...

LG
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 11 Mai 2019, 16:14:26
Weitere Vorschläge fürs Modul:

1. Die Syntax, eine existierende Audiodatei mit :dateiname: zu kennzeichnen, ist schon ganz nett. Das ist kompakter als die SSML-Syntax <audio src="dateiname"/> - allerdings auch etwas mehrdeutig. Schön wäre es, wenn man beide Varianten alternativ benutzen könnte. Siehe dazu auch https://developer.amazon.com/de/docs/custom-skills/speech-synthesis-markup-language-ssml-reference.html#audio

2. Beim Dateinamen selber besteht die Problematik, viele vorhandene Dateien auseinander zu halten. Ich lege deshalb (wenn dies benötigt wird) ein Array mit allen Namen der im ttsDir vorhandenen Dateien an und kann dann die gesuchte Datei auch an Hand eines kurzen Namensbestandteils finden. Beispielsweise heißt eine Datei 024_vorratskeller.mp3 - die wird dann z.B. unter den beiden Varianten :024: und :vorrat: gefunden. Codeschnipsel dafür kann ich liefern.

3. Bei Splitten eines Textes an den Wortgrenzen taucht natürlich das Problem auf, dass SSML-Tags auseinandergerissen werden können. Das ist schade, weil damit viele SSML-Konstrukte gar nicht mehr benutzt werden können. Als Beispiel kann man sich einmal ansehen, was die Eingabe von
{Dumper(Text2Speech_SplitString(["Das ist ein Test, in dem ein kleiner Teil <amazon:effect name=\"whispered\">geflüstert</amazon:effect> wird"],10," ",0,"al"))}
auf der FHEM-Kommandozeile ergibt. Schön wäre also ein Mechanismus, der ein Splitten verhindert, wenn ein SSML-Tag begonnen wurde - bis zum Ende des Tags. Dann wären auch die ganzen Interjektionen aus SSML nutzbar.

LG

pah

Titel: Neues Modul: Text2Speech
Beitrag von: Tobias am 12 Mai 2019, 07:37:26
Hi pah
3. habe ich auch schon auf dem Schirm , aber da dies nur bei tts > 3000 Zeichen vorkommt erstmal nach hinten geschoben

Punkt 2 habe ich noch nicht wirklich verstanden, kannst du mir nicht für deine änderungswünsche einen pull request einstellen?

Punkt 1, das stimmt, nimmt man dank SSML man die sprachbausteine nur nutzen wenn man entsprechende speak end- und starttags darum herum setzt
Hast du eine bessere Idee? Pull requests sind sehr willkommen

Gesendet von iPhone mit Tapatalk
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 12 Mai 2019, 15:42:40
die aktuelle Version aus meinem GIT ist jetzt im FHEM Repo
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: ergerd am 26 Mai 2019, 19:30:36
Hallo zusammen,

ich habe heute ein Update durchgeführt, das letzte war am 02.05.2019.

Das Modul 98_Text2Speech.pm killt jetzt mein FHEM, letzter Eintrag im Log:

Can't locate object method "my_home" via package "File::HomeDir" at ./FHEM/98_Text2Speech.pm line 326, <$fh> line 796.


Fehlt mir irgend etwas?

Danke und Grüße
Rainer
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Jörg am 26 Mai 2019, 19:47:24
Hi,
kann ich bestätigen. Habe auch versucht, mich mit Polly anzufreunden, aber FHEM lässt sich nicht starten.
Can't locate object method "my_home" via package "File::HomeDir" at /opt/fhem/FHEM/98_Text2Speech.pm line 326, <$fh> line 20.

Meine Definition:
define Sprachausgabe Text2Speech hw=0.0
attr Sprachausgabe TTS_UseMP3Wrap 1
attr Sprachausgabe TTS_FileTemplateDir /opt/fhem/mp3
attr Sprachausgabe TTS_CacheFileDir /opt/cache_sprachausgabe
attr Sprachausgabe TTS_Language Deutsch
attr Sprachausgabe TTS_Quality 48khz_16bit_stereo
attr Sprachausgabe TTS_OutputFile /opt/cache_sprachausgabe/1/output.mp3
attr Sprachausgabe TTS_Ressource Amazon-Polly
attr Sprachausgabe room (z2)Sprachausgabe



LG Jörg
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Invers am 27 Mai 2019, 05:23:29
Hi, ich habe das Problem, die Lautstärkeeinstellung ignoriert wird, wenn ich die Lautstärke auf 0 setze. Es wird dann 100 Prozent verwendet. Andere Einstellungen gehen problemlos. Kann das jamand bestätigen und falls es ein Bug ist, korrigieren? Es ist nachts etwas lästig, wenn man angebrüllt wird.  ;D

Schonmal danke.

Internals:
   ALSADEVICE default
   DEF        default
   FUUID      5cce0752-f33f-8098-9661-8790c1ceafcd202e
   MODE       DIRECT
   NAME       MyTTS
   NR         19
   STATE      Initialized
   TYPE       Text2Speech
   VOLUME     0
   READINGS:
     2019-05-27 05:15:55   duration        1
     2019-05-27 05:15:55   endTime         00:00:00
     2019-05-27 05:15:56   lastFilename    cache/72a447622d75949ae7f378e7f01dd667.mp3
     2019-05-27 05:15:56   playing         0
     2019-05-27 05:15:45   volume          0
   helper:
     Text2Speech:
Attributes:
   TTS_FileMapping Glocke:glocke.mp3 Tischglocke:tischglocke.mp3
   TTS_FileTemplateDir /opt/fhem/mp3
   TTS_Language Deutsch
   TTS_MplayerCall /usr/bin/mplayer
   TTS_Quality 48khz_16bit_mono
   TTS_Ressource Google
   TTS_UseMP3Wrap 1
   TTS_noStatisticsLog 1
   room       System



Ausserdem bekomme ich eine Fehlermeldung im Log, obwohl mp3::info bei mir installiert ist:

CPAN: Module::CoreList loaded ok (v5.20170114_24)
MP3::Info is up to date (1.26).

Log:
2019.05.28 09:22:36 3: MP3::Info Modul fehlt, konnte MP3 Tags nicht entfernen

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 29 Mai 2019, 08:16:11
Ich schau mir das an, eigentlich dachte ich alle Module-Loads sicher abgefangen zu haben



Gesendet von iPhone mit Tapatalk
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Invers am 29 Mai 2019, 09:08:36
Ich danke dir.
Ich habe keine besondere Konfiguration und mein fhem ist völlig neu aufgesetzt und alles komplett neu eingerichtet. Keinerlei Übernahmen aus der alten Installation.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: prodigy7 am 30 Mai 2019, 21:10:18
Guten Abend zusammen!

Ich habe den Eindruck, dass das Modul derzeit kaputt ist, wenn man TTS_MplayerCall verwendet: Allem Anschein nach wird der Pfad zur Datei nicht mehr übergeben. Ich hab mal in dem Skript, dass ich verwende, ein "set" eingebaut und die Umgebungsvariablen ausgegeben. Dabei sieht der relevante Teil so aus:


BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=([0]="0")
BASH_SOURCE=([0]="/opt/bin/vlc-wrapper.sh")


Da sollte eigentlich so etwas stehen wie


BASH_ALIASES=()
BASH_ARGC=([0]="1")
BASH_ARGV=([0]="cache/392a03a908698a0925e5a2e832596aad.mp3")
BASH_CMDS=()
BASH_LINENO=([0]="0")
BASH_SOURCE=([0]="/opt/bin/vlc-wrapper.sh")


API wird aufgerufen, MP3 wird erstellt. Der Teil funktioniert also.
Update mit anschließendem Restart habe ich ausgeführt bei FHEM, aber keine Besserung/Änderung.

Edit:
Fehler gefunden! In einer älteren Version des Moduls gab es folgenden Abschnitt:

$cmd = $TTS_MplayerCall . " " . $mplayerAudioOpts . $AlsaDevice . " " .$NoDebug. " " . $mplayerOpts . " " . $file;

In der aktuellen Version sieht es so aus:

  # anstatt  mplayer wird ein anderer Player verwendet
  if ($TTS_MplayerCall !~ m/mplayer/) {
    $TTS_MplayerCall =~ s/{device}/$AlsaDevice/g;
    $TTS_MplayerCall =~ s/{volume}/$hash->{VOLUME}/g;
    $TTS_MplayerCall =~ s/{volumeadjust}/$TTS_VolumeAdjust/g;
    $TTS_MplayerCall =~ s/{file}/$file/g;

    $cmd = $TTS_MplayerCall;
  } else {
    $cmd = $TTS_MplayerCall . " " . $mplayerAudioOpts . $AlsaDevice . " " .$NoDebug. " " . $mplayerOpts . " " . $file;
  }

Der TTS_MplayerCall Aufruf ist natürlich sinnfrei, wenn ich dem so überhaupt keine Informationen übergebe. Ich würde eine Änderung wie folgt empfehlen:

  # anstatt  mplayer wird ein anderer Player verwendet
  if ($TTS_MplayerCall !~ m/mplayer/) {
    $TTS_MplayerCall =~ s/{device}/$AlsaDevice/g;
    $TTS_MplayerCall =~ s/{volume}/$hash->{VOLUME}/g;
    $TTS_MplayerCall =~ s/{volumeadjust}/$TTS_VolumeAdjust/g;
    $TTS_MplayerCall =~ s/{file}/$file/g;

    $cmd = $TTS_MplayerCall . " " . $file;
  } else {
    $cmd = $TTS_MplayerCall . " " . $mplayerAudioOpts . $AlsaDevice . " " .$NoDebug. " " . $mplayerOpts . " " . $file;
  }

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 31 Mai 2019, 13:43:40
nein, wie du schon gesehen hast müssen in der neuen Version Templates verwendet werden. Steht auch so in der Commandref drin (hoffentlich)
Das musste ich machen um so generisch verschiedene Player anbinden zu können.
Also einfach die Templates nutzen und es funzt ;)

ein Beispiel:
attr <tts> TTSMplayerCall /usb/bin/play -ao {device} -file {file}
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: prodigy7 am 31 Mai 2019, 13:47:02
Okay, Danke! Verstanden und umgesetzt :-)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: FHEM-Wohnung am 02 Juni 2019, 17:36:20
Hallo, ich habe Debian 9 im LXC Container in Proxmox am laufen. Dies läuft auf dem Intel NUC.

Nun habe ich einmal den Intel Onboard Sound und eine externe Soundkarte. Diese läuft usb und wird an den Container weiter gereicht. Vorzugsweise würde ich ja gerne den Sound über Onboard verwenden.

lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 006: ID 8087:0aa7 Intel Corp.
Bus 001 Device 004: ID 0d8c:000c C-Media Electronics, Inc. Audio Adapter          <-------
Bus 001 Device 007: ID 046d:c227 Logitech, Inc. G15 Refresh Keyboard
Bus 001 Device 005: ID 046d:c226 Logitech, Inc. G15 Refresh Keyboard
Bus 001 Device 003: ID 046d:c223 Logitech, Inc. G11/G15 Keyboard / USB Hub
Bus 001 Device 002: ID 046d:c051 Logitech, Inc. G3 (MX518) Optical Mouse
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub



cat /proc/asound/cards
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xa1410000 irq 129
1 [Set ]: USB-Audio - C-Media USB Headphone Set
C-Media USB Headphone Set at usb-0000:00:15.0-4, full speed


alsamixer
cannot open mixer: No such file or directory

sudo aplay /usr/share/sounds/alsa/Front_Center.wav
ALSA lib confmisc.c:767:(parse_card) cannot find card '0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM default
aplay: main:788: audio open error: No such file or directory


Fhem Log
2019-06-03 21:42:16 Text2Speech MyTTS playing: 1
2019.06.03 21:42:16 4 : MyTTS: ermittelte CodePage: ascii , konvertiere nach UTF-82019.06.03 21:42:16 4 : MyTTS: MaxChar = 100, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter = 2019.06.03 21:42:16 4 : MyTTS: Auflistung der Textbausteine nach Aufbereitung:2019.06.03 21:42:16 4 : MyTTS: 0 => ww2019-06-03 21:42:16 Text2Speech MyTTS duration: 1
2019-06-03 21:42:16 Text2Speech MyTTS endTime: 00:00:00
2019-06-03 21:42:16 Text2Speech MyTTS lastFilename: cache/37e5f0055a8e6f63b6bb511497c5fd9b.mp3
2019.06.03 21:42:16 4 : MyTTS: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.2019-06-03 21:42:16 Text2Speech MyTTS playing: 0


Leider wird anscheint die Soundkarte nicht unter Debian erkannt. Was könnte ich tun?

Danke
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: tagedieb am 08 Juli 2019, 16:30:11
Hallo zusammen
ich habe nach einem Serverausfall mein FHEM neu aufgesetzt, leider habe ich nun keine Ansagen mehr und ich habe im Moment auch keine Idee, wo ich noch ansetzten kann.Ich würde mich freuen, wenn mir jemand weiterhelfen könnte
Mein TTS
Internals:
   ALSADEVICE hw=0.0
   DEF        hw=0.0
   FUUID      5c475225-f33f-8a7d-4ecb-5083358739a82bb3
   MODE       DIRECT
   NAME       MyTTS
   NR         608
   STATE      Initialized
   TYPE       Text2Speech
   VOLUME     95
   READINGS:
     2019-07-08 16:10:49   duration        17
     2019-07-08 16:10:49   endTime         00:00:00
     2019-07-08 16:11:06   lastFilename    cache/831ba7dadcb3ed0dd270c8463ff28db2.mp3
     2019-07-08 16:11:06   playing         0
     2019-07-08 16:08:53   volume          95
   helper:
     Text2Speech:
Attributes:
   TTS_UseMP3Wrap 1
   room       Text2Speech
   userReadings VOLUME
   verbose    5


logauszug
2019.07.08 16:10:42.058 4: MyTTS: ermittelte CodePage: ascii , konvertiere nach UTF-8
2019.07.08 16:10:42.058 4: MyTTS: MaxChar = 100, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2019.07.08 16:10:42.058 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2019.07.08 16:10:42.058 4: MyTTS: 0 => probe
2019.07.08 16:10:42.260 4: MyTTS: Verwende TTS Spracheinstellung: Deutsch
2019.07.08 16:10:42.261 4: MyTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 1db4f32dbff2fabe4c975814cab5d987.mp3
2019.07.08 16:10:42.262 4: MyTTS: Bearbeite per MP3Wrap jetzt den Text: probe
2019.07.08 16:10:42.265 4: MyTTS: cache/1db4f32dbff2fabe4c975814cab5d987.mp3 hat eine Länge von 1 Sekunden.
2019.07.08 16:10:42.266 4: MyTTS: sudo /usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 95 cache/1db4f32dbff2fabe4c975814cab5d987.mp3
2019.07.08 16:10:42.266 5: MyTTS: readingsSingleUpdateByName: Dev:MyTTS Reading:duration Val:1
2019.07.08 16:10:42.308 5: MyTTS: readingsSingleUpdateByName: Dev:MyTTS Reading:endTime Val:00:00:00
MPlayer 1.3.0 (Debian), built with gcc-6.2.1 (C) 2000-2016 MPlayer Team
Terminal type `unknown' is not defined.

Playing cache/1db4f32dbff2fabe4c975814cab5d987.mp3.
libavformat version 57.56.101 (external)
Mismatching header version 57.56.100
Audio only file format detected.
Load subtitles in cache/
==========================================================================
Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III
AUDIO: 24000 Hz, 2 ch, s16le, 32.0 kbit/4.17% (ratio: 4000->96000)
Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III)
==========================================================================
AO: [alsa] 44100Hz 2ch s16le (2 bytes per sample)
[Mixer] No hardware mixing, inserting volume filter.
Video: no video
Starting playback...
A:   0.0 (00.0) of 0.9 (00.9) ??,?%                                             
A:   0.0 (00.0) of 0.9 (00.9)  0.9%                                             
A:   0.1 (00.0) of 0.9 (00.9)  0.8%                                             
A:   0.1 (00.1) of 0.9 (00.9)  0.9%                                             
A:   0.1 (00.1) of 0.9 (00.9)  0.9%                                             
A:   0.2 (00.1) of 0.9 (00.9)  1.0%                                             
A:   0.2 (00.2) of 0.9 (00.9)  1.0%                                             
A:   0.2 (00.2) of 0.9 (00.9)  1.0%                                             
A:   0.3 (00.2) of 0.9 (00.9)  1.0%                                             
A:   0.3 (00.3) of 0.9 (00.9)  1.0%                                             
A:   0.3 (00.3) of 0.9 (00.9)  1.1%                                             
A:   0.4 (00.3) of 0.9 (00.9)  1.1%                                             
A:   0.4 (00.3) of 0.9 (00.9)  1.0%                                             
A:   0.4 (00.4) of 0.9 (00.9)  1.0%                                             
A:   0.5 (00.4) of 0.9 (00.9)  1.0%                                             


Exiting... (End of file)
2019.07.08 16:10:43.748 4: MyTTS: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.


fehlende Pakete habe ich laut Wiki nachinstalliert
Sound ist onboard auf analog 3,5 Klinke eingestellt und auch da der Lautsprecherangeschlossen :-)
es soll das ganz normale TTS funktionieren (ohne Bluetooth, ohne alexa etc)

sollte das das übel sein?
sudo dpkg --install pico2wave.deb
dpkg: Fehler beim Bearbeiten des Archivs pico2wave.deb (--install):
Paket-Architektur (armhf) passt nicht zum System (i386)
Fehler traten auf beim Bearbeiten von:
pico2wave.deb


vg tagedieb

über Hilfe würde ich mich freuen


Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 08 Juli 2019, 16:46:37
Steht doch in der Fehlermeldung: Offenbar ein ziemlich katastrophaler Fehler beim "Neu aufsetzen" des Linux-Systems. M.E. einzig sinnvolle Lösung: Noch einmal von vorn beginnen, solche Probleme kriegt man kaum in den Griff, weil möglicherweise schon diverse Pakete falsch installiert worden sind.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: tagedieb am 08 Juli 2019, 21:19:26
Danke

na dann werde ich mal loslegen  :-[
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 09 Juli 2019, 07:06:12
der fehler liegt auf den ersten blick nicht bei FHEM
als erstes mal direkt auf der KOnsole als root mit dem Befehl spielen:
sudo /usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 95 cache/1db4f32dbff2fabe4c975814cab5d987.mp3

bitte auch checken, ob das Device 0.0 wirklich der Klinkenausgang ist.
Auch mal "aplay -l" und "aplay -L" sowie "alsamixer" checken

Warum willst du pico2wave installieren? Abgesehen davon hast du das falsche deb-package ausgewählt welches nicht zu deiner Architektur passt ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 09 Juli 2019, 13:54:12
Offenbar glaubt dpkg, es sei auf einem i386-System installiert - der Fehler sollte also vorher passiert sein.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 09 Juli 2019, 14:00:44
Hi pah,
Zitat von: Prof. Dr. Peter Henning am 09 Juli 2019, 13:54:12
Offenbar glaubt dpkg, es sei auf eine i386-System installiert - der Fehler sollte also vorher passiert sein.
laut seinem Post sah das für mich wie eine manuelle deb installation aus. Das das deb von irgendwoher heruntergalden wurde und nicht per automatisiertem installprozess
sudo dpkg --install pico2wave.deb
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 10 Juli 2019, 05:46:55
Stimmt - wer lesen kann ist klar im Vorteil. Ich hatte irgendwie im Kopf, er sei auf einem Raspberry Pi unterwegs - aber schrieb ja etwas vom Container auf einem NUC. Also ist die Systemarchitektur korrekterweise i386, und das Paket falsch. Sonst wäre es umgekehrt.

Sorry, damit habe ich für Verwirrung gesorgt.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: tagedieb am 10 Juli 2019, 07:08:58
Guten Morgen zusammen

danke für Eure unterstützung

- eine neuinstallation habe ich nicht gemacht   ;D - aber der Hinweis von Prof. Dr. Peter Henning hat mir aber schon weitergeholfen
ich habe mir das richtige Paket rausgesucht und installiert, in der log sind jetzt die Fehler nicht mehr.
Hören kann ich aber noch nichts

@Tobias
Danke für Deine Hinweise,
root@zotak:~# aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: PCH [HDA Intel PCH], Gerät 0: ALC892 Analog [ALC892 Analog]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: PCH [HDA Intel PCH], Gerät 1: ALC892 Digital [ALC892 Digital]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: PCH [HDA Intel PCH], Gerät 3: HDMI 0 [HDMI 0]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: PCH [HDA Intel PCH], Gerät 7: HDMI 1 [HDMI 1]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: PCH [HDA Intel PCH], Gerät 8: HDMI 2 [HDMI 2]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0

alsamixer
   Gerät: PulseAudio                                F1:  Hilfe                x
x    Chip: PulseAudio                                F2:  System-Informationen x
x Ansicht: F3:[Wiedergabe] F4: Aufnahme  F5: Alle    F6:  Soundkarte auswählen x
x Element: Master                                    Esc: Beenden              x
x                                                                              x
x                                     lqqk                                     x
x                                     xaax                                     x
x                                     xaax                                     x
x                         lqqqqqqq Soundkarte qqqqqqqk                         x
x                         x-  (Standard)             x                         x
x                         x0  HDA Intel PCH          x                         x
x                         x   Gerätenamen eingeben...x                         x
x                         mqqqqqqqqqqqqqqqqqqqqqqqqqqj                       


zeigt standard an, sollte aber x0  HDA Intel PCH verwenden
ich kann es per Konsole einstellen, jedoch nicht abspeichern  >:(

auch nach Umstellung auf HW 1,1 bleibt alles ruhig

das Ergebnis von der Probe - sieht so aus :
Zitatsudo /usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 95 cache/1db4f32dbff2fabe4c975814cab5d987.mp3
- sieht so aus :
MPlayer 1.3.0 (Debian), built with gcc-6.2.1 (C) 2000-2016 MPlayer Team

Playing cache/1db4f32dbff2fabe4c975814cab5d987.mp3.
File not found: 'cache/1db4f32dbff2fabe4c975814cab5d987.mp3'
Failed to open cache/1db4f32dbff2fabe4c975814cab5d987.mp3.


Exiting... (End of file)


ZitatWarum willst du pico2wave installieren? Abgesehen davon hast du das falsche deb-package ausgewählt welches nicht zu deiner Architektur passt ;)
stand im Wiki   ;)- und erst durch mein falsches Paket ist mir aufgefallen, das ich das nicht wirklich brauche  :-\

vg



Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 10 Juli 2019, 09:13:36
Moin,

naja nun hast Du eine cache Datei versucht zu spielen, die es offenbar nicht mehr gibt. Oder Du hättest Dich in den Pfad /opt/fhem stellen müssen  :o :'(
cache/1db4f32dbff2fabe4c975814cab5d987.mp3 ist ja relativ.

Also versuch nochmal auf der Console:
sudo /usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 95 /opt/fhem/cache/1db4f32dbff2fabe4c975814cab5d987.mp3
Hörst Du denn was mit ?speaker-test -t sine -f 440 -c 2 -s 1


Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 10 Juli 2019, 09:14:02
also ja: du brauchst 0.0
wähle mal im alsmixer deine analogkarte aus und entmute sie und stelle sie gleich auf 100% ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 10 Juli 2019, 11:51:48
Die Amazon-Polly-Variante, die ich hier beigesteuert habe, wird wohl derzeit zur vollständigen Unterstützung von SSML ausgebaut.

Nun benutze ich ja gar nicht Text2Speech, sondern eigene Routinen zur Ausgabe auf Tablets bzw. Bose Soundtouch. Trotzdem würde ich gerne die Gemeinsamkeiten noch weiter treiben, und zwar in Bezug auf die Dateinamen und Statistik der gecachten Dateien.

1.In der Zeile
$filename = md5_hex($language{$TTS_Ressource}{$TTS_Language} ."|". $t) . ".mp3";
wird die Sprachauswahl in die Ermittlung des Dateinamens aufgenommen - das ist m.E. nicht sinnvoll, denn um welche Sprache es sich handelt, ist ja im Text selbst codiert. Wichtiger wäre, die Ressource selbst dabei zu haben - so dass Files von Amazon andere Namen haben, als die von Google. Also einfacher
md5_hex($ttsResource."|".$t);

2. Welche der Sprachdateien nachhaltig aufgehoben werden, sollte nicht an der Zeit seit der letzten Nutzung festgemacht werden, sondern an der Nutzungsfrequenz. Um diese zu berechnen, sollte eine Mini-Datenbank (z.B. sqlite) erstellt werden, die auch den Klartext (zumindest zu einem Teil) enthält.

3. In der sqlite-Datenbank sollte mit einer Perl-Funktion auch die Suche nach einem Schlüsselwort möglich sein. Beispielsweise sagt mein System mindestens dreimal pro Tag durch: "Ein Bewohner betritt das Haus". Da die permanenten Dateien bei mir Klartextnamen haben, kann ich das mit dem Code
speak(<Ausgabeziel>,":betritt:")
aufrufen (der eigentliche Klartextname ist natürlich länger).

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: tagedieb am 10 Juli 2019, 14:17:13
Hallo zusammen

vielen Dank für Eure Unterstützung
nach dem abarbeiten aller ideen bekam ich zwar keine fehlermeldungen mehr, aber gehört habe ich ich nichts, :-[ - bis zum Austausch
in Kopfhörer, da funktionierte alles prima, und nach nochmaligen anschliessen der lautsprecher höre ich auch jetzt nur etwas, wenn ich genau neben den Lautsprechern stehe
Volumen ist bereits auf 100
ich würde gern die bisherigen Lautsprecher weiter verwenden, denn diese sind in Wand und Decke eingebaut und informierten stets zuverlässig bei offener Haustür oder offenem Garagentor
sie wurden vorher durch einen cubitruck "bedient" und hatten eine angenehme Lautstärke - würde das Umstellen auf den HDMI ausgang eine erhöhung der Lautstärke bringen?
oder was gäbe es für alternativen?

vg
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 10 Juli 2019, 14:22:13
wie geht es denn low level? Also mit alsamixer und speakertest?

An hdmi brauchst Du dann eine Soundkarte/Umsetzer für hdmi -> sinnlos!
Also wenn es mit der Klinke nichts wird weil der Pegel / die Leistung nicht reicht, brauchst Du eine Verstärker/ eine andere Soundkarte.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: tagedieb am 10 Juli 2019, 14:45:30
es kommt von tts aus fhem die gleiche Lautstärke an, wie von der Konsole direkt

da ich im Alsamixer eine andere Variante auswählen kann, aber leider nicht abspeichern - hatte ich vermutet, das es daran liegt  :-[
(siehe Bild)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 10 Juli 2019, 14:53:29
Das ist PC Hardware? Gibt es da eventuell Jumper / im Bios Einstellungen wo man die Ausgangsleistung einstellen kann? Aktiv passiv Kopfhörer Lautsprecher oder so?
Das sind passive Lautsprecher?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: tagedieb am 10 Juli 2019, 15:13:26
Hallo Otto

das waren die Ergebnisse

speaker-test 1.1.3

Wiedergabe-Gerät ist default
Stream-Parameter sind 48000 Hz, S16_LE, 2 Kanäle
Sinuswelle mit Frequenz 440,0000 Hz
Rate ist 48000 Hz (angefordert: 48000 Hz)
Puffergröße von 96 bis 1048576
Periodengröße von 32 bis 349526
Verwende maximale Puffergröße 1048576
Perioden = 4
gesetzt: period_size = 262144
gesetzt: buffer_size = 1048576
  - Vorne links
root@zotak:~# sudo /usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 95 /opt/fhem/cache/1db4f32dbff2fabe4c975814cab5d987.mp3
MPlayer 1.3.0 (Debian), built with gcc-6.2.1 (C) 2000-2016 MPlayer Team

Playing /opt/fhem/cache/1db4f32dbff2fabe4c975814cab5d987.mp3.
libavformat version 57.56.101 (external)
Mismatching header version 57.56.100
Audio only file format detected.
Load subtitles in /opt/fhem/cache/
==========================================================================
Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III
AUDIO: 24000 Hz, 2 ch, s16le, 32.0 kbit/4.17% (ratio: 4000->96000)
Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III)
==========================================================================
AO: [alsa] 44100Hz 2ch s16le (2 bytes per sample)
[Mixer] No hardware mixing, inserting volume filter.
Video: no video
Starting playback...
A:   0.5 (00.4) of 0.9 (00.9)  1.2%


Exiting... (End of file)


Ich klemme das Teilchen nachher mal ab und hänge es an einen Bildschirm und schaue mir mal das Bios an
laut technischer Beschreibung beinhaltet die Zbox

Onboard audio
Stereo analog audio output and microphone input
one optical SPDIF support
HDMI 1,4b or DP 1,2 digital output

Ja die Lautsprecher sind passiv - hat beim Cubi wunderbar funktioniert :(
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 10 Juli 2019, 16:36:46
Hallo Tobias,

ich habe heute ein System neu gemacht und habe die "neue" Funktion für MplayerCall genutzt. Dabei ist mir aufgefallen: Dein Beispiel in der deutschen commandref (nur dort vorhanden) ist, so wie es da steht, nicht einfach verwendbar. Da brüllt einen der Lautsprecher sehr verzerrt an!  :o
Der Grund ist simpel: Mplayer verwendet für Volume Prozent, play verwendet einen Faktor.
mplayer = 100 entspricht play = 1

Ich habe das mal so mit shell Mitteln umgesetzt, das funktioniert, quasi vor dem Komma und nach dem Komma getrennt  ;):
AUDIODEV={device} play -q -v $(({volume}*{volumeadjust}/10000)).$(({volume}*{volumeadjust}%10000)) {file}

Man kann in der Shell auch perl nehmen zum rechnen, das finde ich nicht schön: "aus perl heraus in die shell rein in perl und wieder in die shell" .
$(perl -e 'print {volume}*{volumeadjust} / 10000;')

Hast Du dazu einen besseren Einfall?

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: tagedieb am 10 Juli 2019, 18:30:33

das system zeigt mir beim hochfahren an, das der Soundkartentreiber "gescheitert" ist
leider ich habe diesen Treiber bisher auch für win und mac gefunden


vg
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 11 Juli 2019, 07:30:31
@tagedieb, die Einstellungen im alsamixer kann man natürlich abspeichern: "alsactrl store" (oder so ähnlich...)

@Otto, mir fällt leider nix besseres ein da theoretisch jeder Tool andere Einstellungen hat. Dein erstes PlayBeispiel könntest du aber ins Wiki aufnehmen :)

@pah: Aufnahme der Ressource anstatt der Language ist eine gute idee :)
Eine extra Datenbankabhängigkeit ins Modul aufzunehmen finde ich nicht so doll. Rudimentär habe ich ja eine Verbindung /Logging in ein DBLog Instanz eingebaut. Darüber sollte genau das passieren, ist aber noch nicht bis zu ende umgesetzt da noch niemand nach diesem Use-Case wirklich geschrien hat ;)

Ich habe mal die 2 Änderungen in mein GIT gepushed, bitte mal checken/testen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 11 Juli 2019, 20:15:26
dblog ist viel zu mächtig dafür. Ich benutze drei Routinen, vorher muss mit

use DBI;

das Perl-Modul geladen werden, sowie die Datenbank mit

  sqlite3 tts.db "CREATE TABLE tts (key INTEGER PRIMARY KEY, count INT, time INT, content TEXT);"
  chown fhem:dialout tts.db

angelegt werden.

Die erste Routine wird mit dem Namenshash (=$key) und dem Text der Nachricht aufgerufen und liefert "1" zurück, wenn die Datei schon existiert, "0" wenn sie neu erzeugt werden muss.
Die zweite Routine kann den Inhalt der Datenbank anzeigen, die dritte Routine kann im ersten Argument das maximale Alter, im zweiten Argument die minimale Anzahl von Aufrufen und löscht alle anderen Einträge aus der Datenbank (aber bisher nicht als Datei).

sub tts_dblog($$){
  my ($key,$text) = @_;
  #--
  my $path = "/home/fhem";
  my $dbargs = {AutoCommit => 0, PrintError => 1};
  my $dbh = DBI->connect("dbi:SQLite:dbname=".$path."/tts.db", "", "", $dbargs);
 
  #-- check existence
  my ($res) = $dbh->selectrow_array("SELECT EXISTS ( SELECT 1 FROM tts WHERE key='".$key."')");
  #-- exists
  if( $res == 0 ){
    #-- insert a line
    $dbh->do("INSERT INTO tts (key,count,time,content) VALUES ('".$key."','1','".time()."','".$text."');");
    if ($dbh->err()) {
      Log 1,"[tts_dblog] $DBI::errstr";
    }
  #-- does not exist
  }else{
    #-- modify
    $dbh->do("UPDATE tts SET count = count + 1 WHERE key='".$key."';");
    if ($dbh->err()) {
      Log 1,"[tts_dblog] $DBI::errstr";
    }
  }
  $dbh->commit();
  $dbh->disconnect();
  return $res;
}

sub tts_dbshow(){
  #--
  my $path   = "/home/fhem";
  my $dbargs = {AutoCommit => 0, PrintError => 1};
  my $dbh    = DBI->connect("dbi:SQLite:dbname=".$path."/tts.db", "", "", $dbargs);
  my $ret    = "";

  #-- print rows
  my $res = $dbh->selectall_arrayref("SELECT key,count,time,content FROM tts;");
  foreach my $row (@$res) {
    my ($keyr,$countr,$timer,$textr) = @$row;
    $ret .= sprintf("%s %d %d %s",$keyr,$countr,$timer,$textr);
  }
  $dbh->disconnect();
  return $ret;
}

sub tts_dbpurge($$){
  my ($deltime,$mincount) = @_;
  #--
  my $path   = "/home/fhem";
  my $dbargs = {AutoCommit => 0, PrintError => 1};
  my $dbh    = DBI->connect("dbi:SQLite:dbname=".$path."/tts.db", "", "", $dbargs);

  if( defined($deltime) && $deltime > 0){
    my $earliest = time() - 86400*$deltime;
    $dbh->do("DELETE from tts where time < ".$earliest.";");
    if ($dbh->err()) {
      Log 1,"[tts_dblog] $DBI::errstr";
    }
  }elsif( defined($mincount) && $mincount > 0){
    $dbh->do("DELETE from tts where count < ".$mincount.";");
    if ($dbh->err()) {
      Log 1,"[tts_dblog] $DBI::errstr";
    }
  }
  $dbh->disconnect();
}



LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Billy am 13 Juli 2019, 19:36:40
Hallo, bin heute von Wheezy auf Stretch umgezogen. alles läuft bis auf Text2Speech. :'(
Ein
defmod myTTS Text2Speech hw=0.0
Bringt --> Cannot load module Text2Speech
Im Log sieht das so aus!
2019.07.13 19:25:12.023 1: reload: Error:Modul 98_Text2Speech deactivated:
Can't locate URI/Escape.pm in @INC (you may need to install the URI::Escape module) (@INC contains: . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/arm-linux-gnueabihf/perl5/5.24 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base /data/fhem//FHEM /data/fhem//FHEM/lib) at /data/fhem//FHEM/98_Text2Speech.pm line 27.
BEGIN failed--compilation aborted at /data/fhem//FHEM/98_Text2Speech.pm line 27.

2019.07.13 19:25:12.023 0: Can't locate URI/Escape.pm in @INC (you may need to install the URI::Escape module) (@INC contains: . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/arm-linux-gnueabihf/perl5/5.24 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base /data/fhem//FHEM /data/fhem//FHEM/lib) at /data/fhem//FHEM/98_Text2Speech.pm line 27.
BEGIN failed--compilation aborted at /data/fhem//FHEM/98_Text2Speech.pm line 27.


Ein
apt-get install -y libav-tools und cpan install URI::Escape::XS
habe ich durchgeführt.

Was fehlt da? Wie gesagt in Wheezy gings mit den gleichen Einstellungen!

Billy

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 13 Juli 2019, 19:44:24
Hi,

also ich denke Du brauchst liburi-perl
und
laut meinen Notizen mplayer libdigest-sha-perl mp3wrap

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Billy am 13 Juli 2019, 20:04:05
Zitat von: Otto123 am 13 Juli 2019, 19:44:24
Hi,

also ich denke Du brauchst liburi-perl
und
laut meinen Notizen mplayer libdigest-sha-perl mp3wrap

Gruß Otto

Danke, liburi-perl war's, die anderen hatte ich!

Gruß Billy
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 15 Juli 2019, 11:31:10
Zitat von: Tobias am 11 Juli 2019, 07:30:31
@Otto, mir fällt leider nix besseres ein da theoretisch jeder Tool andere Einstellungen hat. Dein erstes PlayBeispiel könntest du aber ins Wiki aufnehmen :)
Da steht es nun :)
Ich habe den Anfang im Wikiartikel  (https://wiki.fhem.de/wiki/Text2Speech#Allgemein)etwas umgestellt und das Thema sudoers (https://wiki.fhem.de/wiki/FHEM_mit_sudo) ausgelagert. So kann man das an andere Stelle einfach mal verlinken.
Vielleicht schaut es sich der Eine oder Andere mal an und sagt wenn was nicht ok ist.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Schlimbo am 15 Juli 2019, 21:13:59
Hallo Tobias,
werden die untenstehenden Abhängigkeit im aktuellen Modul noch benötigt? Wenn ja sollte das auch noch im Wiki ergänzt werden:
Zitat von: Tobias am 03 Mai 2019, 09:30:42
Das Wiki ist noch nicht komplett ergänzt.
Es wird Text::Iconv sowie in der nächsten Version Encode::Guess benötigt.
Wenn du die neue Amazon Polly Engine nutzen willst, kommt noch Paws und File::Homedir dazu

Bitte nachinstallieren
File::Homedir müsste jedoch File::HomeDir sein.

Zitat von: mumpitzstuff am 26 April 2019, 22:07:42
Im Wiki steht drin, dass man:

cpan paws

starten soll. Es muss aber Paws sein!
Gruß schlimbo
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 16 Juli 2019, 07:58:49
Habe im Wiki die Abhängigkeiten jetzt genauer beschrieben
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 16 Juli 2019, 21:01:06
Hallo Tobias,

Dein neuer Abschnitt im Wiki Abhängigkeiten Installationspakete hat  mich etwas verwundert, da
- mir diese Abhängigkeiten neu waren
- ich keinerlei Logeinträge dazu habe
- alles funktioniert ohne das ich eins von diesen Modulen wissentlich installiert habe.

Ich habe nachgeforscht, ein paar dieser Module habe ich irgendwie drin, die debian Pakete habe ich alle nicht. TTS mit Tante Google in einer Basis Installation funktioniert trotzdem. :D
Meine Nachforschungen haben folgendes ergeben:
IO::File Perl Core
Digest::MD5 Perl Core
URI::Escape liburi-perl wird bei debian per default installiert
Text::Iconv libtext-iconv-perl wird bei debian per default installiert
Encode::Guess Perl Core
MP3::Info libmp3-info-perl
mp3wrap mp3wrap

Stimmt das so? Wenn ja:
Sind offenbar alle Module außer der beiden MP3 Module in jeder debian Standardinstallation enthalten? Die von Dir im Wiki aufgeführten Module libdigest-perl-md5-perl libany-uri-escape-perl libtext-iconv-perl libencode-perl tragen mMn keine Funktionalität bei.
Die beiden MP3 Module braucht man erst mit MP3 Wrap? Dann sollte man es so schreiben oder mp3wrap vorsichtshalber zum Standard erklären?

Ich bin für sparsame Installation :) ich will aber da jetzt nicht in deinem Text im Wiki gleich wieder ändern, sondern wirklich ermitteln wie es ist!

Ich habe mir im Modul die sub Text2Speech_loadmodules($$) angeschaut. Ich behaupte mal die tut nichts. :-\
In der Zeile fehlt ein ganzes Stück oder nur der "; am Ende:

    } or return "Paws Module not installed. Please install, goto https


Aber auch wenn ich versuche, die sub separat auszuführen, habe ich mit meinen bescheidenen Perl Kenntnissen keinen Erfolg.
Wenn ich separat sowas wie {eval {require File}} ausführe schon, da sehe ich dann auch, dass mir was fehlt ...

Vielleicht hast mal Zeit es Dir anzuschauen.

Edit: Entschuldigung -vergiss das mit der sub, Da hat mir die Ansicht im Browser wohl einen Streich gespielt.

In der sub Text2Speech_loadmodules wird mp3wrap nicht als Voraussetzung abgefragt.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Schlimbo am 16 Juli 2019, 23:07:58
Zitat von: Tobias am 16 Juli 2019, 07:58:49
Habe im Wiki die Abhängigkeiten jetzt genauer beschrieben
Danke für die Anpassung.

Was mir noch aufgefallen ist:
Im Installationsbefehl zu den allgemeinen Abhängigkeiten hast du auch "libfile-homedir-perl" aufgenommen, weiter unten steht aber dass es nur für Amazon Polly benötigt wird, stattdessen fehlt "IO::File" im ersten Installationsbefehl.

Aus WIKI (https://wiki.fhem.de/wiki/Text2Speech#Allgemein):
ZitatAbhängigkeiten Installationspakete
Egal welche Sprachengine verwendet werden soll müssen folgende Pakete installiert sein:



  • IO::File
  • Digest::MD5
  • URI::Escape
  • Text::Iconv
  • Encode::Guess
  • MP3::Info
  • mp3wrap

sudo apt-get install libfile-homedir-perl libdigest-perl-md5-perl libany-uri-escape-perl libtext-iconv-perl libencode-perl libmp3-info-perl mp3wrap
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 18 Juli 2019, 08:16:53
ist angepasst.

mp3wrap habe ich erstmal als notwendigkeit eingetragen. Es wird aber nicht gemeckert falls es nicht installiert ist. Das Modul läuft erst dann auf einen Fehler wenn das mp3wrap Attribut gesetzt, das Tool aber nicht installiert ist. Deswegen hatte ich es nicht in die "loadmodules" mit aufgenommen.

Ich habe alle Abhängigkeiten aufgelistet, je nach Umgebung sind einige aber schon per Standard installiert. Das kommt auf das OS und Version drauf an. Deswegen habe ich sicherheitshalber (alle bis auf IO::File) in der "apt-get" Routine eingetragen.
IO::File müss überall vorhanden sein, sonst würde das fhem Log nicht funktionieren ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 19 August 2019, 07:10:11
ich würde gerne von Text2Speech Neueinsteigern wissen, ob bei Erstdefinition in FHEM ggf. fehlende Abhängigkeiten sauber als FHEM Fehlermeldung im Frontend ausgegeben werden. Ich meine nicht das Logfile sondern direkt im Frontend. Fehlen Module so sollte das TTS Device nicht angelegt werden und stattdessen eine Meldung über das fehlende Modul erscheinen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: sn0000py am 07 November 2019, 10:27:11
Hallo ich teste auch gerade mit dem TTS Modul, mein ziel ist es einen mp3 Datei zu erzeugen, da ich diese im Moment mit dem AVR ausgeben lasse.

Mein Problem ist, das zwar der TExt nun in Blöcke aufgeteilt wird und es werden so 8 mp3 Dateien im cache directory abgelegt, aber ich würde das ganze mp3 File im TTS_OutputFile benötigen.

Daher meine 2 Fragen.

Das Attribute TTS_OutputFile macht irgendwie gar nichts.
Wie kann ich ein gesamtes mp3 generieren?

defmod TTS Text2Speech none
attr TTS TTS_OutputFile /opt/fhem/icache/test.mp3
attr TTS room Status
attr TTS verbose 5

setstate TTS 2019-11-07 10:23:20 lastFilename cache/3e426ce1c4535b345c10019ddce0d6f6.mp3
setstate TTS 2019-11-07 10:23:20 playing 0

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 07 November 2019, 11:05:19
apt-get install mp3wrap

TTS_UseMP3Wrap

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: sn0000py am 07 November 2019, 11:15:42
mp3wrap is already the newest version (0.5-4).

Aber habe das Problem.

Wenn ich einen langen Text generiere dann passt alles
2019.11.07 11:13:52.195 4: TTS: MaxChar = 100, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2019.11.07 11:13:52.195 4: TTS: Auflistung der Textbausteine nach Aufbereitung:
2019.11.07 11:13:52.195 4: TTS: 0 => Und nun ein wirklich langer TExt der über die 100 Zeichen von Google gehen sollte,
2019.11.07 11:13:52.195 4: TTS: 1 => dann nur dann wird der Tedxt auf 2 mal geTTSt,
2019.11.07 11:13:52.219 4: TTS: Verwende TTS Spracheinstellung: Deutsch
2019.11.07 11:13:52.220 4: TTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 8f79f61a1c91c32fdd8c54ca8edb6da7.mp3
2019.11.07 11:13:52.220 4: TTS: Verwende Google Resource zur TTS-Generierung
2019.11.07 11:13:52.221 4: TTS: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&ie=UTF-8&q=Und%20nun%20ein%20wirklich%20langer%20TExt%20der%20%C3%BCber%20die%20100%20Zeichen%20von%20Google%20gehen%20sollte%2C
2019.11.07 11:13:52.515 4: TTS: Schreibe mp3 in die Datei cache/8f79f61a1c91c32fdd8c54ca8edb6da7.mp3 mit 27168 Bytes
2019.11.07 11:13:52.516 4: TTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: e6f45ef03d9112004a37545c86b6d79f.mp3
2019.11.07 11:13:52.516 4: TTS: Verwende Google Resource zur TTS-Generierung
2019.11.07 11:13:52.516 4: TTS: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&ie=UTF-8&q=dann%20nur%20dann%20wird%20der%20Tedxt%20auf%202%20mal%20geTTSt%2C
2019.11.07 11:13:52.750 4: TTS: Schreibe mp3 in die Datei cache/e6f45ef03d9112004a37545c86b6d79f.mp3 mit 14016 Bytes
2019.11.07 11:13:52.751 4: TTS: Bearbeite per MP3Wrap jetzt den Text: Und nun ein wirklich langer TExt der über die 100 Zeichen von Google gehen sollte, dann nur dann wird der Tedxt auf 2 mal geTTSt,
2019.11.07 11:13:52.751 4: TTS: Verwende fixen Dateinamen: /opt/fhem/icache/test.mp3
2019.11.07 11:13:52.752 4: TTS: mp3wrap /opt/fhem/icache/test.mp3 cache/8f79f61a1c91c32fdd8c54ca8edb6da7.mp3 cache/e6f45ef03d9112004a37545c86b6d79f.mp3
Mp3Wrap Version 0.5 (2003/Jan/16). See README and COPYING for more!
Written and copyrights by Matteo Trotta - <matteo.trotta@lib.unimib.it>
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!

  50 % --> Wrapping cache/8f79f61a1c91c32fdd8c54ca8edb6da7.mp3 ... OK
  100 % --> Wrapping cache/e6f45ef03d9112004a37545c86b6d79f.mp3 ... OK

  Calculating CRC, please wait... OK

/opt/fhem/icache/test_MP3WRAP.mp3 has been created successfully!
Use mp3splt to dewrap file; download at http://mp3splt.sourceforge.net!
2019.11.07 11:13:52.768 4: TTS: Benenne Datei um von </opt/fhem/icache/test_MP3WRAP.mp3> nach </opt/fhem/icache/test.mp3>
2019.11.07 11:13:52.770 4: TTS: Die ID3 Tags von /opt/fhem/icache/test.mp3 wurden geloescht
2019.11.07 11:13:52.770 3: MP3::Info Modul fehlt, konnte MP3 Tags nicht entfernen
2019.11.07 11:13:52.775 4: TTS: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.


wenn der Text aber zu kurz ist, dann kann die mp3 Datei nicht umbenannt werden

2019.11.07 11:12:16.431 4: TTS: ermittelte CodePage: ascii , konvertiere nach UTF-8
2019.11.07 11:12:16.431 4: TTS: MaxChar = 100, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2019.11.07 11:12:16.431 4: TTS: Auflistung der Textbausteine nach Aufbereitung:
2019.11.07 11:12:16.432 4: TTS: 0 => Freitag
2019.11.07 11:12:16.455 4: TTS: Verwende TTS Spracheinstellung: Deutsch
2019.11.07 11:12:16.456 4: TTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 08c99ed89ac124562b9d3042376b03d7.mp3
2019.11.07 11:12:16.456 4: TTS: Verwende Google Resource zur TTS-Generierung
2019.11.07 11:12:16.456 4: TTS: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&ie=UTF-8&q=Freitag
2019.11.07 11:12:16.607 4: TTS: Schreibe mp3 in die Datei cache/08c99ed89ac124562b9d3042376b03d7.mp3 mit 4992 Bytes
2019.11.07 11:12:16.607 4: TTS: Bearbeite per MP3Wrap jetzt den Text: Freitag
2019.11.07 11:12:16.607 4: TTS: Verwende fixen Dateinamen: /opt/fhem/icache/test.mp3
2019.11.07 11:12:16.608 4: TTS: Benenne Datei um von <cache/08c99ed89ac124562b9d3042376b03d7.mp3> nach </opt/fhem/icache/test.mp3>
2019.11.07 11:12:16.611 4: TTS: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 07 November 2019, 11:32:08
Hmm wenn das geht:

2019.11.07 11:13:52.768 4: TTS: Benenne Datei um von </opt/fhem/icache/test_MP3WRAP.mp3> nach </opt/fhem/icache/test.mp3>

und das nicht:

2019.11.07 11:12:16.608 4: TTS: Benenne Datei um von <cache/08c99ed89ac124562b9d3042376b03d7.mp3> nach </opt/fhem/icache/test.mp3>

würde ich auf irgend ein Rechteproblem tippen. Wie sind denn die Rechte von /opt/fhem/icache und /opt/fhem/cache? Gibts da Unterschiede?

Text2Speech legt den Namen der zuletzt erzeugten Datei auch in einem Internal oder Reading ab. Kannst du nicht einfach das verwenden anstatt eines konstanten Dateinamens?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: sn0000py am 07 November 2019, 12:10:20
ja habe es nun so gemacht und kopiere es mit
use File::Copy;
my $ttsFile = ReadingsVal("TTS", "lastFilename", "");
copy($ttsFile, "/opt/fhem/icache/morning.mp3");


funktioniert also - danke
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: schwatter am 18 Januar 2020, 11:58:24
Unter RaspianBuster ist mplayer nach dem letzten Update kaputt... Ich habe mich schon gewundert, das Fhem nicht mehr mit mir spricht.

mplayer: relocation error: mplayer: symbol av_alloc_vdpaucontext version LIBAVCODEC_58 not defined in file libavcodec.so.58

Hier ein paar Infos:
https://www.raspberrypi.org/forums/viewtopic.php?t=261617

Re-build Version vom User gkreidl im Anhang. Diese einfach nach /usr/bin/ kopieren bzw. ersetzen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ingo298 am 24 Januar 2020, 10:24:28
Wollte gern auf Amazon Polly umstellen. beim Einstellen stürtzt Fhem jedoch ab. Im Log

Can't locate object method "my_home" via package "File::HomeDir" at ./FHEM/98_Text2Speech.pm line 326

das Modul "File::HimeDir" ist bereits in der neusten Version installiert.

pi@raspberrypi:~ $ sudo apt-get install libfile-homedir-perl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
libfile-homedir-perl ist schon die neueste Version (1.004-1).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.


was mache ich falsch ??
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: rakete123 am 25 Februar 2020, 20:33:14
Hab das selbe Problem wie Ingo298
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 04 März 2020, 14:26:36
Hi,
ich hab mal geschaut auf https://metacpan.org/pod/File::HomeDir
Zitat:
Zitatmy_home

The my_home method takes no arguments and returns the main home/profile directory for the current user.
If the distinction is important to you, the term "current" refers to the real user, and not the effective user.
This is also the case for all of the other "my" methods.
Returns the directory path as a string, undef if the current user does not have a home directory, or dies on error.

Eventuell ist für euren FHEM USer das Homedir nicht eingestellt? Dort müssen dann auch die AWS credentials liegen
if (! -e File::HomeDir->my_home."/.aws/credentials"){
      return "No AWS credentials in FHEM Homedir found, please check ".File::HomeDir->my_home."/.aws/credentials <br> please refer https://metacpan.org/pod/Paws#AUTHENTICATION";
    }
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ingo298 am 05 März 2020, 10:41:25
wenn ich in der Befehlszeile von FHEM
{qx(echo ~fhem)} eingebe

kommt  /opt/fhem  sollte also daran nicht liegen

bei
{my $key;;foreach $key (keys %ENV) { printf "$key = $ENV{$key}\n"   }}

kommt im LOG
INVOCATION_ID = xxxxxxxx
LANGUAGE = de_DE
PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
LANG = de_DE.UTF-8
JOURNAL_STREAM = 8:979760
USER = fhem
HOME = /opt/fhem
LOGNAME = fhem
PERL_LWP_SSL_VERIFY_HOSTNAME = 0



Titel: Antw:Neues Modul: Text2Speech
Beitrag von: rakete123 am 08 März 2020, 14:27:23
Am 26. Mai letztes Jahr haben auch zwei andere User von dem Problem berichtet. Siehe Seite 70.
Als user fhem funktioniert das hier problemlos:

use File::HomeDir;
$home     = File::HomeDir->my_home;
print $home;


Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ingo298 am 09 März 2020, 13:41:58
use File::HomeDir;
$home     = File::HomeDir->my_home;
print $home;


wo gehören diese Zeilen hin ?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: rakete123 am 11 März 2020, 22:02:09
Hab den use File::HomeDir; jetzt mal oben ins Module reingeschrieben. Damit geht es... Versteh ich aktuell irgendwie nicht wirklich.
Sonst noch jemand eine Idee? :D
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Phiolin am 02 April 2020, 20:12:24
Dasselbe bei mir. Hab das auch einfach mal im Modul per use hinzugefügt. Das scheint auch zu funktionieren, allerdings stürzt seitdem mein FHEM relativ regelmäßig kurz nach dem Start ohne sichtbare Fehlermeldung ab. Das kann jetzt natürlich auch Zufall sein, allerdings stürzte FHEM vorher praktisch NIE ab, von daher schon merkwürdig.
Hab das jetzt wieder rückgängig gemacht und seitdem läuft FHEM auch wieder ordentlich... irgendwas stimmt da wohl nicht.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stoxx am 12 April 2020, 17:45:33
Scheint kein Zufall zu sein - bei mir genau das gleiche Verhalten: Als ich das erste mal Polly im TTS Modul aktiviert hatte startete mein FHEM nach einem shutdown restart nicht mehr. Erst, als ich die Zeilen
Zitatuse File::HomeDir;
$home     = File::HomeDir->my_home;
print $home;

im Modul ergänzt habe, startet FHEM wieder. Dies aber auch nicht zuverlässig.
Vielleicht hat ja jemand eine Idee, woran das liegen könnte. Der Polly-Modus klappt im TTS Modul also aktuell nur sehr bedingt.
vg
stoxx76
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: bern69 am 29 April 2020, 14:37:30
Nach langer Suche habe ich herausgefunden, weshalb der Sound von TTS stets auf dem lokalen Lautsprecher (bzw. HDMI) statt auf dem Bluetooth-Lautsprecher zu hören war.

Die Lösung war dann sehr einfach: Statt "hw=0.0" einfach "default" eingeben :-).
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Von-XS1-Nach-FHEM am 08 Mai 2020, 16:16:18
Ich arbeite schon Jahren mit TTS Programmierung mit viel erfolg.

Habe aber leider kein tiefe Kenntnis von das FHEM systeem aber vielleicht konnte jemanden mich ein Tip geben in die richtige Richtung.

Ich habe nämlich zwei Probleme die ich nicht gelost bekomme auch nicht durch es durchforschen von das forum.

1) TTS aussprachen bsw bestehende gespeicherte MP3 Dateien werden verzögert ausgegeben von MYTTS , Ich lese das auch im forum das mann da Abhilfe geschaft hast aber ich verstehe es nicht wie ich das umsetzen kann mit der info im forum.


2) Sprach ausgaben sollten meine Radio stream stoppen oder mixen mit dem radio stream beide bekomme ich aber nicht reibungslos hin.  das habe ich bis jetzt gemacht auf diese weiße: Zusatzfunktion Radiowiedergabe bei Text to Speech- Meldungen unterbrechen (zu finden:https://wiki.fhem.de/wiki/Modul_StreamRadio_Einrichtungshilfe (https://wiki.fhem.de/wiki/Modul_StreamRadio_Einrichtungshilfe)

[table]
[tr]
[td]# Bei TTS- Meldung Radio unterbrechen, Lautstärke hochfahren,
# nach Ansage Radio wieder einschalten, Lautstärke auf alten Wert fahren.
define Func_VolAut_N notify myTTS { \
\
  my $Radio = (Value("SRadio"));;\
  my $Station = ReadingsVal("SRadio", "StreamURL", "");;\
  my $Old_Vol = (OldValue("Dum_Volume_D"));;\
\
  if ($Radio eq "playing") { \
        fhem("set SRadio STOP ;; set Dum_Volume_D 99");;\
        fhem("define Radio_Comeback_A at +00:00:10 set SRadio PLAY $Station;;;; set Dum_Volume_D $Old_Vol");;\
  } \
  if ($Radio eq "stopped") { \
        fhem("set Dum_Volume_D 99");;\
    fhem("define Vol_Res_A at +00:00:10 set Dum_Volume_D $Old_Vol");;\
  } \
}
attr Func_VolAut_N room Radio[/td]
[/tr]
[/table]




Das problem ist hier das zwei audio dateien nicht gleichzeitig zu hören sind oder bei dem link wie ich das jetzt gelöst habe das die Sprachausgaben länger sind wie die feste Einstellung und dies von der zeit lange nicht hilfreich ist. Hat jemanden da noch andere Vorschlag wie ich das machen kann?

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: td am 11 Mai 2020, 11:37:47
Hallo Von-XS1-Nach-FHEM,

zu dem zweiten Punkt kann ich leider nichts sagen, aber das Problem unter eins hatte ich auch; bei mir wurde der Text mit bis zu 20 s Verzögerung ausgegeben. Ein Debugging ergab, das mplayer die Ursache war (jahrelang funktionierte es damit problemlos, es muß wohl durch ein mplayer-Update entstanden sein.
Ich bin daher auf einen anderen player ausgewichen:
attr <tts-device> TTS_MplayerCall AUDIODEV={device} /usr/bin/play -q -v $(({volume}*{volumeadjust}/10000)).$(({volume}*{volumeadjust}%10000)) {file} -t alsa
Damit funktioniert es (wieder) einwandfrei.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 11 Mai 2020, 18:26:42
Für den MPlayer gibt es aber ein Perl-Interface. Mit dem steuere ich das Ding, geht wunderbar.



use Audio::Play::MPlayer;
...
#############################################################################
#
#  MPlayer routines
#
#############################################################################


sub mplay_loadlist{
  my ($self,$list) = @_;
  $self->command( qq{loadlist "$list"} );
  $self->{state} = 1;
  $playstate = 1;
}

sub mplay_loadfile{
  my ($self,$file) = @_;
  $self->command( qq{loadfile "$file"} );
  $self->{state} = 1;
  $playstate = 1;
}

sub mplay_stop{
  my ($self) = @_;
  $self->command( 'quit' )
    if(defined($self));
  $playstate = 0;
  undef $self;
}

sub mplay_forward{
  my ($self) = @_;
  $self->command( qq{pt_step 1} )
    if(defined($self));
}

sub mplay_back{
  my ($self) = @_;
  $self->command( qq{pt_step -1} )
    if(defined($self));
}

sub mplay_poller{
  my ($self) = @_;
  #-- check if playdev is RpiAudio.DG or RpiAudio.Meson
  my $playdev = ( ReadingsVal("RpiAudio.DG","state",undef) )?"RpiAudio.DG":"RpiAudio.Meson";
  if( defined($self) && (ReadingsVal($playdev,"state","") ne "off") ){
    $self->poll(0);
    if( $self->state != 0 ){
      my ($trk,$art,$ret194,$ret90);
      if( ReadingsVal($playdev,"origin","") !~ /SWR/ ){
        $trk = $self->title;
        $art = $self->artist;
        $ret194 = "playing <i>".$trk."</i><br>by <i>".$art."</i>";
        $ret90  = "<i>".$trk."</i><br>von <i>".$art."</i>";
      }else{
        $ret194 = "playing <i>SWR3</i><br>";
        $ret90  = "<i>SWR3</i>";
      }
      fhem("setreading $playdev playinfo $ret194");
      fhem("setreading $playdev playinfo2 $ret90");
      $playstate = 1;
      InternalTimer(time()+5, "mplay_poller", $self,0);
    }elsif( ($self->state == 0) && ($playstate == 1) ){
      $playstate = 0;
      InternalTimer(time()+2, "mplay_poller", $self,0);
    }else{
      Log 1,"state=0";
      mplay_stop($self);
      fhem("set $playdev off");
      fhem("setreading $playdev playinfo stopped");
      fhem("setreading $playdev playinfo2 stopped");
    }
  }else{
  }
}


LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Von-XS1-Nach-FHEM am 11 Mai 2020, 19:12:51
Danke td !
Das ist doch schon mal ein besserer Anfang für mich.
Aber da habe ich noch Probleme mit dem Volume das denn viel zu leise ist?

Wie verhalt sich das hier zu einander in meine Attributes mit dem code in Mplayercall? Was muss ich andern in dem code beim Mplayercall damit das volume lauter wird? Sollte ich dann TTS_VolumeAdjust entfernen oder die wert andern?



Attributes
TTS_MplayerCall AUDIODEV={device} /usr/bin/play -q -v $(({volume}*{volumeadjust}/10000)).$(({volume}*{volumeadjust}%10000)) {file} -t alsa
TTS_Ressource Google
TTS_UseMP3Wrap 1
TTS_VolumeAdjust 3200


ZitatFür den MPlayer gibt es aber ein Perl-Interface. Mit dem steuere ich das Ding, geht wunderbar.

Wow das ware auch toll zu benutzen wenn ich Halt fündig wurde wie ich Das benutzen soll? Gibt es da eine Erklärung wie ich das einbauen kann statt was ich jetzt habe? Ist diese code schon ein teil meine FHEM software oder soll ich die irgendwo einfügen? Ich kenne mich da leider noch nicht so aus  :o

LG WH
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 11 Mai 2020, 19:34:13
Gib doch bitte mal ein komplettes list.

@pah mplayer läuft auf einigen Systemen einfach mit ätzender Startverzögerung. Da dürfte ein Aufruf aus Perl heraus nichts ändern.

VolumAdjust 3200 klingt irgendwie komisch, leider ist der Parameter nicht in der Doku.  :-[
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Von-XS1-Nach-FHEM am 11 Mai 2020, 19:51:37
Was meinst du mit eine komplettes list?

Das hier zum beispiel?

Zitat
2020.05.11 19:42:42 4: MyTTS: MaxChar = 100, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2020.05.11 19:42:42 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2020.05.11 19:42:42 4: MyTTS: 0 => Hallo da höre ich nichts
2020.05.11 19:42:43 4: MyTTS: Verwende TTS Spracheinstellung: Deutsch
2020.05.11 19:42:43 4: MyTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 087d7e5197bed09789d1ff0760fe6cf7.mp3
2020.05.11 19:42:43 4: MyTTS: Verwende Google Resource zur TTS-Generierung
2020.05.11 19:42:43 4: MyTTS: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&ie=UTF-8&q=Hallo%20da%20h%C3%B6re%20ich%20nichts
2020.05.11 19:42:43 4: MyTTS: Schreibe mp3 in die Datei cache/087d7e5197bed09789d1ff0760fe6cf7.mp3 mit 9120 Bytes
2020.05.11 19:42:43 4: MyTTS: Bearbeite per MP3Wrap jetzt den Text: Hallo da höre ich nichts
2020.05.11 19:42:43 4: MyTTS: cache/087d7e5197bed09789d1ff0760fe6cf7.mp3 hat eine Länge von 2 Sekunden.
2020.05.11 19:42:43 4: MyTTS: AUDIODEV=hw=1.0 /usr/bin/play -q -v $((100*10000/10000)).$((100*10000%10000)) cache/087d7e5197bed09789d1ff0760fe6cf7.mp3 -t alsa >/dev/null
2020.05.11 19:42:44 3: define Vol_Res_B at +00:00:21 set Dum_Volume_D 40 : Vol_Res_B already defined, delete it first
2020.05.11 19:42:44 3: Func_VolAut_N return value: Vol_Res_B already defined, delete it first
2020.05.11 19:42:44 3: FS20 set Kelder_Stem on-for-timer 40
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM hw=1.0
/usr/bin/play FAIL formats: can't open output file `hw=1.0': snd_pcm_open error: No such file or directory
Zitat
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: td am 11 Mai 2020, 19:53:30
Hier einmal meine vollständige Definition:
defmod wstts Text2Speech hw:1,0
attr wstts TTS_CacheFileDir /opt/fhem/cache
attr wstts TTS_FileTemplateDir /opt/fhem/cache/templates
attr wstts TTS_MplayerCall AUDIODEV={device} /usr/bin/play -q -v $(({volume}*{volumeadjust}/10000)).$(({volume}*{volumeadjust}%10000)) {file} -t alsa
attr wstts TTS_UseMP3Wrap 1
attr wstts TTS_VolumeAdjust 100
attr wstts verbose 4

setstate wstts 2020-05-11 18:44:57 duration 3
setstate wstts 2020-05-11 18:44:57 endTime 00:00:00
setstate wstts 2020-05-11 18:45:00 lastFilename /opt/fhem/cache/f92b45a9232ee8761f72711774c44b28.mp3
setstate wstts 2020-05-11 18:45:00 playing 0


Damit habe ich eine befriedigende Lautstärke. Evtl. musst du die Lautstärke für Dein Sound-Device auch einmal manuell (z. B. per alsa-mixer) einstellen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 11 Mai 2020, 20:03:02
list MyTTSmeinte ich  :-[ https://forum.fhem.de/index.php/topic,71806.0.html

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Von-XS1-Nach-FHEM am 11 Mai 2020, 20:15:18
Aha da habe ich wieder was gelernt  ::)

Ich war schon ein paar Jahr nicht aktiv hier in forum aber die info ist sehr hilfreich danke  8)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Von-XS1-Nach-FHEM am 11 Mai 2020, 20:19:20
Danke td jetzt habe ich festgestellt das
DEF hw=1.0 bei dir hw:1,0 ist.

Das hat der Fehler behoben.

Ich verstehe aber nicht wieso hw=1.0 jetzt hier auf einmal nicht mehr (benutze dies schon Jahren) geht aber wie auch immer es funktioniert jetzt danke!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 11 Mai 2020, 20:28:18
Weil der syntax dafür bei mplayer und play unterschiedlich ist  :-X
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Von-XS1-Nach-FHEM am 11 Mai 2020, 21:14:28
Aha das erklärt doch wieder alles. Das ist dann wieder ein Nachteil wenn mann kein Profi ist dann verpasst mann solche sachen.

Dann noch ein andere frage.

Nachdem Ich eine update durchgeführt habe funktioniert MyTTS nur noch separat wenn ich keine andere Audiodateien laufend habe in FHEM.

Im Vergangenheit konnte während mann seine audio stream laufen hat auf StreamRadio  - MYTTS Meldungen hören als zweite input durch dem livestream. Jetzt geht das bei mir nicht mehr und muss mann erst dem livestream stoppen damit der audio Ausgabe von MyTTS dann gesendet werden kann und abzuhören ist.

Hat jemanden da nich ein 💡 wie ich das wiederherstellen kann damit mann Livestream jnd MyTTS meldungen wieder gleichzeitig hören kannst?

LG
Wh
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: pjakobs am 23 Juli 2020, 21:41:16
ich hab mal einen (vorerst noch hässlichen) Hack eingebaut, um das ganze besser mit ESpeak harmonieren zu lassen.

170d169
<                        " TTS_EspeakParameters".
375,376d373
<   } elsif ($a[2] eq "TTS_EspeakParameters"){
<         return "This Attribute is only available with TTS_Ressource *ESpeak*"  if(AttrVal($hash->{NAME},"TTS_Ressource","")ne "ESpeak");
588,589d584
<   my $TTS_EspeakParameters=AttrVal($hash->{NAME}, "TTS_EspeakParameters", "");
<
669a665
>   @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, ",", 0, "al");
670a667
>   @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, "und", 0, "af");
673,675d669
<   if ($TTS_Ressource ne "ESpeak"){
<   @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, "und", 0, "af");
<   @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, ",", 0, "al");
677c671
< }
---
>
901,904c895
<
<     my $TTS_EspeakParameters=AttrVal($hash->{NAME}, "TTS_EspeakParameters", "");
<     $cmd = "sudo espeak ".$TTS_EspeakParameters."  \"" . $text . "\" -w \"" . $FileWav . "\"";
<     
---
>     $cmd = "sudo espeak -vde+f3 -k5 -s150 \"" . $text . "\" -w \"" . $FileWav . "\"";


Eigentlich sind das zwei Hacks:

1. die Einführung des Attributs TTS_EspeakParameters - die werden einfach ohne Änderung in die ESpeak Kommandozeile übernommen. Damit lassen sich z.B. die deutlich besseren MBROLA voices verwenden (-v mb-de2 etwa)

2. und das ist gerade noch ganz hässlich, ist das Ergebnis mit Espeak wesentlich besser, wenn die Sätze nicht zerlegt, sondern als ganzes gesprochen werden. Vorteilhaft ist da, dass ESpeak keine, oder keine zu enge, Zeichenbegrenzung hat. Ich habe nur auf die Schnelle ein paar der SplitStrings für TTS_Ressource=ESpeak übersprungen - nicht schön, aber nützlich.

Grüße

pj
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Von-XS1-Nach-FHEM am 30 Januar 2021, 14:22:44
Hallo,

Ich mochte gerne eine Verzögerung einstellen mit dieses Modul damit ich einige Sekunden zeit bekomme die Stereoanlage ein zu schalten wenn sich ein Aktor meldet.

Ich habe da TTS_TimeOut gefunden; aber was ich da auch eingebe es bringt mir nicht die Ausgabe Verzögerung von dieses Modul. Die text wird gleich ausgegeben.

Was mache ich da falsch oder wofür ist TTS_TimeOut ? ich konnte da keine weitere info finden leider.





Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 30 Januar 2021, 14:33:38
Hi,

ich weiß auch nicht was TTS_TimeOut macht, es gibt keine Doku darüber.
Aber klingt auch nicht nach Verzögerung :)

Ich denke was Du willst macht das Modul selbst nicht, das muss Du da machen wo die Ausgabe angestossen wird. Was bedeutet bei Dir " wenn sich ein Aktor meldet "?

Gruß otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 01 Februar 2021, 17:14:47
TTS_TimeOut, gibt an nach welcher Zeit eine Ansage abgebrochen wird, default ist 30s.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Von-XS1-Nach-FHEM am 01 Februar 2021, 19:14:22
Ok danke, mit Aktor meine ich ein Sensor zum Beispiel vom Türklingel die dann die Stimme und Stereoanlage anschaltet. Da da Text2speech schneller ist als meine Stereoanlage mit anschalten haben ich das jetzt hinbekommen durch folgendes einzugeben bei Attributes , TTS_MplayerCall

sleep 3; AUDIODEV={device} /usr/bin/play -q -v $(({volume}*{volumeadjust}/10000)).$(({volume}*{volumeadjust}%10000)) {file} -t alsa

Ob das richtig ist weiß ich nicht aber es bringt mir die gewünschte Verzögerung von der Ausgabe. 8)

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 01 Februar 2021, 19:56:57
kann man so machen.  ;)

Ich hätte es bei notify (oder was immer) was den Befehl anstößt gemacht.

BTW Aktor und Sensor sind getrennte Dinge: ein Sensor ermittelt - ein Aktor führt aus. Du hast jetzt scheinbar beides im Spiel  ;D
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PNinBB am 07 März 2021, 10:02:16
Guten Morgen,
Ich habe gestern 'Text2Speech' installiert und nach einigen kleinen Problemchen läuft es auch wie erwartet.
Nun bin ich gerade - mehr zufällig und unabsichtlich - auf die Schaltfläche 'Set ... tts' gekommen und das Eingabefeld für den Text war leer.
Ergebnis: FHEM stürzt ab; Meldung im Logfile:

Can't locate object method "name" via package "Empty string, empty guess" (perhaps you forgot to load "Empty string, empty guess"?) at ./FHEM/98_Text2Speech.pm line 610.

Zugegeben, es ist nicht die normale Betriebsweise, aber vielleicht hilft diese Erfahrung, es noch stabiler zu machen.
Mit gefülltem Eingabefeld funktioniert es natürlich.
Die Module, die in https://wiki.fhem.de/wiki/Text2Speech (https://wiki.fhem.de/wiki/Text2Speech) aufgeführt sind, sind installiert und auf dem neuesten Stand.
Aber auf jeden Fall: Danke an die 'Macher'!
Peter
Ergänzung:
Mit 'verbose 5' für diesen Fall kommen keinerlei weitere Einträge !
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PNinBB am 11 März 2021, 09:12:27
Guten Morgen,
ich bin mir nicht sicher, ob der Thread noch "lebt"!
Ich habe nun die Sprachausgabe weiter ausgebaut und mit anderen Abläufen verbunden.
Dabei sind mir zwei Probleme aufgefallen:
1. Fehlermeldung: MP3::Info - Module
2021.03.11 08:30:05.400 3: MP3::Info Modul fehlt, konnte MP3 Tags nicht entfernen
Der Meldungstext stimmt so nicht, da der MP3::Info-Modul installiert ist. Ich habe mich etwas im Modul 98_Text2Speech.pm umgeschaut. Ab Zeile 1061 heisst es da:

      if(-e $t){
        Log3 $hash->{NAME}, 4, $hash->{NAME}.": Benenne Datei um von <".$t."> nach <".$Mp3WrapFile.">";
        rename($t, $Mp3WrapFile);
        #falls die Datei existiert den ID3V1 und ID3V2 Tag entfernen
        eval{
          remove_mp3tag($Mp3WrapFile, 2);
          remove_mp3tag($Mp3WrapFile, 1);
          Log3 $hash, 4, $hash->{NAME}.": Die ID3 Tags von $Mp3WrapFile wurden geloescht";
        } or Log3 $hash->{NAME}, 3, "MP3::Info Modul fehlt, konnte MP3 Tags nicht entfernen";
      } else {Log3 $hash->{NAME}, 3, $hash->{NAME}.": MP3WRAP Fehler!, Datei wurde nicht generiert.";}

Die Funktion 'remove_mp3tag()' liefert für IDV3V1 '460' und für IDV3V2 '-1', also kein Tag entfernt, zurück. Die Schlussfolgerung, dass somit der Modul nicht installiert ist, ist falsch. Das dürfte wohl insgesamt kein Problem sein.
2. Keine saubere Trennung seitens 'Text2Speech' beim Füllen der 'tts'-Zeichenkette in einem Perl-Programm zwischen ASCII-Zeichenkette und mp3.Datei, vor allem, wenn man einen Mix hat.
So wird beispielsweise:
fhem ("set SprachAusgabe tts :DieHeizungIn.mp3::$Raum.mp3::GehtAuf.mp3:$TempWert:GradCelsius.mp3:");
manchmal fehlerfrei und manchmal einfach vorgelesen, also als 'plain'-Text interpretiert mit 'Doppelpunkt etc.!
Mit verbose=5 erkennt man, dass die Erkennung fehlerbehaftet ist.

.....
2021.03.09 10:02:38.157 4: SprachAusgabe: Angabe einer direkten MP3-Datei gefunden:  DieHeizungIn.mp3 => FileTpl_#0_0
2021.03.09 10:02:38.157 4: SprachAusgabe: Angabe einer direkten MP3-Datei gefunden:  GradCelsius.mp3 => FileTpl_#0_1
2021.03.09 10:02:38.158 4: SprachAusgabe: MaxChar = 100, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2021.03.09 10:02:38.158 4: SprachAusgabe: Auflistung der Textbausteine nach Aufbereitung:
2021.03.09 10:02:38.158 4: SprachAusgabe: 0 => TTSFiles/DieHeizungIn.mp3
2021.03.09 10:02:38.158 4: SprachAusgabe: 1 => GehtAuf.mp3
2021.03.09 10:02:38.159 4: SprachAusgabe: 2 => 21
2021.03.09 10:02:38.159 4: SprachAusgabe: 3 => FileTpl_#0_1:
2021.03.09 10:02:38.317 4: SprachAusgabe: Verwende TTS Spracheinstellung: Deutsch
2021.03.09 10:02:38.318 4: SprachAusgabe: TTSFiles/DieHeizungIn.mp3 als direkte MP3 Datei erkannt!
2021.03.09 10:02:38.318 4: SprachAusgabe: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: cf821dc257bd0d74cf1e55c430fa316f.mp3
2021.03.09 10:02:38.318 4: SprachAusgabe: Verwende Google Resource zur TTS-Generierung
....

Es zeigt sich, dass
1. die Datei 'DieHeizungIn.mp3' richtig erkannt und auch ausgegeben wird.
2. die Datei 'GradCelsius.mp3' nicht als mp3-Datei erkannt wird.
Zusatzbemerkung: die mp3-Dateien sind ausnahmslos mit dem Modul selbst (und natürlich dem Google-Hintergrund) aufgenommen worden.
Für ein paar Hilfen zum Weiterkommen wäre ich sehr dankbar.
Peter
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 11 März 2021, 09:57:18
Natürlich lebt der Thread noch. Allerdings hat das Modul in der Tat ein paar Mängel - ich habe inzwischen eine komplette Überarbeitung am Laufen, die allerdings noch nicht reif zur Verteilung ist.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PNinBB am 11 März 2021, 16:27:40
Danke ! Ich habe Geduld.
Falls ich irgendwann mit testen kann, gern!
Peter
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 24 März 2021, 11:06:41
Hi,
das Modul entwickle ich immer in meinem Github, bin deswegen auch für kleiner Patches als Fehlerbehebungen offen :)

Ich habe es nicht sooo exxessiv im Einsatz wie manch andere hier, deswegen beobachte ich auch nicht alles ;)

Am besten Fehler hier posten und als im Github Issue einstellen, noch besser gleich mit PullRequest ;)
https://github.com/tobiasfaust/MyFHEM
Titel: New Module: Text2Speech
Beitrag von: mgmino am 29 März 2021, 03:56:20
I am not able to get the module to perform. I may have a more fundamental beginner problem. Here is the log:
2021.03.28 21:28:26 1: PERL WARNING: Use of uninitialized value within %ttsAPIKey in numeric gt (>) at ./FHEM/98_Text2Speech.pm line 505.
2021.03.28 21:28:26 1: PERL WARNING: Use of uninitialized value within %ttsUser in numeric gt (>) at ./FHEM/98_Text2Speech.pm line 506.


2021.03.28 21:30:55 4: Txt2Talk: ermittelte CodePage: ascii , konvertiere nach UTF-8
2021.03.28 21:30:55 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 661.
2021.03.28 21:30:55 4: Txt2Talk: MaxChar = , Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2021.03.28 21:30:55 1: PERL WARNING: Use of uninitialized value $MaxChar in numeric le (<=) at ./FHEM/98_Text2Speech.pm line 709.
2021.03.28 21:30:55 1: PERL WARNING: Use of uninitialized value $MaxChar in numeric le (<=) at ./FHEM/98_Text2Speech.pm line 725.
2021.03.28 21:30:55 4: Txt2Talk: Auflistung der Textbausteine nach Aufbereitung:
2021.03.28 21:30:55 4: Txt2Talk: 0 => Hello
2021.03.28 21:30:55 4: Txt2Talk: 1 => World
2021.03.28 21:30:55 4: Txt2Talk: Verwende TTS Spracheinstellung: English-US
2021.03.28 21:30:55 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 996.
2021.03.28 21:30:55 4: Txt2Talk: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 2504345dd27296d1fee09dd85e7d89db.mp3
2021.03.28 21:30:55 4: Txt2Talk: Verwende ESpeak Resource zur TTS-Generierung
2021.03.28 21:30:55 4: Txt2Talk:sudo espeak -vde+f3 -k5 -s150 "Hello" -w "cache/2504345dd27296d1fee09dd85e7d89db.mp3.wav"
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
2021.03.28 21:30:55 4: Txt2Talk:lame "cache/2504345dd27296d1fee09dd85e7d89db.mp3.wav" "cache/2504345dd27296d1fee09dd85e7d89db.mp3"
System error.
Could not open sound file "cache/2504345dd27296d1fee09dd85e7d89db.mp3.wav".
Could not find "cache/2504345dd27296d1fee09dd85e7d89db.mp3.wav".
Can't init infile 'cache/2504345dd27296d1fee09dd85e7d89db.mp3.wav'
2021.03.28 21:30:55 4: Txt2Talk: Bearbeite jetzt den Text: Hello
2021.03.28 21:30:55 4: Txt2Talk: Verwende ESpeak Resource zur TTS-Generierung
2021.03.28 21:30:55 4: Txt2Talk:sudo espeak -vde+f3 -k5 -s150 "Hello" -w "cache/2504345dd27296d1fee09dd85e7d89db.mp3.wav"
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
2021.03.28 21:30:55 4: Txt2Talk:lame "cache/2504345dd27296d1fee09dd85e7d89db.mp3.wav" "cache/2504345dd27296d1fee09dd85e7d89db.mp3"
System error.
Could not open sound file "cache/2504345dd27296d1fee09dd85e7d89db.mp3.wav".
Could not find "cache/2504345dd27296d1fee09dd85e7d89db.mp3.wav".
Can't init infile 'cache/2504345dd27296d1fee09dd85e7d89db.mp3.wav'
2021.03.28 21:30:55 4: Txt2Talk: Es wurde nur ein Teil ausgegeben und weitere Teile folgen!
2021.03.28 21:30:55 4: Txt2Talk: Verwende TTS Spracheinstellung: English-US
2021.03.28 21:30:55 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 996.
2021.03.28 21:30:55 3: eval: {Text2Speech_Done('Txt2Talk|1|cache/2504345dd27296d1fee09dd85e7d89db.mp3')}
2021.03.28 21:30:55 4: Txt2Talk: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 9e5361ec6eaee7c10b86f9b5d3e82253.mp3
2021.03.28 21:30:55 4: Txt2Talk: Verwende ESpeak Resource zur TTS-Generierung
2021.03.28 21:30:55 4: Txt2Talk:sudo espeak -vde+f3 -k5 -s150 "World" -w "cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3.wav"
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
2021.03.28 21:30:55 4: Txt2Talk:lame "cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3.wav" "cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3"
System error.
Could not open sound file "cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3.wav".
Could not find "cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3.wav".
Can't init infile 'cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3.wav'
2021.03.28 21:30:55 4: Txt2Talk: Bearbeite jetzt den Text: World
2021.03.28 21:30:55 4: Txt2Talk: Verwende ESpeak Resource zur TTS-Generierung
2021.03.28 21:30:55 4: Txt2Talk:sudo espeak -vde+f3 -k5 -s150 "World" -w "cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3.wav"
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
2021.03.28 21:30:55 4: Txt2Talk:lame "cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3.wav" "cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3"
System error.
Could not open sound file "cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3.wav".
Could not find "cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3.wav".
Can't init infile 'cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3.wav'
2021.03.28 21:30:55 4: Txt2Talk: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 29 März 2021, 09:06:25
Zitatsudo espeak
It seems, that you will use the espeak and the Modul is'nt properly configured.
Could you provide the output from:
list Txt2Talk
without any personal informations like Keys and passwords ...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: pldemon am 29 März 2021, 11:17:06
Zitat von: PNinBB am 07 März 2021, 10:02:16
Guten Morgen,
Ich habe gestern 'Text2Speech' installiert und nach einigen kleinen Problemchen läuft es auch wie erwartet.
Nun bin ich gerade - mehr zufällig und unabsichtlich - auf die Schaltfläche 'Set ... tts' gekommen und das Eingabefeld für den Text war leer.
Ergebnis: FHEM stürzt ab; Meldung im Logfile:

Can't locate object method "name" via package "Empty string, empty guess" (perhaps you forgot to load "Empty string, empty guess"?) at ./FHEM/98_Text2Speech.pm line 610.

Zugegeben, es ist nicht die normale Betriebsweise, aber vielleicht hilft diese Erfahrung, es noch stabiler zu machen.
Mit gefülltem Eingabefeld funktioniert es natürlich.
Die Module, die in https://wiki.fhem.de/wiki/Text2Speech (https://wiki.fhem.de/wiki/Text2Speech) aufgeführt sind, sind installiert und auf dem neuesten Stand.
Aber auf jeden Fall: Danke an die 'Macher'!
Peter
Ergänzung:
Mit 'verbose 5' für diesen Fall kommen keinerlei weitere Einträge !

Hallo,

siehe: https://forum.fhem.de/index.php/topic,119236.msg1136542.html
bzw: https://forum.fhem.de/index.php/topic,119272.msg1136988.html

Cheers,
Mirko
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mgmino am 29 März 2021, 18:18:41
I can run espeak and mplayer from the Ubuntu command line successfully. Neither command will run within fhem e.g. "espeak 'Hello World' ". I am inclined to wrap this espeak function in a separate script and call it via httpmod. If I can help debug the module I will continue to provide feedback. The results of the list command:

Internals:
   ALSADEVICE default
   CFGFN     
   DEF        default
   FUUID      60610c0d-f33f-13e5-b8c8-e5a87fea45154293
   MODE       DIRECT
   NAME       Txt2Talk
   NR         44
   STATE      Initialized
   TYPE       Text2Speech
   VOLUME     100
   READINGS:
     2021-03-28 21:26:30   duration        1
     2021-03-28 21:26:30   endTime         00:00:00
     2021-03-28 22:17:52   lastFilename    cache/9142fd5238e818e089933765eb6be41e.mp3
     2021-03-28 22:17:52   playing         0
   helper:
     Text2Speech:
Attributes:
   TTS_Language English-US
   TTS_MplayerCall /usr/bin/mplayer
   TTS_Ressource ESpeak
   room       admin
   verbose    4
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 29 März 2021, 19:48:48
Sorry I am not familiar with espeak.
But some basics:
You have tried with "standard" google voice?
fhem is member of audio?
test FHEM commandline
{qx(groups fhem)}
set the group
sudo gpasswd -a fhem audio
If you want to make a simple test of google voice: delete this attribute
   TTS_Ressource ESpeak
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mgmino am 30 März 2021, 06:26:38
Thank you Otto123  :) Works great with Google Voice!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Phiolin am 25 Mai 2021, 09:50:49
Zitat von: Ingo298 am 24 Januar 2020, 10:24:28
Wollte gern auf Amazon Polly umstellen. beim Einstellen stürtzt Fhem jedoch ab. Im Log

Can't locate object method "my_home" via package "File::HomeDir" at ./FHEM/98_Text2Speech.pm line 326

das Modul "File::HomeDir" ist bereits in der neusten Version installiert.

pi@raspberrypi:~ $ sudo apt-get install libfile-homedir-perl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
libfile-homedir-perl ist schon die neueste Version (1.004-1).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.


was mache ich falsch ??

Hat das mittlerweile mal jemand zuverlässig gelöst? Habe gerade mal wieder Polly ausprobiert und FHEM stürzt leider immer noch mit der o.g. Meldung ab.

Und ist bei noch jemandem neuerdings die Google Translate Stimme "anders"? Die haben da doch was verstellt... die neue? Stimme klingt grausam...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 25 Mai 2021, 10:35:01
Ja. Google scheint eine andere Stimme zu verwenden. Ich bekomme jetzt ein Mix aus beiden Stimmen, weil einige Textpassagen gecached werden. Hört sich irgendwie an, als ob die gute Dame 1 Flasche Wodka zuviel intus hat...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 25 Mai 2021, 11:40:35
Zitat von: Phiolin am 25 Mai 2021, 09:50:49
Hat das mittlerweile mal jemand zuverlässig gelöst? Habe gerade mal wieder Polly ausprobiert und FHEM stürzt leider immer noch mit der o.g. Meldung ab.

Und ist bei noch jemandem neuerdings die Google Translate Stimme "anders"? Die haben da doch was verstellt... die neue? Stimme klingt grausam...

Ich kann leider auch nicht sagen warum die HomeDir Lib manchmal nicht erkannt wird :(
Sinn der Sache war, das HomeDir für die AWS Installation automatisch zu erkennen.
Ich werden das Konstrukt mal komplett entfernen und stattdessen das HomeDir über ein ModulAttribut eintragen lassen.

Bis dahin lösche testweise mal die HomeDir Abfrage und trage den Korrekten Pfad manuell im Code ein.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Phiolin am 25 Mai 2021, 11:42:46
Zitat von: Tobias am 25 Mai 2021, 11:40:35
...
Bis dahin lösche testweise mal die HomeDir Abfrage und trage den Korrekten Pfad manuell im Code ein.

Jo, das hab ich gemacht und funktioniert auch. :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 26 Mai 2021, 14:44:58
Zitat von: mumpitzstuff am 25 Mai 2021, 10:35:01
Ja. Google scheint eine andere Stimme zu verwenden. Ich bekomme jetzt ein Mix aus beiden Stimmen, weil einige Textpassagen gecached werden. Hört sich irgendwie an, als ob die gute Dame 1 Flasche Wodka zuviel intus hat...
Ich habe bei mir den Cache gelöscht. Auch die jetzt neu erzeugten Ansagen verwenden die unterschiedlichen Stimmen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: P.A.Trick am 26 Mai 2021, 17:24:10
Zitat von: mumpitzstuff am 25 Mai 2021, 10:35:01
Ja. Google scheint eine andere Stimme zu verwenden. Ich bekomme jetzt ein Mix aus beiden Stimmen, weil einige Textpassagen gecached werden. Hört sich irgendwie an, als ob die gute Dame 1 Flasche Wodka zuviel intus hat...

Hehe genauso ist es. Das hört sich so schrecklich an. Gibt es eine Möglichkeit das wieder zu ändern? Ich will wieder die gute alte "Domina" Stimme haben :-)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 26 Mai 2021, 18:14:24
Mir ist aufgefallen, dass Google jetzt 200 Zeichen zulässt.

@Tobias: Würdest Du bitte %ttsMaxChar für Google auf 200 setzen?

Der Url-Aufruf wird noch über http:// durchgeführt, https:// funktioniert auch.

@ Tobias: Würdest Du das bitte auch umstellen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Phiolin am 03 Juni 2021, 22:48:29
Es gibt ein Problem, wenn ein auszugebener Text Klammern () und Doppelpunkte enthält:
Das ist leider manchmal z.B. bei der Ausgabe von Unwetterwarnungen wegen Uhrzeiten der Fall. In dem Fall stürzt FHEM dann ab.

Idealerweise sollte das vermutlich im Modul vor der Ausgabe entsprechend maskiert werden. Natürlich kann ich das theoretisch auch beim Input machen, aber das erscheint mir als weniger saubere Lösung, die vor allem dann nur Einzelfälle abdeckt.
Unmatched ( in regex; marked by <-- HERE in m/: Oberhausen ( <-- HERE 22:/ at ./FHEM/98_Text2Speech.pm line 668.

Vermutlich reicht eine einfache Maskierung im Regex mit \Q$var\E
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 10 Juni 2021, 10:17:14
Hi,
Ich habe die Abhängigkeit zum Homedir entfernt. Die maximalen Google Zeichen auf 200 erhöht und den GoogleCall auf https geändert. Bitte testet mal das Modul bitte bevor ich es ins FHEm Repo schiebe....

https://github.com/tobiasfaust/MyFHEM

@Phiolin: kann ich leider nicht nachvollziehen, ich habe diesen Text mit Google und Polly getestet und es gab kein Problem: Teste die Klammer: (Heute)

Im anhang einmal der Test mit der Klammer, und dann die heutige Wettervorhersage für Berlin. Jeweils mit Google und AWS Polly
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 12 Juni 2021, 15:59:13
Das Modul aus den Repo funktioniert bei mir.

Weiterhin gibt es die Falschhmeldung
Zitat2021.06.12 15:44:45 3: MP3::Info Modul fehlt, konnte MP3 Tags nicht entfernen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Dr_Prune am 20 Juni 2021, 08:02:32
Zitat von: Tobias am 10 Juni 2021, 10:17:14
Ich habe die Abhängigkeit zum Homedir entfernt. Die maximalen Google Zeichen auf 200 erhöht und den GoogleCall auf https geändert. Bitte testet mal das Modul bitte bevor ich es ins FHEm Repo schiebe....

https://github.com/tobiasfaust/MyFHEM

Hallo Tobias,

kann bestätigen, dass es auch hier mit den Änderungen funktioniert. Hatte vorher ebenfalls das Problem, dass Polly einen fhem-Absturz herbeiführt. Hier ist fhem nach irgendeiner alten Anleitung so eingerichtet, dass das fhem-Home-Verzeichnis auf /opt/fhem zeigt. Dort liegt auch .aws

Dank der Änderungen ist das jetzt kein Problem mehr. Vielleicht lässt sich der Code ja noch weiter so verfeinern, dass .aws entweder im Homeverzeichnis erwartet wird (für alle, die HomeDir ohne Probleme einsetzen können), oder unter /opt/fhem.

Danke jedenfalls. Die Amazon-Stimme ist viel besser als Googles neue Trantüte.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Phiolin am 20 Juni 2021, 11:19:25
Zitat von: Tobias am 10 Juni 2021, 10:17:14
Hi,
Ich habe die Abhängigkeit zum Homedir entfernt. Die maximalen Google Zeichen auf 200 erhöht und den GoogleCall auf https geändert. Bitte testet mal das Modul bitte bevor ich es ins FHEm Repo schiebe....

https://github.com/tobiasfaust/MyFHEM

@Phiolin: kann ich leider nicht nachvollziehen, ich habe diesen Text mit Google und Polly getestet und es gab kein Problem: Teste die Klammer: (Heute)

Im anhang einmal der Test mit der Klammer, und dann die heutige Wettervorhersage für Berlin. Jeweils mit Google und AWS Polly

Ich kann den Crash auch aktuell nicht nachvollziehen, trotzdem verhält es sich z.B. beim folgenden Text merkwürdig:

Test mit Uhrzeit in Klammer (20:00-21:00) (23:00)

2021.06.20 11:08:23 4: SonosTTS: ermittelte CodePage: ascii , konvertiere nach UTF-8
2021.06.20 11:08:23 4: SonosTTS: MaxChar = 200, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2021.06.20 11:08:23 4: SonosTTS: Auflistung der Textbausteine nach Aufbereitung:
2021.06.20 11:08:23 4: SonosTTS: 0 => Test mit Uhrzeit in Klammer (20
2021.06.20 11:08:23 4: SonosTTS: 1 => 00-21
2021.06.20 11:08:23 4: SonosTTS: 2 => 00) (23:00)
2021.06.20 11:08:23 4: SonosTTS: Verwende TTS Spracheinstellung: Deutsch
2021.06.20 11:08:23 4: SonosTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: f43463fb5884d76894851a98b1f3dea2.mp3
2021.06.20 11:08:23 4: SonosTTS: Verwende Google Resource zur TTS-Generierung
2021.06.20 11:08:23 4: SonosTTS: Hole URL: https://translate.google.com/translate_tts?tl=de&client=tw-ob&ie=UTF-8&q=Test%20mit%20Uhrzeit%20
in%20Klammer%20%2820
2021.06.20 11:08:23 4: SonosTTS: Schreibe mp3 in die Datei cache/f43463fb5884d76894851a98b1f3dea2.mp3 mit 16800 Bytes
2021.06.20 11:08:23 4: SonosTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: a739f7be8ca1143a13289def8d995070.mp3
2021.06.20 11:08:23 4: SonosTTS: Verwende Google Resource zur TTS-Generierung
2021.06.20 11:08:23 4: SonosTTS: Hole URL: https://translate.google.com/translate_tts?tl=de&client=tw-ob&ie=UTF-8&q=00-21
2021.06.20 11:08:23 4: SonosTTS: Schreibe mp3 in die Datei cache/a739f7be8ca1143a13289def8d995070.mp3 mit 11424 Bytes
2021.06.20 11:08:23 4: SonosTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 7e163a75871e796dd039d72781eeed60.mp3
2021.06.20 11:08:23 4: SonosTTS: Verwende Google Resource zur TTS-Generierung
2021.06.20 11:08:23 4: SonosTTS: Hole URL: https://translate.google.com/translate_tts?tl=de&client=tw-ob&ie=UTF-8&q=00%29%20%2823%3A00%29
2021.06.20 11:08:24 4: SonosTTS: Schreibe mp3 in die Datei cache/7e163a75871e796dd039d72781eeed60.mp3 mit 15840 Bytes
2021.06.20 11:08:24 4: SonosTTS: Bearbeite per MP3Wrap jetzt den Text: Test mit Uhrzeit in Klammer (20 00-21 00) (23:00)
2021.06.20 11:08:24 4: SonosTTS: mp3wrap cache/cddc193c6860205ac214f448f1bd9a6f.mp3 cache/f43463fb5884d76894851a98b1f3dea2.mp3 cache/a739f7be8ca1143a13289def8d995070.mp3 cache/7e163a75871e796dd039d72781eeed60.mp3


Hier wird der Text wegen der Doppelpunkte (die ja sonst für das Einbinden von Template-MP3s benutzt werden) in 3 Teile geschnitten.

Trotzdem habe ich bei mir Zeile 668 (bzw. im neuen Github-Modul Zeile 673) durch folgendes ersetzt:
$text[$i] =~ s/\Q:$FileTplPc[$j]:\E/$cutter$FileTplPc[$j]$cutter/g;

Durch \Q und \E sollte jegliche Regexp Interpretation in dem eingebundenen String deaktiviert werden, was an der Stelle ja auch unnötig ist. Sollte also durch welche Umstände auch immer durch das Splitten in $FileTplPc[$j] ein ungültiger Regexp String stehen, führt das an der Stelle dann zumindest nicht mehr zum Crash. Negative Begleiterscheinungen konnte ich jetzt in den letzten Wochen dadurch keine feststellen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Wetterhexe am 25 Juni 2021, 20:54:41
Zitat von: mumpitzstuff am 25 Mai 2021, 10:35:01
Ja. Google scheint eine andere Stimme zu verwenden
die neue Stimme ist ja eine einzige Katastrophe  :'( :'( :'(
Habe auf VoiceRSS umgestellt, da krieg ich wenigstens keinen Ohrenkrebs  ::)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 26 Juni 2021, 10:22:37
Ist die neue Stimme eigentlich ein Bug? Wie kann man so ne Katastrophe auf die Menschheit loslassen? Mein Google Home quatscht aber noch mit der alten Stimme.

Edit: Wenn man auf https://cloud.google.com/text-to-speech (https://cloud.google.com/text-to-speech) ein paar Parameter ändert, kann man die Stimme recht gut anpassen. Kann es sein das einfach diese neuen optionalen Parameter mit ins Modul mit eingebaut werden müssen um hier ein besseres Ergebnis zu erzielen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 26 Juni 2021, 18:30:34
ZitatDie Amazon-Stimme ist viel besser als Googles neue Trantüte.
Das habe ich hier schon vor 5 Jahren geschrieben, als Ivona noch ein eigenständiges Unternehmen war.

Außerdem gibt es nicht "die Amazon-Stimme" - die nach wie vor beste deutsche Stimme ist "Marlene", vormals von Ivona, jetzt bei Amazon Polly.

Das ist übrigens keine subjektive Einschätzung, sondern mit wissenschaftlicher Akribie bewertet - wir verwenden das in derzeit 2 Forschungsprojekten

Aus ergonomischer Sicht ist es darüber hinaus wesentlich, dass aus allen Endgeräten die gleiche Stimme spricht. Auf irgendwelchen Android-Geräten, die als wandhängende Bedientablets dienen, kann man mit ein paar Tricks zwar auch die von Polly angelieferten mp3-Dateien abspielen. Allerdings kann man auch die geräteeigenen TTS-Stimmen ersetzen: Wer genau weiß, wo er suchen muss, findet immer noch die alte .apk-Datei, die "Marlene" auf jedem Android-Gerät installiert.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 26 Juni 2021, 19:36:11
Zitat von: Dittel am 26 Juni 2021, 10:22:37
Ist die neue Stimme eigentlich ein Bug? Wie kann man so ne Katastrophe auf die Menschheit loslassen? Mein Google Home quatscht aber noch mit der alten Stimme.

Edit: Wenn man auf https://cloud.google.com/text-to-speech (https://cloud.google.com/text-to-speech) ein paar Parameter ändert, kann man die Stimme recht gut anpassen. Kann es sein das einfach diese neuen optionalen Parameter mit ins Modul mit eingebaut werden müssen um hier ein besseres Ergebnis zu erzielen?

Eventuel.... schreib mal welche Parameter genau....
Ansonsten, Alternativ einfach bzw erstmal Polly nutzen:)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 27 Juni 2021, 11:33:02
Zitat von: Tobias am 26 Juni 2021, 19:36:11
Eventuel.... schreib mal welche Parameter genau....
Auf meiner verlinkten Seite weiter unten und kann man Pitch, Speed und Stimmenart einstellen zum testen. Wenn man dort ein wenig rumspielt kann man genau so eine besoffene Stimme, wie aktuell im TTS Modul benutzt wird erzeugen. Diese Parameter kann man ja sicherlich optional auch mit an die API übergeben.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: TomLee am 27 Juni 2021, 11:41:25
Hab mich bisher mit dem Modul kaum beschäftigt, Speed soll man mit dem Attribut TTS_Speed beeinflussen können, hat bei mir aber keine Auswirkungen iVm. sonos2mqtt, egal was man einstellt.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 28 Juni 2021, 07:14:55
Zitat von: Dittel am 27 Juni 2021, 11:33:02
... Diese Parameter kann man ja sicherlich optional auch mit an die API übergeben.
Du könntest es selbst mal versuchen und das Ergebnis hier präsentieren.

In Zeile 55 des Moduls kannst Du die Parameter ergänzen in der Form: &paramerter=Wert

Zeile 55: my %ttsAddon        = ("Google"     => "client=tw-ob&ie=UTF-8",
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 30 Juni 2021, 18:35:15
Zitat von: Ellert am 28 Juni 2021, 07:14:55
Du könntest es selbst mal versuchen und das Ergebnis hier präsentieren.

In Zeile 55 des Moduls kannst Du die Parameter ergänzen in der Form: &paramerter=Wert

Zeile 55: my %ttsAddon        = ("Google"     => "client=tw-ob&ie=UTF-8",

Funktioniert leider gar nicht. Die API, die das Modul benutzt ist veraltet und wir auch gar nicht mehr offiziell unterstützt.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 30 Juni 2021, 19:16:47
Die wurde noch nie offiziell unterstützt, hat aber den Vorteil, das es ohne Account, Anmeldung, Keys oder Kreditkarten funktioniert. Bei dem Cloud Zeug, ist das nicht der Fall.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 14 Juli 2021, 11:30:34
Zitat von: Dittel am 30 Juni 2021, 18:35:15
Funktioniert leider gar nicht. Die API, die das Modul benutzt ist veraltet und wir auch gar nicht mehr offiziell unterstützt.

Welche API denn?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 14 Juli 2021, 15:00:17
https://techcrunch.com/2009/12/14/the-unofficial-google-text-to-speech-api/ (https://techcrunch.com/2009/12/14/the-unofficial-google-text-to-speech-api/)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 14 Juli 2021, 15:40:49
Zitat von: Dittel am 14 Juli 2021, 15:00:17
https://techcrunch.com/2009/12/14/the-unofficial-google-text-to-speech-api/ (https://techcrunch.com/2009/12/14/the-unofficial-google-text-to-speech-api/)

Stand December 14, 2009
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Navigator am 14 Juli 2021, 15:48:20
Zitat von: Tobias am 14 Juli 2021, 15:40:49
Stand December 14, 2009 !!!!
Das Modul ist ja auch von 2013 und nach dieser Methodik holt es nun mal die Stimmen dort ab.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 02 August 2021, 09:10:46
Wo kann ich denn für Polly die Stimme wie z.B. Marlene oder Vicki angeben bzw. für Vicki die Engine von Standard auf Neural umschalten? Im .aws Folder gibt es eine config Datei, mit der ich ein wenig rum probiert habe, aber das scheint wohl keine Auswirkungen zu haben oder ich habe dort etwas falsch konfiguriert.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 04 August 2021, 20:00:19
Eigentlich garnicht da ich die Stimmen fest im Modul verankert habe.
Du müsstest am Anfang des Moduls mit den Parametern etwas herumspielen
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 05 August 2021, 10:43:07
Ah okay. Dann schaue ich mir das mal an. Danke für den Hinweis. Meine Frau kommt inzwischen auf immer neue Ideen, was ich alles wegen der schlechten Ansagen machen soll. Angefangen von komplett abschalten bis: Nimm die Stimmen deiner Kinder auf und spiel das ab".

PS:

Der Code ist leider ein wenig falsch.

Original:
my $res = $polly->SynthesizeSpeech(
        VoiceId => $TTS_Language,
        Text => $text,
        TextType => $texttype,
        OutputFormat => 'mp3',
    );


Bei VoiceId muss aber Marlene oder Vicki drin stehen und nicht TTS_Language, das bei mir "Deutsch" enthält. Das ist eine ungültige VoiceId und vermutlich wird dann immer Vicki verwendet. Ich habe jetzt mal VoiceId auf 'Marlene' gesetzt und SampleRate auf "24000", das hört sich etwas besser an. Falls Vicki verwendet werden sollte, dann kann man hier auch noch den Engine Parameter auf "neural" vorgeben. Bei Marlene geht das aber leider nicht. Hier geht nur "standard".

https://metacpan.org/pod/Paws::Polly::SynthesizeSpeech (https://metacpan.org/pod/Paws::Polly::SynthesizeSpeech)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 05 August 2021, 21:39:35
Ich schlage vor, "neutral" zu verwenden, nicht "neural".

Ernst gemeinte Empfehlung: Das Modul "Babble" verwenden, mit aktiviertem Chatbot.

Da werden alle nciht erkannten Fragen protokolliert. und man kann die Dialoge richtig nutzerfreundlich gestalten.

Inklusive akustischer Menüführung.

LG

pah

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: mumpitzstuff am 06 August 2021, 08:08:33
So dachte ich auch erst, aber es steht wirklich überall Neural und nicht Neutral.

https://docs.amazonaws.cn/en_us/polly/latest/dg/NTTS-main.html (https://docs.amazonaws.cn/en_us/polly/latest/dg/NTTS-main.html)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 07 August 2021, 11:31:02
Aaah, sehr interessant - das ist natürlich etwas anderes. Hätte ich vorher recherchieren sollen, das ist ein wissenschaftlich hoch innovativer Ansatz.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Panik am 15 August 2021, 09:18:48
Hallo,

ich wollte das Modul jetzt auch mal auf Polly umstellen.
Unter Putty habe ich auch den Befehl "sudo cpan Paws" erfolgreich absetzen können.
Jedoch fliegt nach einer halben Stunde immer die Verbindung zu Putty raus und
damit bricht wohl auch das Update ab.
Ich hab das etliche Male probiert - es wird nichts. Das Text2SpeechModul kann Polly nicht als installiert erkennen.
Gibt es noch eine Alternative es installiert zu bekommen?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: chunter1 am 01 September 2021, 13:19:39
Gibt es irgendeine Möglichkeit die seit einiger Zeit abartige Google Stimme zu verbessern?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: P.A.Trick am 01 September 2021, 18:02:41
Zitat von: chunter1 am 01 September 2021, 13:19:39
Gibt es irgendeine Möglichkeit die seit einiger Zeit abartige Google Stimme zu verbessern?

Das würde mich auch interessieren.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 01 September 2021, 18:59:08
ZitatGibt es noch eine Alternative es installiert zu bekommen?
Aber ja. Mit einem ordentlichen Telnet oder SSH-Client anmelden, statt mit dem absurden putty.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 01 September 2021, 19:51:42
Zitat von: chunter1 am 01 September 2021, 13:19:39
Gibt es irgendeine Möglichkeit die seit einiger Zeit abartige Google Stimme zu verbessern?

Ja klar,

man muss die richtigen Parameter herausfinden und dann hier zum testen eintragen. Anschließend hier posten damit ich es ins Modul legen kann ;)

55 my %ttsAddon        = ("Google"     => "client=tw-ob&ie=UTF-8",
56                        "VoiceRSS"   => ""
57                        );

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: schwatter am 04 September 2021, 13:40:19
Leider gibt es nichts herauszufinden. Die einzige deutsche Stimme ist die...nette Dame.

LG schwatter
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: dkreutz am 04 September 2021, 14:01:22
Zitat von: chunter1 am 01 September 2021, 13:19:39
Gibt es irgendeine Möglichkeit die seit einiger Zeit abartige Google Stimme zu verbessern?
Das ist halt das kostenlose Angebot. Gegen Einwurf von Münzen kann man über die Google Cloud Services deutlich bessere Stimmen bekommen, alternativ die kostenpflichtigen Angebote von Amazon, MS-Azure, IBM, ...

Es geht auch kostenlos mit Privatsphäre, da lokal erzeugt (also ,,cloudfree" ganz im Sinne von FHEM). Erfordert aber momentan noch leistungsfähige Hardware (Nvidia/CUDA GPU) für Synthese in ,,real time":
https://de.m.wikipedia.org/wiki/Thorsten_(Stimme) bzw. https://github.com/thorstenMueller/deep-learning-german-tts/
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 04 September 2021, 20:57:45
Ich höre immer "kostenpflichtig". Natürlich muss man sich bei Amazon registrieren - aber die Kosten liegen mit einem Dollar für 1 Million Worte im Rahmen. Ich habe jedenfalls noch nie etwas gezahlt - wobei ich allerdings diverse vordefinierte Phrasen benutze ("Das Haus ist gesichert", "OK", ....) und ein intelligentes Caching habe.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 09 September 2021, 11:54:27
muss pah beipflichten.
Da muss man schon seeeeehr viel polly reden lassen, und auch immer etwas Neues bevor mal 1..2€ auf der Abrechnung stehen.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Panik am 11 September 2021, 07:10:35
Zitat von: Prof. Dr. Peter Henning am 01 September 2021, 18:59:08
Aber ja. Mit einem ordentlichen Telnet oder SSH-Client anmelden, statt mit dem absurden putty.

LG

pah

???

Die Antwort suggeriert mir, ich wäre genau so absurd und meine Frage auch, wie das von mir eingesetzte Putty.

Also werde ich letztlich weiter absurde Clients ausprobieren in der Hoffnung, irgendwann einen Ordentlichen zu erwischen.
Komisch: wenn man schon ordentliche Clients kennt und weis, dass Putty absurd ist, warum ist es so schwer
eine direkte hilfreiche Antwort zu geben?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Panik am 11 September 2021, 07:29:46
Zitat von: chunter1 am 01 September 2021, 13:19:39
Gibt es irgendeine Möglichkeit die seit einiger Zeit abartige Google Stimme zu verbessern?

Google schreibt:
Die ersten eine Million Zeichen für WaveNet-Stimmen sind jeden Monat kostenlos.

Ich hatte gestern mal unter https://cloud.google.com/text-to-speech#section-2 (https://cloud.google.com/text-to-speech#section-2)
mit den Wavenet-Stimmen gespielt und finde, dass de-DE-Wavenet-F nicht so schlecht klingt.

Aber es ist wie von anderen Forenmitgliedern schon erwähnt eine Anmeldung bei Google Cloud nötig...

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Panik am 11 September 2021, 07:37:20
Amazon Polly habe ich nun mal über Python und dessen Pip installiert bekommen.
das ging wesentlich schneller als über Cpan. Ist nun nur nicht im Text2Speech-Modul.

Dann hatte ich diesen Text generieren lassen: "Heute ist schönes Wetter"

#{system("sudo aws polly synthesize-speech --output-format mp3 --voice-id Marlene --text 'Heute ist schönes Wetter' /opt/fhem/cache/star.mp3'");}
fhem( "set MyTTS tts :/opt/fhem/cache/star.mp3:" );

Das klingt aber sehr abgehackt:  "Heute ist schö   [1s Stille] nes Wetter"
Merkwürdig.
Klingt das über das Modul bei euch auch so abgehackt nach dem Umlaut?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 11 September 2021, 21:04:48
Zitat von: Panik am 11 September 2021, 07:10:35
... absurde Clients ausprobieren in der Hoffnung, irgendwann einen Ordentlichen zu erwischen.
...
Man kann einheitlich in allen üblichen, aktuellen Desktop Systemen einfach ssh verwenden, ist mW in jedem System integriert.
In Windows einfach cmd auf oder "ausführen" Zeile (windows+r): ssh username@hostname eintippen und schon "ist man drin".

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 12 September 2021, 19:50:13
ZitatDie Antwort suggeriert mir, ich wäre genau so absurd und meine Frage auch, wie das von mir eingesetzte Putty.
In Anlehnung an Helmut Schmidt: Wer Suggestionen hat, sollte vielleicht mal zum Arzt gehen.

Zur Hilfestellung für Windows-Nutzer sollte man vielleicht jemanden fragen, der das auch für produktive Zwecke verwendet.

LG

pah
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Martin Fischer am 16 November 2021, 18:39:14
Zitat von: Panik am 15 August 2021, 09:18:48
ich wollte das Modul jetzt auch mal auf Polly umstellen.
Unter Putty habe ich auch den Befehl "sudo cpan Paws" erfolgreich absetzen können.
Jedoch fliegt nach einer halben Stunde immer die Verbindung zu Putty raus und
damit bricht wohl auch das Update ab.
Ich hab das etliche Male probiert - es wird nichts. Das Text2SpeechModul kann Polly nicht als installiert erkennen.
Gibt es noch eine Alternative es installiert zu bekommen?

Wenn auch spät aber ggf. für andere festgehalten.

Zum einen böte es sich an mit Screen (https://wiki.ubuntuusers.de/Screen/) zu arbeiten. Dann schlagen Verbindungsabbrüche nicht ins Gewicht. Alle weiteren hier gezeigten Eingaben, erfolgen unter dem root User. Alternativ auch mittels sudo:

screen /bin/bash

Dann cpanminus installieren:
apt install cpanminus

Eine notwendige Abhängigkeit installieren:
cpanm Future

Anschliessend Paws installieren. Auf einem Raspberry Pi sollten die Time outs hochgesetzt werden, da sonst der Build Prozess "absterben" könnte:
cpanm Paws --configure-timeout 7200 --build-timeout 7200 --test-timeout 7200

Dann sollte die Installation durchlaufen, auch wenn es sehr lange dauert. Geduld!

Dennoch funktioniert die Umstellung auf Polly nicht "out of the box". In 98_Text2Speech.pm ist in Zeile 324 eine fehlerhafte Einbindung des FHEM HomeDirs, die zuerst korrigiert werden muss. Also "händisch" die Zeile ändern auf
if (! -e "/opt/fhem/.aws/credentials"){
Natürlich sollte "/opt/fhem/.aws/credentials" dann auch vorhanden sein.

Damit die Änderung nicht beim nächsten Update überschrieben wird, muss das Modul noch vom Update ausgeschlossen werden:
attr global exclude_from_update 98_Text2Speech.pm

Vorher prüfen, dass dort nicht noch andere Module / Dateien ausgeschlossen werden. Dieser Eintrag wird sonst überschrieben!

Alternativ könnte man auch dem Aufruf von Tobias folgen und seine Entwicklerversion installieren. Siehe dazu auch:
https://github.com/tobiasfaust/MyFHEM (https://github.com/tobiasfaust/MyFHEM)

Doch ACHTUNG:
Die Angabe in der Readme.md sowie die Umsetzung zum Einbinden des Repositories von Tobias ist fehlerhaft! Werden die dort aufgeführten Befehle "update all" oder "update add" ausgeführt, wird die FHEM eigene controls.txt überschrieben.

Ein FHEM Update gelingt danach erst wieder durch das Zurücksetzen der überschriebenen Quelle:
update reset
Da ich der ursprüngliche Maintainer des update Befehls war, weiß ich wovon ich Rede.  ;)

Lieber [user]Tobias[/user]:
Bitte benenne Deine auf github angebotene controls.txt in einen eindeutigen Namen, z.B. controls_text2speech.txt oder wie auch immer um. Dann korreliert es auch mit FHEM und macht dort nichts kaputt. ;)

Oder / und: check die Änderungen doch offiziell ein.  ;)

Im Text2Speech Modul muss dann noch das Attribut TTS_AWS_HomeDir gesetzt (default: /opt/fhem) und dann die TTS_Ressource auf Amazon-Polly umgestellt werden.

Dann sollte die Dame ins Heim einziehen..

Viel Erfolg!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 19 November 2021, 10:02:53
ohh shit, ich habe vergessen die letzten beiden änderungen ins fhem repo einzuchecken.
Mache ich asap, incl der controls namensänderung. Hatte mir bisher noch keiner gesagt das es da probleme gibt....

Edit: das neue controls.txt file heißt jetzt "controls_tobiasfaust.txt" da ich im Repo mehr als nur text2speech habe
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Martin Fischer am 19 November 2021, 13:57:08
Zitat von: Tobias am 19 November 2021, 10:02:53
Edit: das neue controls.txt file heißt jetzt "controls_tobiasfaust.txt" da ich im Repo mehr als nur text2speech habe

Super, danke Tobias!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 23 November 2021, 11:41:49
Die letzten Änderungen bei Text2Speech sind jetzt auch im FHEM Repo

Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Martin Fischer am 23 November 2021, 17:22:18
Nach jahrelanger Nutzung von Text2Speech in Kombination mit Google, hatte ich kürzlich auf Amazon Polly umgestellt. Siehe oben...

Nun tritt bei mir der Effekt auf, dass Teile der Sprachausgabe verschluckt werden, wenn ich mp3wrap nutze. Konkret geht es um folgenden Text:
:notify02: Es hat geklingelt. Jemand steht vor der Haustür. Bitte prüfen! :notify02:

":notify02:" ist ein mp3 File im Template Pfad. Ich hänge es hier mal mit an.

Setze ich TTS_UseMP3Wrap 1 endet der Text in etwa mit "... Bitte p", gefolgt vom Soundfile.

Kann das jemand nachstellen? Hast Du, Tobias, eine Idee warum das passiert?

Note:
Als ich die erzeugten Files gerade hier anhängen wollte, habe ich sie mir vorab noch einmal angehört. Dabei ist mir aufgefallen, dass das von mp3wrap bearbeitete Soundfile defekt ist. Bzw. egal welchen Player ich nehme, es wird nicht korrekt abgespielt.

Weiterhin stimmt da noch irgendwas mit der Kodierung nicht: Im Logfile werden Umlaute falsch interpretiert.

Ohne mp3wrap:

2021.11.23 17:16:53 4: EG.wz.TTS.01: MaxChar = 3000, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2021.11.23 17:16:53 4: EG.wz.TTS.01: Auflistung der Textbausteine nach Aufbereitung:
2021.11.23 17:16:53 4: EG.wz.TTS.01: 0 => /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3
2021.11.23 17:16:53 4: EG.wz.TTS.01: 1 => Es hat geklingelt. Jemand steht vor der Haust�r. Bitte pr�fen!
2021.11.23 17:16:53 4: EG.wz.TTS.01: 2 => /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3
2021.11.23 17:16:53 4: EG.wz.TTS.01: Verwende TTS Spracheinstellung: Deutsch
2021.11.23 17:16:53 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 als direkte MP3 Datei erkannt!
2021.11.23 17:16:53 4: EG.wz.TTS.01: Bearbeite jetzt den Text: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3
2021.11.23 17:16:53 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 gefunden, kein Download
2021.11.23 17:16:53 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 hat eine Länge von 5 Sekunden.
2021.11.23 17:16:53 4: EG.wz.TTS.01:sudo /usr/bin/mplayer  -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 60 /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 >/dev/null
2021.11.23 17:16:59 4: EG.wz.TTS.01: Es wurde nur ein Teil ausgegeben und weitere Teile folgen!
2021.11.23 17:16:59 4: EG.wz.TTS.01: Verwende TTS Spracheinstellung: Deutsch
2021.11.23 17:16:59 4: EG.wz.TTS.01: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 0f5dcc151ba0bcc65b0a3cce6b01eeca.mp3
2021.11.23 17:16:59 4: EG.wz.TTS.01: Bearbeite jetzt den Text: Es hat geklingelt. Jemand steht vor der Haust�r. Bitte pr�fen!
2021.11.23 17:16:59 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/0f5dcc151ba0bcc65b0a3cce6b01eeca.mp3 gefunden, kein Download
2021.11.23 17:16:59 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/0f5dcc151ba0bcc65b0a3cce6b01eeca.mp3 hat eine Länge von 4 Sekunden.
2021.11.23 17:16:59 4: EG.wz.TTS.01:sudo /usr/bin/mplayer  -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 60 /opt/fhem/mp3/cache/0f5dcc151ba0bcc65b0a3cce6b01eeca.mp3 >/dev/null
2021.11.23 17:17:04 4: EG.wz.TTS.01: Es wurde nur ein Teil ausgegeben und weitere Teile folgen!
2021.11.23 17:17:04 4: EG.wz.TTS.01: Verwende TTS Spracheinstellung: Deutsch
2021.11.23 17:17:04 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 als direkte MP3 Datei erkannt!
2021.11.23 17:17:04 4: EG.wz.TTS.01: Bearbeite jetzt den Text: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3
2021.11.23 17:17:04 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 gefunden, kein Download
2021.11.23 17:17:04 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 hat eine Länge von 5 Sekunden.
2021.11.23 17:17:04 4: EG.wz.TTS.01:sudo /usr/bin/mplayer  -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 60 /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 >/dev/null
2021.11.23 17:17:10 4: EG.wz.TTS.01: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.


Mit mp3wrap:

2021.11.23 17:18:31 4: EG.wz.TTS.01: MaxChar = 3000, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2021.11.23 17:18:31 4: EG.wz.TTS.01: Auflistung der Textbausteine nach Aufbereitung:
2021.11.23 17:18:31 4: EG.wz.TTS.01: 0 => /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3
2021.11.23 17:18:31 4: EG.wz.TTS.01: 1 => Es hat geklingelt. Jemand steht vor der Haust�r. Bitte pr�fen!
2021.11.23 17:18:31 4: EG.wz.TTS.01: 2 => /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3
2021.11.23 17:18:31 4: EG.wz.TTS.01: Verwende TTS Spracheinstellung: Deutsch
2021.11.23 17:18:31 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 als direkte MP3 Datei erkannt!
2021.11.23 17:18:31 4: EG.wz.TTS.01: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 0f5dcc151ba0bcc65b0a3cce6b01eeca.mp3
2021.11.23 17:18:31 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 als direkte MP3 Datei erkannt!
2021.11.23 17:18:31 4: EG.wz.TTS.01: Bearbeite per MP3Wrap jetzt den Text: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 Es hat geklingelt. Jemand steht vor der Haust�r. Bitte pr�fen! /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3
2021.11.23 17:18:31 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/2ae352789e9ad05ccf29883b79e990e4.mp3 hat eine Länge von 12 Sekunden.
2021.11.23 17:18:31 4: EG.wz.TTS.01: sudo /usr/bin/mplayer  -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 60 /opt/fhem/mp3/cache/2ae352789e9ad05ccf29883b79e990e4.mp3 >/dev/null
2021.11.23 17:18:45 4: EG.wz.TTS.01: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 24 November 2021, 14:08:34
Hi,
ich habe das noch nicht beobachtet, mal sehen was die anderen sagen.
Die falschen Umlaute im Log sollten nur ein schönheitsfehler sein. Die Sprache ist hoffentlich korrekt.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Robert1963 am 02 Dezember 2021, 11:25:23
Hallo,

nachdem mich die Google Trantute sooo nerft , hab ich Amazon-Polly installiert.
Die Polly spricht ein wenig schnell, TTS_Speed Einstellung brachte, wie auch bei Google, nichts.
Also Cache gelöscht und geschaut ob ich das irgendwo einstellen/ändern kann. Forum,Wiki, Aws etc. .
Nichts gefunden, bzw. für mich nicht verständlich.

Ware Dankbarfür ne Idee wo, wenn überhaupt, eine Möglichkeit bestände die Stimme zu verändern.

Viele Grüße
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: htschors am 04 Dezember 2021, 21:58:25
Hallo,

ich habe gerade das Text2Speech Modul probiert und bekomme beim Abspielen keine Tonausgabe mit der Fehlermeldung im Log-File:

[AO_ALSA] alsa-lib: pcm_hw.c:1822:(_snd_pcm_hw_open) Invalid value for card

Den Fehler habe ich im Forum bereits gesehen, jedoch hat mir die Lösung nicht weitergeholfen. Wenn ich den Befehl, der von FHEM generiert wird, in der Konsole direkt eingebe funktioniert die Tonausgabe ohne Probleme. Also müsste es ein Rechteproblem sein?

Kann es daran liegen, dass fhem nicht mein FHEM-User ist, sonder pi? Könnt ihr mir sagen, wie ich herausfinden kann, ob FHEM die notwendigen Rechte besitzt?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 04 Dezember 2021, 22:44:15
Für die FHEM Kommandozeile
{qx(whoami)}

{qx(groups)}
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: htschors am 04 Dezember 2021, 22:57:25
Hallo Otto123,

danke. Überaschend..

{qx(whoami)} --> fhem

{qx(groups)}  --> fhem tty mail dialout audio video bluetooth gpio i2c

Aber fürs Einloggen in FHEM nutze ich "pi". Und wenn ich Rechte für den User fhem vergeben will, kommt diese Ausgabe:

sudo usermod -aG audio fhem
usermod: user 'fhem' does not exist


Ergibt das Sinn?

VG aus Limbach
Holger
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 05 Dezember 2021, 10:38:06
Hallo Holger,

das klingt "verbogen"  ::)
ZitatAber fürs Einloggen in FHEM nutze ich "pi".
Was genau meinst Du damit? Du hast im FHEMWEB einen User pi angelegt mit dem Du Dich an der Weboberfläche anmelden kannst?

Die Ausgabe von usermod kann ich mir nicht erklären, allerdings ist ja der user fhem schon in der Gruppe audio.

FHEM läuft direkt auf dem System oder in irgendwelchen Containern?

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: htschors am 06 Dezember 2021, 22:23:36
Ja, richtig, in FHEMWEB logge ich mich mit pi ein. Ich nutze hab zur Installation ein Skript von https://ei23.de/diy-smarthome/ (https://ei23.de/diy-smarthome/) genutzt, welches FHEM als Docker Container installiert hat.

Woran kann der Fehler bei mir liegen, wenn die Rechte anscheinend vorhanden sind, ich aber aus FHEM heraus keinen Sound bekomme, wenn ich das Kommando aber über doe Kommandozeile ausführe alles funktioniert?
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 06 Dezember 2021, 22:41:59
Sound aus dem Dockercontainer heraus auf die lokale Soundkarte. Keine Ahnung, ich gehe davon aus, das geht nicht so direkt. Man kann sicher einen Umweg "remote" über den Host stricken. Habe ich für Sound nicht gemacht, kommt bei mir nicht vor.
Das Text2Speech Modul funktioniert unter docker im Remote Modus oder als Text zu mp3 Erzeuger.
Ich verwende bei sonos2mqtt das Text2Speech Modul mit einem http Server, man kann aus dem container heraus den soundBefehl per ssh auf dem Host ausführen lassen - sollte funktionieren ;)

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: htschors am 06 Dezember 2021, 23:02:13
Rhasspy ist ja auch als Dockercontainer installiert und der Zugriff auf die Soundkarte (Ausgabe sowie Mikrofon) klappt ohne Probleme.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 06 Dezember 2021, 23:16:14
ja da scheinst Du Recht zu haben, leider lässt Du Dir alle Informationen einzeln "aus der Nase ziehen" dann wirst Du den docker FHEM Container analog zum Rhasspy einrichten müssen. Habe ich keine Ahnung von  :)
Suchtext
Zitat- "/dev/snd/:/dev/snd/"
Entweder kann es hier zufällig einer oder Du solltest die Frage nochmal konkret mit allen Infos separat stellen. ;)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 08 Dezember 2021, 08:33:50
Zitat von: Robert1963 am 02 Dezember 2021, 11:25:23
Hallo,

nachdem mich die Google Trantute sooo nerft , hab ich Amazon-Polly installiert.
Die Polly spricht ein wenig schnell, TTS_Speed Einstellung brachte, wie auch bei Google, nichts.
Also Cache gelöscht und geschaut ob ich das irgendwo einstellen/ändern kann. Forum,Wiki, Aws etc. .
Nichts gefunden, bzw. für mich nicht verständlich.

Ware Dankbarfür ne Idee wo, wenn überhaupt, eine Möglichkeit bestände die Stimme zu verändern.

Viele Grüße
Hi,
die TTS_Speed wird nur von VoiceRSS unterstützt. Kann man im Modulcode Zeile 64 erkennen. Google unterstützt einen solchen Parameter leider nicht (imho)

Bei Polly kann man mit SSML-Tags quasi fast alles beeinflussen. Hast du das mal probiert? -> https://docs.aws.amazon.com/de_de/polly/latest/dg/supportedtags.html
Beispiel: set <MyTTS> tts <speak>Ansage der heutigen Wetterlage:<prosody rate="slow">Das Wetter sieht heute nicht gut aus. Es wird schneien und glatt werden</prosody></speak>
Siehe auch hier: https://docs.aws.amazon.com/de_de/polly/latest/dg/voice-speed-vip.html
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Panik am 12 Dezember 2021, 18:16:07
Zitat von: Martin Fischer am 16 November 2021, 18:39:14
Wenn auch spät aber ggf. für andere festgehalten.

Zum einen böte es sich an mit Screen (https://wiki.ubuntuusers.de/Screen/) zu arbeiten. Dann schlagen Verbindungsabbrüche nicht ins Gewicht. Alle weiteren hier gezeigten Eingaben, erfolgen unter dem root User. Alternativ auch mittels sudo:

(usw.)

Viel Erfolg!

@Martin:
Vielen Dank für die Ausführliche Antwort.

Ich bleibe, wie schon am 11.Sept. geschrieben, bei der viel einfacheren aws-Installation über Python und dessen Pip.
Über ein Script mache ich dann die nötigen Aufrufe.
So hab ich alles selber in der Hand.

Danke trotzdem.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: ergerd am 01 Februar 2023, 14:25:15
Hallo zusammen,

ich nutze Text2Spech in der Standardeinstellung, also mit Google Cloud.

Es werden nur Texte die max. 200 Zeichen enthalten ausgegeben, längere nicht.
Gibt es da eine Grenze?

Ich habe auch versucht die längeren Texte direkt im Browser auszuführen, da erhalte ich schon eine Fehlermeldung, wenn sie mehr als 200 Zeichen enthalten.

Danke und Grüße
Rainer
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Ellert am 01 Februar 2023, 17:18:32
Das Modul kennt keine Grenze. Sehr lange Texte werden durch den BlockingCall Timeout begrenzt, der ist aber einstellbar.
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: ergerd am 01 Februar 2023, 20:52:14
Danke für den Tipp!
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PSI69 am 09 Februar 2023, 13:52:41
Mahlzeit!

Ich will TTS überwiegend zur Textausgabe nutzen, so weit so gut... Die Ausgabe erfolgt mittels Amazon Stimme über bluealsa, auch so weit OK.

Aber; im Jahr 2015 war folgendes hier im Modul schon einmal Thema:

Mein Problem ist, ich habe ein längeres selbst erstelltes MP3 File (Alarmanlage wird ausgelöst), was beim Entschäften der Alarmanlage gestoppt werden soll - also die Ausgabe vom MP3 über TTS Device. Ein 'set TTS Stop' o.ä. gibt es aktuell nicht, es hilft auch nicht eine weitere kurze Textausgabe hinterher zu schicken, dito für ein weiteres MP3 File. D.h. meine 67 Sekunden lange Ausgabe plärrt immer bis zum Ende.

Hat das Thema schon jemand lösen können bei sich?

2023.02.09 13:48:27 4: MyTTSa: 0 => Test
2023.02.09 13:48:27 4: MyTTSa: Verwende TTS Spracheinstellung: Deutsch
2023.02.09 13:48:27 4: MyTTSa: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 1885ae4bdca1e1546de1492a880fee55.mp3
2023.02.09 13:48:27 4: MyTTSa: Bearbeite per MP3Wrap jetzt den Text: Test
2023.02.09 13:48:27 4: MyTTSa: /opt/fhem/cache/a/1885ae4bdca1e1546de1492a880fee55.mp3 hat eine Länge von 1 Sekunden.
2023.02.09 13:48:27 4: MyTTSa: /usr/bin/mplayer -ao alsa:device=bluealsa -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 30 /opt/fhem/cache/a/1885ae4bdca1e1546de1492a880fee55.mp3 >/dev/null
2023.02.09 13:48:29 4: MyTTSa: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.
2023.02.09 13:48:37 4: MyTTSa: ermittelte CodePage: ascii , konvertiere nach UTF-8
2023.02.09 13:48:37 4: MyTTSa: MaxChar = 3000, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2023.02.09 13:48:37 4: MyTTSa: Auflistung der Textbausteine nach Aufbereitung:
2023.02.09 13:48:37 4: MyTTSa: 0 => test
2023.02.09 13:48:38 4: MyTTSa: Verwende TTS Spracheinstellung: Deutsch
2023.02.09 13:48:38 4: MyTTSa: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: ace6e4adaa68b0a82025cc4d5afaa7cc.mp3
2023.02.09 13:48:38 4: MyTTSa: Bearbeite per MP3Wrap jetzt den Text: test
2023.02.09 13:48:38 4: MyTTSa: /opt/fhem/cache/a/ace6e4adaa68b0a82025cc4d5afaa7cc.mp3 hat eine Länge von 1 Sekunden.
2023.02.09 13:48:38 4: MyTTSa: /usr/bin/mplayer -ao alsa:device=bluealsa -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 30 /opt/fhem/cache/a/ace6e4adaa68b0a82025cc4d5afaa7cc.mp3 >/dev/null
2023.02.09 13:48:39 4: MyTTSa: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.
2023.02.09 13:48:52 4: MyTTSa: ermittelte CodePage: ascii , konvertiere nach UTF-8
2023.02.09 13:48:52 4: MyTTSa: MaxChar = 3000, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2023.02.09 13:48:52 4: MyTTSa: Auflistung der Textbausteine nach Aufbereitung:
2023.02.09 13:48:52 4: MyTTSa: 0 => /opt/fhem/mp3/099_Selbstzerstoerung.mp3
2023.02.09 13:48:52 4: MyTTSa: Verwende TTS Spracheinstellung: Deutsch
2023.02.09 13:48:52 4: MyTTSa: /opt/fhem/mp3/099_Selbstzerstoerung.mp3 als direkte MP3 Datei erkannt!
2023.02.09 13:48:52 4: MyTTSa: Bearbeite per MP3Wrap jetzt den Text: /opt/fhem/mp3/099_Selbstzerstoerung.mp3
2023.02.09 13:48:52 4: MyTTSa: /opt/fhem/mp3/099_Selbstzerstoerung.mp3 hat eine Länge von 67 Sekunden.
2023.02.09 13:48:52 4: MyTTSa: /usr/bin/mplayer -ao alsa:device=bluealsa -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 30 /opt/fhem/mp3/099_Selbstzerstoerung.mp3 >/dev/null
2023.02.09 13:49:04 4: MyTTSa: ermittelte CodePage: ascii , konvertiere nach UTF-8
2023.02.09 13:49:04 4: MyTTSa: MaxChar = 3000, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2023.02.09 13:49:04 4: MyTTSa: Auflistung der Textbausteine nach Aufbereitung:
2023.02.09 13:49:04 4: MyTTSa: 0 => Test
2023.02.09 13:49:55 1: Timeout for Text2Speech_DoIt reached, terminated process 14122
2023.02.09 13:49:55 2: MyTTSa: BlockingCall for MyTTSa was aborted


Danke und Tschau,
Peter
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 09 Februar 2023, 14:12:28
Hallo Peter,

mplayer rennt ja weiter. Du kannst maximal versuchen "pkill mplayer" loszuschicken.
auf Terminal Ebene eben probiert und das funktioniert

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PSI69 am 09 Februar 2023, 15:22:53
Danke, ich stelle das nach und konfiguriere das als zusätzliches Kommando beim/nach dem Entschärfen. Klingt gut; melde mich wieder...
Peter
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PSI69 am 10 Februar 2023, 11:32:57
@Otto123
Klappt natürlich. Schön! Dann läuft die Sprachausgabe ab jetzt im Testbetrieb mit reduzierter Lautstärke. Mal sehen, ob sich der BT Lautsprecher abhängt, oder ob die Verbindung dauerhaft durchläuft/durchhält...

So zur Statusabfrage der BT Verbindung, wie macht ihr so etwas? Mit 'echo -e "info F4:2B:7D:01:66:9B" | bluetoothctl' bekomme ich ja den Status zurück:
Agent registered
[Soundcore 3]# info F4:2B:7D:01:66:9B
Device F4:2B:7D:01:66:9B (public)
        Name: Soundcore 3
        Alias: Soundcore 3
        Class: 0x00240414
        Icon: audio-card
        Paired: yes
        Trusted: yes
        Blocked: no
        Connected: yes
        LegacyPairing: no
        UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
        UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
        UUID: Advanced Audio Distribu.. (0000110d-0000-1000-8000-00805f9b34fb)
        UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
        UUID: Handsfree                 (0000111e-0000-1000-8000-00805f9b34fb)
        UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
        UUID: Vendor specific           (0cf12d31-fac3-4553-bd80-d6832e7b3117)
        UUID: Vendor specific           (0cf12d31-fac3-4553-bd80-d6832e7c3117)
        Modalias: bluetooth:v03E0p2835d0100


Sprich, unter Connected steht yes...

Und das hier 'echo -e "info F4:2B:7D:01:66:9B" | bluetoothctl | grep Connected' ist noch besser:
        Connected: yes

Wie bekomme ich den String auswertbar in FHEM zurück aus einem Shell Aufruf?

... so, dass ich reagieren kann und ein 'echo -e "connect F4:2B:7D:01:66:9B' | bluetoothctl' abfeuern kann; oder besser alles in ein Shell Script? Wobei das im Prinzip ja auf ein regelmäßiges Polling/ eine regelmäßige Prüfung heraus laufen würde, also kann ich gleich regelmäßig ein 'echo -e "connect F4:2B:7D:01:66:9B' ausführen?

Meinugen dazu???

Schönes WE,
Peter
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Otto123 am 10 Februar 2023, 11:49:38
Hallo Peter,

BT Anwesenheit mache ich mit dem Precense Modul im model local-bluetooth.

ZitatWie bekomme ich den String auswertbar in FHEM zurück aus einem Shell Aufruf?
Ginge mit etwas Perl Code und qx() - ist aber eben leider im FHEM blockierend.
Du kannst aber Shell Code nonblocking absetzen und im Shell Code FHEM den Wert über das Interface zurückgeben.
Vorschläge:
* mit fhem.pl im Client Modus über Telnet Port
* über meinen "HTTP Client" https://github.com/heinz-otto/fhemcl
* oder - wenn Du sowieso MQTT im Einsatz hast - über MQTT. Dazu habe ich ein universelles Monitor Script entwickelt: https://github.com/heinz-otto/raspberry/tree/master/monitor

Letzteres fände ich persönlich am elegantesten - wenn Du sowieso das Telnet Device definiert hast, ist die erste Variante am einfachsten.

Gruß Otto
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PSI69 am 10 Februar 2023, 11:59:13
Ok, danke Otto!
BT Anwesenheit mit Precense, auch gut - nicht daran gedacht...
Da ich diverse MQTT devices habe, schaue ich mir Dein script dazu an!
Gruß Peter
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Prof. Dr. Peter Henning am 10 Februar 2023, 16:20:03
Klar habe ich das gelöst.

Allerdings nicht mit mplayer - der ist mir viel zu ressourcenfressend. Ich spiele meine MP3-Dateien mit mpg123 ab.

Dazu verwende ich in FHEM ein paar Routinen

use Audio::Play::MPG123;
use Audio::Alsa::Mixer;
...
#############################################################################
#
#  event handler for local mpg123
#
#############################################################################

sub mpg123_eventhandler($$){ 
  my ($playdev,$event) = @_;
 
  return
    if($event =~ /playinfo.*/);
 
  Log 1,"[mpg123_eventhandler] called with $playdev and event $event";
 
  my ($hash,$src,$srd,$cha,$fil,$isl,$vol,$volnew,$trk,$ret);

  $hash = $defs{$playdev};
 
  $vol = ReadingsVal($playdev,"volume",undef);
  $trk = ReadingsVal($playdev,"track","");
 
  #-- on: normalize the source which is stored already in the origin reading,
  #       then start the player
  #-- origin <source>: normalize the source which is in the parameter,
  #       store it in the origin reading, then start the player
  if( $event =~ /^(origin)|(on).*/ ){
    if( $event =~ /origin: (.+)/ ){
      $src = $1;
    }else{
      $src = ReadingsVal($playdev,"origin","");
    }
    ($src,$srd,$cha,$fil,$isl) = audio_source($src);
   
    #-- artist not found
    if( $isl == -1 ){
      Log 1,"[mpg123_eventhandler] called with invalid source $src";
      speak($playdev,"Es tut mir leid, diese Quelle kann ich nicht finden");
      return;
    #-- artist found, need to fill the playlist first
    }elsif( $isl == 2 ){
      fhem("attr Playlister MediaList_PlayerDevice $playdev");
      fhem("trigger Playlister playartist"); 
      return;
    }
   
    fhem("setreading $playdev origin $src");
    fhem("setreading $playdev listfil $fil");
    fhem("setreading $playdev listsrc $isl");
   
    #-- safeguard against high volume
    #   TODO: Nur beim Start
    if( $vol > 35 ){
      fhem("setreading $playdev volume 35");
      Log 1, "[mpg123_eventhandler] enforcing volume 35";
      $vol = 35;
    }
    alsa_setvolume($vol);
   
    #-- start the player
    my $player = new Audio::Play::MPG123;;
    $hash->{helper}{player} = $player;
    fhem("setstate $playdev on");
    Log 1,"[mpg123_eventhandler] started Player with ".(($isl==0)?"file source ":"list source ").$fil;
   
    #-- single file
    if($src =~ /(SWR)|(speech)/){ 
      $player->load($fil);
      fhem("setreading $playdev listpos -");
    }else{
      $player->loadlist(1,$fil);
      fhem("setreading $playdev listpos 1");
    }
    mpg123_poller($player);
   
  }elsif( $event =~ /listpos:? (\d+)/){
     
   
  #-- off-event
  }elsif( $event eq "off"){
    mpg123_off();
   
  }elsif( $event eq "nextTrack"){
    mpg123_forward();
   
  }elsif( $event eq "prevTrack"){
    mpg123_back();
   
  }elsif( $event =~ /volume:? (\d+)/ ){
    alsa_setvolume($1);
  }
  return undef;
}

#############################################################################
#
#  mpg123 routines
#
#############################################################################

sub mpg123_off(){
  #-- check if playdev is SoundLinux.DG or RpiAudio.Meson
  my $playdev = "SoundLinux.DG";
  my $hash = $defs{$playdev};
  my $player = $hash->{helper}{player};
  return
    if( !defined($player));
 
  $player->stop_mpg123();
  fhem("setstate $playdev off");
  fhem("setreading $playdev track -");
  fhem("setreading $playdev artist -");
  fhem("setreading $playdev playinfo stopped");
  fhem("setreading $playdev playinfo2 stopped");
  $hash->{helper}{player} = undef;
}

sub mpg123_forward(){
  #-- check if playdev is SoundLinux.DG or RpiAudio.Meson
  my $playdev = "SoundLinux.DG";
  my $hash = $defs{$playdev};
  my $player = $hash->{helper}{player};
  return
    if( !defined($player));
   
  my $isList = ReadingsVal($playdev,"listsrc",0);
  my $listl  = ReadingsVal($playdev,"listlen",1);
  my $listp  = ReadingsVal($playdev,"listpos",1);
  my $listf  = ReadingsVal($playdev,"listfil","");
  $listp++;
  if( $listp <= $listl ){
    $player->loadlist($listp,$listf);
    #Log 1,"====> Loadlist $listp file $listf called";
    fhem("setreading $playdev listpos $listp");
    fhem("setreading $playdev listwait 1");
    InternalTimer(time()+2, "mpg123_poller", $player,0);
  }else{
    mpg123_off();
  }
}

sub mpg123_back(){
  #-- check if playdev is SoundLinux.DG or RpiAudio.Meson
  my $playdev = "SoundLinux.DG";
  my $hash = $defs{$playdev};
  my $player = $hash->{helper}{player};
  return
    if( !defined($player));
   
  my $isList = ReadingsVal($playdev,"listsrc",0);
  my $listl  = ReadingsVal($playdev,"listlen",1);
  my $listp  = ReadingsVal($playdev,"listpos",1);
  my $listf  = ReadingsVal($playdev,"listfil","");
  $listp--;
  if( $listp > 0){
    $player->loadlist($listp,$listf);
    fhem("setreading $playdev listpos $listp");
    fhem("setreading $playdev listwait 1");
    InternalTimer(time()+2, "mpg123_poller", $player,0);
  }else{
    mpg123_off();
  }
}
 
sub mpg123_poller($){
  my ($self) = @_;
  #-- check if playdev is SoundLinux.DG or RpiAudio.Meson
  my $playdev = "SoundLinux.DG";
  my $hash = $defs{$playdev};
  my $player = $hash->{helper}{player};
 
  if( !defined($player)){
    Log 1,"[mpg123_poller] no player found";
    return
  #}elsif( !defined($player->{state})){
  #  Log 1,"[mpg123_poller] no player->{state} found";
  #  print {$player->{w}} "Q\n";
  #  return
  }
   
  my $isList = ReadingsVal($playdev,"listsrc",0);
  my $listl  = ReadingsVal($playdev,"listlen",1);
  my $listp  = ReadingsVal($playdev,"listpos",1);
  my $listf  = ReadingsVal($playdev,"listfil","");
  my $listw  = ReadingsVal($playdev,"listwait",0);
 
  #-- we are playing
  if( $player->{state} ne "0" ){
    $player->poll(1);
    InternalTimer(time()+2, "mpg123_poller", $player,0);
    my $trk = $player->title;
    my $art = $player->artist;
    my ($ret94,$ret90);
    if( ReadingsVal($playdev,"origin","") !~ /SWR/ ){
      $ret94 = "playing <i>".$trk."</i><br>by <i>".$art."</i>";
      $ret90  = "<i>".$trk."</i><br>von <i>".$art."</i>";
    }else{
      $ret94 = "playing <i>SWR3</i><br>";
      $ret90  = "<i>SWR3</i>";
    }
    #-- get count of current playlist
    $listl = $player->{listl};
    readingsBeginUpdate($hash);
    readingsBulkUpdateIfChanged($hash, "playinfo", $ret94);
    readingsBulkUpdateIfChanged($hash, "playinfo2", $ret90);
    readingsBulkUpdateIfChanged($hash, "track", $trk);
    readingsBulkUpdateIfChanged($hash, "artist", $art);
    readingsBulkUpdateIfChanged($hash, "listlen", $listl);
    readingsBulkUpdateIfChanged($hash, "listwait", 0);
    readingsEndUpdate($hash,1);
   
  #-- we are not playing, and are not waiting for a listentry to come up
  }elsif( $player->{state} eq "0" && $listw == 0){
    #-- list is not finished => next entry
    if( $listp < $listl ){
      $listp++;
      $player->loadlist($listp,$listf);
      fhem("setreading $playdev listpos $listp");
      fhem("setreading $playdev listwait 1");
      #Log 1,"++++++> State = 0 => starting track $listp on list $listf";
      InternalTimer(time()+2, "mpg123_poller", $player,0);
    #-- list is finished => end player
    }else{
      mpg123_off();
    }
  #-- state is unclear, just poll another time 
  }else{
    $player->poll(1);
    InternalTimer(time()+2, "mpg123_poller", $player,0);
  } 
  return undef;
}

#############################################################################
#
#  ALSA volume routines (for USB sound card)
#
#############################################################################

sub alsa_getvolume {
  my $vl=Audio::Alsa::Mixer->device('USB-Audio')->control('Speaker')->channel('Front Left')->volume_out('%');
  my $vr=Audio::Alsa::Mixer->device('USB-Audio')->control('Speaker')->channel('Front Right')->volume_out('%');
  return ($vl+$vr)/2;
}

sub alsa_setvolume {
  my ($volnew) = @_;
  Audio::Alsa::Mixer->device('USB-Audio')->control('Speaker')->channel('Front Left')->volume_out($volnew."%");
  Audio::Alsa::Mixer->device('USB-Audio')->control('Speaker')->channel('Front Right')->volume_out($volnew."%");
}


und zwei spezialisierte Audiomodule. Die habe ich von älteren Codebeispielen her adaptiert - bei einem weiß ich noch nicht mal, wer das ursprünglich gebaut hat. mpg123 kann man damit problemlos stoppen und starten.

Sind hier angehängt

LG

pah

Prima, dass meine alten Hacks immer noch verwendet werden - 099_Selbstzerstoerung, ich lach mir nen Ast...
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PSI69 am 13 Februar 2023, 11:41:05
Hi pah!

Danke für die Module und den Code...

... und ja, Dein AAA Modul und natürlich die 099_Selbstzerstoerung (inzwischen etwas modifiziert / verlängert) sind seit 2016 (denke ich jedenfalls) noch immer im Einsatz und freuen sich großer Beliebtheit :)

Gruß Peter
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: Tobias am 13 Februar 2023, 11:47:56
Hi,
Ein TTS stop hatte ich nie auf dem Schirm und deshalb auch nicht eingebaut.
Der gesamte TTS String wird dem mplayer übergeben. Ich weiß so adhoc nicht, ob der Mplayer auch einen eingebauten Befehl zum stop hat, ich gehe aber mal davon aus. Dementsprechend müsste der Systemcall einfach nur aufgerufen werden.

Ich bin gerade in meinem SolarModul MQTT gateway gefangen, nehme aber gerne pullrequest an :)
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: PSI69 am 13 Februar 2023, 11:51:27
Der Vorschlag von Otto mit dem pkill läuft aktuell super bei mir.
Peter
Titel: Antw:Neues Modul: Text2Speech
Beitrag von: stefan-dd am 27 Februar 2023, 16:27:30
Ich habe ein Problem mit der Zeit Verzögerung, was ich nicht gelöst bekomme.
In der log sehe ich nur die Verzögerung, aber nicht warum. Ich habe alle möglichen Einstellungen probiert, entweder geht es gar nicht mehr, oder 30s und mehr verzögert.
Gibt es noch einen Tipp wie man dieses Problem lösen kann.
Fhem läuft auf einem aktuellen Debian System mit USB Sound.

2023.02.27 16:13:13 4: MyTTS: ermittelte CodePage: ascii , konvertiere nach UTF-8
2023.02.27 16:13:13 4: MyTTS: MaxChar = 200, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2023.02.27 16:13:13 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2023.02.27 16:13:13 4: MyTTS: 0 => test
2023.02.27 16:13:45 4: MyTTS: Verwende TTS Spracheinstellung: Deutsch
2023.02.27 16:13:45 4: MyTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 0bcffcb06e7ae232cc9e789d12f0ac7a.mp3
2023.02.27 16:13:45 4: MyTTS: Bearbeite per MP3Wrap jetzt den Text: test
2023.02.27 16:13:45 4: MyTTS: cache/0bcffcb06e7ae232cc9e789d12f0ac7a.mp3 hat eine Länge von 1 Sekunden.
2023.02.27 16:13:45 4: MyTTS: sudo /usr/bin/mplayer -ao alsa:device=hw=1.0  -nolirc -noconsolecontrols -softvol -softvol-max 800 -volume 100 cache/0bcffcb06e7ae232cc9e789d12f0ac7a.mp3
2023.02.27 16:13:45 5: MyTTS: readingsSingleUpdateByName: Dev:MyTTS Reading:duration Val:1
2023.02.27 16:13:45 5: MyTTS: readingsSingleUpdateByName: Dev:MyTTS Reading:endTime Val:00:00:00
MPlayer 1.4 (Debian), built with gcc-10 (C) 2000-2019 MPlayer Team
Terminal type `unknown' is not defined.

Playing cache/0bcffcb06e7ae232cc9e789d12f0ac7a.mp3.
libavformat version 58.45.100 (external)
Audio only file format detected.
Load subtitles in cache/
==========================================================================
Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III
AUDIO: 24000 Hz, 2 ch, s16le, 32.0 kbit/4.17% (ratio: 4000->96000)
Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III)
==========================================================================
AO: [alsa] 44100Hz 2ch s16le (2 bytes per sample)
[Mixer] No hardware mixing, inserting volume filter.
Video: no video
Starting playback...
A:  -0.0 (unknown) of 1.0 (01.0) ??,?%                                         
A:   0.0 (00.0) of 1.0 (01.0)  0.3%                                             
A:   0.0 (00.0) of 1.0 (01.0)  0.3%                                             
A:   0.1 (00.0) of 1.0 (01.0)  0.4%                                             
A:   0.1 (00.0) of 1.0 (01.0)  0.4%                                             
A:   0.1 (00.1) of 1.0 (01.0)  0.4%                                             
A:   0.1 (00.1) of 1.0 (01.0)  0.4%                                             
A:   0.2 (00.1) of 1.0 (01.0)  0.4%                                             
A:   0.2 (00.2) of 1.0 (01.0)  0.4%                                             
A:   0.2 (00.2) of 1.0 (01.0)  0.4%                                             
A:   0.3 (00.2) of 1.0 (01.0)  0.4%                                             
A:   0.3 (00.2) of 1.0 (01.0)  0.4%                                             
A:   0.3 (00.3) of 1.0 (01.0)  0.4%                                             
A:   0.4 (00.3) of 1.0 (01.0)  0.4%                                             
A:   0.4 (00.3) of 1.0 (01.0)  0.4%                                             
A:   0.4 (00.4) of 1.0 (01.0)  0.4%                                             
A:   0.4 (00.4) of 1.0 (01.0)  0.4%                                             
A:   0.5 (00.4) of 1.0 (01.0)  0.5%                                             
A:   0.5 (00.4) of 1.0 (01.0)  0.4%                                             
A:   0.5 (00.5) of 1.0 (01.0)  0.5%                                             
A:   0.6 (00.5) of 1.0 (01.0)  0.5%                                             
A:   0.6 (00.5) of 1.0 (01.0)  0.5%                                             
A:   0.6 (00.6) of 1.0 (01.0)  0.5%                                             


Exiting... (End of file)
2023.02.27 16:13:46 4: MyTTS: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.


defmod MyTTS Text2Speech hw=1.0
attr MyTTS TTS_FileTemplateDir audio
attr MyTTS TTS_Language Deutsch
attr MyTTS TTS_UseMP3Wrap 1
attr MyTTS TTS_VolumeAdjust 800
attr MyTTS verbose 5

setstate MyTTS 2023-02-27 16:17:12 duration 1
setstate MyTTS 2023-02-27 16:17:12 endTime 00:00:00
setstate MyTTS 2023-02-27 16:17:14 lastFilename cache/0bcffcb06e7ae232cc9e789d12f0ac7a.mp3
setstate MyTTS 2023-02-27 16:17:14 playing 0
setstate MyTTS 2023-02-26 13:02:10 volume 100
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: netwalk am 10 Juli 2023, 10:12:43
Hallo zusammen,

irgendwie stehe ich auf dem Schlauch.

Am WE habe ich die Sprachausgabe erfolgreich von Google auf Amazon Polly umgestellt.

Es dauerte mittels cpan Paws zwar einige Zeit, war aber nach korrektem Einstellen des AWS-Homedirs und Kopieren der credentials an passende Stelle sofort einsatzbereit und funktional.

Das Auswählen der Stimme funktioniert auch (Vicky, Marlene oder Hans).

Was mit nicht klar ist, auch nach umfangreicher Recherche hier im Forum und bei Amazon, wie aktiviere ich die neuralen Stimmen?
An welcher Stelle übermittle ich die gewünschte Engine? Oder ist diese Funktionalität nicht verfügbar?

Wäre schön, wenn mir jemand aufs Pferd helfen könnte...
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Tobias am 10 Juli 2023, 15:41:17
Ganz einfach, ist noch nicht implementiert.
Es müsste ein neuer Parameter eingeführt werden um ,,Standard" oder ,,neutral" einzustellen.

Ich nehme sehr gerne github patches entgegen ;)
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: netwalk am 11 Juli 2023, 11:08:45
Ah, ok, war ich wohl doch nicht blind.

Dann hoffe ich mal auf versierte Programmierer, die das implementieren können.
Der Unterschied zwischen den Standard- und den Neuralen-Stimmen ist schon enorm!
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: netwalk am 11 Juli 2023, 14:44:46
Hmhh,

so schwer ist es wohl doch nicht.
Nach Lektüre der AWS-Dokumentation habe ich das Modul mit der "Engine" Zeile ergänzt, und es funktioniert:

    my $res = $polly->SynthesizeSpeech(
        VoiceId => $TTS_Language,
        Text => $text,
        TextType => $texttype,
        OutputFormat => 'mp3',
        Engine => 'neural',
    );

Die TTS_Language_Custom muss dann auf "Vicki" oder "Daniel" gestellt werden.
Nach Reload des Moduls funktionierte es auf Anhieb.

Jetzt wäre noch schön, wenn die Engine als Attribut einstellbar wäre, da bin ich aber raus... ;-)

Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Ellert am 07 März 2024, 20:21:03
Ich nutze die Fully Kiosk Browser App auf meiner Infoanzeige, dort sollen auch die Textansagen abgespielt werden.
Die Fully API bietet die Möglichkeit Dateien abzuspielen, in dem man eine URL auf die Datei übergibt.

Daher wäre es schön, wenn Text2Speech diese URL bereitstellen könnte.
Zusätzlich wäre es hilfreich, wenn der Aufruf an den Remoteplayer unmittelbar nach der Fertigstellung der letzten Datei aufgerufen werden würde.

Diese Funktionalität habe ich in der anliegenden Datei eingebaut. Grundlage ist die aktuelle Moduldatei 98_Text2Speech.pm 25785 2022-03-06 10:00:56Z Tobias.Faust

Der Auruf des Remoteplayers wird in einem Attibut angegeben.

Ergänzte Befehlsrefenz:
TTS_RemotePlayerCall
Die Text2Speech Geräte stellen eine URL bereit, die auf die letzte erzeugte mp3 Datei zeigt:
http(s)://<fhem server ip>:<fhem port>/fhem/Text2Speech/<device name>/last.mp3Wenn dieses Attribut den Aufruf eines Remoteplayers enthält, wird er nach dem Erzeugen der letzten mp3 Datei ausgeführt.
Beispiel zum Abspielen einer Datei auf einem Smartphone oder Tablet mit Fully Kiosk Browser App.
attr <device name> TTS_RemotePlayerCall GetFileFromURL('http(s)://<remote player>:2323/?cmd=playSound&url=http(s)://<fhem server ip>:<fhem port>/fhem/Text2Speech/<device name>/last.mp3&loop=false&password=<password>')
@Tobias: Ich würde mich freuen, wenn die Ergänzung in das offizielle Modul einfließen würde.
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Tobias am 08 März 2024, 06:12:19
Interessant, kannst du einen pullrequest an mein repo stellen?

Edit: Probier mal bitte das fully FHEM Modul zu nutzen in Verbindung mit einem notify.

TTS generiert das mp3, wenn sich das Reading ändert reagiert dein notify drauf und aktiviert das fully Modul zum senden der URL.

Sollte funktionieren ohne das TTS Modul ändern zu müssen
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Ellert am 08 März 2024, 11:33:38
FULLY war mir bisher nicht aufgefallen.

Der Workaround funktioniert, wenn man die Audiodatei unterhalb von /opt/fhem/www platziert.

Ist nicht die originäre Aufgabe von Text2Speech, Text in Sprache umzuwandeln und abzuspielen?

Mit meinen Vorschlag ist das für alle Abspielgeräte möglich, die eine Datei über URL erfordern und eine API zur Verfügung stellen.

Vorteile:
Über das Attribut TTS_RemotePlayerCall kann ein beliebiger Aufruf erfolgen.

Die URL für die letzte Datei ist fest.

Der Defaultchache muss nicht umgebogen werden.

Es sind keine zusätzlichen Module erforderlich.

Nachteil:
Ich habe keinen Account für Dein Repo und weiss nichts über die Bedienung.

Ich könnte aber eine Diff Datei zum aktuellen Modul erzeugen, wenn es hilft.
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Beta-User am 08 März 2024, 11:51:53
Da https://forum.fhem.de/index.php?msg=1227529 bzw. https://forum.fhem.de/index.php?topic=128346.msg1227537#msg1227537 auch schon länger offen sind, habe ich eben aus Anlass von Ellerts patch-Vorschlag einen PR eröffnet für meinen alten Code.

@Ellert: Habe mir deinen patch noch nicht angesehen, vermutlich ist da manches doppelt. Vielleicht bekommen wir das synchronisiert, dann liefere ich das auf dem (m.E. ziemlich umständlichen) github-PR-Weg nach...

Nachtrag: "die" (Zeile 1263) geht m.E. aber in einem FHEM-Modul gar nicht... Warum wird da nicht die FHEM-interne Lesefunktion aufgerufen?
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Ellert am 08 März 2024, 18:04:01
@Beta-User
Hilf mir mal, welche Lesefunktion meinst Du?

FileRead liest zeilenweise, das geht mit mp3 nicht.

Ich habe genommen, was ich so im Netz gefunden habe.

Wenn es etwas besseres gibt, mach ich das gerne.
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Beta-User am 08 März 2024, 18:15:44
Zitat von: Ellert am 08 März 2024, 18:04:01FileRead liest zeilenweise, das geht mit mp3 nicht.
FileRead() war gemeint gewesen. Weiß nicht, ob das vergleichbar ist, aber MYSENSORS_DEVICE liest z.B. auch die firmwares als bin oder hex-Dateien ein und verarbeitet die dann weiter. Ist dann halt "eine Zeile".

Jedenfalls geht "die()" in einem FHEM-Modul gar nicht (bitte im Zweifel Rudi dazu kontaktieren), in gepackten Modulen würde ich Carp::carp verwenden (was aus dem Kopf "warn()" entsprechen sollte?).

Vielleicht kannst du auch mal meine Fassung austesten, die ist zwar von meiner Seite nur für Mimic 3 getestet, sollte aber auch mit MaryTTS klarkommen. Allerdings scheint das mit dem File-Einlesen nochmal was anderes (zusätzliches?) zu sein?
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Ellert am 08 März 2024, 20:04:12
@ Beta-User
Danke für den Hinweis, dass die zu sterben hat.

Die anliegend Datei ist die Aktuelle ohne die Verwendung von die.

Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Tobias am 09 März 2024, 06:36:56
info: ich schau es mir gerade an und werd es dann übernehmen. Danke für das Upgrade.
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Tobias am 09 März 2024, 07:00:00
Zitat von: Beta-User am 08 März 2024, 11:51:53Da https://forum.fhem.de/index.php?msg=1227529 bzw. https://forum.fhem.de/index.php?topic=128346.msg1227537#msg1227537 auch schon länger offen sind, habe ich eben aus Anlass von Ellerts patch-Vorschlag einen PR eröffnet für meinen alten Code.

@Ellert: Habe mir deinen patch noch nicht angesehen, vermutlich ist da manches doppelt. Vielleicht bekommen wir das synchronisiert, dann liefere ich das auf dem (m.E. ziemlich umständlichen) github-PR-Weg nach...

Nachtrag: "die" (Zeile 1263) geht m.E. aber in einem FHEM-Modul gar nicht... Warum wird da nicht die FHEM-interne Lesefunktion aufgerufen?

Uii, diese patches habe ich überhaupt nicht gesehen...... schau ich mir an. Oder hast du schon alles fertig zusammen integriert?
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Beta-User am 09 März 2024, 08:35:22
Zitat von: Tobias am 09 März 2024, 07:00:00Uii, diese patches habe ich überhaupt nicht gesehen...... schau ich mir an. Oder hast du schon alles fertig zusammen integriert?
Ist nur ein patch, der zumindest in Teilen wohl dasselbe macht wie der Vorschlag von @Ellert (aber zumindest auf den ersten Blick eher in der Art wie die anderen Quellen eingebunden werden). Ist für Miminc3 (als MaryTTS-kompatible Lösung) von ein paar Usern getestet.

Daneben beinhaltet der patch auch ein upgrade der commandref auf "id"-Fassung, mit der man die Hilfetext-Auszüge direkt bei der Attributeingabe etc. sehen kann.

Kann nicht beurteilen, ob meine oder Ellerts Lösung besser ist (daher die Bitte an @Ellert, auch meine Fassung mal zu testen, auch weil bis dato afaik keiner MaryTTS selbst damit getestet hatte), die commandref sollte man m.E. bei der Gelegenheit dann in jedem Fall umstellen.
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Ellert am 09 März 2024, 14:09:50
Zitat von: Beta-User am 09 März 2024, 08:35:22der zumindest in Teilen wohl dasselbe macht wie der Vorschlag von @Ellert


@Beta-User:
Soweit ich das sehe machen wir beide unterschiedliche Dinge.
Du bindest eine neue Engine ein und lieferst ein Audiofile, das Text2Speech weiter nutzt, sehe ich das richtig?. Und Du hast die Commandref aufgepept.

Ich stelle die letzte Audiodatei aus dem Reading lastFilename als Webhook zur Verfügung und biete die Möglichkeit Perlcode auszuführen. Zum Beispiel, um die URL zur letzten Audiodatei zum Abspielen an Fully zu senden.
Der Perlcode wird ausgeführt, nachdem die neue letzte Datei erzeugt wurde.

Zitat von: Beta-User am 08 März 2024, 18:15:44Vielleicht kannst du auch mal meine Fassung austesten, die ist zwar von meiner Seite nur für Mimic 3 getestet, sollte aber auch mit MaryTTS klarkommen.
Ehrlich gesagt, fehlt mir gerade die Zeit und wohl auch die Ressourcen, mein Testrechner ist ein Pi B+, da möchte ich keine TTS Engine rauf frickeln.

@Tobias:

Ich hoffe, es ist noch nicht zu spät für eine Attualisierung.
Ich habe noch ein
close $fheingebaut, im Falle eines Lesefehlers.
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Tobias am 09 März 2024, 16:38:52
ich habe es übernommen, ein paar Anpassungen gemacht und Beta-Users MaryTTS noch manuell eingebaut. Leider fehlen noch die Anpassungen der Hilfe von Beta-User. Ich arbeite mit VSCode, da habe ich nicht rausfinden können wie ich den patch anwende. Ggf könnt ihr das noch auf die aktuelle Version machen?

https://github.com/tobiasfaust/MyFHEM/tree/master/FHEM

Bitte testet mal...

Bei änderungen: im Idealfall über einen PR an mein Github, notfalls gehts hier aber auch über Attachment
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Ellert am 09 März 2024, 20:45:15
Es hat sich ein Fehler eingeschlichen:

982   } else  if ( $TTS_Ressource eq 'maryTTS' ) {
Mein Teil funktioniert, MaryTTS kann ich nicht testen.

Berichtigung im Anhang, als Grundlage die Datei aus GitHub.
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Tobias am 10 März 2024, 08:45:19
Bitte nochmal testen, ich habe jetzt die Dokumentationsanpassungen von Beta-User mit eingegarbeitet
@Beta-User: Bitte teste auch noch deine MaryTTS Anpassung

Wenn alles fehlerfrei funktioniert checke ich es im FHEM Repo ein
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Ellert am 10 März 2024, 15:17:16
@Tobias:
Mein Teil funktioniert immer noch.

Allerdings ist mir auf gefallen, dass die Hilfe (DE/EN)für mein Attribut TTS_RemotePlayerCall nicht aktiviert ist.

Das habe ich in der Anlage nachgeholt. Grundlage ist die Datei aus dem GitHub.
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Beta-User am 10 März 2024, 16:13:50
Hallo zusammen,

kann grade leider nicht selbst testen, habe daher mal in https://forum.fhem.de/index.php?msg=1306523 einen call gestartet und hoffe mal, dass (mind.) einer der User sich bereit findet, kurzfristig eine Rückmeldung zu geben.

@Ellert: Für den Test müsste MaryTTS übrigens nicht auf demselben System laufen wie FHEM, ich hatte das auch eine Zeitlang auf eine andere (potentere) Hardware ausgelagert. Falls du also irgendwo überhaupt eine Instanz am Laufen hast (? es klang so), sollte das ohne größeren Aufwand gehen. (Jetzt läuft FHEM, Rhasspy und Mimic3 wieder auf einem System, das allerdings deutlich mehr "Wumms" hat wie mein bisheriger Hauptserver. Da hat die Mimic3-Installation übrigens nur wenige Minuten gedauert).

Ansonsten Danke an euch beide für die Zusammenarbeit (und Erklärungen) hier!
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Ellert am 10 März 2024, 23:41:04
Zitat von: Beta-User am 10 März 2024, 16:13:50Falls du also irgendwo überhaupt eine Instanz am Laufen hast (? es klang so), sollte das ohne größeren Aufwand gehen.

Wenn ich eine MaryTTS Instanz laufen hätte, dann hätte ich auch schon getestet. Ich habe nicht die Muße mich damit zu beschäftigen. Ich nutze ausschließlich Google als TTS_Ressource und bin damit zufrieden. Meinem Anzeigegerät habe ich den Internetzugang verboten, sonnst könnte ich TTS auf Fully direkt nutzen. Deshalb nutze ich den Umweg über playSound und der URL auf die letzte Audiodatei.
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: JensS am 11 März 2024, 19:09:32
Bei mir läuft eine mimic3-Testinstanz auf http://192.168.100.1:59125
Wie trage ich das in T2S ein? Als Ressource gibt's ja jetzt maryTTS.

Gruß Jens
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Beta-User am 11 März 2024, 19:47:25
Zitat von: JensS am 11 März 2024, 19:09:32Bei mir läuft eine mimic3-Testinstanz auf http://192.168.100.1:59125
Wie trage ich das in T2S ein? Als Ressource gibt's ja jetzt maryTTS.

Gruß Jens
Vorab mal vielen Dank für's Aufgreifen der Bitte!!!

In "define" ist es eine Server-resource, also "none", dann "maryTTS" in "TTS_Ressource" (da kompatibel), und dann eben noch die Angabe, wie genau das parametriert werden soll. Die de-commandref ist da anscheinend etwas aussagekräftiger, was die defaults (und die Notation) angeht. Da ist die Variante vercodet, die ich im großen und ganzen beim Testen genutzt hatte), siehe auch die Rückmeldungen von the ratman im Mimic-Thread, der damit auch etwas erwetert rumgespielt hatte.

(Aus dem Kopf: man kann die defaults halt entweder auf der Mimic3-Seite festlegen (Stimme etc.), oder man macht es eben (auh) von FHEM aus und gibt diese Parameter beim Aufruf mit. (?))
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: JensS am 12 März 2024, 05:23:31
define T2S Text2Speech default
attr T2S TTS_Language Deutsch
attr T2S TTS_MplayerCall /usr/bin/mplayer
attr T2S TTS_Ressource maryTTS
attr T2S TTS_UseMP3Wrap 1
attr T2S TTS_User host=192.168.100.1 port=59125 lang=de_DE voice=de_DE/thorsten_low
Hab's mit SIP getestet und Thorsten sagt, was er soll.

Gruß Jens
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: JensS am 12 März 2024, 07:14:53
Gibt's eine Möglichkeit, frei definierbare Argumente und HTML-Tags zu übergeben?
Dann kann man die Mehrsprachigkeit von mimic3 nutzen https://community.rhasspy.org/t/mimic-3-tts-preview/3651/28?u=jens-schiffke (https://community.rhasspy.org/t/mimic-3-tts-preview/3651/28?u=jens-schiffke)

Gruß Jens
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Beta-User am 12 März 2024, 09:16:15
Zitat von: JensS am 12 März 2024, 05:23:31define T2S Text2Speech default
attr T2S TTS_Language Deutsch
attr T2S TTS_MplayerCall /usr/bin/mplayer
attr T2S TTS_Ressource maryTTS
attr T2S TTS_UseMP3Wrap 1
attr T2S TTS_User host=192.168.100.1 port=59125 lang=de_DE voice=de_DE/thorsten_low
Hab's mit SIP getestet und Thorsten sagt, was er soll.

Gruß Jens
Hmm, vermutlich ist das "mehr als notwendig", meine alte Einstellung war die (define mit "none"):
Attributes: TTS_Ressource maryTTS
TTS_User host=192.168.2.64
Zitat von: JensS am 12 März 2024, 07:14:53Gibt's eine Möglichkeit, frei definierbare Argumente und HTML-Tags zu übergeben?
Dann kann man die Mehrsprachigkeit von mimic3 nutzen https://community.rhasspy.org/t/mimic-3-tts-preview/3651/28?u=jens-schiffke (https://community.rhasspy.org/t/mimic-3-tts-preview/3651/28?u=jens-schiffke)

Gruß Jens
Also: das TTS_User-Attribut nutzt parseParams, so dass man darüber im Prinzip beliebige key-value-Paare an den HTTP-Aufruf übergeben kann. Da das aber ein Attribut ist, möchte man das (in der Regel) ja nicht dauernd ändern.

Aber das Beispiel mit der Mehrsprachigkeit ist ja nochmal anders: Da stehen die Codier-Anweisungen ja im übergebenen Text drin, und das sollte ohne weiteres auch direkt funktionieren. Die Übergabe des Textes ist ja 1:1 dasselbe wie unter Rhasspy, nur dass hier halt die Rückgabe noch durch einen mp3-Codierer gehauen wird (wenn ich mich recht enstinne).

Habe mal die commandref noch etwas angepaßt, dann wird der mögliche Inhalt von TTS_User vielleicht etwas klarer (so richtig zufrieden bin ich noch nicht):
  <a id="Text2Speech-attr-TTS_User"></a><li>TTS_User<br>
    Actual only used for maryTTS (and Mimic 3, but might be appropriate for any TTS enginge to be addressed via http-GET request). Needed in case if a TTS Engine needs a username and an APIKey for a request. You may hand over any key-value-pair necessary for your enginge, so also Mimic 3 successor Piper should work as well.<br>
    <p>(Full) example for maryTTS (values are defaults and may be left out):</p>
        <p><code>attr t2s TTS_User host=127.0.0.1 port=59125 lang=de_DE voice=de_DE/thorsten_low</code></p>
  </li>
 
 
  <a id="Text2Speech-attr-TTS_User"></a><li>TTS_User<br>
    Derzeit nur für maryTTS (bzw. kompatible Dienste wie Mimic 3) genutzt, sollte aber auch für andere TTS-Dienste funktionieren, die mit http-GET-Aufrufen angesprochen werden können, falls eine Sprachengine zusätzlich zum APIKey einen Usernamen oder sonstige Parametrierungen im Request verlangt. Es können beliebige key-value-Paare übergeben werden<br>
    <p>(Vollständiges) Beispiel für maryTTS (die angegebenen Werte entsprechen den defaults):</p>
        <p><code>attr t2s TTS_User host=127.0.0.1 port=59125 lang=de_DE voice=de_DE/thorsten_low</code></p>
  </li>
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Tobias am 12 März 2024, 10:57:17
Die SSML Tags können direkt in den tts text integriert werden. Steht auch so in der Doku. Zumindest funktioniert es für AWS-Polly so.
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: JensS am 12 März 2024, 17:27:21
Zitat von: Tobias am 12 März 2024, 10:57:17Die SSML Tags können direkt in den tts text integriert werden. Steht auch so in der Doku. Zumindest funktioniert es für AWS-Polly so.
Klar - SSML-Tags. Folgende Variante funktioniert zweisprachig:
define T2S Text2Speech default
attr T2S TTS_MplayerCall /usr/bin/mplayer
attr T2S TTS_Ressource maryTTS
attr T2S TTS_User host=192.168.100.1 port=59125 lang=de_DE voice=de_DE/thorsten_low ssml=1
set T2S tts '<voice name="de_DE/m-ailabs_low#rebecca_braunert_plunkett">Das ist ein Test in deutsch </voice><voice name="en_US/vctk_low#p236">and this is an test in english.</voice>'
Gruß Jens
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Ellert am 16 März 2024, 01:16:29
@Tobias:
Anliegend gibt es eine Aktualisierung.

Eine lange bestehende falsche Logmeldung wurde bereinigt, siehe https://forum.fhem.de/index.php?topic=100556.0
Eine Warnung beim Neustart von FHEM wurde beseitigt.
Auch im Servermode wird das Reading 'duration' gesetzt.
Der Zeitpunkt, an dem der Remoteplayer aufgerufen wird, wurde optimiert.
Basis ist die Datei aus #1219
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Tobias am 16 März 2024, 08:14:45
Vielen Dank, ich habe es eingecheckt. Bitte nochmal soviel von so vielen wie möglich testen. Wenn alles i.O. ist checke ich es im fhem repo ein.
https://github.com/tobiasfaust/MyFHEM

@Ellert, es wäre super wenn du als Basis immer den aktuellen Stand aus dem Git nimmst, wie du das Git in Fhem einbindest steht auch im Readme :)
Ansonsten einfach von dort herunterladen :) (Datei auswählen -> Download Raw File)
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: JensS am 16 März 2024, 08:41:51
läuft
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Tobias am 16 März 2024, 13:47:03
ich habe eben noch das Beispiel mit MaryTTS und SSML in die Readme hinzugefügt.
https://github.com/tobiasfaust/MyFHEM/tree/master/FHEM
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Ellert am 16 März 2024, 19:06:56
Zitat von: Tobias am 16 März 2024, 08:14:45@Ellert, es wäre super wenn du als Basis immer den aktuellen Stand aus dem Git nimmst
@Tobias:
Mache ich das nächste Mal, bin davon ausgegangen, dass Du noch nichts übernommen hast, weil es hier keine Rückmeldung gab zur Datei aus #1219.

Es gibt ein Reading 'endTime'  das keine weitere Funktion zu haben scheint, es wird immer auf 00:00:00 gesetzt.
Es wird nur in der Sub Text2Speech_BuildMplayerCmdString (Zeile 827) verwendet.
BlockingInformParent("Text2Speech_readingsSingleUpdateByName", [$hash->{NAME}, "endTime", "00:00:00"], 0);
Kann das entfernt werden ?




Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Ellert am 17 März 2024, 13:12:13
Ich möchte hier kurz feststellen, dass ich meinen Teil ausgiebig getestet habe und kein unerwünschtes Verhalten festgestellt habe.
Ich nutze das Modul aus dem GitHub im Wirkbetrieb.

Aus meiner Sicht könnte das Modul ins FHEM-Repo.
Titel: Aw: Neues Modul: Text2Speech
Beitrag von: Tobias am 18 März 2024, 13:19:23
@ellert: Hab ich rausgenommen
Werde den Stand die nächsten Tage ins FHEM-Repo einchecken