Neues Modul: Text2Speech

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

Vorheriges Thema - Nächstes Thema

Otto123

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

gadget

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

joergi

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

Tobias

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

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

Lobot

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


Tobias

du hast ein problem mit deiner sqlite datenbank ;) Dem solltest du nachgehen.
Solange kannst du das Attribut TTS_noStatisticsLog = 0 im TTS Modul setzen.
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

Wzut

no = 0 wäre dann aber wieder ja ... so lese ich auch deine command.ref :)
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Lobot

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

Frank_Huber

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.

Panik

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
Raspberry3+,  CUL USB V3 mit V 1.66 CUL868, TRXRFX433, HM-MOD-UART, Phoscon-GW

Lobot

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

Panik

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.
Raspberry3+,  CUL USB V3 mit V 1.66 CUL868, TRXRFX433, HM-MOD-UART, Phoscon-GW

monty_burns_007

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

mumpitzstuff

Attribut TTS_Language setzen?

monty_burns_007

#854
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)