Neues Modul: Text2Speech

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

Vorheriges Thema - Nächstes Thema

mumpitzstuff


sn0000py

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.

mumpitzstuff

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?

sn0000py

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

schwatter

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.

Ingo298

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 ??
RPi4 8GB: Bookworm FHEM 6.4, FTUI-3, AMAD,10.1" Tablet; MiLight;IT;HM;Dect200;VZLogger;MQTT;PiVCCU3

rakete123

Hab das selbe Problem wie Ingo298
Zwave: ZMEEUZB1 (Fibaro, Aeotec, diverse)
Zigbee: Conbee (HUE, Xiaomi, osram)
Homematic: HM-MOD-RPI-PCB + diverse HM-CC-RT-DN
Sonstiges: Harmony, Android, Netatmo, Jabber (talk2fhem)
https://resize2fs.de

Tobias

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";
    }
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

Ingo298

#1088
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



RPi4 8GB: Bookworm FHEM 6.4, FTUI-3, AMAD,10.1" Tablet; MiLight;IT;HM;Dect200;VZLogger;MQTT;PiVCCU3

rakete123

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;


Zwave: ZMEEUZB1 (Fibaro, Aeotec, diverse)
Zigbee: Conbee (HUE, Xiaomi, osram)
Homematic: HM-MOD-RPI-PCB + diverse HM-CC-RT-DN
Sonstiges: Harmony, Android, Netatmo, Jabber (talk2fhem)
https://resize2fs.de

Ingo298

use File::HomeDir;
$home     = File::HomeDir->my_home;
print $home;


wo gehören diese Zeilen hin ?
RPi4 8GB: Bookworm FHEM 6.4, FTUI-3, AMAD,10.1" Tablet; MiLight;IT;HM;Dect200;VZLogger;MQTT;PiVCCU3

rakete123

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
Zwave: ZMEEUZB1 (Fibaro, Aeotec, diverse)
Zigbee: Conbee (HUE, Xiaomi, osram)
Homematic: HM-MOD-RPI-PCB + diverse HM-CC-RT-DN
Sonstiges: Harmony, Android, Netatmo, Jabber (talk2fhem)
https://resize2fs.de

Phiolin

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.

stoxx

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
Raspberry mit CUL, FS20, FHT, HMS, BLE, Z-Wave, Zigbee ..

bern69

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 :-).