Neues Modul: Text2Speech

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

Vorheriges Thema - Nächstes Thema

Tobias

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.
Maintainer: Text2Speech, TrashCal, MediaList

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

Ellert

#436
@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.

netbus

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?

fruemmel

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.

netbus

Habe den Cache gelöscht und verwende schon das neue Modul aber der 545 Fehler bleibt  :-[

fruemmel

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.

netbus

ich bekomme genau die gleiche fehlermeldung.
auch wenn ich es im browser aufrufe steht bei mir
"Abspielen des Videos wegen eines Netzwerkfehlers abgebrochen"

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

netbus

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&client=t&prev=input&q=das%20ist%20ein%20test

justme1968

der link ist falsch. statt der & muss jeweils ein einzelnes & stehen:http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=das%20ist%20ein%20test

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

netbus

ich generiere den link nicht  ;)
wo muss ich das im modul ändern?

Otto123

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...
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

netbus

#447
das aktuelle modul verwendet genau diese änderung
"&client=t&prev=input&"
im endeffekt wird aber ein & 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.

Otto123

#448
Da läuft scheinbar irgendwie ne Zeichen Ersetzung?
siehe https://de.wikipedia.org/wiki/Et-Zeichen

"irgendwer" macht aus & das &

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 &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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

fruemmel

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&client=t&prev=input&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