Neues Modul: Text2Speech

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

Vorheriges Thema - Nächstes Thema

mumpitzstuff

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

Tobias

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

Phiolin

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

Ellert

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.

P.A.Trick

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 :-)
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

Ellert

#1130
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?

Phiolin

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

Tobias

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

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

Dr_Prune

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.

Phiolin

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.

Wetterhexe

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

Navigator

#1137
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 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?

Prof. Dr. Peter Henning

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

Tobias

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