Neues Modul: Text2Speech

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

Vorheriges Thema - Nächstes Thema

Starkstrombastler

@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.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

michaelfhem

@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
raspberry Pi 3 + jessie + fhem
Devices: Fritz Dect 200, Homematic (HMLan-Gateway), FS20 (CUL-Stick), Hue-Gateay, Sonos

PsychoD

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

michaelfhem

#633
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
raspberry Pi 3 + jessie + fhem
Devices: Fritz Dect 200, Homematic (HMLan-Gateway), FS20 (CUL-Stick), Hue-Gateay, Sonos

duu75

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


duu75

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

Hollo

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.
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

duu75

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.

Hollo

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.
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

michaelfhem

@PsychoD: Ohne mp3wrap läuft tts seit ca. 5 Tagen stabil.

Grüße
raspberry Pi 3 + jessie + fhem
Devices: Fritz Dect 200, Homematic (HMLan-Gateway), FS20 (CUL-Stick), Hue-Gateay, Sonos

PsychoD

Hochinteressant - Danke für das Update! Ich stell dann auch mal um und teste mal mit.

VG

Ellert

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.

duu75

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.

td

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

Tobias

aus igrnedeinem Grund kommt fhem nicht in dein cache verzeichnis rein .....
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