ALL ALL = NOPASSWD: /usr/bin/mplayer
define <MyTTS> Text2Speech <Alsa-SoundDevice>
define MyTTS Text2speech hw=0.0
set MyTTS tts Das ist ein Test.
set MyTTS tts Das ist ein Test. Und hier noch ein Test.
define <MyTTS> Text2Speech host[:port][:SSL] [portpassword]
define MyTTS Text2speech 192.168.178.20:7072 MeinFhemPass
set MyTTS tts Das ist ein Test.
Zitat von: Tobias am 07 Januar 2014, 12:57:23
Anschließend mit visudo den mplayer für alle aufrufbar machen:Code AuswählenALL ALL = NOPASSWD: /usr/bin/mplayer
Aufruf:Code Auswählendefine <MyTTS> Text2Speech <Alsa-SoundDevice>
define MyTTS Text2speech hw=0.0
set MyTTS tts Das ist ein Test.
set MyTTS tts Das ist ein Test. Und hier noch ein Test.
Per Attr "TTS_Delemiter" kann man einen Delemiter im Text festlegen, bei dem große Texte getrennt werden können. Der Google Translator lässt maximal 100 Zeichen zu. Ist ein Aufruf länger als 100 Zeichen, wird hart nach 100 Zeichen abgeschnitten.
Feedback wäre nicht schlecht ;)
pi@raspberrypi ~ $ aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: ALSA [bcm2835 ALSA], Gerät 0: bcm2835 ALSA [bcm2835 ALSA]
Sub-Geräte: 8/8
Sub-Gerät #0: subdevice #0
Sub-Gerät #1: subdevice #1
Sub-Gerät #2: subdevice #2
Sub-Gerät #3: subdevice #3
Sub-Gerät #4: subdevice #4
Sub-Gerät #5: subdevice #5
Sub-Gerät #6: subdevice #6
Sub-Gerät #7: subdevice #7
pi@raspberrypi ~ $ aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
default:CARD=ALSA
bcm2835 ALSA, bcm2835 ALSA
Default Audio Device
sysdefault:CARD=ALSA
bcm2835 ALSA, bcm2835 ALSA
Default Audio Device
pcm.!default {
type hw
card 0
device 0
}
sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols "http://translate.google.com/translate_tts?tl=de&q=test nochmal"
Zitat von: Tobias am 08 Januar 2014, 08:34:46
zb:Code Auswählenpcm.!default {
type hw
card 0
device 0
}
Wenn du es wie oben das Modul mit hw=0.0 angibst, sollte es funktionieren. Ansonsten mach mal "verbose 5" für dieses Modul und aktualisiere bitte nochmal das Modul aus dem ersten Post. Schau mal bitte dann im Log nach, da steht der abgesetzte Aufruf drin. Funktioniert dieser in der shell?
zb:Code Auswählensudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols "http://translate.google.com/translate_tts?tl=de&q=test nochmal"
Bei mir hängt am FHEM-Server eine Terratec Aureon MKII USB-Soundkarte. Mit dieser funktioniert es problemlos....
ALL ALL = NOPASSWD: /usr/bin/mplayer
,ZitatIm Anfang schuf Gott Himmel und Erde. die Erde aber war wüst und wirr, Finsternis lag über der Urflut und Gottes Geist schwebte über dem Wasser. Gott sprach. Es werde Licht. Und es wurde Licht. Gott sah, dass das Licht gut war. Gott schied das Licht von der Finsternis und Gott nannte das Licht Tag und die Finsternis nannte er Nacht. Es wurde Abend und es wurde Morgen: erster Tag. Dann sprach Gott: Ein Gewölbe entstehe mitten im Wasser und scheide Wasser von Wasser.
Zitat2014.01.09 07:42:32.740 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols "http://translate.google.com/translate_tts?tl=de&q= Gott schied das Licht von der Finsternis und Gott nannte das Licht Tag und die Finsternis nannte er"
2014.01.09 07:42:40.999 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols "http://translate.google.com/translate_tts?tl=de&q= Es wurde Abend und es wurde Morgen: erster Tag."
sudo apt-get install espeak
espeak -vde+f3 -k5 -s150 "Hallo lieber User, ich bin eine gräßliche Stimme deiner freundlichen Hausautomatisierung"
Zitat von: Strippenzieher am 09 Januar 2014, 14:04:44Zumindest der Remote-Teil sollte auf der Fritte laufen ;)
Jetzt auch mal was geschrieben ...
Ich verfolge deinen/euren Thread schon einige Tage, leider kann ich das Modul nicht testen, da mein Fhem (noch) nur auf einer Fritte läuft.
Ich würde es aber sehr begrüßen, wenn du/ihr weiter daran rum feilt ...
MFG Chris
set tts tts Das Licht in der Küche ist an.
set tts tts Das Licht in der Kueche ist an.
sudo apt-get install mp3wrap
ZitatDas in dem Thread war von Rice :D - und wurde wegen deinem eingestampft :D
deshalb frag ich
*** EN FHEM/98_Text2Speech.pm: ignoring text due to DOS encoding
Zitat von: Tobias am 19 Januar 2014, 06:48:18
also ich nutze das Modul mit Google und Ausgabe per bluetooth -> kein problem....
Mach mal einen längeren Satz... vieleich ist dein Satz zu kurz? BEi mir wird nämlich immer dieletzte Sekunde bei Ausgabe per BT abgeschnitten.. Deshalb das Attr TTS_SentenceAppendix
Was sagt verbose auf 5?
Zitat von: Rince am 19 Januar 2014, 08:08:37
Wenn es ein attr für die Lautstärke gibt, muss man nur mit einem at *22:00:00 set .... die Lautstärke neu definieren.
Ansonsten muss man in jedem Sprachausgabenotify noch diese Unterscheidung treffen.
Meinst du, das geht? (Oder geht das so auch elegant und ich sehe blos den Weg nicht?)
sudo gpasswd -a fhem audio
#DUMMY SOUNDCHECK
define SoundCH dummy
attr SoundCH group Sound.Control
attr SoundCH room Control
attr SoundCH setList state:espeak,mplayer,speaker-test
attr SoundCH webCmd state
define SoundCH_PAIR notify SoundCH {\
if ("$EVENT" eq "espeak") {\
`/usr/bin/espeak -v mb-de7 -a 150 -s 100 'Das ist ein Test'`;;\
}\
elsif ( "$EVENT" eq "mplayer") {\
`/usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols 'http://translate.google.com/translate_tts?tl=de&q=Das ist ein Test.'`;;\
}\
elsif ( "$EVENT" eq "speaker-test") {\
`/usr/bin/speaker-test -t sine -f 440 -c 2 -s 1`;;\
}\
}
set MyRenderer http://fhemserver/file.mp3
ZitatHier das Log (reverse)Das sieht aus, als ob du keinen Telnetzugang im fhem definiert hast..??
Can't use an undefined value as a symbol reference at /volumeUSB1/usbshare1-1/fhem/FHEM/Blocking.pm line 126.
2014.01.21 15:09:35 1: CallBlockingFn: Can't connect to localhost:
Use of uninitialized value in concatenation (.) or string at /volumeUSB1/usbshare1-1/fhem/FHEM/Blocking.pm line 109.
Exiting... (End of file)
Zitat von: Tobias am 30 Januar 2014, 13:01:53
Ich kann im Modul zb. die Set Methode deines Moduls aufrufen und damit auch die mp3-Datei URL übergeben...
Zitat von: Tobias am 30 Januar 2014, 13:01:53
Hat das DLNA-Modul schon einen relativ reifen Stand..??
Zitat von: Tobias am 30 Januar 2014, 16:19:50
ich glaube nicht das fhem den Anspruch eines DLNA-Servers hat ;)
my $mplayerAudioOpts = '-af volume=6 -ao alsa:device=';
amixer cset numid=3 1
habe ich die Ausgabe auf den Klinkenstecker und einen separaten Aktivlautsprecher umgeleitet - und voila - der Text wird komplett vorgelesen.set MyTTS volume 100
volume level expects 0..100 percent
Zitat von: Tobias am 13 Februar 2014, 18:42:41
Ich glaube das habe ich sogar schon benutzt beim
Set volume
Kannst ja mal schauen ob das dir schon hilft
320: return "volume level expects 0..100 percent" if($vol !~ m/^([0-9]{1,3})$/ or $vol > 100); #fiedel: lasse 3-stellige Zahlen zu, aber nicht ueber 100
321: $hash->{VOLUME} = $vol *0.15 if($vol <= 100); #fiedel: Faktor fuer Vol. wegen Ausgabe in +dB, lasse auch Wert= 100 zu
322: delete($hash->{VOLUME}) if($vol > 100); #fiedel: loesche Wert nur wenn groesser 100
461: $mplayerOpts .= " -af volume=" . $hash->{VOLUME}; #fiedel: Vorverstaerkung in +dB
tts Zeile 461 - Wert von mplayerOpts: -nolirc -noconsolecontrols -af volume=15
Zitat
TTS_FileMapping
Definition of mp3files with a custom templatedefinition. Separated by space. All templatedefinitions can used in audiobricks by i>tts. The definition must begin and end with e colon. The mp3files must saved in the given directory by TTS_FIleTemplateDir.
attr myTTS TTS_FileMapping ring:ringtone.mp3 beep:MyBeep.mp3
set MyTTS tts Attention: This is my ringtone :ring: Its loud?
ZitatVolume ist auf 99 gesetzt 100 wird nicht akzeptiert.
$t =~ s/ß/sz/g
(Ich glaube in Zeile 377)$t =~ s/ß/ss/g
set MyTTS tts Test :alarm:
Zitat von: Marcel2209 am 17 Februar 2014, 22:22:49
Kann man auch nur die MP3 abspielen lassen ohne weiteren Text?
{system("sudo mplayer /Pfad/Sound.mp3 &")}
Zitat von: Rince am 17 Februar 2014, 22:55:27Ich nehme es mal als ToDo mit auf...
Ich glaube, nachdem es bei dir läuft, könntest du es vermutlich mitCode Auswählenset MyTTS tts Test :alarm:
ziemlich schnell rausfinden.
Scheller als hier zu fragen ;)
Zitatsudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols "http://translate.google.com/translate_tts?tl=de&q=test nochmal"Leider auch ohne Erfolg.
Zitat
Connecting to server translate.google.com[173.194.116.198]: 80...
Cache size set to 320 KBytes
Cache fill: 1.63% (5328 bytes)
Audio only file format detected.
==========================================================================
Requested audio codec family [mpg123] (afm=mpg123) not available.
Enable it at compilation.
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 53.35.0 (external)
Mismatching header version 53.32.2
AUDIO: 16000 Hz, 1 ch, floatle, 32.0 kbit/6.25% (ratio: 4000->64000)
Selected audio codec: [ffmp3float] afm: ffmpeg (FFmpeg MPEG layer-3 audio)
==========================================================================
[AO_ALSA] Format floatle is not supported by hardware, trying default.
AO: [alsa] 16000Hz 1ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A: 0.9 (00.8 ) of 1.0 (01.0) 1.3% 0%
Zitat**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 7/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
ZitatnullBin leider kein Linuxer und verstehe nicht ganz, was mir das alles sagen soll..
Discard all samples (playback) or generate zero samples (capture)
pulse
Playback/recording through the PulseAudio sound server
sysdefault:CARD=ALSA
bcm2835 ALSA, bcm2835 ALSA
Default Audio Device
Zitat@stoxx: schon mal hiernach versucht den PI richtig einzustellen? https://sites.google.com/site/semilleroadt/home/raspberry-piSuper, daran hat es gelegen - danke für den Tipp!
ZitatHat jemand eine idee, was ich falsch mache?
Zitat
my $val = ReadingsVal( "Telefon", "missed_call", "none" );
my $ts_buf = ReadingsTimestamp( "Telefon", "missed_call", "none" );
if ($val ne "none") {fhem("set MyTTS tts Anrufe in Abwesenheit. Letzter Anruf von ".$val." um ".$ts_buf)}
Zitat$ts_buf = substr($ts_buf,0,-3);
if ($val ne "none") {fhem("set MyTTS tts Anrufe in Abwesenheit. Letzter Anruf von $val um $ts_buf")}
Zitat
MyTTS: unknown attribute TTS_UseMp3Wrap, choose one of verbose:0,1,2,3,4,5 room group comment alias eventMap userReadings disable:0,1 TTS_Delemiter TTS_Ressource:Google,ESpeak TTS_CacheFileDir TTS_UseMP3Wrap:0,1 TTS_MplayerCall TTS_SentenceAppendix TTS_FileMapping TTS_FileTemplateDir TTS_VolumeAdjust event-on-change-reading event-on-update-reading event-min-interval stateFormat or use attar global userattr TTS_UseMp3Wrap
Zitat
Please define Text2Speech first
ZitatSpeech: Bearbeite jetzt den Text: test
2014.05.16 11:52:48 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&q=test
2014.05.16 11:52:48 4: Text2Speech: Schreibe mp3 in die Datei cache/098f6bcd4621d373cade4e832627b4f6.mp3 mit 3744 Bytes
2014.05.16 11:52:48 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=3 -nolirc -noconsolecontrols cache/098f6bcd4621d373cade4e832627b4f6.mp3
2014.05.16 11:52:51 1: CallBlockingFn: Can't connect to localhost:7072
2014.05.16 11:59:39 5: Notify loop for MyTTS tts noch ein test
2014.05.16 11:59:39 4: eventTypes: Text2Speech MyTTS tts noch ein test -> tts noch ein test
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49969 GET /fhem?detail=MyTTS
2014.05.16 11:59:39 4: /fhem?detail=MyTTS / RL:23990 / text/html; charset=UTF-8 / /
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49969 GET /fhem/pgm2/style.css
2014.05.16 11:59:39 4: Connection accepted from FHEMWEB:192.168.178.50:49973
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49971 GET /fhem/pgm2/svg.js
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49966 GET /fhem/pgm2/fhemweb.js
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49972 GET /fhem/pgm2/fhemweb_multiple.js
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49970 GET /fhem/pgm2/fhemweb_colorpicker.js
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49973 GET /fhem/pgm2/fhemweb_noArg.js
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49969 GET /fhem/pgm2/fhemweb_slider.js
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49971 GET /fhem/pgm2/fhemweb_svg.js
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49966 GET /fhem/pgm2/fhemweb_textField.js
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49972 GET /fhem/pgm2/fhemweb_time.js
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49969 GET /fhem/codemirror/fhem_codemirror.js
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49972 GET /fhem/pgm2/darkCommon.css
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49969 GET /fhem/icons/favicon
2014.05.16 11:59:39 4: HTTP FHEMWEB:192.168.178.50:49969 GET /fhem/pgm2/dashboard_darkstyle.css
2014.05.16 11:59:40 4: HTTP FHEMWEB:192.168.178.50:49966 GET /fhem/images/default/fhemicon_dark.png
2014.05.16 11:59:40 4: HTTP FHEMWEB:192.168.178.50:49969 GET /fhem/pgm2/jquery.min.js
2014.05.16 11:59:40 4: HTTP FHEMWEB:192.168.178.50:49971 GET /fhem/images/default/icoEverything.png
2014.05.16 11:59:40 4: HTTP FHEMWEB:192.168.178.50:49972 GET /fhem?cmd={AttrVal(%22MyTTS%22,%22room%22,%22%22)}&XHR=1
2014.05.16 11:59:40 5: Cmd: >{AttrVal("MyTTS","room","")}<
2014.05.16 11:59:40 4: /fhem?cmd={AttrVal(%22MyTTS%22,%22room%22,%22%22)}&XHR=1 / RL:7 / text/plain; charset=UTF-8 / /
2014.05.16 11:59:40 4: HTTP FHEMWEB:192.168.178.50:49970 GET /fhem?cmd={ReadingsVal(%22MyTTS%22,%22tts%22,%22%22)}&XHR=1
2014.05.16 11:59:40 5: Cmd: >{ReadingsVal("MyTTS","tts","")}<
2014.05.16 11:59:40 4: /fhem?cmd={ReadingsVal(%22MyTTS%22,%22tts%22,%22%22)}&XHR=1 / RL:1 / text/plain; charset=UTF-8 / /
2014.05.16 11:59:40 4: HTTP FHEMWEB:192.168.178.50:49969 GET /fhem?XHR=1&inform=type=status;filter=MyTTS×tamp=1400234381538
2014.05.16 11:59:41 4: Connection closed for FHEMWEB:192.168.178.50:49969
2014.05.16 11:59:41 4: HTTP FHEMWEB:192.168.178.50:49966 GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2014-05-16.log
CallBlockingFn: Can't connect to localhost:7072
cache/098f6bcd4621d373cade4e832627b4f6.mp3
########Temperatur ohne Punkt mit Komma für TTS#######
sub
TemperaturenTTS
{
my $Aussentempsensor=ReadingsVal("Aussentempsensor","temperature","");
my $Punktlos=$Aussentempsensor;
$Punktlos =~ s/\./,/;
fhem ("set MyTTS tts Temperatur ist $Punktlos;")
}
Prototype after '@' for main::Text2Speech_SplitString : @$$$$ at ./FHEM/98_Text2Speech.pm line 422, <$fh> line 1596.
ZitatGanz einfach, Ziel ist eine flüssiger Sprachwiedergabe die so schnell als möglich nach Absetzen des Befehls einsetzt.
TTS_CacheFileDir
Optional: Die per Google geladenen Sprachbausteine werden in diesem Verzeichnis zur Wiedeverwendung abgelegt. Es findet zurZEit keine automatisierte Löschung statt.
Warum muss ich irgendetwas cachen oder schaut es jedesmal nach ob schon mal "Die Temperatur im Wohnzimmer beträgt 20 Grad" gesagt wurde?
ZitatIst aufgenommen zur nächsten version.
TTS_FileMapping
Angabe von möglichen MP3-Dateien mit deren Templatedefinition. Getrennt duch Leerzeichen. Die Templatedefinitionen können in den per tts übergebenen Sprachbausteinen verwendet werden und müssen mit einem beginnenden und endenden Doppelpunkt angegeben werden. Die Dateien müssen im Verzeichnis TTS_FIleTemplateDir gespeichert sein.
Auch das verstehe ich nicht. Kann ich nicht einfach eine MP3 mit
set MyTTS tts Horch was kommt von draußen rein :/Soundfiles/hollahi.mp3:
abspielen?
Zitat von: fiedel am 18 Juli 2014, 12:25:23
Mit meinen Passivlautsprechern ist es nach wie vor viel zu leise und ich patche mir nach jedem deiner Updates den Gain- Faktor wieder rein. Wenn du vielleicht auch meinst es könnte sinnvoll sein, könntest du es ggf. übernehmen? Im Anhang noch mal meine etwas ältere, gepatchte Version (Achtung: Das "set volume"- Kommando macht damit viel lauter, als in der Originalversion!!!)
$mplayerOpts .= " -softvol -softvol-max ". $TTS_VolumeAdjust ." -volume " . $hash->{VOLUME};
ZitatAuch nicht 200 oder 300%??
ZitatDa die neue Version sich sehr schön und einfach zum Abspielen von MP3s eignet wäre noch ein "Ausschaltknopf" recht hilfreich.
Tobias. Wäre das möglich ?
Text2Speech: Bearbeite per MP3Wrap jetzt den Text: :beep. mp3:
Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols cache/b68b888fc641b4140181f8e7ac92232d_MP3WRAP.mp3
shutdown restart
Zitatnothing to do...:-[
Terminal type `unknown' is not defined.
set TTS tts :bing: test
define TTS Text2Speech hw=0.0
attr TTS TTS_FileMapping bing:bing.mp3
attr TTS TTS_Ressource Google
attr TTS TTS_UseMP3Wrap 1
attr TTS verbose 5
2014.07.30 11:56:26 4: TTS: Angabe einer direkten MP3-Datei gefunden: bing => FileTpl_1406714186.70357_#0
2014.07.30 11:56:26 4: TTS: Auflistung der Textbausteine nach Aufbereitung:
2014.07.30 11:56:26 4: TTS: 0 => FileTpl_1406714186.
2014.07.30 11:56:26 4: TTS: 1 => 70357_#0
2014.07.30 11:56:26 4: TTS: 2 => test
2014.07.30 11:56:26 4: Text2Speech: Bearbeite jetzt den Text: FileTpl_1406714186.
2014.07.30 11:56:26 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&q=FileTpl_1406714186.
2014.07.30 11:56:27 4: Text2Speech: Schreibe mp3 in die Datei cache/9c8e6941982b210d3374115410cbf9fa.mp3 mit 32832 Bytes
2014.07.30 11:56:27 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols cache/9c8e6941982b210d3374115410cbf9fa.mp3
Zitat von: karl0123 am 29 Juli 2014, 20:31:43
Ich bekomme bei Text2Speech auf dem Haupt-FHEM seit einiger Zeit folgende Zeile im Log:Code AuswählenTerminal type `unknown' is not defined.
Nach Recherchen ist das ein Fehler, den mplayer zurück gibt. Hat jemand eine Idee warum?
Der Text wird übrigens trotzdem angesagt.
Zitat von: Tobias am 30 Juli 2014, 14:25:52
es wurde die datei bing.mp3 nicht gefunden oder es fehlen zugriffsrechte
drwxr-xr-x 2 fhem dialout 4096 Jul 30 11:56 templates
-rw-r--r-- 1 fhem dialout 7896 Jul 30 11:28 bing.mp3
Zitat von: stoxx am 30 Juli 2014, 17:50:47
@Wolfpunk:
Müsste es nichtCode Auswählen
set TTS tts :bing.mp3:test
heissen?
set TTS tts :bing.mp3:
Zitat von: Wolfpunk am 30 Juli 2014, 12:03:25
Und hier das Log:Code Auswählen2014.07.30 11:56:26 4: TTS: Angabe einer direkten MP3-Datei gefunden: bing => FileTpl_1406714186.70357_#0
2014.07.30 11:56:26 4: TTS: Auflistung der Textbausteine nach Aufbereitung:
2014.07.30 11:56:26 4: TTS: 0 => FileTpl_1406714186.
2014.07.30 11:56:26 4: TTS: 1 => 70357_#0
2014.07.30 11:56:26 4: TTS: 2 => test
2014.07.30 11:56:26 4: Text2Speech: Bearbeite jetzt den Text: FileTpl_1406714186.
2014.07.30 11:56:26 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&q=FileTpl_1406714186.
2014.07.30 11:56:27 4: Text2Speech: Schreibe mp3 in die Datei cache/9c8e6941982b210d3374115410cbf9fa.mp3 mit 32832 Bytes
2014.07.30 11:56:27 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols cache/9c8e6941982b210d3374115410cbf9fa.mp3
my $tpl = "FileTpl_".time()."_#".$i; #eindeutige Templatedefinition schaffen
{time()}
Zitat von: Tobias am 31 Juli 2014, 10:57:24
Bei dir läuft definitiv etwas schief. Die Frage ist waruum in der FileTemplatedefinition ein Punkt steht. Warum liefert time() ein punkt??
Die Definition wird im Modul folgendermaßen gebildet:Code Auswählenmy $tpl = "FileTpl_".time()."_#".$i; #eindeutige Templatedefinition schaffen
Bitte setze mal im Fhem folgendes Command ab, was liefert es??Code Auswählen{time()}
Müsste zb. folgendes ergeben: 1406796992
fhem> {time()}
1406800368.557
Zitat von: karl0123 am 29 Juli 2014, 20:31:43
Ich bekomme bei Text2Speech auf dem Haupt-FHEM seit einiger Zeit folgende Zeile im Log:Code AuswählenTerminal type `unknown' is not defined.
Nach Recherchen ist das ein Fehler, den mplayer zurück gibt. Hat jemand eine Idee warum?
Der Text wird übrigens trotzdem angesagt.
Zitat von: karl0123 am 31 Juli 2014, 13:05:17
set TTS tts :bing.mp3: test
attr TTS TTS_FileMapping bing:bing.mp3
set TTS :bing: test
ZitatEinbruch_flur.mp3: Alarm. :Alarm_romanisch.mp3: Alarm. :Alarm_polnisch.mp3: Alarm. :Alarm_russisch.mp3:");
Prototype after '@' for main::Text2Speech_SplitString : @$$$$ at ./FHEM/98_Text2Speech.pm line 444, <$fh> line 1108.
{time()}
set MyTTS tts :notify1.mp3:Das ist ein Test.
set MyTTS tts Das ist ein Test.
set MyTTS tts :notify1:
Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 603.
Use of uninitialized value $filename in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 609.
Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 611.
Use of uninitialized value $text[0] in join or string at ./FHEM/98_Text2Speech.pm line 658.
2014.08.27 07:41:07 4: MyTTS: Angabe einer direkten MP3-Datei gefunden: alert.mp3 => FileTpl_1409118067.82939_#0
2014.08.27 07:41:07 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2014.08.27 07:41:07 4: MyTTS: 0 => FileTpl_1409118067.
2014.08.27 07:41:07 4: MyTTS: 1 => 82939_#0
2014.08.27 07:41:07 4: Text2Speech: Bearbeite jetzt den Text: FileTpl_1409118067.
2014.08.27 07:41:07 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&q=FileTpl_1409118067.
2014.08.27 07:41:08 4: Text2Speech: Schreibe mp3 in die Datei /opt/fhem/cache/569f98d251b0628846fee9b07375e4f3.mp3 mit 30096 Bytes
2014.08.27 07:41:08 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols /opt/fhem/cache/569f98d251b0628846fee9b07375e4f3.mp3
2014.08.27 07:41:16 4: Text2Speech: Bearbeite jetzt den Text: 82939_#0
2014.08.27 07:41:16 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&q=82939_%230
2014.08.27 07:41:16 4: Text2Speech: Schreibe mp3 in die Datei /opt/fhem/cache/3342b57514e6aa9aa8ac0da650337de8.mp3 mit 21456 Bytes
2014.08.27 07:41:16 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols /opt/fhem/cache/3342b57514e6aa9aa8ac0da650337de8.mp3
2014.08.27 10:08:02 4: MyTTS: Angabe einer direkten MP3-Datei gefunden: alert.mp3 => FileTpl_140912688275495_#0
2014.08.27 10:08:02 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2014.08.27 10:08:02 4: MyTTS: 0 => templates/alert.mp3
2014.08.27 10:08:02 4: Text2Speech: Bearbeite jetzt den Text: templates/alert.mp3
2014.08.27 10:08:02 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols
2014.08.27 12:46:17 4: MyTTS: Angabe einer direkten MP3-Datei gefunden: alert.mp3 => FileTpl_14091363773925_#0
2014.08.27 12:46:17 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2014.08.27 12:46:17 4: MyTTS: 0 => templates/alert.mp3
2014.08.27 12:46:17 4: Text2Speech: Bearbeite jetzt den Text: templates/alert.mp3
2014.08.27 12:46:17 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols /opt/fhem/cache/7845dccd208c89de46449d61823546ce.mp3
if(-e $TTS_CacheFileDir."/".$hash->{helper}{Text2Speech}[0]) {
syntax error at ./FHEM/98_Text2Speech.pm line 619, near ""Text2Speech: ""$file""
2014.08.27 16:14:35 4: MyTTS: Angabe einer direkten MP3-Datei gefunden: alert.mp3 => FileTpl_140914887526866_#0
2014.08.27 16:14:35 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2014.08.27 16:14:35 4: MyTTS: 0 => templates/alert.mp3
2014.08.27 16:14:35 4: Text2Speech: Bearbeite jetzt den Text: templates/alert.mp3
2014.08.27 16:14:35 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 7845dccd208c89de46449d61823546ce.mp3
2014.08.27 16:14:35 4: Text2Speech: /opt/fhem/cache/7845dccd208c89de46449d61823546ce.mp3 gefunden, kein Download
2014.08.27 16:14:35 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols /opt/fhem/cache/7845dccd208c89de46449d61823546ce.mp3
Zitatsudo adduser fhem audioneu eingeloggt bzw neu gestartet?
sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols /opt/fhem/template/alert1.mp3
Zitat von: HolyMoly am 27 August 2014, 16:17:04
@Tobias
Hast du den fhem user nach demneu eingeloggt bzw neu gestartet?
ZitatJetzt sollte keine Fehlermeldung mehr kommen....Leider doch: "Host down" (bzw. mit sudo "Connection refused").
ZitatText2Speech läuft bei mir jetzt primaHm ... zu früh gefreut. Bei nun regelmäßiger Nutzung hängt sich der RPi immer wahrscheinlicher (laut Zeiten im Logbuch) unmittelbar im Zusammenhang mit einer Sprachausgabe auf und erfordert einen Vollreset. Habe das Modul jetzt disabled und seit Tagen ist wieder Stabilität, ohne sonstige Änderungen.
Zitat von: Rince am 03 März 2014, 20:18:02
@TecCheck
Ich schreib dir ne PN. Schau da mal rein.
Zitat von: Smooothy am 29 September 2014, 07:34:52Sollte das nicht Bestandteil einer eigenen Routine in 99_myUtils werden - in die fhem.cfg gehört gar nichts handeditiertes rein ... ?
Wenn ich sowas in der Art in die fhem.cfg eingebe...
"Unknown command my, try help."
Habe ich da ein Grundlegendes Verständnisproblem?
use constant {
DEVICE_NAME_TTS => "tts",
DEVICE_NAME_TH => "GSD_1.4",
DEVICE_NAME_WEATHER => "Wetter",
};
###############################################################################
# Sagt Wetterdaten an
# Param: Art: Variante der Aussage:
# 0: Kurzansage, 1: Normal
###############################################################################
sub speakWetterDaten(;$) {
my($art)=@_;
if(!defined($art)){$art=1;}
# TODO: Sauber / Abstraktionslayer erstellen
my $temp = prepareNumToSpeak(rundeZahl0(ReadingsVal(+DEVICE_NAME_TH,"temperature","unbekannt")));
my $humi = prepareNumToSpeak(rundeZahl0(ReadingsVal(+DEVICE_NAME_TH,"humidity","unbekannt")));
if($art==0) {
#speak("Aussentemperatur ".$temp." Grad. Feuchtigkeit ".$humi." Prozent.",0);
speak($temp." Grad. Feuchtigkeit ".$humi." Prozent.",0);
}
if($art==1) {
#speak("Die Aussentemperatur betraegt ".$temp." Grad. Die Luftfeuchtigkeit liegt bei ".$humi." Prozent.",0);
speak("Temperatur ".$temp." Grad. Luftfeuchtigkeit ".$humi." Prozent.",0);
}
}
###############################################################################
# Sagt Wettervorhersage an.
# Parameter: Tag: Zahl 1-5 (1-heute, 2-morgen,...) Defaul=2
###############################################################################
sub speakWetterVorhersage(;$) {
my ($day) = @_;
if(!defined($day)) {$day=2;}
# TODO: Sauber / Abstraktionslayer erstellen
my $t1= ReadingsVal(+DEVICE_NAME_WEATHER,"fc".$day."_condition",undef);
my $t2= ReadingsVal(+DEVICE_NAME_WEATHER,"fc".$day."_low_c",undef);
my $t3= ReadingsVal(+DEVICE_NAME_WEATHER,"fc".$day."_high_c",undef);
my $text = "";
if($day==1) {
#$text = "Wetter heute ";
$text = "Heute ";
}
if($day==2) {
$text = "Morgen ";
}
if($day==3) {
$text = "Uebermorgen ";
}
if($day>3) {
$text = "Wetter in ".($day-1)." Tagen ";
}
if(defined($t1) && defined($t2) && defined($t3)) {
$text.=$t1.". ";
$text.="Temperatur von ".$t2." bis ".$t3." Grad.";
if($day==1) {
# gefuehlte Temperatur
my $tg= ReadingsVal(+DEVICE_NAME_WEATHER,"wind_chill",undef);
#$text.="Gefuehlte Temperatur aktuell ".$tg." Grad.";
$text.="Gefuehlte ".$tg." Grad.";
my $tw= ReadingsVal(+DEVICE_NAME_WEATHER,"wind_speed",undef);
#$text.="Windgeschwindigkeit ".$tw." Kilometer pro Stunde.";
$text.="Wind ".$tw." Kilometer pro Stunde.";
}
} else {
$text="Leider keine Vorhersage verfuegbar.";
}
speak($text,0);
}
###############################################################################
# Bereitet Zahlen zur Ansage auf.
# Ersetzt Kommas und Punkte durch das Wort 'Komma'.
###############################################################################
sub prepareNumToSpeak($) {
my($text) = @_;
$text =~ s/\./Komma/g;
$text =~ s/,/Komma/g;
return $text;
}
# Rundet eine Zahl ohne Nachkommastellen
sub rundeZahl0($) {
my($val)=@_;
# Prüfen, ob numerisch
if(int($val)>0) {
$val = int($val+0.5);
}
return $val;
}
# Rundet eine Zahl mit 1-er Nachkommastelle
sub rundeZahl1($) {
my($val)=@_;
# Prüfen, ob numerisch
if(int($val)>0) {
$val = int(10*$val+0.5)/10;
}
return $val;
}
###############################################################################
# Bereitet Texte zur Ansage auf.
# Ersetzt Umlaute (ä=ae etc.)
###############################################################################
sub prepareTextToSpeak($) {
my($text) = @_;
# TODO
return $text;
}
######################################################
# Sprachausgabe ueber Text2Speak Modul
# Parameter:
# - text: Auszugebender Text
# - volume (optional) - Lautstaerke
# (wenn nicht vorhaneden: wird aktuell gesetzte
# Lautstaerke benutzt,
# wenn 1 oder groesser: dieser Wert wird benutzt,
# wenn 0: adaptiv gesetzt je nach Fageszeit
# (also Nachts wesentlich leiser)
# (ggf. spaeter adaptiv durch ermitteln der Zimmerlautstaerke)
######################################################
sub speak($;$) {
my($text,$volume)=@_;
if(defined ($volume)) {
if(int($volume) >=1) {
fhem("set ".+DEVICE_NAME_TTS." volume ".$volume);
} else {
if(int($volume) == 0) {
# Adaptiv
my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime;
# 5 - sehr leise
# 10 - ok
# 50 - gut hoerbar
# 100 - default / gut laut
#
# 20:00 - 22:00 => 10
# 22:00 - 05:00 => 5
# 05:00 - 07:00 => 10
# 07:00 - 08:00 => 50
# 08:00 - 20:00 => 100
if ($hour>=20 && $hour<22) {$volume=18}
if ($hour>=22 || $hour<5) {$volume=8}
if ($hour>=5 && $hour<7) {$volume=15}
if ($hour>=7 && $hour<8) {$volume=40}
if ($hour>=8 && $hour<20) {$volume=100}
fhem("set ".+DEVICE_NAME_TTS." volume ".$volume);
}
}
}
fhem("set ".+DEVICE_NAME_TTS." tts ".prepareTextToSpeak($text));
}
Zitat@Rince: Hast du deine Doku fertig?
Zitat von: Rince am 29 September 2014, 22:44:41
Hast du den Link zu meiner Anleitung?
ZitatDanach den Mplayer für alle aufrufbar machenWie mache ich das. bin per ssh auf dem Raspi. Muss ich einfach EDITOR=nano visudo eingeben?
EDITOR=nano
visudo
Dort an letzter Stelle eintragen:
ALL ALL = NOPASSWD: /usr/bin/mplayer
EDITOR=nano<Enter>
visudo<Enter>
ALL ALL = NOPASSWD: /usr/bin/mplayer
Zitatpi@raspberrypi ~ $ EDITOR=nano
pi@raspberrypi ~ $ visudo
visudo: /etc/sudoers: Permission denied
visudo: /etc/sudoers: Permission denied
pi@raspberrypi ~ $
I /etc/sudoers.tmp Row 1 Col 1 7:34 Ctrl-K H for help
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# Allow members of group sudo to execute any command
** Joe's Own Editor v3.7 ** (utf-8) ** Copyright © 2008 **
2014.10.05 14:52:25 4: Text2Speech: Bearbeite jetzt den Text: das ist ein Test
2014.10.05 14:52:25 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: df02828875d399879413ce9c6b67c2b0.mp3
2014.10.05 14:52:25 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&q=das%20ist%20ein%20Test
2014.10.05 14:52:25 4: Text2Speech: Schreibe mp3 in die Datei CacheFileDir/df02828875d399879413ce9c6b67c2b0.mp3 mit 6480 Bytes
define fhem_start_notifier notify global:INITIALIZED set MyTTS volume 99
Zitat von: hexenmeister am 05 Oktober 2014, 20:50:41
Works as designed ;)
Zitat von: Smooothy am 05 Oktober 2014, 23:48:13Kannst Du dazu etwas mehr verraten.
... den Wetterbericht vorlesen.
Zitat von: bergadler am 08 November 2014, 21:36:16
Hallo,Kannst Du dazu etwas mehr verraten.
Zitatdie Ausgaben erstmal an Google Translate zu schicken oder?
Zitat von: hexenmeister am 08 November 2014, 23:01:30Da hat man nun den Thread schon 20mal gelesen :-[
Guckst du hier: ...
Zitat von: Markus am 09 November 2014, 23:14:15
Ist das noch ein codeschnipsel, oder wäre das wiki doch die bessere Wahl
{system('espeak -v mb-de6 -s 130 "Achtung: Badezimmer Fenster seit 20 Minuten offen"')}
##### SPRACHAUSGABE #####
define MyTTS Text2Speech hw=0.0
attr MyTTS room Text2Speech
attr MyTTS TTS_Ressource espeak
attr MyTTS verbose 5
ZitatTTS_Ressource
optional: Selection of the Translator Engine
Notice: Only available in locally instances!
Using the Google Engine. It´s nessessary to have internet access. This engine is the recommend engine because the quality is fantastic. This engine is using by default.
ESpeak
Using the ESpeak Engine. Installation of the espeak sourcen is required.
apt-get install espeak
ZitatTTS_VolumeAdjustDamit kannst du es richtig krachen lassen. Falls es nicht gleich fruchtet, reloade das Modul nochmal!
Anhebung der Grundlautstärke zur Anpassung an die angeschlossenen Lautsprecher.
Default: 110
attr myTTS TTS_VolumeAdjust 400
attr TTS_Ressource ESpeak
auswähle, bleibt der Lautsprecher stumm.attr TTS_VolumeAdjust
kann ich 10 oder 400 setzen, die Lautstärke ändert sich nicht.set MyTTS volume 100
attr TTS_VolumeAdjust 400
die Lautsprecher hüpfen lassen. 8)Zitat von: bergadler am 05 Dezember 2014, 18:51:06
@fiedel:
Ursache gefunden.
Solange im Device kein Internal "VOLUME" vorhanden ist, kann im attr "TTS_VolumeAdjust"
drin stehen was will, es gibt bei mir keine Änderung.
Erst nach einemCode Auswählenset MyTTS volume 100
kann man dann z.B. mitCode Auswählenattr TTS_VolumeAdjust 400
die Lautsprecher hüpfen lassen. 8)
@Rince:
Bingo - Treffer.
Das sind so die berühmten Stolperdrähte für mich. >:(
(Obwohl, der Sound vom espeak ist wirklich nur was für Freaks.)
Gruß
sub Text2Speech_CalcMP3Duration($) {
my $time;
my ($file) = @_;
eval {
use MP3::Info;
my $tag = get_mp3info($file);
if ($tag) {
$time = $tag->{SECS};
}
};
if ($@) {
Log 2, 'Bei der MP3-Längenermittlung ist ein Fehler aufgetreten: '.$@;
return undef;
}
return $time;
}
my $mp3Duration = Text2Speech_CalcMP3Duration($file);
Log3 $hash, 4, "DEBUG2: MP3 Duration time = $mp3Duration";
readingsSingleUpdate($hash, "duration", "$mp3Duration", 1);
set MyTTS tts Der erste Satz der abgespielt wird ist viel kürzer. Als der zweite.
2015.01.15 21:00:30 4: Text2Speech_CalcMP3Duration: cache/0a7695edf070820829de4ccbf47d462e.mp3 hat eine Länge von 4 Sekunden.
2015.01.15 21:00:30 4: Text2Speech_readingsSingleUpdateByName: Dev:MyTTS Reading:duration Val:4
2015.01.15 21:00:36 4: Text2Speech_CalcMP3Duration: cache/f877ad0ed57716f7e855b27014228509.mp3 hat eine Länge von 1 Sekunden.
2015.01.15 21:00:36 4: Text2Speech_readingsSingleUpdateByName: Dev:MyTTS Reading:duration Val:1
set MyTTS tts Der erste Satz der abgespielt wird ist viel kürzer. Als der zweite.
2015.01.15 21:02:34 4: Text2Speech_CalcMP3Duration: cache/4644e8eeb3b1b5fb069fdf2f789f85bc_MP3WRAP.mp3 hat eine Länge von 5 Sekunden.
2015.01.15 21:02:34 4: Text2Speech_readingsSingleUpdateByName: Dev:MyTTS Reading:duration Val:5
ZitatTTS_Delemiter
Optional: Wird ein Delemiter angegeben, so wird der Sprachbaustein an dieser Stelle geteilt. Als Delemiter ist nur ein einzelnes Zeichen zulässig. Hintergrund ist die Tatsache, das die Google Sprachengine nur 100Zeichen zulässt.
Im Standard wird nach jedem Satzende geteilt. Ist ein einzelner Satz länger als 100 Zeichen, so wird zusätzlich nach Kommata, Semikolon und dem Verbindungswort und geteilt.
Achtung: Nur bei einem lokal definierter Text2Speech Instanz möglich und nur Nutzung der Google Sprachengine relevant!
fhem("set MyTTS tts Hallo,");;\
fhem("set MyTTS tts wie");;\
fhem("set MyTTS tts geht");;\
fhem("set MyTTS tts es");;\
fhem("set MyTTS tts dir");;\
fhem("set MyTTS tts heute");;\
sub myTTS () {
my $text1="Hallo,";
my $text2=" wie";
my $text3=" geht";
my $text4=" es";
my $text5=" dir";
my $text6=" heute";
fhem("set MyTTS tts ".$text1.$text2.$text3.$text4.$text5.$text6);
}
Zitat von: daschauher am 18 Januar 2015, 10:22:23
Danke, aber das bringt mich nicht wirklich weiter.
ein Beispiel:Code Auswählenfhem("set MyTTS tts Hallo,");;\
fhem("set MyTTS tts wie");;\
fhem("set MyTTS tts geht");;\
fhem("set MyTTS tts es");;\
fhem("set MyTTS tts dir");;\
fhem("set MyTTS tts heute");;\
ergiebt: "Hallo heute"
define MyTTS Text2Speech 192.168.48.53:7082
2015.01.25 19:28:01 1: PERL WARNING: Prototype after '@' for main::Text2Speech_SplitString : @$$$$ at /usr/local/FHEM/share/fhem/FHEM/98_Text2Speech.pm line 451.
2015.01.25 19:28:01 1: reload: Error:Modul 98_Text2Speech deactivated:
Can't locate MP3/Info.pm in @INC (@INC contains: ./FHEM/lib ./lib /usr/local/perl/lib/site_perl/5.16.0/armv5tel-linux /usr/local/perl/lib/site_perl/5.16.0 /usr/local/perl/lib/5.16.0/armv5tel-linux /usr/local/perl/lib/5.16.0 . /usr/local/FHEM/share/fhem/FHEM) at /usr/local/FHEM/share/fhem/FHEM/98_Text2Speech.pm line 528.
BEGIN failed--compilation aborted at /usr/local/FHEM/share/fhem/FHEM/98_Text2Speech.pm line 528.
Zitat
kuzl@zbox:/opt/fhem$ sudo -u fhem sudo /usr/bin/mplayer -nolirc -noconsolecontrols cache/598d4c200461b81522a3328565c25f7c.mp3
MPlayer 1.1-4.8 (C) 2000-2012 MPlayer Team
Playing cache/598d4c200461b81522a3328565c25f7c.mp3.
libavformat version 54.20.4 (external)
Mismatching header version 54.20.3
Audio only file format detected.
Load subtitles in cache/
==========================================================================
Requested audio codec family [mpg123] (afm=mpg123) not available.
Enable it at compilation.
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 54.35.0 (external)
AUDIO: 16000 Hz, 1 ch, floatle, 32.0 kbit/6.25% (ratio: 4000->64000)
Selected audio codec: [ffmp3float] afm: ffmpeg (FFmpeg MPEG layer-3 audio)
==========================================================================
Home directory not accessible: Permission denied
AO: [pulse] Init failed: Connection refused
Failed to initialize audio driver 'pulse'
Home directory not accessible: Permission denied
AO: [alsa] 48000Hz 1ch floatle (4 bytes per sample)
Video: no video
Starting playback...
A: 0.5 (00.5) of 0.7 (00.6) 0.8%
Exiting... (End of file)
Zitat von: Tobias am 01 Februar 2015, 13:25:50
Es gibt ein neues Reading zur Anzeige, wie lange das folgende/aktuelle MP3 benötigt. Ev. kannst du darauf reagieren.
Zitat von: Tobias am 01 Februar 2015, 13:25:50
Warum sollte .mp3 optional sein? Kannst du doch automatisiert hinten anhängen?
PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 397.
Zitat von: Dittel am 01 Februar 2015, 15:10:58
Kann mir jemand einen Tipp geben bezüglich der Mickeymousstimme bei Sprachausausgabe mit vorangestellter mp3 Datei? Ich dachte das hier schon mal gelesen zu haben.
# $Id: fhem.pl 8066 2015-02-22 13:33:26Z rudolfkoenig $
# $Id: 00_CUL.pm 7770 2015-01-30 07:04:52Z rudolfkoenig $
# $Id: 14_CUL_MAX.pm 7532 2015-01-11 19:00:48Z mgehre $
# $Id: 14_CUL_TCM97001.pm 6689 2014-10-05 12:27:19Z rudolfkoenig $
# $Id: 14_CUL_TX.pm 6689 2014-10-05 12:27:19Z rudolfkoenig $
# $Id: 72_FB_CALLMONITOR.pm 8043 2015-02-19 21:14:42Z markusbloch $
# $Id: 01_FHEMWEB.pm 8094 2015-02-25 06:16:53Z rudolfkoenig $
# $Id: 11_FHT.pm 5070 2014-02-28 07:48:55Z rudolfkoenig $
# $Id: 92_FileLog.pm 7854 2015-02-03 19:23:22Z rudolfkoenig $
# $Id: 98_GEOFANCY.pm 6985 2014-11-16 00:05:49Z loredo $
# $Id: 12_HMS.pm 5097 2014-03-02 15:25:08Z rudolfkoenig $
# $Id: 10_IT.pm 7839 2015-02-02 20:25:11Z dancer0705 $
# $Id: 36_JeeLink.pm 7805 2015-01-31 19:26:58Z justme1968 $
# $Id: 36_LaCrosse.pm 7027 2014-11-20 20:08:00Z justme1968 $
# $Id: 10_MAX.pm 8011 2015-02-16 20:21:49Z mgehre $
# $Id: 70_STV.pm 7763 2015-01-28 20:55:26Z bentele $
# $Id: 99_SUNRISE_EL.pm 6765 2014-10-14 18:24:29Z rudolfkoenig $
# $Id: 98_SVG.pm 7981 2015-02-14 17:29:46Z rudolfkoenig $
./FHEM/_TM.pm: No such file or directory
# $Id: 98_Text2Speech.pm 7588 2015-01-16 17:32:08Z tobiasfaust $
# $Id: 99_Utils.pm 7914 2015-02-08 11:14:10Z rudolfkoenig $
# $Id: 59_Weather.pm 6705 2014-10-07 17:41:42Z borisneubert $
# $Id: 32_WifiLight.pm 80 2015-02-01 21:45:00Z herrmannj $
# $Id: 90_at.pm 8057 2015-02-21 19:08:03Z rudolfkoenig $
# $Id: 98_dummy.pm 4934 2014-02-15 08:23:12Z rudolfkoenig $
# $Id: 91_eventTypes.pm 7221 2014-12-15 10:02:49Z rudolfkoenig $
# $Id: 95_holiday.pm 7330 2014-12-27 09:23:04Z rudolfkoenig $
./FHEM/99_myUtils.pm: No such file or directory
################################## # $Id: 99_myUtilsTM.pm 2014-8 by Elektrolurch $
# $Id: 91_notify.pm 7854 2015-02-03 19:23:22Z rudolfkoenig $
# $Id: $
# $Id: 98_telnet.pm 8017 2015-02-17 11:10:16Z rudolfkoenig $
# $Id: 98_weblink.pm 5608 2014-04-23 10:57:16Z rudolfkoenig $
root@raspberrypi:~# bt-device -i 00:02:3C:24:29:0A
[00:02:3C:24:29:0A]
Name: Creative D100
Alias: Creative D100 [rw]
Address: 00:02:3C:24:29:0A
Icon: audio-card
Class: 0x240404
Paired: 1
Trusted: 0 [rw]
Blocked: 0 [rw]
Connected: 0
UUIDs: [AudioSink, AVRemoteControlTarget, AVRemoteControl]
root@raspberrypi:~# sudo /etc/init.d/bluetooth start
[ ok ] Starting bluetooth: bluetoothd rfcomm.
root@raspberrypi:~# sudo /etc/init.d/bluetooth info
Usage: /etc/init.d/bluetooth {start|stop|restart|force-reload|status}
root@raspberrypi:~# sudo /etc/init.d/bluetooth force-reload
[ ok ] Stopping bluetooth: rfcomm /usr/sbin/bluetoothd.
[ ok ] Starting bluetooth: bluetoothd rfcomm.
root@raspberrypi:~# sudo /etc/init.d/bluetooth status
[ ok ] bluetooth is running.
root@raspberrypi:~# bluetooth-agent 0000 &
[1] 2350
root@raspberrypi:~# rfcomm connect rfcomm0
Can't connect RFCOMM socket: Connection refused
Internals:
ALSADEVICE hw=2.0
DEF hw=2.0
MODE DIRECT
NAME MyTTS
NR 85
STATE Initialized
TYPE Text2Speech
Readings:
2015-03-10 21:26:40 duration 1
2015-03-10 21:26:40 endTime 00:00:00
Helper:
Text2Speech:
Bm:
Text2speech_attr:
cnt 1
dmx 0
mAr
max 0
tot 0
Text2speech_set:
cnt 17
dmx 0
max 24
tot 127
mAr:
HASH(MyTTS)
MyTTS
tts
Hallo
Welt!
Attributes:
TTS_MplayerCall /usr/bin/mplayer
TTS_UseMP3Wrap 1
disable 0
room System,Wohnzimmer
verbose 5
if(-e $file) { # Datei existiert jetzt
$cmd = Text2Speech_BuildMplayerCmdString($hash, $file);
Log3 $hash->{NAME}, 4, "Text2Speech:" .$cmd;
system($cmd);
Log3 $hash->{NAME}, 4, "Text2Speech: done";
}
2015.03.10 21:26:40 4: Text2Speech: Bearbeite jetzt den Text: Hallo Welt!
2015.03.10 21:26:40 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 55243ecf175013cfe9890023f9fd9037.mp3
2015.03.10 21:26:40 4: Text2Speech: 'cache/55243ecf175013cfe9890023f9fd9037.mp3' gefunden, kein Download
2015.03.10 21:26:40 4: Text2Speech_CalcMP3Duration: cache/55243ecf175013cfe9890023f9fd9037.mp3 hat eine Länge von 1 Sekunden.
2015.03.10 21:26:40 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=2.0 -nolirc -noconsolecontrols cache/55243ecf175013cfe9890023f9fd9037.mp3
2015.03.10 21:26:40 4: Text2Speech_readingsSingleUpdateByName: Dev:MyTTS Reading:duration Val:1
2015.03.10 21:26:40 4: Text2Speech_readingsSingleUpdateByName: Dev:MyTTS Reading:endTime Val:00:00:00
2015.03.10 21:27:06 4: Text2Speech: done
fhem@bananapi:~$ id
uid=999(fhem) gid=20(dialout) groups=20(dialout),29(audio),44(video),113(i2c)
fhem@bananapi:~$ time /usr/bin/mplayer -ao alsa:device=hw=2.0 -nolirc -noconsolecontrols -really-quiet cache/55243ecf175013cfe9890023f9fd9037.mp3
real 0m2.385s
user 0m0.867s
sys 0m0.207s
28784 21:27:04 open("/usr/share/fonts/X11/encodings/large/.AppleDouble/gb18030.2000-0.enc.gz", O_RDONLY) = -1 ENOENT (No such file or directory)
28784 21:27:04 open("/usr/share/fonts/X11/encodings/large/gb18030.2000-0.enc.gz/..namedfork/rsrc", O_RDONLY <unfinished ...>
516 21:27:04 gettimeofday( <unfinished ...>
28784 21:27:04 <... open resumed> ) = -1 ENOTDIR (Not a directory)
516 21:27:04 <... gettimeofday resumed> {1426019224, 363029}, NULL) = 0
28784 21:27:04 open("/usr/share/fonts/X11/encodings/large/gb18030.2000-0.enc.gz/rsrc", O_RDONLY <unfinished ...>
olymp:/opt/fhem # ll /opt/fhem/cache/templates/
total 56
-rw-r--r-- 1 root root 56673 Aug 9 2011 tos_intercom_whistle.mp3
define wstts Text2Speech none
attr wstts TTS_UseMP3Wrap 1
set wstts volume 100
attr wstts TTS_FileMapping whistle:tos_intercom_whistle.mp3
2015.03.12 18:17:05 4: wstts: Angabe einer direkten MP3-Datei gefunden: whistle => FileTpl_1426180625_#0
2015.03.12 18:17:05 4: wstts: Auflistung der Textbausteine nach Aufbereitung:
2015.03.12 18:17:05 4: wstts: 0 => templates/whistle
2015.03.12 18:17:05 4: Text2Speech: Bearbeite jetzt den Text: templates/whistle
2015.03.12 18:17:05 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: fdd04ad42c1a70d3516c5e370ad6f27c.mp3
2015.03.12 18:17:05 4: Text2Speech: 'cache/fdd04ad42c1a70d3516c5e370ad6f27c.mp3' gefunden, kein Download
2015.03.12 18:17:05 4: Text2Speech_CalcMP3Duration: cache/fdd04ad42c1a70d3516c5e370ad6f27c.mp3 hat eine Länge von 2 Sekunden.
2015.03.12 18:17:05 4: Text2Speech_readingsSingleUpdateByName: Dev:wstts Reading:duration Val:2
2015.03.12 18:17:05 4: Text2Speech:sudo /usr/bin/mplayer -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 100 -volume 100 cache/fdd04ad42c1a70d3516c5e370ad6f27c.mp3
2015.03.12 18:17:05 4: Text2Speech_readingsSingleUpdateByName: Dev:wstts Reading:endTime Val:00:00:00
set Mytts tts whistle
Zitat von: mrbreil am 15 März 2015, 15:40:58
Hallo zusammen,
erstmal erkläre ich was ich vorhabe.
Ich setze in einem anderen Modul immer das Volumen herunter bevor Text2Speech eine "Durchsage" macht, funktioniert einwandfrei.
Das setzen der ursprünglichen Lautstärke funktioniert auch mit einem at Befehl. Leider ist der Zeitversatz fix eingestellt und manchmal ist die Ansage einfach zu lang.
Jetzt gibt es doch die zwei Readings duration und endTime.
endTime bleibt immer auf 00:00:00 stehen.
duration ändert sich mehrmals, ich denke durch das eigenständige splitten der Dateien bei Punkten, Kommas und den Wort "und".
Kann ich die Länge der einzelnen Dateien vorher irgendwie zusammen rechnen lassen, um die Gesamtzeit nutzen zu können?
Hoffe ich habe verständlich beschrieben warum es mir geht.
MyTTS:duration:.* {
my $devMPD = "myMPD";
my $stateMPD = Value("$devMPD");
my $atTimestamp = time_num2str($EVTPART1+2);
my $atName = "at_" . $devMPD . "_play";
if (!$defs{$atName}) {
fhem("define $atName at +" . $atTimestamp . " set $devMPD play");
} else {
fhem("modify $atName +" . $atTimestamp);
}
}
MyTTS:tts.* {
my $devMPD = "myMPD";
my $stateMPD = Value("$devMPD");
if ($stateMPD eq "play") {
fhem("set $devMPD stop");
}
}
Zitat von: Invers am 15 März 2015, 18:44:06
Ich möchte gerne bequem die Lautstärke auslesen können. Dafür fehlt jedoch das Reading volume. Somit muss es bei Internals abgefragt werden, was sehr umständlich ist.
Wäre es machbar, das Reading zur Verfügung zur stellen?
Zitat von: Invers am 19 März 2015, 00:15:13
Ich habe leider noch gar keine Antwort bekommen.
Ist das wirklich so aufwändig zu machen? Das Intrernal VOLUME existiert doch bereits, volume kann ja auch gesetzt werden.
Wäre für eine Antwort bzw. Änderung des Moduls dankbar.
global:INITIALIZED set MyTTS Volume [DU_aktLautst];set MyTTS tts "fhem initialisiert."
set xxx volume YY
deletereading TTSDEVICE Volume
set wstts tts :whistle:Dieses ist ein Test
2015.03.23 20:51:05 4: wstts: Auflistung der Textbausteine nach Aufbereitung:
2015.03.23 20:51:05 4: wstts: 0 => templates/tos_intercom_whistle.mp3
2015.03.23 20:51:05 4: wstts: 1 => Dieses ist ein Test
2015.03.23 20:51:05 4: Text2Speech: Bearbeite per MP3Wrap jetzt den Text: templates/tos_intercom_whistle.mp3 Dieses ist ein Test
2015.03.23 20:51:05 4: Text2Speech_CalcMP3Duration: cache/8b9fa982a19cf8ef8db93bc067bb1e98_MP3WRAP.mp3 hat eine Länge von 2 Sekunden.
2015.03.23 20:51:05 4: Text2Speech:sudo /usr/bin/mplayer -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 100 -volume 40 cache/8b9fa982a19cf8ef8db93bc067bb1e98_MP3WRAP.mp3
2015.03.23 20:51:05 4: Text2Speech_readingsSingleUpdateByName: Dev:wstts Reading:duration Val:2
2015.03.23 20:51:05 4: Text2Speech_readingsSingleUpdateByName: Dev:wstts Reading:endTime Val:00:00:00
olymp:/opt/fhem # /usr/bin/mplayer -nolirc -noconsolecontrols -softvol -softvol-max 100 -volume 40 cache/8b9fa982a19cf8ef8db93bc067bb1e98_MP3WRAP.mp3
MPlayer -4.8 (C) 2000-2015 MPlayer Team
Playing cache/8b9fa982a19cf8ef8db93bc067bb1e98_MP3WRAP.mp3.
libavformat version 56.15.102 (internal)
Audio only file format detected.
Load subtitles in cache/
==========================================================================
Trying to force audio codec driver family libmad...
Opening audio decoder: [libmad] libmad mpeg audio decoder
AUDIO: 48000 Hz, 2 ch, s16le, 320.0 kbit/20.83% (ratio: 40000->192000)
Selected audio codec: [mad] afm: libmad (libMAD MPEG layer 1-2-3)
==========================================================================
AO: [pulse] Init failed: Connection refused
Failed to initialize audio driver 'pulse'
AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)
[Mixer] No hardware mixing, inserting volume filter.
Video: no video
Starting playback...
A: 2.2 (02.2) of 1.0 (01.0) 0.3%
Cannot sync MAD frame
Cannot sync MAD frame
A: 2.2 (02.2) of 1.0 (01.0) 0.3%
Cannot sync MAD frame
A: 2.2 (02.2) of 1.0 (01.0) 0.3%
Cannot sync MAD frame
A: 2.2 (02.2) of 1.0 (01.0) 0.3%
Exiting... (End of file)
olymp:/opt/fhem # mpg123 cache/8b9fa982a19cf8ef8db93bc067bb1e98_MP3WRAP.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
version 1.18.0; written and copyright by Michael Hipp and others
free software (LGPL) without any warranty but with best wishes
Directory: cache/
Playing MPEG stream 1 of 1: 8b9fa982a19cf8ef8db93bc067bb1e98_MP3WRAP.mp3 ...
MPEG 1.0 layer III, 320 kbit/s, 48000 Hz joint-stereo
Title: Use Mp3Splt to obtain original tracks
Artist: File wrapped with Mp3Wrap
Comment: This file is wrapped with Mp3Wrap. Get mp3splt, the free tool to split original files at http://mp3splt.sourceforge.net. Please do not remove this comment.
Album: http://mp3splt.sourceforge.net
Year:
Warning: Big change (MPEG version, layer, rate). Frankenstein stream?
MPEG 2.0 layer III, 32 kbit/s, 16000 Hz mono
This was a Frankenstein track.
[0:03] Decoding of 8b9fa982a19cf8ef8db93bc067bb1e98_MP3WRAP.mp3 finished.
sudo /usr/bin/mplayer -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 100 -volume 40 cache/8b9fa982a19cf8ef8db93bc067bb1e98_MP3WRAP.mp3
ZitatMyTTS:duration:.* {
my $devMPD = "myMPD";
my $stateMPD = Value("$devMPD");
my $atTimestamp = time_num2str($EVTPART1+2);
my $atName = "at_" . $devMPD . "_play";
if (!$defs{$atName}) {
fhem("define $atName at +" . $atTimestamp . " set $devMPD play");
} else {
fhem("modify $atName +" . $atTimestamp);
}
}
Zitattime_num2str
Func_VolAut_N return value: Undefined subroutine &main::time_num2str called at (eval 90) line 6.
ZitatMyTTS:.*!.* {
my $Radio = (Value("SRadio"));
my $Station = ReadingsVal("SRadio", "StreamURL", "");
my $Old_Vol = (OldValue("Dum_Volume_D"));
my $atTimestamp = time_num2str($EVTPART1+2);
if ($Radio eq "playing") {
fhem("set SRadio STOP ; set Dum_Volume_D 80");
fhem("define Radio_Comeback_A at +" . $atTimestamp . " set SRadio PLAY $Station;; set Dum_Volume_D 78");
}
if ($Radio eq "stopped") {
fhem("set Dum_Volume_D 80");
fhem("define Vol_Res_A at +" . $atTimestamp . " set Dum_Volume_D 78");
}
}
attr MyTTS TTS_Language sv
2015.05.06 18:13:05 1: PERL WARNING: Use of uninitialized value within %language in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 623.
2015.05.06 18:13:05 1: PERL WARNING: Use of uninitialized value within %language in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 669.
2015.05.06 18:13:05 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 572.
2015.05.06 18:13:05 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 573.
2015.05.06 18:13:05 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 520.
2015.05.07 18:04:09 1: PERL WARNING: Use of uninitialized value within %language in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 623.
set MyTTS tts Hallo! Ich hoffe dein Tag war schön
PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 567.
PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 506.
Zitat von: Tobias am 17 Mai 2015, 13:37:47
Jetzt endlich committed.
set tts tts ":sonar-ping0.mp3:"
2015.05.21 19:10:29 4: tts: Auflistung der Textbausteine nach Aufbereitung:
2015.05.21 19:10:29 4: tts: 0 => "
2015.05.21 19:10:29 4: tts: 1 => sonar-ping0.
2015.05.21 19:10:29 4: tts: 2 => mp3
2015.05.21 19:10:29 4: tts: 3 => "
2015.05.21 19:10:29 4: Verwende TTS Spracheinstellung: Deutsch
2015.05.21 19:10:29 4: Text2Speech: Bearbeite per MP3Wrap jetzt den Text: " sonar-ping0. mp3 "
2015.05.21 19:10:29 4: Text2Speech: mp3wrap cache/1a4b0ca63ad1fab9ab40d064d12dec45.mp3 cache/2b37e2c7bcc98fb6f9d832187166b505.mp3 cache/393d8b5f391d81951979b1dfeab1a9ac.mp3 cache/81245759aed4c728b979f83378c81be4.mp3 cache/2b37e2c7bcc98fb6f9d832187166b505.mp3
2015.05.21 19:10:30 4: Text2Speech_CalcMP3Duration: cache/1a4b0ca63ad1fab9ab40d064d12dec45_MP3WRAP.mp3 hat eine Länge von 3 Sekunden.
2015.05.21 19:10:30 4: Text2Speech:sudo /usr/bin/mplayer -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 40 cache/1a4b0ca63ad1fab9ab40d064d12dec45_MP3WRAP.mp3
2015.05.21 19:10:30 4: Text2Speech_readingsSingleUpdateByName: Dev:tts Reading:duration Val:3
2015.05.21 19:10:30 4: Text2Speech_readingsSingleUpdateByName: Dev:tts Reading:endTime Val:00:00:00
fhem> l tts
Internals:
ALSADEVICE none
DEF none
MODE DIRECT
NAME tts
NR 1259
STATE Initialized
TYPE Text2Speech
VOLUME 40
Readings:
2015-05-21 19:10:30 duration 3
2015-05-21 19:10:30 endTime 00:00:00
2015-05-21 19:04:02 volume 40
Helper:
Text2Speech:
Attributes:
TTS_Ressource Google
TTS_UseMP3Wrap 1
alias Sprachausgabe
group HumanInterface
icon audio_audio
room IO_Devices
verbose 5
2015.05.21 19:09:32 4: tts: Angabe einer direkten MP3-Datei gefunden: sonar-ping0.mp3 => FileTpl_143222817265024_#0
2015.05.21 19:09:32 4: tts: Auflistung der Textbausteine nach Aufbereitung:
2015.05.21 19:09:32 4: tts: 0 => "
2015.05.21 19:09:32 4: tts: 1 => templates/sonar-ping0.mp3
2015.05.21 19:09:32 4: tts: 2 => "
2015.05.21 19:09:32 4: Text2Speech: Bearbeite per MP3Wrap jetzt den Text: " templates/sonar-ping0.mp3 "
2015.05.21 19:09:32 4: Text2Speech_CalcMP3Duration: cache/bbc2da0fd12f2f7cb5be7f2399556697_MP3WRAP.mp3 hat eine Länge von 4 Sekunden.
2015.05.21 19:09:32 4: Text2Speech:sudo /usr/bin/mplayer -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 40 cache/bbc2da0fd12f2f7cb5be7f2399556697_MP3WRAP.mp3
2015.05.21 19:09:32 4: Text2Speech_readingsSingleUpdateByName: Dev:tts Reading:duration Val:4
2015.05.21 19:09:32 4: Text2Speech_readingsSingleUpdateByName: Dev:tts Reading:endTime Val:00:00:00
/:([\w]+.mp3):/g
/:([^:]+.mp3):/g
Zitat\w stands for "word character", usually [A-Za-z0-9_]. Notice the inclusion of the underscore and digits.Ich denke, hier ist Minus-Zeichen das Problem.
set tts tts ":sonic-ring.mp3:"
set tts tts ":cm/notifications/Argon.ogg:"
set tts tts Test :sonic-ring.mp3: Test
set tts tts Test :cm/notifications/Argon.ogg: Test
Prototype after '@' for main::Text2Speech_SplitString : @$$$$ at ./FHEM/98_Text2Speech.pm line 465.
Zitat von: Tobias am 02 Juni 2015, 07:54:45Hallo Tobias,
boa, das wav nicht funktionieren ist klatr, ich prüfe explizit auf *.mp3
Mir war bis dato allerdings nicht klar das andere Dateien als mp3 genutzt werden.
Werde ich anpassen auf folgende:
[mp3|ogg|wav]
Wenn ich etwas vergessen habe, bitte melden...
@FileTplPc = ($text[$i] =~ /:(\w+.+[mp3|ogg|wav]):/g);
set tts tts :halloween/tuer_knarrt.wav:
Zitat von: Otto123 am 04 Juli 2015, 22:59:56
Umlaute gehen bei mir.
alex@cubie ~ $ locale
LANG=de_DE.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES=POSIX
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=
LANG=de_DE.UTF-8
LANGUAGE=
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=
Zitat von: hexenmeister am 04 Juli 2015, 15:06:09
Sound-Dateien gehen so leider gar nicht.
Ich habe die Zeile so abgeändert (Plus nach dem Punkt), dann geht alles (MP3, OGG, WAV) wieder:Code Auswählen@FileTplPc = ($text[$i] =~ /:(\w+.+[mp3|ogg|wav]):/g);
set MyTTS tts Hallo :alarm.mp3:
set MyTTS tts :alarm.mp3: Hallo
{ system("amixer -c 0 set PCM 100%&") }
define setSoundVolume notify global:INITIALIZED { system("amixer -c 0 set PCM 100%&") }
define MYTTS Text2Speech none
attr MYTTS TTS_UseMP3Wrap 1
attr MYTTS TTS_MplayerCall sudo /usr/bin/mpg123 -q
attr MYTTS verbose 4
if($AlsaDevice eq "none") {
$AlsaDevice = "";
$mplayerAudioOpts = "";
}
if($AlsaDevice eq "none") {
$AlsaDevice = "";
$mplayerAudioOpts = "";
$mplayerNoDebug = "";
$mplayerOpts = "";
}
Zitat von: ReVoLt112 am 18 Juli 2015, 14:56:30Das wäre mir neu. Auch wenn nun pulseaudio zusätzlich standardmäßig installiert ist, ist doch alsa weiterhin da.
...Leider hat Jessie keine ALSA Unterstützung mehr und setzt voll auf Pulseaudio...
set FhemSpricht tts é
erzeugt bei mir eine Sprachausgabe "aurheberrecht". Ist das bei Euch auch so? Entsprechend ist dann z.B. auch meine Ansage bei eingehenden Anrufen, z.B. wenn mein Kumpel André anruft ;D Im Browser hingegen funktioniert http://translate.google.com/translate_tts?tl=de&q=é
ohne diesen Effekt...
Zitat von: carzl am 20 Juli 2015, 17:24:28Ja.
Ich habe einen anderen putzigen Effekt: einCode Auswählenset FhemSpricht tts é
erzeugt bei mir eine Sprachausgabe "aurheberrecht". Ist das bei Euch auch so?
Zitat von: Otto123 am 21 Juli 2015, 14:19:34
Ich denke in dem Text2Speech Modul ist so eine Möglichkeit Ersetzung auch drin.
Gruß Otto
Zitat von: TeeVau am 21 Juli 2015, 15:20:35... was bei meiner Installation aus mir unerklärlichen Gründen nicht richtig funktioniert. Die Kodierung der Datei scheint auf meinem Cubietruck nicht zu passen. Die Umlaute werden zu sonderbaren Sonderzeichen ;)
So halb. Das Modul ersetzt in dem String lediglich die Umlaute und das ß.
Zitat von: marvin78 am 21 Juli 2015, 19:34:27Hi Marvin
Daher auch die Umsetzung in einer eigenen sub.
sub setTTS($;$) {
my ($say,$dv)=@_;
$dv="all" unless defined($dv);
$dv="all" if (defined($dv) && $dv eq "");
my @dvs=();
@dvs=split(":",$dv) if (defined($dv) && $dv ne "all");
my @devices=();
my $playStatus;
my $volume=100;
$say =~ s/ä/ae/g;
$say =~ s/ö/oe/g;
$say =~ s/ü/ue/g;
$say =~ s/Ä/Ae/g;
$say =~ s/Ö/Oe/g;
$say =~ s/Ü/Ue/g;
$say =~ s/ß/ss/g;
$say =~ s/é/ee/g;
$say =~ s/è/ae/g;
@devices=devspec2array("sType=TTS");
my $dev="";
my $ttsDev="F";
my $ttsCmd="F";
foreach(@devices) {
$dev=$_;
if (Value($dev) eq "on" || Value($dev) eq "present") {
$ttsDev=AttrVal($dev,'TTSDevice', 'F');
$ttsCmd=AttrVal($dev,'TTSCmd','F');
my $fritzAction=ReadingsVal("EG.bu.NN.FritzBoxCall.dis","event","disconnect");
my $fritzDevice="-";
if ($ttsDev eq "TTS") {
if ($fritzAction eq "connect") {
$fritzDevice=ReadingsVal("EG.bu.NN.FritzBoxCall.dis","device",0);
}
$volume=InternalVal($ttsDev,"VOLUME",80);
fhem ("set $ttsDev volume 10") if ($fritzDevice eq "buero");
}
if ($ttsDev eq "WzTTS") {
if ($fritzAction eq "connect") {
$fritzDevice=ReadingsVal("EG.bu.NN.FritzBoxCall.dis","device",0);
}
$volume=InternalVal($ttsDev,"VOLUME",80);
fhem ("set $ttsDev volume 10") if ($fritzDevice eq "privat");
}
$playStatus="stopped";
if ($ttsCmd eq "talk") {
$playStatus=ReadingsVal($ttsDev,"playStatus","playing");
$volume=ReadingsVal($ttsDev,"volume",80);
fhem ("set $ttsDev volume 80");
}
if ($ttsDev ne 'F' && $ttsCmd ne 'F' && ($dv eq "all" || inArray(\@dvs,$ttsDev))) {
Log 3, "TTS: $ttsDev - $say - $ttsDev - $ttsCmd - "."set $ttsDev $ttsCmd $say";
$say =~ s/ /-/g if ($ttsCmd eq "power");
fhem("set $ttsDev $ttsCmd $say");
}
fhem ("set $ttsDev volume $volume") if (($ttsCmd eq "talk" && $playStatus ne "playing") || $ttsDev eq "TTS");
}
}
}
Zitat von: Pfriemler am 20 Juli 2015, 13:32:47Hallo, das Problem hatte ich auch. Ich musste bei mir den übergebenen String ändern. Ich hatte zuvor alles in ' hochkomma und habe diese gelöscht und schon gehts wieder.
Moinsen,
vor gefühlt hunderte Beiträgen schrieb ich über Probleme mit Blockaden durch Text-2-Speech. Aufm Raspi 2 läuft die unverändert übernommene Installation seit vielen Wochen störungsfrei.
Jetzt gibt es aber was neues:
Seit kurzem fällt mir ein "Nachlaut" bei der Ausgabe auf, im Stil: "Alarmanlage ist jetzt aus. ... A"
Ist das schon bekannt oder gibt es eine Idee zum Weiterforschen?
PERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/98_Text2Speech.pm line 545.
ZitatPERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/98_Text2Speech.pm line 545.Wenn genauere Infos benötigt werden, einfach melden..
Zitatset MyTTS tts xyzführt zu diesem Fehler. Text2Speech geht daher wohl gerade nicht.
$HttpResponse = GetHttpFile($ttsHost, $ttsPath . $ttsLang . $language{$TTS_Language} . "&" . $ttsQuery . uri_escape($text));
$HttpResponse = GetHttpFile($ttsHost, $ttsPath . $ttsLang . $language{$TTS_Language} . "&client=t&prev=input&" . $ttsQuery . uri_escape($text));
Zitat- Shutdown&Restart (keine Ahnung, ob notwendig. dafür kenne ich fhem zu wenig)
reload 98_Text2Speech
Zitat von: Otto123 am 28 Juli 2015, 21:37:56Alles klar, danke. Versuche ich mir zu merken ;)Code Auswählenreload 98_Text2Speech
reicht 8)
Zitat von: Otto123 am 28 Juli 2015, 21:37:56Ich kann normalerweise hemmungslos mit dem TotalCommander per FTP löschen, aber nichts in diesem Verzeichnis.
Die mp3 Dateien von heute oder/und gestern im /opt/fhem/cache löschen.
Zitat von: Pfriemler am 29 Juli 2015, 00:46:18Wird ein Rechteproblem sein. Die Dateien gehören dem Benutzer, mit dessen Rechten FHEM läuft. Du meldest Dich wohl mit einem anderen.
Ich kann normalerweise hemmungslos mit dem TotalCommander per FTP löschen, aber nichts in diesem Verzeichnis.
Zitat von: Pfriemler am 29 Juli 2015, 00:46:18Melde dich mit Terminal an und mach es mit
Ich kann normalerweise hemmungslos mit dem TotalCommander per FTP löschen, aber nichts in diesem Verzeichnis.
???
sudo rm /opt/fhem/cache/...
Zitat von: Tobias am 29 Juli 2015, 20:39:41Danke schön!
fix eingecheckt mit "&client=t&prev=input&"
morgen verfügbar
Zitat von: Otto123 am 29 Juli 2015, 09:02:20Linux, das unbekannte Wesen. ::)
Melde dich mit Terminal an und mach es mitCode Auswählensudo rm /opt/fhem/cache/...
set MyTTS tts :beep.mp3::beep.mp3::beep.mp3:
Zitat:dingdong.mp3: Ding DongWird ausgegeben erst mp3 und dann sagt sie Ding Dong
Zitat:dingdong.mp3:Ding Dong:dingdong.mp3:Hier erscheint nur ein Ding Dong ohne Text
Exiting... (End of file)
LAVF_header: av_find_stream_info() failed
[mp3 @ 0xb63ff0e8]Estimating duration from bitrate, this may be inaccurate
[mp3 @ 0xb63ff0e8]Could not find codec parameters (Audio: mp3, 0 channels, s16)
[mp3 @ 0xb5d20850]Header missing
libavformat file format detected.
Mismatching header version 53.19.0
libavformat version 53.21.1 (external)
Playing cache/1412f2e88da0f4dd7ff0cbe67239842c.mp3.
MPlayer svn r34540 (Raspbian), built with gcc-4.6 (C) 2000-2012 MPlayer Team
2015.08.03 21:01:55 4: Text2Speech_readingsSingleUpdateByName: Dev:Audio Reading:endTime Val:00:00:00
2015.08.03 21:01:54 4: Text2Speech_readingsSingleUpdateByName: Dev:Audio Reading:duration Val:0
2015.08.03 21:01:54 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 40 cache/1412f2e88da0f4dd7ff0cbe67239842c.mp3
2015.08.03 21:01:54 4: Text2Speech_CalcMP3Duration: cache/1412f2e88da0f4dd7ff0cbe67239842c.mp3 hat eine Länge von 0 Sekunden.
2015.08.03 21:01:54 1: PERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/98_Text2Speech.pm line 545.
2015.08.03 21:01:54 4: Text2Speech: Schreibe mp3 in die Datei cache/1412f2e88da0f4dd7ff0cbe67239842c.mp3 mit 2812 Bytes
2015.08.03 21:01:54 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=Testausgabe
2015.08.03 21:01:54 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 1412f2e88da0f4dd7ff0cbe67239842c.mp3
2015.08.03 21:01:54 4: Text2Speech: Bearbeite jetzt den Text: Testausgabe
2015.08.03 21:01:54 4: Verwende TTS Spracheinstellung: Deutsch
2015.08.03 21:01:54 4: Audio: 0 => Testausgabe
2015.08.03 21:01:54 4: Audio: Auflistung der Textbausteine nach Aufbereitung:
Zitat von: fruemmel am 04 August 2015, 08:29:11Wenn Du das Captcha im Browser ein Mal eingibst, dann ist dort erstmal Ruhe und er fragt nicht nochmal.
Noch ein Nachtrag: Die vermeintlich zu kurzen mp3-Files sind die html-Antwort von google, dass das captcha gewünscht wird. Angeblich wurden aus meinem Netz zu viele Requests gesendet.
Allerdings verstehe ich nicht, warum es aus dem Browser vom PC aus problemlos geht (selbe IP-Adresse nach außen). Auch ein Wechsel der dynamischen IP-Adresse hat nichts gebracht.
Zitat von: Tobias am 29 Juli 2015, 20:39:41Damit sollte es eigentlich klappen. Tut es bei mir zumindest.
fix eingecheckt mit "&client=t&prev=input&"
morgen verfügbar
Zitat von: ChrisK am 04 August 2015, 10:26:59Die neue Version habe ich drauf, daran kann es nicht mehr liegen. Komisch ist auch, dass ich bei Eingabe des Links im Browser auf meinem PC die Sprachausgabe ohne Captcha sofort bekomme, aber in fhem auf dem Raspberry (selbes Netz, also selbe IP-Adresse nach Außen) das Captcha gefordert wird. Wertet google hier evtl. noch den Client aus oder sowas? Leider habe ich auf dem Raspberry kein GUI installiert, sonst könnte ich weiter testen.
Wenn Du das Captcha im Browser ein Mal eingibst, dann ist dort erstmal Ruhe und er fragt nicht nochmal.
Das Modul hat aber keinen Browser in dem Sinne, dass sich gemerkt werden kann, dass Du das Captcha korrekt eingegeben hast.
Hast Du die aktuelle Version vom Modul:Damit sollte es eigentlich klappen. Tut es bei mir zumindest.
Zitat von: Hollo am 04 August 2015, 17:18:03
Google wertet die Header-Daten aus.
Wenn Du also per Browser aufrufst, kommt z.B. ein Mozilla für den Firefox mit.
Ist das nicht der Fall, geht Google halt von robots aus, die geblockt werden.
In der LOG-Fehlermeldung siehst Du auch was von "terminal=unknown not defined" oder so.
define delmp3 at +00:05:00 "find /opt/fhem/cache -maxdepth 1 -name '*.mp3' -mmin -5 -exec rm {} \;;"
015.08.04 16:35:30 1: PERL WARNING: Problem closing 'cache/.': Is a directory at ./FHEM/98_Text2Speech.pm line 543.
2015.08.04 16:35:30 1: PERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/98_Text2Speech.pm line 545.
2
Guten Morgen. Die Aussentemperatur beträgt $temp Grad und die Luftfeuchtigkeit liegt bei $humi Prozent. Gefühlte Temperatur aktuell $tg Grad. Windgeschwindigkeit $tw kmh. Die Vorhersage für heute $t1 .Temperatur von $t2 bis $t3 Grad.
Achtung, vorsichtig Autofahren. Aktuell gibt es $tcond
Heute müssen die Mülltonnen $muell2 rausgestellt werden. Morgen früh werden diese geleert.
Der Sperrmüll wird morgen abgeholt.
Heute werden die Mülltonnen $muell1 geleert.
Heute ist im Aquarium Fastentag, die Fische bekommen kein Futter.
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.
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.";
}
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.
Zitat von: netbus am 12 August 2015, 13:58:26Blä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.
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?
Zitat von: netbus am 12 August 2015, 16:17:58Dann 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.
Habe den Cache gelöscht und verwende schon das neue Modul aber der 545 Fehler bleibt :-[
Zitat von: netbus am 12 August 2015, 21:29:48Aber das ist ein ganz anderes Problem, kann ja nichts mit FHEM zu tun haben.
auch wenn ich es im browser aufrufe steht bei mir
"Abspielen des Videos wegen eines Netzwerkfehlers abgebrochen"
http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=das%20ist%20ein%20test
"&client=t&prev=input&"
& wird zu &
in der Google Suche ein.Zitat von: netbus am 12 August 2015, 22:01:28@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):
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 (http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=das%20ist%20ein%20test)
http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=das%20ist%20ein%20test
Zitat von: netbus am 12 August 2015, 22:33:03Welche Distribution nutzt Du denn?
...Ich kann mir das nur so erklären das wir anscheinend auf dem bananapi einen anderen url fetcher oder "generator" haben dürften...
Zitat von: netbus am 13 August 2015, 08:57:35Du hast Recht, steht bei mir auch mit & in der cache-Datei. Das ist ja die Antwort von google. Da steht auch drin, dass er das captcha gelöst haben möchte. Jetzt ist nur die Frage, ob der Link auf dem Banana schon falsch generiert wird, oder erst die Antwort von google modifiziert wird.
@fruemmel
dieser Link steht in der mp3 Datei im cache ordner
GET /translate_tts?tl=de&client=t&prev=input&q=hallo%20test HTTP/1.0
Host: translate.google.com
HTTP/1.0 302 Moved Temporarily
Location: http://ipv4.google.com/sorry/IndexRedirect?continue=http://translate.google.com/translate_tts%3Ftl%3Dde%26client%3Dt%26prev%3Dinput%26q%3Dhallo%2520test&q=CGMSBE6EGjAYv-KxrgUiGQDxp4NLUuXVmYHLv2dSn4JwuiHNUj9mTbw
Date: Thu, 13 Aug 2015 10:28:15 GMT
Pragma: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Content-Type: text/html; charset=UTF-8
Server: HTTP server (unknown)
Content-Length: 411
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Connection: close
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://ipv4.google.com/sorry/IndexRedirect?continue=http://translate.google.com/translate_tts%3Ftl%3Dde%26client%3Dt%26prev%3Dinput%26q%3Dhallo%2520test&q=CGMSBE6EGjAYv-KxrgUiGQDxp4NLUuXVmYHLv2dSn4JwuiHNUj9mTbw">here</A>.
</BODY></HTML>
GET /sorry/IndexRedirect?continue=http://translate.google.com/translate_tts%3Ftl%3Dde%26client%3Dt%26prev%3Dinput%26q%3Dhallo%2520test&q=CGMSBE6EGjAYv-KxrgUiGQDxp4NLUuXVmYHLv2dSn4JwuiHNUj9mTbw HTTP/1.0
Host: ipv4.google.com
HTTP/1.0 503 Service Unavailable
Date: Thu, 13 Aug 2015 10:28:15 GMT
Pragma: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Content-Type: text/html
Server: HTTP server (unknown)
Content-Length: 2816
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Connection: close
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content="initial-scale=1"><title>http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=hallo%20test</title></head>
<body style="font-family: arial, sans-serif; background-color: #fff; color: #000; padding:20px; font-size:18px;" onload="e=document.getElementById('captcha');if(e){e.focus();}">
<div style="max-width:400px;">
<hr noshade size="1" style="color:#ccc; background-color:#ccc;"><br>
To continue, please type the characters below:<br><br>
<img src="/sorry/image?id=1609762770752662828&hl=en" border="1" alt="Please enable images"><br><br><form action="CaptchaRedirect" method="get"><input type="hidden" name="continue" value="http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=hallo%20test"><input type="hidden" name="id" value="1609762770752662828"><input type="text" name="captcha" value="" id="captcha" size="12" style="font-size:16px; padding:3px 0 3px 5px; margin-left:0px;"><input type="submit" name="submit" value="Submit" style="font-size:18px; padding:4px 0;"><br><br><br></form>
<hr noshade size="1" style="color:#ccc; background-color:#ccc;">
<div style="font-size:13px;">
<b>About this page</b><br><br>Our systems have detected unusual traffic from your computer network. This page checks to see if it's really you sending the requests, and not a robot. <a href="#" onclick="document.getElementById('infoDiv').style.display='block';">Why did this happen?</a><br><br>
<div id="infoDiv" style="display:none; background-color:#eee; padding:10px; margin:0 0 15px 0; line-height:1.4em;">
This page appears when Google automatically detects requests coming from your computer network which appear to be in violation of the <a href="//www.google.com/policies/terms/">Terms of Service</a>. The block will expire shortly after those requests stop. In the meantime, solving the above CAPTCHA will let you continue to use our services.<br><br>This traffic may have been sent by malicious software, a browser plug-in, or a script that sends automated requests. If you share your network connection, ask your administrator for help — a different computer using the same IP address may be responsible. <a href="//support.google.com/websearch/answer/86640">Learn more</a><br><br>Sometimes you may be asked to solve the CAPTCHA if you are using advanced terms that robots are known to use, or sending requests very quickly.
</div>
IP address: XX.XX.XX.XX<br>Time: 2015-08-13T10:28:15Z<br>URL: http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=hallo%20test<br>
</div>
</div>
</body>
</html>
$param->{header}
Zitat von: netbus am 13 August 2015, 19:23:30Das habe ich im Beitrag #429 http://forum.fhem.de/index.php/topic,18481.msg319200.html#msg319200 (http://forum.fhem.de/index.php/topic,18481.msg319200.html#msg319200) schon geschrieben. Wusste nur nicht wie man das testen und einbauen könnte.
Ich glaube das Problem gefunden zu haben.
Es wird kein User Agent mitgeschickt...
use HttpUtils;
sub X_GetHttpResponse($)
{
my ($hash, $def) = @_;
my $name = $hash->{NAME};
my $param = {
url => "http://translate.google.com/translate_tts",
timeout => 5,
hash => $hash, # Muss gesetzt werden, damit die Callback funktion wieder $hash hat
method => "GET", # Lesen von Inhalten
header => "agent: Mozilla/1.22\r\nUser-Agent: Mozilla/1.22", # Den Header gemäss abzufragender Daten ändern
callback => \&X_ParseHttpResponse # Diese Funktion soll das Ergebnis dieser HTTP Anfrage bearbeiten
};
HttpUtils_NonblockingGet($param); # Starten der HTTP Abfrage. Es gibt keinen Return-Code.
}
Prototype after '@' for main::Text2Speech_SplitString : @$$$$ at ./FHEM/98_Text2Speech.pm line 465
2015.08.24 16:56:56 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 552.
2015.08.24 16:57:31 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2015.08.24 16:57:31 4: MyTTS: 0 => Test
2015.08.24 16:57:31 4: Verwende TTS Spracheinstellung: Deutsch
2015.08.24 16:57:31 4: Text2Speech: Bearbeite jetzt den Text: Test
2015.08.24 16:57:31 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 32cb74707cca1b4b159ac2531f4fc883.mp3
2015.08.24 16:57:31 4: Text2Speech: Hole URL: http://api.voicerss.org/?hl=de-de&f=48khz_16bit_stereo&key=musshiernichtrein&src=Test
2015.08.24 16:57:31 4: Text2Speech: Schreibe mp3 in die Datei cache/32cb74707cca1b4b159ac2531f4fc883.mp3 mit 339 Bytes
2015.08.24 16:57:31 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 552.
2015.08.24 16:57:31 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 100 cache/32cb74707cca1b4b159ac2531f4fc883.mp3
2015.08.24 16:57:31 4: Text2Speech_readingsSingleUpdateByName: Dev:MyTTS Reading:duration Val:
2015.08.24 16:57:31 4: Text2Speech_readingsSingleUpdateByName: Dev:MyTTS Reading:endTime Val:00:00:00
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
Cannot open file '/root/.mplayer/input.conf': Permission denied
Failed to open /root/.mplayer/input.conf.
2015.08.24 19:21:02 4: tts: Auflistung der Textbausteine nach Aufbereitung:
2015.08.24 19:21:02 4: tts: 0 => Das ist ein Test Nummer 2.
2015.08.24 19:21:02 4: Verwende TTS Spracheinstellung: Deutsch
2015.08.24 19:21:02 4: Text2Speech: Bearbeite jetzt den Text: Das ist ein Test Nummer 2.
2015.08.24 19:21:02 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 6667795316f883debdea5ddbb9fa6309.mp3
2015.08.24 19:21:02 4: Text2Speech: Hole URL: http://api.voicerss.org/?hl=de-de&f=48khz_16bit_stereo&key=xxxxxxxx27c048c5a10a81e6xxxxxxxx&src=Das%20ist%20ein%20Test%20Nummer%202.
2015.08.24 19:21:03 4: Text2Speech: Schreibe mp3 in die Datei cache/6667795316f883debdea5ddbb9fa6309.mp3 mit 43619 Bytes
2015.08.24 19:21:03 4: Text2Speech_CalcMP3Duration: cache/6667795316f883debdea5ddbb9fa6309.mp3 hat eine Länge von 5 Sekunden.
2015.08.24 19:21:03 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols cache/6667795316f883debdea5ddbb9fa6309.mp3
2015.08.24 19:21:03 4: Text2Speech_readingsSingleUpdateByName: Dev:tts Reading:duration Val:5
2015.08.24 19:21:03 4: Text2Speech_readingsSingleUpdateByName: Dev:tts Reading:endTime Val:00:00:00
Zitat von: Tobias am 24 August 2015, 19:14:19Selbstverständlich hatte ich mich registriert und den angezeigten API-Key in meine Config kopiert. >:(
Dein APIKey ist fehlerhaft. Deswegen bekommst du die mp3 nicht raus... Der Rest sind Folgefehler...
Den APIKey bekomst du erst nach Anmeldung... Hatte ich aber geschrieben....
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Header</h2>
<hr><p>HTTP Error 400. The request has an invalid header name.</p>
</BODY></HTML>
2015.08.25 04:15:00 4: Text2Speech: mp3wrap cache/cca6cbb6ea8961297bb4031170e493d3.mp3 cache/templates/stille500ms.mp3 cache/dff1059b189523c8514125b86dce6c30.mp3 cache/f9d4c62182862fed579af8d222787018.mp3 cache/3ac907259a23cf91c9db4c670ae4cbc9.mp3 cache/dc96241aa1f57e549410be202d2f12f1.mp3 cache/c9296a5fe275c2108f2b5d52097fccf5.mp3 cache/cc7e2367b86e52fb735180bb790128d1.mp3 cache/0d40e97e82e65ad7581b0c985e06f18f.mp3 cache/15c281b9a3ce3d390515dc58174c0da8.mp3 cache/7f38b8430aaa6ee3c3fd205b5d80cab4.mp3 cache/98b8acd5052b134afea903e817d1af22.mp3 cache/1f31c779f511680ec944c0bd2c46c1a9.mp3 cache/beb573febe6bd1f114b84cd01e62869b.mp3 cache/0d866b1b39e9303a8cfe6b07f926a0a7.mp3 cache/2cc4aa5cbb433db1ba67154477224ffb.mp3 cache/9ff135956e644e11249b943e0ff66f78.mp3 cache/8bd7c0e288f13ce859c58de96099da49.mp3 cache/82869e23523c6ff476d16e9d299a8611.mp3 cache/8e604c13beec9fe76c4071ec5a8b9488.mp3 cache/dfd6cd758994c4c41587c46143136a01.mp3 cache/89364957474f6b1ef74f468671fb9072.mp3 cache/db8ae7d594e45e04106fd372d25306a5.mp3 cache/6beceafedb892053c5577a8d483ce595.mp3 cache/fbd8313449bc4054275a5de522edf60c.mp3 cache/ce0202016c6357275c900eec029b7709.mp3 >/dev/null
2015.08.25 04:15:01 4: Text2Speech_CalcMP3Duration: cache/cca6cbb6ea8961297bb4031170e493d3_MP3WRAP.mp3 hat eine Länge von 163 Sekunden.
2015.08.25 04:15:01 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 100 -volume 1 cache/cca6cbb6ea8961297bb4031170e493d3_MP3WRAP.mp3
2015.08.25 04:15:01 4: Text2Speech_readingsSingleUpdateByName: Dev:SagEs Reading:duration Val:163
2015.08.25 04:15:01 4: Text2Speech_readingsSingleUpdateByName: Dev:SagEs Reading:endTime Val:00:00:00
2015.08.25 04:16:00 1: Timeout for Text2Speech_DoIt reached, terminated process 4816
2015.08.25 04:16:00 2: Text2Speech: BlockingCall for SagEs was aborted
2015.08.25 07:05:04 4: SagEs: Angabe einer direkten MP3-Datei gefunden: => FileTpl_1440479104_#1
2015.08.25 07:05:04 4: SagEs: Auflistung der Textbausteine nach Aufbereitung:
2015.08.25 07:05:04 4: SagEs: 0 => ARRAY(0x47671e8)
2015.08.25 07:05:04 4: SagEs: 1 => templates/stille500ms.mp3
2015.08.25 07:05:04 4: SagEs: 2 => Das Schlafzimmerfenster wurde geschlossen.
2015.08.25 07:05:04 4: Verwende TTS Spracheinstellung: Deutsch
2015.08.25 07:05:04 4: Text2Speech: Bearbeite jetzt den Text: ARRAY(0x47671e8)
$hash->{helper}{RUNNING_PID} = BlockingCall("Text2Speech_DoIt", $hash, "Text2Speech_Done", 60, "Text2Speech_AbortFn", $hash) unless(exists($hash->{helper}{RUNNING_PID}));
ZitatDu kannst ja mal VoiceRSS testen
2015.08.25 19:00:54 4: Text2Speech: Hole URL: http://api.voicerss.org/?hl=de-de&f=48khz_16bit_stereo&key=gelöscht&src=Hallo%20wie%20geht%20es
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Header</h2>
<hr><p>HTTP Error 400. The request has an invalid header name.</p>
</BODY></HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content="initial-scale=1"><title>http://translate.google.com/translate_tts?tl=de&q=Morgen%20gibt%20es%20was</title></head>
<body style="font-family: arial, sans-serif; background-color: #fff; color: #000; padding:20px; font-size:18px;" onload="e=document.getElementById('captcha');if(e){e.focus();}">
<div style="max-width:400px;">
<hr noshade size="1" style="color:#ccc; background-color:#ccc;"><br>
To continue, please type the characters below:<br><br>
<img src="/sorry/image?id=2403786924147101825&hl=en" border="1" alt="Please enable images"><br><br><form action="CaptchaRedirect" method="get"><input type="hidden" name="continue" value="http://translate.google.com/translate_tts?tl=de&q=Morgen%20gibt%20es%20was"><input type="hidden" name="id" value="2403786924147101825"><input type="text" name="captcha" value="" id="captcha" size="12" style="font-size:16px; padding:3px 0 3px 5px; margin-left:0px;"><input type="submit" name="submit" value="Submit" style="font-size:18px; padding:4px 0;"><br><br><br></form>
<hr noshade size="1" style="color:#ccc; background-color:#ccc;">
<div style="font-size:13px;">
<b>About this page</b><br><br>Our systems have detected unusual traffic from your computer network. This page checks to see if it's really you sending the requests, and not a robot. <a href="#" onclick="document.getElementById('infoDiv').style.display='block';">Why did this happen?</a><br><br>
<div id="infoDiv" style="display:none; background-color:#eee; padding:10px; margin:0 0 15px 0; line-height:1.4em;">
This page appears when Google automatically detects requests coming from your computer network which appear to be in violation of the <a href="//www.google.com/policies/terms/">Terms of Service</a>. The block will expire shortly after those requests stop. In the meantime, solving the above CAPTCHA will let you continue to use our services.<br><br>This traffic may have been sent by malicious software, a browser plug-in, or a script that sends automated requests. If you share your network connection, ask your administrator for help — a different computer using the same IP address may be responsible. <a href="//support.google.com/websearch/answer/86640">Learn more</a><br><br>Sometimes you may be asked to solve the CAPTCHA if you are using advanced terms that robots are known to use, or sending requests very quickly.
</div>
IP address: gelöscht<br>Time: 2015-08-25T17:27:13Z<br>URL: http://translate.google.com/translate_tts?tl=de&q=Morgen%20gibt%20es%20was<br>
</div>
</div>
</body>
</html>
2015.08.25 20:25:48 4: Text2Speech: Hole URL: http://api.voicerss.org/?hl=de-de&f=48khz_16bit_stereo&key=GELÖSCHT&src=so%20jetzt%20nochmal%20VoiceRss
PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 561
header => " "
2015.08.25 20:37:50 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=Das%20war%20wohl%20nichts%20VoiceRss
2015.08.25 23:43:43 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&q=geht%20google%20auch
2015.08.26 07:55:14 4: tts: Auflistung der Textbausteine nach Aufbereitung:
2015.08.26 07:55:14 4: tts: 0 => Das ist ein Test mit Google und VoiceRSS ob beides korrekt funktioniert
2015.08.26 07:55:14 4: Verwende TTS Spracheinstellung: Deutsch
2015.08.26 07:55:14 4: Text2Speech: Bearbeite jetzt den Text: Das ist ein Test mit Google und VoiceRSS ob beides korrekt funktioniert
2015.08.26 07:55:14 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: a4cc14a047e210f5e2c4d0566e142c6f.mp3
2015.08.26 07:55:14 4: Text2Speech: Verwende Google OnlineResource zum Download
2015.08.26 07:55:14 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=Das%20ist%20ein%20Test%20mit%20Google%20und%20VoiceRSS%20ob%20beides%20korrekt%20funktioniert
2015.08.26 07:55:15 4: Text2Speech: Schreibe mp3 in die Datei cache/a4cc14a047e210f5e2c4d0566e142c6f.mp3 mit 20304 Bytes
2015.08.26 07:55:15 4: Text2Speech_CalcMP3Duration: cache/a4cc14a047e210f5e2c4d0566e142c6f.mp3 hat eine Länge von 5 Sekunden.
2015.08.26 07:55:15 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols cache/a4cc14a047e210f5e2c4d0566e142c6f.mp3
2015.08.26 07:56:58 4: tts: Auflistung der Textbausteine nach Aufbereitung:
2015.08.26 07:56:58 4: tts: 0 => Das ist ein Test mit Google und VoiceRSS ob beides korrekt funktioniert.
2015.08.26 07:56:58 4: Verwende TTS Spracheinstellung: Deutsch
2015.08.26 07:56:58 4: Text2Speech: Bearbeite jetzt den Text: Das ist ein Test mit Google und VoiceRSS ob beides korrekt funktioniert.
2015.08.26 07:56:58 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 6edcf1bccb8a05bb9b99333101399cee.mp3
2015.08.26 07:56:58 4: Text2Speech: Verwende VoiceRSS OnlineResource zum Download
2015.08.26 07:56:58 4: Text2Speech: Hole URL: http://api.voicerss.org/?hl=de-de&f=48khz_16bit_stereo&key=xxxxxxxxx527c048c5a10a81e619xxxxxxx&src=Das%20ist%20ein%20Test%20mit%20Google%20und%20VoiceRSS%20ob%20beides%20korrekt%20funktioniert.
2015.08.26 07:56:59 4: Text2Speech: Schreibe mp3 in die Datei cache/6edcf1bccb8a05bb9b99333101399cee.mp3 mit 85091 Bytes
2015.08.26 07:56:59 4: Text2Speech_CalcMP3Duration: cache/6edcf1bccb8a05bb9b99333101399cee.mp3 hat eine Länge von 11 Sekunden.
2015.08.26 07:56:59 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols cache/6edcf1bccb8a05bb9b99333101399cee.mp3
Zitatr -> The speech rate (speed). Allows values: from -10 (slowest speed) up to 10 (fastest speed). Default value: 0 (normal speed). (optional)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Header</h2>
<hr><p>HTTP Error 400. The request has an invalid header name.</p>
</BODY></HTML>
635 header => "agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22m" # Den Header gemäss abzufragender Daten ändern
$t =~ s/ä/ä/g;
$t =~ s/ö/ö/g;
$t =~ s/ü/ü/g;
$t =~ s/Ä/Ä/g;
$t =~ s/Ö/Ö/g;
$t =~ s/Ü/Ü/g;
$t =~ s/ß/ß/g;
elsif ($a[2] eq "TTS_FileTemplateDir") {
unless(-e ($TTS_CacheFileDir ."/". $value) or mkdir ($TTS_CacheFileDir ."/". $value)) {
#Verzeichnis anlegen gescheitert
return "Could not create directory: <$value>";
}
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content="initial-scale=1"><title>http://www.google.com/</title></head>
<body style="font-family: arial, sans-serif; background-color: #fff; color: #000; padding:20px; font-size:18px;" onload="e=document.getElementById('captcha');if(e){e.focus();}">
<div style="max-width:400px;">
<hr noshade size="1" style="color:#ccc; background-color:#ccc;"><br>
<div style="font-size:13px;">
Our systems have detected unusual traffic from your computer network. Please try your request again later. <a href="#" onclick="document.getElementById('infoDiv0').style.display='block';">Why did this happen?</a><br><br>
<div id="infoDiv0" style="display:none; background-color:#eee; padding:10px; margin:0 0 15px 0; line-height:1.4em;">
This page appears when Google automatically detects requests coming from your computer network which appear to be in violation of the <a href="//www.google.com/policies/terms/">Terms of Service</a>. The block will expire shortly after those requests stop.<br><br>This traffic may have been sent by malicious software, a browser plug-in, or a script that sends automated requests. If you share your network connection, ask your administrator for help — a different computer using the same IP address may be responsible. <a href="//support.google.com/websearch/answer/86640">Learn more</a><br><br>Sometimes you may see this page if you are using advanced terms that robots are known to use, or sending requests very quickly.
</div><br>
IP address: xx.xxx.xxx.xxx<br>Time: 2015-10-08T10:07:34Z<br>URL: http://www.google.com/<br>
</div>
</div>
</body>
</html>
2015.10.08 21:28:54 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 610.
pi@raspberrypi /etc $ sudo shutdown -r 0
sudo: parse error in /etc/sudoers near line 9
sudo: no valid sudoers sources found, quitting
sudo: Regelwerks-Plugin konnte nicht initialisiert werden
Zitat von: harway2007 am 08 Oktober 2015, 21:55:52
habe mir Voice RSS übergangsweise eingerichtet ..
??? die Ausgabe Qualität ist nicht vergleichbar ..
2015.10.11 14:24:55 1: PERL WARNING: Constant subroutine main::DEVICE_NAME_TH redefined at /usr/share/perl/5.14/constant.pm line 136.
2015.10.11 14:24:55 1: PERL WARNING: Constant subroutine main::DEVICE_NAME_WEATHER redefined at /usr/share/perl/5.14/constant.pm line 136.
2015.10.11 14:24:55 1: PERL WARNING: Subroutine myUtils_Initialize redefined at ./FHEM/99_myUtils.pm line 23.
2015.10.11 14:24:55 1: PERL WARNING: Subroutine Solarlog redefined at ./FHEM/99_myUtils.pm line 34.
2015.10.11 14:24:55 1: PERL WARNING: Subroutine speakWetterDaten redefined at ./FHEM/99_myUtils.pm line 145.
2015.10.11 14:24:55 1: PERL WARNING: Subroutine speakWetterVorhersage redefined at ./FHEM/99_myUtils.pm line 165.
2015.10.11 14:24:55 1: PERL WARNING: Subroutine prepareNumToSpeak redefined at ./FHEM/99_myUtils.pm line 211.
2015.10.11 14:24:55 1: PERL WARNING: Subroutine rundeZahl0 redefined at ./FHEM/99_myUtils.pm line 219.
2015.10.11 14:24:55 1: PERL WARNING: Subroutine rundeZahl1 redefined at ./FHEM/99_myUtils.pm line 229.
2015.10.11 14:24:55 1: PERL WARNING: Subroutine prepareTextToSpeak redefined at ./FHEM/99_myUtils.pm line 242.
2015.10.11 14:24:55 1: PERL WARNING: Subroutine speak redefined at ./FHEM/99_myUtils.pm line 260.
2015.10.11 14:24:56 4: CUL_Parse: CUL_0 A 14 04 A270 EF38E0 31AE26 00DA2F2543000011A409C4C6 -103
2015.10.11 14:24:57 4: CUL_send: CUL_0As 0A 04 8002 31AE26 EF38E0 00
2015.10.11 14:25:46 4: CUL_Parse: CUL_0 A 14 85 A270 27238A 31AE26 00D434000000000EF10BB8CA -101
2015.10.11 14:25:46 4: CUL_send: CUL_0As 0A 85 8002 31AE26 27238A 00
2015.10.11 14:25:47 4: CUL_Parse: CUL_0 A 14 4A 845E 2A8260 000000 855EEC00000500000937FFF8 -78
2015.10.11 14:26:00 1: PERL WARNING: Constant subroutine main::DEVICE_NAME_TTS redefined at /usr/share/perl/5.14/constant.pm line 136.
2015.10.11 14:26:05 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2015.10.11 14:26:05 4: MyTTS: 0 => Die Raumtemperatur betraegt 22 Grad.
2015.10.11 14:26:05 4: MyTTS: 1 => Die Luftfeuchtigkeit liegt bei 47 Prozent.
2015.10.11 14:26:05 4: Verwende TTS Spracheinstellung: Deutsch
2015.10.11 14:26:05 4: Text2Speech: Bearbeite jetzt den Text: Die Raumtemperatur betraegt 22 Grad.
2015.10.11 14:26:05 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: ffc37b83982a3646326820002338da77.mp3
2015.10.11 14:26:05 4: Text2Speech: Verwende Google OnlineResource zum Download
2015.10.11 14:26:05 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=Die%20Raumtemperatur%20betraegt%2022%20Grad.
2015.10.11 14:26:06 4: Text2Speech: Schreibe mp3 in die Datei cache/ffc37b83982a3646326820002338da77.mp3 mit 1772 Bytes
2015.10.11 14:26:06 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 610.
2015.10.11 14:26:06 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 100 cache/ffc37b83982a3646326820002338da77.m
Zitat von: bmwfan am 11 Oktober 2015, 15:04:11Kopier die URL mal in die Adresszeile Deines Browsers; da wirst Du eine Captcha-Abfrage bekommen.
...Hat jemand einen Tip?
Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 610.
Zitat von: bmwfan am 11 Oktober 2015, 16:50:29Dann scroll doch mal ein ein paar Seiten zurück, da findest Du die selben Hinweise.
Mit der URL im Browser geht es einwandfrei. Wird deutlich ausgesprochen. Ich vermute der Fehler liegt an den PERL warnings wie redefined und letztendlich anCode AuswählenUse of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 610.
Da scheint etwas an dem Modul nicht zu stimmen...
Zitat von: Hollo am 11 Oktober 2015, 18:04:57
Dann scroll doch mal ein ein paar Seiten zurück, da findest Du die selben Hinweise.
Guck Dir mal die erzeugte/geladene MP3-Datei an; die ist viel zu klein und hat nur einen Textinhalt mit dem "Fehlerhinweis".
Daher funktioniert auch die Feststellung der "Musik-Länge" im Modul nicht.
Zitat von: chunter1 am 11 Oktober 2015, 13:17:34
bei mir geht google jetzt auch nicht mehr :-\
ZitatOur systems have detected unusual traffic from your computer network. Please try your request again later.
Zitat von: berrnd am 13 Oktober 2015, 20:32:40
Es lief bei mir damit erst mal besser, nach testweise sehr vielen Aufrufen in sehr kurzer Zeit gabs aber auch damit die gleiche Fehlerseite...
readingsSingleUpdate($hash, "playing", "1", 1);
} else {
readingsSingleUpdate($hash, "playing", "0", 1);
" TTS_Ressource:ESpeak,". join(",", sort keys %ttsHost).
" TTS_Ressource:ESpeak,SVOX-PICO,". join(",", sort keys %ttsHost).
ZitatInstallation of the engine and lame is required [...]:
sudo apt-get install libpopt-dev lame
2015.10.15 20:05:26 4: Text2Speech: Verwende SVOX-picoGoogle OnlineResource zum Download
2015.10.15 20:05:26 4: Text2Speech: Hole URL: http://&Die%20Entscheidung%20ob%20gel%C3%BCftet%20wird%20liegt%20bei%20dir.%2C%3B
2015.10.15 20:05:26 3: Text2Speech: Fehler beim abrufen der Daten von SVOX-picoGoogle Translator
2015.10.15 20:46:04 0: Server started with 11 defined entities (version $Id: fhem.pl 9420 2015-10-10 16:17:04Z rudolfkoenig $, os linux, user fhem, pid 2102)
2015.10.15 20:46:25 1: PERL WARNING: Use of uninitialized value within %ttsAPIKey in numeric gt (>) at ./FHEM/98_Text2Speech.pm line 395.
2015.10.15 20:46:25 1: PERL WARNING: Use of uninitialized value within %ttsUser in numeric gt (>) at ./FHEM/98_Text2Speech.pm line 396.
2015.10.15 20:48:06 1: PERL WARNING: Use of uninitialized value $MaxChar in numeric le (<=) at ./FHEM/98_Text2Speech.pm line 564.
2015.10.15 20:48:06 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2015.10.15 20:48:06 4: MyTTS: 0 => Im Bügel Zimmer darf das Fenster gerne geöffnet werden.,;
2015.10.15 20:48:06 4: MyTTS: 1 => Die Luftfeuchtigkeit beträgt 68 Prozent.,;
2015.10.15 20:48:06 4: MyTTS: 2 => Die Entscheidung ob gelüftet wird liegt bei dir.,;
2015.10.15 20:48:06 4: Verwende TTS Spracheinstellung: Deutsch
2015.10.15 20:48:06 4: Text2Speech:pico2wave --lang=Deutsch --wave="cache/47c17c870d370286c0eace8d62eae113.wav" "Im Bügel Zimmer darf das Fenster gerne geöffnet werden.,;"
Unknown language: Deutsch
Valid languages:
en-US
en-GB
de-DE
es-ES
fr-FR
it-IT
Usage: pico2wave <words>
-w, --wave=filename Write output to this WAV file
-l, --lang=lang Language (default: "en-US")
Help options:
-?, --help Show this help message
--usage Display brief usage message
2015.10.15 20:48:06 4: Text2Speech:lame "cache/47c17c870d370286c0eace8d62eae113.wav" "cache/47c17c870d370286c0eace8d62eae113.mp3"
Could not find "cache/47c17c870d370286c0eace8d62eae113.wav".
2015.10.15 20:48:06 4: Verwende TTS Spracheinstellung: Deutsch
2015.10.15 20:48:06 4: Text2Speech:pico2wave --lang=Deutsch --wave="cache/6def4cdfc9173d3e0b7c02c2b9ff460f.wav" "Die Luftfeuchtigkeit beträgt 68 Prozent.,;"
Unknown language: Deutsch
Valid languages:
en-US
en-GB
Mit
sudo amixer cset numid=3 1
pico2wave --lang=de-DE --wave=/tmp/test.wav "hallo welt hier spricht der räspberri pei"; play /tmp/test.wav;rm /tmp/test.wav
können Sie die Sprachausgabe testen.
-bah: play: Kommando nicht gefunden
ttslink http://translate.google.com/translate_tts?ie=UTF-8&tl=<LANG>&q=<TEXT>&client=t&prev=input
Zitat von: daschauher am 15 Oktober 2015, 21:00:20
Ok danke, das habe ich geändet...aber es funktioniert immer noch nicht.
hier ist wieder der log:Code Auswählen2015.10.15 20:46:04 0: Server started with 11 defined entities (version $Id: fhem.pl 9420 2015-10-10 16:17:04Z rudolfkoenig $, os linux, user fhem, pid 2102)
2015.10.15 20:46:25 1: PERL WARNING: Use of uninitialized value within %ttsAPIKey in numeric gt (>) at ./FHEM/98_Text2Speech.pm line 395.
2015.10.15 20:46:25 1: PERL WARNING: Use of uninitialized value within %ttsUser in numeric gt (>) at ./FHEM/98_Text2Speech.pm line 396.
2015.10.15 20:48:06 1: PERL WARNING: Use of uninitialized value $MaxChar in numeric le (<=) at ./FHEM/98_Text2Speech.pm line 564.
2015.10.15 20:48:06 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2015.10.15 20:48:06 4: MyTTS: 0 => Im Bügel Zimmer darf das Fenster gerne geöffnet werden.,;
2015.10.15 20:48:06 4: MyTTS: 1 => Die Luftfeuchtigkeit beträgt 68 Prozent.,;
2015.10.15 20:48:06 4: MyTTS: 2 => Die Entscheidung ob gelüftet wird liegt bei dir.,;
2015.10.15 20:48:06 4: Verwende TTS Spracheinstellung: Deutsch
2015.10.15 20:48:06 4: Text2Speech:pico2wave --lang=Deutsch --wave="cache/47c17c870d370286c0eace8d62eae113.wav" "Im Bügel Zimmer darf das Fenster gerne geöffnet werden.,;"
Unknown language: Deutsch
Valid languages:
en-US
en-GB
de-DE
es-ES
fr-FR
it-IT
Usage: pico2wave <words>
-w, --wave=filename Write output to this WAV file
-l, --lang=lang Language (default: "en-US")
Help options:
-?, --help Show this help message
--usage Display brief usage message
2015.10.15 20:48:06 4: Text2Speech:lame "cache/47c17c870d370286c0eace8d62eae113.wav" "cache/47c17c870d370286c0eace8d62eae113.mp3"
Could not find "cache/47c17c870d370286c0eace8d62eae113.wav".
2015.10.15 20:48:06 4: Verwende TTS Spracheinstellung: Deutsch
2015.10.15 20:48:06 4: Text2Speech:pico2wave --lang=Deutsch --wave="cache/6def4cdfc9173d3e0b7c02c2b9ff460f.wav" "Die Luftfeuchtigkeit beträgt 68 Prozent.,;"
Unknown language: Deutsch
Valid languages:
en-US
en-GB
Zitat von: chunter1 am 15 Oktober 2015, 21:15:29
blöde frage...
was muss ich bei meiner Squeezebox jetzt beim "ttslink" eintragen?Code Auswählenttslink http://translate.google.com/translate_tts?ie=UTF-8&tl=<LANG>&q=<TEXT>&client=t&prev=input
muss sonst noch was angepasst werden?
Zitat von: xhabit am 17 Oktober 2015, 20:33:57Hat der Text Umlaute? Dann könnte es an der Sprach und Zeichensatz Einstellung liegen. Das wurde irgendwo, glaube weiter vorne, behandelt.
Allerdings erzählt mir die Liebe immer irgendwelche Zahlen und Raute bevor sie mit dem eigentlichen
Text anfängt.
Zitat von: mrbreil am 18 Oktober 2015, 10:13:06Ich glaube chunter1 ist hier im falschen Thread er braucht das modifizierte Modul für Squeezebox.
@chunter1
Da du ja hier so schön ignoriert wirst.
Dieses Modul funktioniert nicht mit der Squeezebox nur mit einer eingebauten Soundkarte.
Zitat von: boke am 18 Oktober 2015, 14:09:13
2015.10.18 14:06:52.848 4: Text2Speech:pico2wave --lang=de-DE --wave="cache/2dd28004386f7fd0e31d86803c4c820f.wav" "Test test test,;"
sh: 1: pico2wave: not found
Zitat von: xhabit am 17 Oktober 2015, 20:33:57
Allerdings erzählt mir die Liebe immer irgendwelche Zahlen und Raute bevor sie mit dem eigentlichen
Text anfängt. Auch mein eigentlicher "Bell Sound" vor jeder Ansage ist nicht zu hören.
Zitat von: Ellert am 19 Oktober 2015, 17:10:28
Sie spricht für meinen Geschmack etwas hektisch.
Gibt es Möglichkeiten die Sprechgeschwindigkeit einzustellen?
Zitat von: boke am 19 Oktober 2015, 22:19:42
Hallo,
ich denke ich habe Google wieder zum Laufen gebracht, bitte probiert es mal aus.
Hatte einen Hinweis im Internet gefunden und den mal eingebaut. Habe die Version vom Berrnd/master Branch genommen.
Vieleicht könnt ihr es ja einchecken, wenn es funktioniert.
Zitat von: berrnd am 19 Oktober 2015, 22:43:16Abwarten. Für kurze Zeit hat jede Änderung bei den meisten funktioniert.
...Super! "client=tw-ob" an die URL anzuhängen scheint wirklich zu helfen, ich hab eben testweise 15 Anfragen innerhalb von 1 Minute gestartet, alles einwandfrei, das hat so vorher nie funktioniert...
Zitat von: Hollo am 20 Oktober 2015, 13:15:13
Abwarten. Für kurze Zeit hat jede Änderung bei den meisten funktioniert.
Angeblich ist es völlig Wurscht, was hinter dem &client= steht (sowas ist ja auch schon seit Monaten drin); evtl. ist das &client=tw aber auch für Twitter und wird daher anders behandelt!?
Zitat von: boke am 19 Oktober 2015, 22:19:42
Hallo,
ich denke ich habe Google wieder zum Laufen gebracht, bitte probiert es mal aus.
ZitatHallo,
ich denke ich habe Google wieder zum Laufen gebracht, bitte probiert es mal aus.
Hatte einen Hinweis im Internet gefunden und den mal eingebaut. Habe die Version vom Berrnd/master Branch genommen.
Vieleicht könnt ihr es ja einchecken, wenn es funktioniert.
2015.10.29 12:00:57 4: VoiceRSS: Auflistung der Textbausteine nach Aufbereitung:
2015.10.29 12:00:57 4: VoiceRSS: 0 => Guten Morgen,;
2015.10.29 12:00:57 4: VoiceRSS: 1 => heute,;
2015.10.29 12:00:57 4: VoiceRSS: 2 => am neun
2015.10.29 12:00:57 4: VoiceRSS: 3 => undzwanzigsten zehnten 2015,;
2015.10.29 12:00:57 4: VoiceRSS: 4 => kurz das Wetter.,;
2015.10.29 12:00:57 4: VoiceRSS: 5 => Es ist teilweise wolkig,;
2015.10.29 12:00:57 4: VoiceRSS: 6 => mit Temperaturen zwischen 6
2015.10.29 12:00:57 4: VoiceRSS: 7 => und 13 Grad.,;
2015.10.29 12:00:57 4: VoiceRSS: 8 => Aktuell sind draußen 4komma5 Grad bei 99 Prozent Feuchte
2015.10.29 12:00:57 4: VoiceRSS: 9 => und 1015 millibar Luftdruck,;
2015.10.29 12:00:57 4: VoiceRSS: 10 => Tendenz steigend.,;
2015.10.29 12:00:57 4: Verwende TTS Spracheinstellung: Deutsch
2015.10.29 12:00:57 4: Text2Speech:pico2wave --lang=Deutsch --wave="cache/3b4fa8861de82fed0a417c487dc854fa.wav" "Guten Morgen,;"
Unknown language: Deutsch
Valid languages:
en-US
en-GB
de-DE
es-ES
fr-FR
it-IT
Usage: pico2wave <words>
-w, --wave=filename Write output to this WAV file
-l, --lang=lang Language (default: "en-US")
Help options:
-?, --help Show this help message
--usage Display brief usage message
2015.10.29 12:00:58 4: Text2Speech:lame "cache/3b4fa8861de82fed0a417c487dc854fa.wav" "cache/3b4fa8861de82fed0a417c487dc854fa.mp3"
Could not find "cache/3b4fa8861de82fed0a417c487dc854fa.wav".
2015.10.29 12:00:58 4: Verwende TTS Spracheinstellung: Deutsch
2015.10.29 12:00:58 4: Text2Speech:pico2wave --lang=Deutsch --wave="cache/f42a448e54b7f72431f5e8b0ee893ecb.wav" "heute,;"
Unknown language: Deutsch
Valid languages:
en-US
en-GB
de-DE
es-ES
fr-FR
it-IT
Usage: pico2wave <words>
-w, --wave=filename Write output to this WAV file
-l, --lang=lang Language (default: "en-US")
Help options:
-?, --help Show this help message
--usage Display brief usage message
Zitat von: Tobias am 29 Oktober 2015, 13:20:33
Version von Berrnd,
Ist das jetzt die korrekte Version?
Zitat von: Tobias am 29 Oktober 2015, 13:20:33Habe nur Google getestet (Cache vorher nochmals gelöscht) und es funktioniert wieder. Vielen Dank schon Mal fürs Einchecken!
Version von Berrnd,
Ist das jetzt die korrekte Version?
Zitat von: Hollo am 20 Oktober 2015, 13:15:13Ich habe ein paar Strings ausprobiert, um diese Möglichkeit abzuklären:
Abwarten. Für kurze Zeit hat jede Änderung bei den meisten funktioniert.
Angeblich ist es völlig Wurscht, was hinter dem &client= steht (sowas ist ja auch schon seit Monaten drin); evtl. ist das &client=tw aber auch für Twitter und wird daher anders behandelt!?
Zitat von: Ellert am 20 Oktober 2015, 13:36:31
Könnte man dann nicht eine Zufallszeichenkette einbauen? Dann wäre jeder Aufruf individuell.
DbLog_Push($defs{$DbLogDev}, "Current", TimeNow(), $hash->{NAME} ."|". $file, $hash->{TYPE}, $text, "Usage", $NewValue, "");
# DbLog_Push($defs{$DbLogDev}, "Current", TimeNow(), $hash->{NAME} ."|". $file, $hash->{TYPE}, $text, "Usage", $NewValue, "");
osmc@osmc:~$ sudo apt-get install bluez bluez-alsa mplayer
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'mplayer2' instead of 'mplayer'
Package bluez-alsa is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'bluez-alsa' has no installation candidate
ZitatThis may mean...available from another sourceGreift osmc auf alle Paketquellen von Raspian Jessie zurück? Wenn nein, dann probier doch mal die Paketquellen hinzuzufügen.
Zitat von: Ellert am 26 November 2015, 16:47:56
Kennst Du Google? Versuch mal "raspbian paketquellen hinzufügen".
define speakerbot Text2Speech pulse
2015.12.02 15:22:20 1: Timeout for Text2Speech_DoIt reached, terminated process 26476
2015.12.02 15:22:20 2: Text2Speech: BlockingCall for speakerbot was aborted
ZitatGreift osmc auf alle Paketquellen von Raspian Jessie zurück? Wenn nein, dann probier doch mal die Paketquellen hinzuzufügen.gar nicht erst geschrieben.
ZitatStep 6: Fix for automatic audio after rebootinterresant an.
Zitat von: Ellert am 02 Dezember 2015, 20:30:41
Ich selbst nutze kein BT, daher konnte ich nur Hilfe zur Selbsthilfe geben. Wenn ich gewusst hätte, das Debian Jessie kein bluez-alsa Paket enthält, hätte ich dies gar nicht erst geschrieben.
Zitat von: Ellert am 02 Dezember 2015, 20:30:41
Da ich aber noch ein BT-Dongle herumliegen habe, habe ich auch mal ein bisschen gesucht und bin auf das hier gestoßen: http://www.instructables.com/id/Enhance-your-Raspberry-Pi-media-center-with-Blueto/?ALLSTEPS (http://www.instructables.com/id/Enhance-your-Raspberry-Pi-media-center-with-Blueto/?ALLSTEPS) Da hört sich interresant an.
#!/bin/bash
sudo rfkill unblock all
{ echo connect "11:11:12:13:4A:25"; sleep 10; echo "info 11:11:12:13:4A:25"; echo "quit"; } | bluetoothctl
Zitat von: Ellert am 02 Dezember 2015, 20:30:41
Text2Speech nutzt den BlockingCall bei jedem Aufruf des Mplayer. Wenn der ganze Prozess, nicht nur die Ansage, länger als 60 Sekunden dauert, wird der Blockierende Aufruf abgebrochen. Zum Untersuchen des Verhaltens kannst Du das Attribut "verbose" auf 5 setzen, dann bekommst Du ein sehr umfangreiches Log.
Du kannst ebenfalls das Attribut "TTS_TimeOut" auf einen anderen Wert setzen, um dem Prozess mehr Zeit zugeben.
A: 1.1 (01.1) of 1.2 (01.1) 1718.7%
A: 0.6 (00.5) of 0.7 (00.6) 3014.8%
A: 1.1 (01.1) of 1.2 (01.1) 1718.8%
A: 0.6 (00.5) of 0.7 (00.6) 3014.8%
A: 1.1 (01.1) of 1.2 (01.1) 1718.8%
A: 0.6 (00.5) of 0.7 (00.6) 3014.9%
A: 0.6 (00.5) of 0.7 (00.6) 3014.9%
A: 1.1 (01.1) of 1.2 (01.1) 1718.8%
A: 1.1 (01.1) of 1.2 (01.1) 1718.8%
A: 0.6 (00.5) of 0.7 (00.6) 3014.9%
ZitatWas bedeuten die %-Werte?Da kann ich leider nicht weiter helfen.
mplayer -ao alsa:device=bluetooth http://1live-diggi.akacast.akamaistream.net/7/965/119435/v1/gnl.akacast.akamaistream.net/1live-diggi
ZitatAch ja in dem Zusammenhang, gibt es auch einen Befehl eine Sprachausgabe solange zu wiederholen bis mit einem weiteren Befehl diese Schleife abgebrochen wird?Das kannst Du mit einem DOIF lösen. http://fhem.de/commandref_DE.html#DOIF_repeatcmd (http://fhem.de/commandref_DE.html#DOIF_repeatcmd)
ZitatNur wie kann ich beim Alarm widerrufen die Ausgabe der Mp3 abbrechen? Hab im Wiki dazu keinen Befehl gefunden.Text2Speech stellt m.W. keinen Befehl zur Verfügung, um die Ausgabe explizit abzubrechen.
ZitatEvtl. geht es auch mit einem Befehl für den Mplayer. Habe aber auch hier kein Kommando über die suche finden können, obwohl dieser ja eigentlich laut Beschreibung komplett über die Kommandozeile bedient wird!?!Mit der Kommandozeile ist die Betriebssystemkonsole gemeint.
Zitat von: Dittel am 17 Dezember 2015, 14:08:52Mit dem aktuellsten Stand funktioniert Google eigentlich wieder zuverlässig.
Gibts es eigentlich inzwischen eine Endlösung für die Problematik Google Captcha? Hin und wieder werde ich noch geblockt, habe aber auch länger kein Update des Moduls gemacht. Woher weiss dieses überhaupt, was schon im Cache ist? Gibt's da einen Index dafür?
Zitat von: Ellert am 19 Dezember 2015, 10:33:35
Das kannst Du mit einem DOIF lösen. http://fhem.de/commandref_DE.html#DOIF_repeatcmd (http://fhem.de/commandref_DE.html#DOIF_repeatcmd)
Text2Speech stellt m.W. keinen Befehl zur Verfügung, um die Ausgabe explizit abzubrechen.
Nimm doch eine kurze mp3-Datei und wiederhole die Ausgabe, s.o.
Vielleicht klappt es, eine kurze Ansage hinterher zu schieben, um das Vorhergehende abzubrechen.
Zitataber habe es jetzt mit einem DOIF und dem Attribut repeatcmd hin bekommenkannst Du Deine Lösung mal kurz genauer beschreiben? Um den abgespielten MP3 Alarm abzubrechen, habe ich bisher immer den Raspberry durchstarten lassen, was zugegeben nicht die eleganteste Lösung ist ;-)
define alarm dummy
state:on,off
eintragen und in webCmd state
define di_alarm DOIF ([alarm] eq "on")(set MyTTS tts :alarm.mp3:)
set alarm on
zum auslösen und entsprechend set alarm off
zum Alarm abbrechen nutzen.
TTS_MplayerCall /usr/bin/mplayer
TTS_UseMP3Wrap 1
room Text2Speech
verbose 5
2015.12.25 12:09:45 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2015.12.25 12:09:45 4: MyTTS: 0 => Alarmanlage wird in 30 Sekunden aktiviert
2015.12.25 12:09:45 4: Verwende TTS Spracheinstellung: Deutsch
2015.12.25 12:09:45 4: Text2Speech: Bearbeite jetzt den Text: Alarmanlage wird in 30 Sekunden aktiviert
2015.12.25 12:09:45 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: e8c74049126e6d8adcf7e53c3c8dec09.mp3
2015.12.25 12:09:45 4: Text2Speech: cache/e8c74049126e6d8adcf7e53c3c8dec09.mp3 gefunden, kein Download
2015.12.25 12:09:45 4: Text2Speech_CalcMP3Duration: cache/e8c74049126e6d8adcf7e53c3c8dec09.mp3 hat eine Länge von 4 Sekunden.
2015.12.25 12:09:45 4: MyTTS: Text2Speech MyTTS playing: 1
2015.12.25 12:09:45 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols cache/e8c74049126e6d8adcf7e53c3c8dec09.mp3
Cannot find HOME directory.
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
Terminal type `unknown' is not defined.
Playing cache/e8c74049126e6d8adcf7e53c3c8dec09.mp3.
Detected file format: MP2/3 (MPEG audio layer 2/3) (libavformat)
[mp3 @ 0x75b64a38]Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: audio (mp3), -aid 0
Load subtitles in cache/
Selected audio codec: MPEG 1.0/2.0/2.5 layers I, II, III [mpg123]
AUDIO: 16000 Hz, 2 ch, s16le, 32.0 kbit/6.25% (ratio: 4000->64000)
AO: [alsa] 16000Hz 2ch s16le (2 bytes per sample)
[AO_ALSA] Unable to find simple control 'Master',0.
Video: no video
Starting playback...
A: 4.0 (04.0) of 4.0 (04.0) 0.5%
Exiting... (End of file)
root@raspberrypi2:/etc# mkhomedir_helper fhem
root@raspberrypi2:/etc# cd /home/
root@raspberrypi2:/home# ls
pi
-af scaletempo -speed 1.2
{system('mplayer -ao alsa:device=bluetooth /home/pi/NAS/Weckton.mp3')}
my $mplayerAudioOpts = '-ao alsa:device=bluetooth';
2016.01.15 17:15:20 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=bluetoothhw=0.0 -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 100 cache/3c4f47c016c723c4c6ba0d0716a69822.mp3
MPlayer svn r34540 (Raspbian), built with gcc-4.6 (C) 2000-2012 MPlayer Team
Playing cache/3c4f47c016c723c4c6ba0d0716a69822.mp3.
libavformat version 53.21.1 (external)
Mismatching header version 53.19.0
Audio only file format detected.
Load subtitles in cache/
==========================================================================
Requested audio codec family [mpg123] (afm=mpg123) not available.
Enable it at compilation.
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 53.35.0 (external)
Mismatching header version 53.32.2
AUDIO: 16000 Hz, 1 ch, floatle, 32.0 kbit/6.25% (ratio: 4000->64000)
Selected audio codec: [ffmp3float] afm: ffmpeg (FFmpeg MPEG layer-3 audio)
==========================================================================
[AO_ALSA] alsa-lib: pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM bluetoothhw:0,0
[AO_ALSA] Playback open error: No such file or directory
Failed to initialize audio driver 'alsa:device=bluetoothhw=0.0'
Could not open/initialize audio device -> no sound.
Audio: no sound
Video: no video
ZitatLocal Device
Die Ausgabe erfolgt auf angeschlossenen Audiodevices, zb. Lautsprecher direkt am Gerät oder per Bluetooth-Lautsprecher per Mplayer. Dazu ist Mplayer zu installieren.
apt-get install mplayer
Das angegebene Alsadevice ist in der /etc/asound.conf zu konfigurieren.
Special AlsaDevice: none
Ist als Alsa-Device none angegeben, so wird mplayer ohne eine Audiodevice Angabe aufgerufen. Dementsprechend verwendet mplayer das Standard Audio Ausgabedevice.
Beispiel:
define MyTTS Text2Speech hw=0.0
define MyTTS Text2Speech none
define MyTTS Text2Speech pcm.bluetooth #hw=0.0
attr MyTTS TTS_MplayerCall /usr/bin/mplayer
attr MyTTS TTS_UseMP3Wrap 1
attr MyTTS verbose 5
pcm.bluetooth {
type bluetooth
device AA:AA:AA:AA:AA:AA
profile "auto"
}
define Radiostream StreamRadio /opt/fhem/log/WebStreams.txt
attr Radiostream group Radio
attr Radiostream icon rc_RADIO
attr Radiostream room Wohnzimmer
attr Radiostream telnetport 7072
attr Radiostream volume_command amixer cset numid=2 -- %Volume%
attr Radiostream aodevice -ao alsa:device=bluetooth
attr Radiostream aodev -ao alsa:device=bluetooth
Zitat von: ChHerrm am 16 Januar 2016, 11:42:54Dir ist aber schon klar, dass (im Normalfall) nicht beides gleichzeitig geht !?
...
Edit: Okay jetzt gehts doch. Nicht nur FHEM sondern den ganzen Pi nochmal neu gestartet. Aber das Radio geht noch nicht. Wie kann ich das umstellen? :-\
Zeile 426 readingsSingleUpdate($hash, "playing", "1", 1); Zeile löschen
Zeile 427 readingsSingleUpdate($hash, "playing", "1", 1); dann nach Zeile 426 einfügen
Zitat2016.01.27 15:13:34 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2016.01.27 15:13:34 4: MyTTS: 0 => Hallo Welt!
2016.01.27 15:13:34 4: Verwende TTS Spracheinstellung: Deutsch
2016.01.27 15:13:34 4: Text2Speech: Bearbeite jetzt den Text: Hallo Welt!
2016.01.27 15:13:34 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: d8ec986b05f68a0d71bf7777a67cca5e.mp3
2016.01.27 15:13:34 4: Text2Speech: Verwende Google OnlineResource zum Download
2016.01.27 15:13:34 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&client=t&prev=input&q=Hallo%20Welt%21
2016.01.27 15:13:34 4: Text2Speech: Schreibe mp3 in die Datei cache/d8ec986b05f68a0d71bf7777a67cca5e.mp3 mit 0 Bytes
2016.01.27 15:13:34 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 610.
2016.01.27 15:13:34 4: Text2Speech:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols cache/d8ec986b05f68a0d71bf7777a67cca5e.mp3
MPlayer svn r34540 (Raspbian), built with gcc-4.6 (C) 2000-2012 MPlayer Team
Playing cache/d8ec986b05f68a0d71bf7777a67cca5e.mp3.
libavformat version 53.21.1 (external)
Mismatching header version 53.19.0
Exiting... (End of file)
ZitatText2Speech: Schreibe mp3 in die Datei cache/d8ec986b05f68a0d71bf7777a67cca5e.mp3 mit 0 Bytes
Zitat von: Ellert am 17 Januar 2016, 18:40:47
Ich möchte einen kleinen Schönheitfehler korrigieren.
Das Reading "playing" wird auch gesetzt, wenn Text2Speech als Remote definiert ist.
Im Remote-Betrieb hat "playing" keinen Sinn, da nur das entfernte Text2Speech die Ansage abspielt. Das lokale Text2Speech sendet nur den Befehl.
Änderung im Code:Code Auswählen
Zeile 426 readingsSingleUpdate($hash, "playing", "1", 1); Zeile löschen
Zeile 427 readingsSingleUpdate($hash, "playing", "1", 1); dann nach Zeile 426 einfügen
Mit der anliegenden Datei wird das Reading "playing" nur im "DIREKT" Modus bedient.
Grundlage der Änderung ist die Version: # $Id: 98_Text2Speech.pm 9758 2015-11-03 06:06:33Z tobiasfaust $
@Tobias: Würdest Du bitte die Änderung bei Gelegenheit übernehmen.
Ich möchte im "Master" FHEM natürlich sehen, welchen Zustand das TTS Device hat
Das kannst Du nicht, weil der Slave seinen Zustand nicht zurückmeldet. Wenn readingsSingleUpdate so bleibt, wie es ist, dann wird playing auf 1 gesetzt, wenn der Master zum Slave schreibt, playing wird aber nicht zurück gesetzt. Das ist mir erst vor Kurzem aufgefallen. Der Schreibvorgang zum Slave dauert ja nur einen Bruchteil einer Sekunde. Hier könnte man alternativ auch nach Zeile 431 Zeile 431 Text2Speech_Write($hash, "tts " . join(" ", @a));
ZitatreadingsSingleUpdate($hash, "playing", "0", 1);einfügen, dann würde playing auch zurückgesetzt.
Zitat von: Lobot am 27 Januar 2016, 15:19:02Hallo Martin,
Die Zeile
fällt mir dabei auf, die erstellte MP3 hat wohl 0 Byte.
Ich würde mich freuen, wenn jemand einen Rat für mich hat.
ZitatAb und zu schmiert irgendwas ab, so dass eine Textausgabe ausfällt, bei der nächsten dann "Arrayblabla" vor der eigentlichen Ansage gesagt wird
Zitat von: Ellert am 10 Februar 2016, 12:56:35
Wenn die Ansage zu lang ist schlägt das Standarttimeout von 60s zu, das führt zu dieser Arrayansage.
Setz mal das Attribut TTS_TimeOut höher.
Zitat von: Lobot am 28 Januar 2016, 12:53:12Hi Martin,
Mist, es lag tatsächlich am shutdown restart.... Wie konnte ich das denn vergessen..!? :o Sorry Leute, peinlich... ::)
Besten Dank für die Hilfe, läuft nun wie Butter :)
Gruß, Martin
ZitatHat jemand eine Idee wie ich das lösen kann?
Zitat von: PsychoD am 10 Februar 2016, 11:17:31
Text2speech funktioniert bei mir mittlerweile gut und meist zuverlässig, bis auf zwei Probleme:
- Ab und zu schmiert irgendwas ab, so dass eine Textausgabe ausfällt, bei der nächsten dann "Arrayblabla" vor der eigentlichen Ansage gesagt wird. Das könnte auch mit dem zweiten Problem zu tun haben
- Wenn ich nach einigen Tagen schaue per ssh in den TOP schaue, habe ich jede Menge mplayer-Zombieprozesse da liegen, die sich anscheinend alleine nicht mehr schließen.
Kennt jemand die Probleme oder hat eine Abhilfeidee?
Danke & Gruß
sub
say($) {
my ($text) = @_;
system( "sudo killall mplayer");
fhem("set speakerbot tts $text");
my ($duration) = ReadingsVal("speakerbot","duration", "30" );
$duration=$duration+5;
fhem("sleep $duration; {system('sudo killall mplayer')}");
}
Zitat von: Markus Hermann am 19 Februar 2016, 13:36:05Die Dateinamen sind nicht selbstredend, aber eindeutig sind sie schon.
Nun würde ich gerne die Text2Speech-MP3's aus /opt/cache streamen, aber leider haben die ja keinen eindeutigen Namen.
sudo -u fhem /usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols /opt/fhem/cache/f88c33ff270924bf967bc060d6972294_MP3WRAP.mp3 -volume 40
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%
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)
.....
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.
Zitat von: duu75 am 20 Mai 2016, 09:33:43Darauf wollte ich hinaus. ;)
Soll heißen es liegt an Googles TTS Engine bzw. Cache?
Weil den FHEM Cache habe ich ja bereits geleert.
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 #
set wstts tts :whistle:
set wstts tts :tos_intercom_whistle.mp3:
oderset wstts tts whistle
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
olymp:/opt/fhem/cache/templates # file tos_intercom_whistle.mp3
tos_intercom_whistle.mp3: Audio file with ID3 version 2.4.0
root 20723 0.5 0.3 125560 62872 ? S Aug05 24:16 /usr/bin/perl /opt/fhem/fhem.pl /root/bin/fhem/fhem.config
2016.08.07 14:51:36 4: wstts: Auflistung der Textbausteine nach Aufbereitung:
2016.08.07 14:51:36 4: wstts: 0 => "Anruf von " .
2016.08.07 14:51:36 4: wstts: 1 => <Name entfernt>
2016.08.07 14:51:36 4: Verwende TTS Spracheinstellung: Deutsch
2016.08.07 14:51:36 4: Text2Speech: Bearbeite jetzt den Text: "Anruf von " .
2016.08.07 14:51:36 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: f638ada5d8fdcc9a6a6a9d6d4bddb4b9.mp3
2016.08.07 14:51:36 4: Text2Speech: cache/f638ada5d8fdcc9a6a6a9d6d4bddb4b9.mp3 gefunden, kein Download
2016.08.07 14:51:36 4: Text2Speech_CalcMP3Duration: cache/f638ada5d8fdcc9a6a6a9d6d4bddb4b9.mp3 hat eine Länge von 1 Sekunden.
2016.08.07 14:51:36 4: Text2Speech:sudo /usr/bin/mplayer -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 100 -volume 40 cache/f638ada5d8fdcc9a6a6a9d6d4bddb4b9.mp3
2016.08.07 14:51:38 4: Verwende TTS Spracheinstellung: Deutsch
2016.08.07 14:51:38 4: Text2Speech: Bearbeite jetzt den Text: <Name entfernt>
2016.08.07 14:51:38 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 12c12134fc2a361356a7f3584c4085b9.mp3
2016.08.07 14:51:38 4: Text2Speech: Verwende Google OnlineResource zum Download
2016.08.07 14:51:38 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=Hubert%2C%20Wolfgang%20jun.
2016.08.07 14:51:39 4: Text2Speech: Schreibe mp3 in die Datei cache/12c12134fc2a361356a7f3584c4085b9.mp3 mit 10560 Bytes
2016.08.07 14:51:39 4: Text2Speech_CalcMP3Duration: cache/12c12134fc2a361356a7f3584c4085b9.mp3 hat eine Länge von 3 Sekunden.
2016.08.07 14:51:39 4: Text2Speech:sudo /usr/bin/mplayer -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 100 -volume 40 cache/12c12134fc2a361356a7f3584c4085b9.mp3
olymp:/opt/fhem/cache # ll
total 0
drwxr-xr-x 1 root root 474 Jul 3 2015 templates
attr wstts TTS_CacheFileDir /opt/fhem/cache
attr wstts TTS_FileTemplateDir /opt/fhem/cache/templates
Zitat von: td am 08 August 2016, 13:58:46
So, Ursache gefunden:
Seit dem letzten Update scheint text2speech die modpath-Variable zu ignorieren. Sie ist bei mir auf "/opt/fhem" eingerichtet und text2speech nutzte brav das dortige Unterverzeichnis "cache".
Nun aber nutzt text2speech "/root/bin/fhem/cache"; in "/root/bin/fhem" liegt meine fhem-Konfigurationsdatei.
MitCode Auswählen
attr wstts TTS_CacheFileDir /opt/fhem/cache
attr wstts TTS_FileTemplateDir /opt/fhem/cache/templates
sollte es nun funktionieren.
leider aktuell works-as-designed.
Für TTS ist der Rootpath das FHEM Rootpath und beachtet kkein Modpath. Sorry, benutze ich nicht und war mir dessen Existenz nicht bewusst.
Kannst du hier einen Patch bereitstellen? Ich denke an mehreren Stellen müsste die Variable im Modul beachtet werden.
Gruß,
td
Internals:
ALSADEVICE hw=0.0
DEF hw=0.0
MODE DIRECT
NAME TTSystem
NR 327
STATE Initialized
TYPE Text2Speech
VOLUME 100
Readings:
2016-08-20 00:56:26 duration 3
2016-08-20 00:56:26 endTime 00:00:00
2016-08-20 00:56:30 playing 0
2016-08-20 00:50:18 volume 100
Helper:
Text2Speech:
Attributes:
TTS_FileMapping alarm:alarm.mp3
TTS_FileTemplateDir /opt/fhem/cache
TTS_Language Deutsch
TTS_UseMP3Wrap 1
TTS_VolumeAdjust 5000
verbose 5
set TTSystem tts :alarm:
vorgelesen.sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -softvol -softvol-max 5000 -volume 100 cache/ca44f9d979184a19ce5d7dd2b2e7cfc9.mp3
-rwxrwxrwx 1 pi pi 88398 Aug 20 00:55 alarm.mp3
/opt/fhem/cache
/opt/fhem/cache/templates
set TTSystem tts :/opt/fhem/cache/alarm.mp3:
/opt/fhem/cache
/opt/fhem/cache/templates
/tmp
set TTSystem tts :/opt/fhem/cache/alarm.mp3:
sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols /opt/fhem/cache/alarm.mp3
sudo mkdir /opt/fhem/cache/templates
sudo chown fhem /opt/fhem/cache/templates
sudo chmod 777 /opt/fhem/cache/templates
gemacht und die mp3 da rein gespielt. Die muss auch nur lesbar sein, andere Berechtigung brauch die nicht.{system ('mplayer /opt/fhem/cache/templates/alarm.mp3')}
auf der Kommandozeile in FHEm eingibst?Zitat von: Otto123 am 21 August 2016, 14:43:26
Was ist wenn Du malCode Auswählen{system ('mplayer /opt/fhem/cache/templates/alarm.mp3')}
auf der Kommandozeile in FHEm eingibst?
set TTSystem tts :alarm.mp3:
Zitat von: Devender am 21 August 2016, 19:07:13Naja manchmal ist weniger eben doch mehr 8)
Jetzt klappt es :) mit meiner einzigen FHEM Instanz.
Ich habe die beiden Attribute FileMapping und TemplateDir eben gelöscht
Hab mir auch gerade für 10€ einen fast neuen JAY-Tech bei den kleinanzeigen ergattern können.
ZitatIch habe die beiden Attribute FileMapping und TemplateDir eben gelöscht
*20:00:00 set MyTTS tts :gong.mp3: Hier steht dann der Text.
Zitat von: Elbgeist am 21 August 2016, 19:21:27Hallo Thomas,
FileMapping schon. letzteres ist doch wichtig, dass die mp3's überhaupt erkannt werden oder deute ich das Wiki hier völlig falsch?
Ist diese Aufgabenstellung für einen RPi3 zu viel? Kann ich mir gar nicht vorstellen.
Die mp3's liegen übrigens alle in /opt/fhem/cache/templates neben einigen anderen - wohl von Google generierten - mp3-Dateien mit der langen Nummer als Name :) .
Den JAY-tech Mini Bass Cube SA101 betreffend - klappt es dann auch mit der Lautstärke besser? Denn es ist schon ein wenig leise, trotz Volume 100.
2016.08.22 11:29:45 4: Verwende TTS Spracheinstellung: Deutsch
2016.08.22 11:29:45 4: Text2Speech: Bearbeite jetzt den Text: Auf dem privaten Anrufbeantworter ist eine neue Nachricht
2016.08.22 11:29:45 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: c9cd46138c60421cf391c2adea28cb8a.mp3
2016.08.22 11:29:45 4: Text2Speech: Verwende Google OnlineResource zum Download
2016.08.22 11:29:45 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=Auf%20dem%20privaten%20Anrufbeantworter%20ist%20eine%20neue%20Nachricht
2016.08.22 11:29:45 4: Text2Speech: Schreibe mp3 in die Datei cache/c9cd46138c60421cf391c2adea28cb8a.mp3 mit 21024 Bytes
2016.08.22 11:29:45 4: Text2Speech_CalcMP3Duration: cache/c9cd46138c60421cf391c2adea28cb8a.mp3 hat eine Länge von 5 Sekunden.
2016.08.22 11:29:45 4: Text2Speech:/usr/bin/mplayer -really-quiet -nolirc -noconsolecontrols cache/c9cd46138c60421cf391c2adea28cb8a.mp3
Terminal type `unknown' is not defined.
set MyTTS tts Hallo :DingDong.mp3:
oderset MyTTS tts :DingDong.mp3: Hallo
geht beides:DingDong und der Text davor oder danach. Wie eigentlich erwartet.2016.08.22 12:03:38 4: MyTTS: Angabe einer direkten MP3-Datei gefunden: DingDong1.mp3 => FileTpl_1471860218_#0
2016.08.22 12:03:38 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2016.08.22 12:03:38 4: MyTTS: 0 => Hallo
2016.08.22 12:03:38 4: MyTTS: 1 => templates/DingDong1.mp3
2016.08.22 12:03:38 4: MyTTS: 2 => Das war der Text
2016.08.22 12:03:38 4: Verwende TTS Spracheinstellung: Deutsch
2016.08.22 12:03:38 4: Text2Speech: Bearbeite per MP3Wrap jetzt den Text: Hallo templates/DingDong1.mp3
2016.08.22 12:03:38 4: Text2Speech_CalcMP3Duration: cache/dd249b448b3c2b53953f8ce0580eacfe_MP3WRAP.mp3 hat eine Länge von 13 Sekunden.
2016.08.22 12:03:38 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 30 cache/dd249b448b3c2b53953f8ce0580eacfe_MP3WRAP.mp3
MPlayer svn r34540 (Raspbian), built with gcc-4.6 (C) 2000-2012 MPlayer Team
Playing cache/dd249b448b3c2b53953f8ce0580eacfe_MP3WRAP.mp3.
libavformat version 53.21.1 (external)
Mismatching header version 53.19.0
Audio only file format detected.
Load subtitles in cache/
==========================================================================
Requested audio codec family [mpg123] (afm=mpg123) not available.
Enable it at compilation.
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 53.35.0 (external)
Mismatching header version 53.32.2
AUDIO: 24000 Hz, 1 ch, floatle, 32.0 kbit/4.17% (ratio: 4000->96000)
Selected audio codec: [ffmp3float] afm: ffmpeg (FFmpeg MPEG layer-3 audio)
==========================================================================
[AO_ALSA] Format floatle is not supported by hardware, trying default.
AO: [alsa] 24000Hz 1ch s16le (2 bytes per sample)
[Mixer] No hardware mixing, inserting volume filter.
Video: no video
Starting playback...
A: 0.0 (00.0) of 12.0 (12.0) ??,?% [J
A: 0.0 (00.0) of 12.0 (12.0) 4.5% [J
A: 0.0 (00.0) of 12.0 (12.0) 4.5% [J
A: 0.1 (00.0) of 12.0 (12.0) 4.4% [J
A: 0.1 (00.0) of 12.0 (12.0) 4.3% [J
A: 0.1 (00.1) of 12.0 (12.0) 4.3% [J
A: 0.2 (00.1) of 12.0 (12.0) 4.2% [J
A: 0.2 (00.1) of 12.0 (12.0) 4.1% [J
AO: [alsa] 24000Hz 2ch s16le (2 bytes per sample)
A: 0.8 (00.8) of 12.0 (12.0) 4.5% [J
A: 0.5 (00.5) of 12.0 (12.0) 4.9% [J
A: 0.5 (00.5) of 12.0 (12.0) 4.7% [J
A: 0.5 (00.5) of 12.0 (12.0) 4.8% [J
A: 0.5 (00.5) of 12.0 (12.0) 4.8% [J
A: 0.6 (00.5) of 12.0 (12.0) 4.7% [J
A: 0.6 (00.5) of 12.0 (12.0) 4.8% [J
A: 0.6 (00.6) of 12.0 (12.0) 4.8% [J
A: 0.6 (00.6) of 12.0 (12.0) 4.8% [J
A: 0.6 (00.5) of 12.0 (12.0) 4.8% [J
A: 0.7 (00.6) of 12.0 (12.0) 4.8% [J
A: 0.7 (00.6) of 12.0 (12.0) 4.8% [J
A: 0.6 (00.6) of 12.0 (12.0) 4.9% [J
A: 0.7 (00.6) of 12.0 (12.0) 4.8% [J
A: 0.7 (00.6) of 12.0 (12.0) 4.9% [J
A: 0.7 (00.7) of 12.0 (12.0) 4.8% [J
A: 0.7 (00.7) of 12.0 (12.0) 4.8% [J
A: 0.7 (00.7) of 12.0 (12.0) 4.9% [J
A: 0.8 (00.7) of 12.0 (12.0) 4.8% [J
A: 0.8 (00.7) of 12.0 (12.0) 4.9% [J
A: 0.8 (00.7) of 12.0 (12.0) 4.9% [J
A: 0.8 (00.8) of 12.0 (12.0) 4.9% [J
A: 0.8 (00.8) of 12.0 (12.0) 4.9% [J
A: 0.9 (00.8) of 12.0 (12.0) 4.8% [J
A: 0.8 (00.8) of 12.0 (12.0) 4.9% [J
A: 0.9 (00.8) of 12.0 (12.0) 4.8% [J
A: 0.9 (00.8) of 12.0 (12.0) 4.8% [J
A: 0.9 (00.8) of 12.0 (12.0) 4.9% [J
A: 0.9 (00.9) of 12.0 (12.0) 4.8% [J
A: 0.9 (00.9) of 12.0 (12.0) 4.9% [J
A: 0.9 (00.9) of 12.0 (12.0) 4.9% [J
A: 1.0 (00.9) of 12.0 (12.0) 4.8% [J
A: 0.9 (00.9) of 12.0 (12.0) 4.9% [J
A: 1.0 (01.0) of 12.0 (12.0) 4.8% [J
A: 1.0 (00.9) of 12.0 (12.0) 4.9% [J
A: 1.0 (00.9) of 12.0 (12.0) 4.9% [J
A: 1.1 (01.0) of 12.0 (12.0) 4.8% [J
A: 1.0 (01.0) of 12.0 (12.0) 4.9% [J
A: 1.0 (01.0) of 12.0 (12.0) 4.9% [J
A: 1.1 (01.0) of 12.0 (12.0) 4.9% [J
A: 1.1 (01.0) of 12.0 (12.0) 4.9% [J
A: 1.1 (01.1) of 12.0 (12.0) 4.8% [J
A: 1.1 (01.1) of 12.0 (12.0) 4.9% [J
A: 1.1 (01.1) of 12.0 (12.0) 4.9% [J
A: 1.1 (01.1) of 12.0 (12.0) 4.8% [J
A: 1.1 (01.1) of 12.0 (12.0) 4.9% [J
A: 1.2 (01.1) of 12.0 (12.0) 4.8% [J
A: 1.2 (01.1) of 12.0 (12.0) 4.9% [J
A: 1.2 (01.1) of 12.0 (12.0) 4.9% [J
A: 1.2 (01.2) of 12.0 (12.0) 4.8% [J
A: 1.2 (01.2) of 12.0 (12.0) 4.9% [J
A: 1.3 (01.2) of 12.0 (12.0) 4.8% [J
A: 1.3 (01.2) of 12.0 (12.0) 4.9% [J
A: 1.3 (01.2) of 12.0 (12.0) 4.9% [J
A: 1.3 (01.3) of 12.0 (12.0) 4.8% [J
A: 1.3 (01.3) of 12.0 (12.0) 4.9% [J
A: 1.3 (01.2) of 12.0 (12.0) 4.9% [J
A: 1.3 (01.3) of 12.0 (12.0) 4.8% [J
A: 1.3 (01.3) of 12.0 (12.0) 4.9% [J
A: 1.4 (01.3) of 12.0 (12.0) 4.8% [J
A: 1.4 (01.3) of 12.0 (12.0) 4.8% [J
A: 1.4 (01.3) of 12.0 (12.0) 4.9% [J
A: 1.4 (01.4) of 12.0 (12.0) 4.8% [J
A: 1.4 (01.4) of 12.0 (12.0) 4.9% [J
A: 1.4 (01.4) of 12.0 (12.0) 4.9% [J
A: 1.4 (01.4) of 12.0 (12.0) 4.8% [J
A: 1.4 (01.4) of 12.0 (12.0) 4.9% [J
A: 1.5 (01.5) of 12.0 (12.0) 4.8% [J
A: 1.5 (01.4) of 12.0 (12.0) 4.9% [J
A: 1.5 (01.4) of 12.0 (12.0) 4.9% [J
A: 1.5 (01.5) of 12.0 (12.0) 4.9% [J
A: 1.5 (01.5) of 12.0 (12.0) 4.9% [J
A: 1.6 (01.5) of 12.0 (12.0) 4.9% [J
A: 1.6 (01.5) of 12.0 (12.0) 4.9% [J
A: 1.6 (01.5) of 12.0 (12.0) 4.9% [J
A: 1.6 (01.6) of 12.0 (12.0) 4.9% [J
A: 1.6 (01.6) of 12.0 (12.0) 4.9% [J
A: 1.6 (01.5) of 12.0 (12.0) 4.9% [J
A: 1.7 (01.6) of 12.0 (12.0) 4.9% [J
A: 1.6 (01.6) of 12.0 (12.0) 4.9% [J
A: 1.7 (01.7) of 12.0 (12.0) 4.9% [J
A: 1.7 (01.6) of 12.0 (12.0) 4.9% [J
A: 1.7 (01.6) of 12.0 (12.0) 4.9% [J
A: 1.7 (01.7) of 12.0 (12.0) 4.9% [J
A: 1.7 (01.7) of 12.0 (12.0) 4.9% [J
A: 1.7 (01.7) of 12.0 (12.0) 4.9% [J
A: 1.8 (01.7) of 12.0 (12.0) 4.9% [J
A: 1.7 (01.7) of 12.0 (12.0) 4.9% [J
A: 1.8 (01.8) of 12.0 (12.0) 4.9% [J
A: 1.8 (01.7) of 12.0 (12.0) 4.9% [J
A: 1.8 (01.8) of 12.0 (12.0) 4.9% [J
A: 1.8 (01.8) of 12.0 (12.0) 4.9% [J
A: 1.8 (01.8) of 12.0 (12.0) 4.9% [J
A: 1.9 (01.8) of 12.0 (12.0) 4.9% [J
A: 1.9 (01.8) of 12.0 (12.0) 4.9% [J
A: 1.9 (01.8) of 12.0 (12.0) 4.9% [J
A: 1.9 (01.9) of 12.0 (12.0) 4.9% [J
A: 1.9 (01.9) of 12.0 (12.0) 4.9% [J
A: 2.0 (01.9) of 12.0 (12.0) 4.9% [J
A: 2.0 (01.9) of 12.0 (12.0) 4.9% [J
A: 1.9 (01.9) of 12.0 (12.0) 4.9% [J
A: 2.0 (01.9) of 12.0 (12.0) 4.9% [J
A: 2.0 (01.9) of 12.0 (12.0) 4.9% [J
A: 2.0 (01.9) of 12.0 (12.0) 4.9% [J
A: 2.0 (02.0) of 12.0 (12.0) 4.9% [J
A: 2.1 (02.0) of 12.0 (12.0) 4.9% [J
A: 2.1 (02.0) of 12.0 (12.0) 4.9% [J
A: 2.1 (02.0) of 12.0 (12.0) 4.9% [J
A: 2.1 (02.1) of 12.0 (12.0) 4.9% [J
A: 2.1 (02.1) of 12.0 (12.0) 4.9% [J
A: 2.1 (02.0) of 12.0 (12.0) 4.9% [J
A: 2.2 (02.1) of 12.0 (12.0) 4.9% [J
A: 2.2 (02.1) of 12.0 (12.0) 4.9% [J
A: 2.1 (02.1) of 12.0 (12.0) 5.0% [J
A: 2.2 (02.1) of 12.0 (12.0) 4.9% [J
A: 2.2 (02.1) of 12.0 (12.0) 4.9% [J
A: 2.2 (02.2) of 12.0 (12.0) 4.9% [J
A: 2.2 (02.2) of 12.0 (12.0) 4.9% [J
A: 2.2 (02.2) of 12.0 (12.0) 5.0% [J
A: 2.3 (02.2) of 12.0 (12.0) 4.9% [J
A: 2.3 (02.2) of 12.0 (12.0) 5.0% [J
A: 2.2 (02.2) of 12.0 (12.0) 5.0% [J
A: 2.3 (02.3) of 12.0 (12.0) 4.9% [J
A: 2.3 (02.3) of 12.0 (12.0) 5.0% [J
A: 2.4 (02.3) of 12.0 (12.0) 5.0% [J
A: 2.4 (02.3) of 12.0 (12.0) 4.9% [J
A: 2.3 (02.3) of 12.0 (12.0) 5.0% [J
A: 2.4 (02.3) of 12.0 (12.0) 4.9% [J
A: 2.4 (02.3) of 12.0 (12.0) 5.0% [J
A: 2.4 (02.4) of 12.0 (12.0) 4.9% [J
A: 2.4 (02.4) of 12.0 (12.0) 4.9% [J
A: 2.4 (02.3) of 12.0 (12.0) 5.0% [J
A: 2.5 (02.4) of 12.0 (12.0) 4.9% [J
A: 2.4 (02.4) of 12.0 (12.0) 5.0% [J
A: 2.4 (02.4) of 12.0 (12.0) 5.0% [J
A: 2.5 (02.4) of 12.0 (12.0) 5.0% [J
A: 2.5 (02.4) of 12.0 (12.0) 5.0% [J
A: 2.5 (02.5) of 12.0 (12.0) 4.9% [J
A: 2.5 (02.5) of 12.0 (12.0) 5.0% [J
A: 2.5 (02.5) of 12.0 (12.0) 5.0% [J
A: 2.6 (02.5) of 12.0 (12.0) 5.0% [J
A: 2.6 (02.5) of 12.0 (12.0) 5.0% [J
A: 2.6 (02.5) of 12.0 (12.0) 5.0% [J
A: 2.6 (02.6) of 12.0 (12.0) 5.0% [J
A: 2.6 (02.6) of 12.0 (12.0) 5.0% [J
A: 2.6 (02.6) of 12.0 (12.0) 4.9% [J
A: 2.6 (02.6) of 12.0 (12.0) 5.0% [J
A: 2.7 (02.6) of 12.0 (12.0) 4.9% [J
A: 2.7 (02.6) of 12.0 (12.0) 5.0% [J
A: 2.7 (02.6) of 12.0 (12.0) 5.0% [J
A: 2.7 (02.7) of 12.0 (12.0) 5.0% [J
A: 2.7 (02.7) of 12.0 (12.0) 5.0% [J
A: 2.8 (02.7) of 12.0 (12.0) 4.9% [J
A: 2.8 (02.8) of 12.0 (12.0) 4.9% [J
A: 2.8 (02.8) of 12.0 (12.0) 4.9% [J
Exiting... (End of file)
2016.08.22 12:03:45 4: Verwende TTS Spracheinstellung: Deutsch
2016.08.22 12:03:45 4: Text2Speech: Bearbeite jetzt den Text: Das war der Text
2016.08.22 12:03:45 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 73a5e201068fc02d0ff82f23c6763a49.mp3
2016.08.22 12:03:45 4: Text2Speech: Verwende Google OnlineResource zum Download
2016.08.22 12:03:45 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=Das%20war%20der%20Text
2016.08.22 12:03:45 4: Text2Speech: Schreibe mp3 in die Datei cache/73a5e201068fc02d0ff82f23c6763a49.mp3 mit 6624 Bytes
2016.08.22 12:03:45 4: Text2Speech_CalcMP3Duration: cache/73a5e201068fc02d0ff82f23c6763a49.mp3 hat eine Länge von 2 Sekunden.
2016.08.22 12:03:45 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 30 cache/73a5e201068fc02d0ff82f23c6763a49.mp3
MPlayer svn r34540 (Raspbian), built with gcc-4.6 (C) 2000-2012 MPlayer Team
Playing cache/73a5e201068fc02d0ff82f23c6763a49.mp3.
libavformat version 53.21.1 (external)
Mismatching header version 53.19.0
Audio only file format detected.
Load subtitles in cache/
==========================================================================
Requested audio codec family [mpg123] (afm=mpg123) not available.
Enable it at compilation.
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 53.35.0 (external)
Mismatching header version 53.32.2
AUDIO: 24000 Hz, 1 ch, floatle, 32.0 kbit/4.17% (ratio: 4000->96000)
Selected audio codec: [ffmp3float] afm: ffmpeg (FFmpeg MPEG layer-3 audio)
==========================================================================
[AO_ALSA] Format floatle is not supported by hardware, trying default.
AO: [alsa] 24000Hz 1ch s16le (2 bytes per sample)
[Mixer] No hardware mixing, inserting volume filter.
Video: no video
Starting playback...
A: 0.0 (00.0) of 1.0 (01.0) ??,?% [J
A: 0.0 (00.0) of 1.0 (01.0) 2.5% [J
A: 0.0 (00.0) of 1.0 (01.0) 2.6% [J
A: 0.1 (00.0) of 1.0 (01.0) 2.6% [J
A: 0.1 (00.0) of 1.0 (01.0) 2.6% [J
A: 0.1 (00.1) of 1.0 (01.0) 2.7% [J
A: 0.2 (00.1) of 1.0 (01.0) 2.7% [J
A: 0.2 (00.1) of 1.0 (01.0) 2.7% [J
A: 0.2 (00.2) of 1.0 (01.0) 2.7% [J
A: 0.2 (00.2) of 1.0 (01.0) 2.7% [J
A: 0.3 (00.2) of 1.0 (01.0) 2.8% [J
A: 0.3 (00.3) of 1.0 (01.0) 2.8% [J
A: 0.3 (00.3) of 1.0 (01.0) 2.8% [J
A: 0.4 (00.3) of 1.0 (01.0) 2.8% [J
A: 0.4 (00.3) of 1.0 (01.0) 2.8% [J
A: 0.4 (00.4) of 1.0 (01.0) 2.7% [J
A: 0.5 (00.4) of 1.0 (01.0) 2.8% [J
A: 0.5 (00.4) of 1.0 (01.0) 2.8% [J
A: 0.5 (00.5) of 1.0 (01.0) 2.8% [J
A: 0.5 (00.5) of 1.0 (01.0) 2.8% [J
A: 0.6 (00.5) of 1.0 (01.0) 2.8% [J
A: 0.6 (00.6) of 1.0 (01.0) 2.8% [J
A: 0.6 (00.6) of 1.0 (01.0) 2.8% [J
A: 0.7 (00.6) of 1.0 (01.0) 2.8% [J
A: 0.7 (00.6) of 1.0 (01.0) 2.8% [J
A: 0.7 (00.7) of 1.0 (01.0) 2.8% [J
A: 0.8 (00.7) of 1.0 (01.0) 2.8% [J
A: 0.8 (00.7) of 1.0 (01.0) 2.8% [J
A: 0.8 (00.8) of 1.0 (01.0) 2.8% [J
A: 0.8 (00.8) of 1.0 (01.0) 2.8% [J
A: 0.9 (00.8) of 1.0 (01.0) 2.8% [J
A: 0.9 (00.9) of 1.0 (01.0) 2.8% [J
A: 0.9 (00.9) of 1.0 (01.0) 2.8% [J
A: 1.0 (00.9) of 1.0 (01.0) 2.8% [J
A: 1.0 (00.9) of 1.0 (01.0) 2.8% [J
A: 1.0 (01.0) of 1.0 (01.0) 2.9% [J
A: 1.1 (01.0) of 1.0 (01.0) 2.8% [J
A: 1.1 (01.0) of 1.0 (01.0) 2.8% [J
A: 1.1 (01.1) of 1.0 (01.0) 2.9% [J
A: 1.1 (01.1) of 1.0 (01.0) 2.8% [J
A: 1.2 (01.1) of 1.0 (01.0) 2.8% [J
A: 1.2 (01.1) of 1.0 (01.0) 2.8% [J
Exiting... (End of file)
attr MyTTS TTS_FileMapping gong:willi.mp3
deleteattr MyTTS TTS_FileMapping
erzeugt die Ausgabe file does not exist: <cache/templates/willi.mp3>
ZitatVerwende ich :gong.mp3: ertönt der Gong aber der Text wird wird ausgelassen.Das funktioniert bei mir aber nach wie vor. Auch bei definiertem FileMapping, der Gong ertönt und der Text folgt- allerdings mit überhöhter Geschwindigkeit "Mickimaus"
set MyTTS tts :gong.mp3: Hallo
2016.08.22 12:57:31 4: MyTTS: Angabe einer direkten MP3-Datei gefunden: gong.mp3 => FileTpl_1471863451_#0
2016.08.22 12:57:31 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2016.08.22 12:57:31 4: MyTTS: 0 => templates/gong.mp3
2016.08.22 12:57:31 4: MyTTS: 1 => Hallo
2016.08.22 12:57:31 4: Verwende TTS Spracheinstellung: Deutsch
2016.08.22 12:57:31 4: Text2Speech: Bearbeite per MP3Wrap jetzt den Text: templates/gong.mp3 Hallo
2016.08.22 12:57:31 4: Text2Speech_CalcMP3Duration: cache/d6dfa8e2ca9ebc02aa482e1407e86ffb_MP3WRAP.mp3 hat eine Länge von 4 Sekunden.
2016.08.22 12:57:31 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols cache/d6dfa8e2ca9ebc02aa482e1407e86ffb_MP3WRAP.mp3
set MyTTS tts Hallo :gong.mp3:
2016.08.22 13:03:38 2: Text2Speech: BlockingCall for MyTTS was aborted
2016.08.22 13:04:18 4: MyTTS: Angabe einer direkten MP3-Datei gefunden: => FileTpl_1471863858_#1
2016.08.22 13:04:18 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2016.08.22 13:04:18 4: MyTTS: 0 => ARRAY(0x2fea520)
2016.08.22 13:04:18 4: MyTTS: 1 => Hallo
2016.08.22 13:04:18 4: MyTTS: 2 => templates/gong.mp3
2016.08.22 13:04:18 4: Verwende TTS Spracheinstellung: Deutsch
2016.08.22 13:04:18 4: Text2Speech: Bearbeite per MP3Wrap jetzt den Text: ARRAY(0x2fea520) Hallo templates/gong.mp3
2016.08.22 13:04:18 4: Text2Speech: mp3wrap cache/e26f8ea7add3eff13b35fdff920f6002.mp3 cache/1814713ad3c1f9f3c7c525798dd95be4.mp3 cache/71ce4185214eb43202358604a63cdcab.mp3 cache/templates/gong.mp3 >/dev/null
2016.08.22 13:04:18 4: Text2Speech_CalcMP3Duration: cache/e26f8ea7add3eff13b35fdff920f6002_MP3WRAP.mp3 hat eine Länge von 27 Sekunden.
2016.08.22 13:04:18 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols cache/e26f8ea7add3eff13b35fdff920f6002_MP3WRAP.mp3
Terminal type `unknown' is not defined.
Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0 -[b]really-quiet -nolirc -noconsolecontrols[/b] cache/e26f8ea7add3eff13b35fdff920f6002_MP3WRAP.mp3
Text2Speech: BlockingCall for MyTTS was aborted
2016.08.24 08:45:00 5: exec at command at_Wetter_morgens
2016.08.24 08:45:00 5: redefine at command at_Wetter_morgens as *08:45:00 set T2S tts :gong.mp3: Die aktuellen Wetterdaten. {speakWetterDaten()}
2016.08.24 08:46:00 1: Timeout for Text2Speech_DoIt reached, terminated process 8945
2016.08.24 08:46:00 2: Text2Speech: BlockingCall for T2S was aborted
2016.08.26 09:06:25 4: T2S: 0 => ARRAY(0x26d26d0)
Zitat von: Elbgeist am 26 August 2016, 09:12:03
Noch ein Nachtrag der eventuell zur Fehlerbehebung beiträgt.
Es funktioniert nur, wenn ich mittels eines Cronjobs alle 30 Minuten die temporärer mp3-Dateien (von Goggle) löschen lasse.
Aber - immer wieder liest TTS einen Array vor und kümmert sich dann erst um die eigentlichen Texte.Code Auswählen2016.08.26 09:06:25 4: T2S: 0 => ARRAY(0x26d26d0)
Gruß
Thomas
2016.08.24 08:45:00 5: redefine at command at_Wetter_morgens as *08:45:00 set T2S tts :gong.mp3: Die aktuellen Wetterdaten. {speakWetterDaten()}
2016.08.24 08:46:00 1: Timeout for Text2Speech_DoIt reached, terminated process 8945
if (...) {
fhem("set MyTTS tts Guten Morgen.");
fhem("set MyTTS tts Es gibt Stau.");
fhem("set MyTTS tts Zeitverlust zirka $valDelay Minuten.");
}
Zitat von: Ellert am 01 September 2016, 17:55:40
Was spricht dagegen, alles mit einem set-Befehl auszuführen?
Zitat von: chunter1 am 01 September 2016, 17:00:17
Kurze Frage...
Wenn ich folgenden Code verwende, spricht er nur die erste und manchmal die letzte Zeile.
Was mach ich denn da falsch?
Muss ich zwischen den Zeilen eine Wartebedingung einfügen die prüft, ob der Player fertig ist?
Aber dadurch würde dann FHEM hängen?Code Auswählen
if (...) {
fhem("set MyTTS tts Guten Morgen.");
fhem("set MyTTS tts Es gibt Stau.");
fhem("set MyTTS tts Zeitverlust zirka $valDelay Minuten.");
}
fhem("sleep 5;;set tts Türöffnung bei Abwesenheit. Alarm ausgelöst.");;\
fhem("sleep 15;;set tts Türöffnung bei Abwesenheit. Alarm ausgelöst.");;\
Zitat von: chunter1 am 01 September 2016, 20:56:36
Wäre eine Lösung, wenn nicht weiter unten im Code dann wieder optionale Sprachausgaben folgen würden.
Zitat von: Ellert am 01 September 2016, 23:32:12Mach ich auch so. :)
Ich baue den Text vollständig zusammen und spiele ihn erst dann ab...
+*00:30:00 { system("rm /opt/fhem/cache/*.mp3") }
DEF ([?06:00 - 20:00] and [PIR1:"motion: on"]) ( set MyTTS volume 30, set MyTTS tts Es sind [SensorAussen:tempText] Grad)
NAME di_TemperaturAnsage
...
Attributes:
cmdpause 1800
do always
DEF ([PersonOtto] eq "present" and [PIR1:?motion]) (set MyTTS tts Hallo Otto)
Terminal type `unknown' is not defined.
ZitatLocal Device
Die Ausgabe erfolgt auf angeschlossenen Audiodevices, zb. Lautsprecher direkt am Gerät oder per Bluetooth-Lautsprecher per Mplayer. Dazu ist Mplayer zu installieren.
apt-get install mplayer
Das angegebene Alsadevice ist in der /etc/asound.conf zu konfigurieren.
set playerName talk Text
ausgeben.Zitat von: derNeue am 20 November 2016, 10:19:47Die Zusatzfrage ist: Wo dran? Was ist ein "normaler" PC Lautsprecher - aktiv oder passiv?
Danke für die Info......das Modul ist echt gut, aber die Pflege nicht....ich habe im moment einen normalen PC lautsprecher dran....es ist aber sehr leise....wie bekomme ich die sprachausgabe etwas lauter ???
speaker-test -t sine -f 440 -c 2 -s 1
bzw. in der FHEM Kommandozeile"speaker-test -t sine -f 440 -c 2 -s 1"
Zitat von: Dittel am 21 Dezember 2016, 19:58:44Hi,
Kann mal bitte jemand "40 Sekunden" per TTS ausgeben lassen? Bei mir werden bei allen Wörtern die mit "zig" enden, beim darauf folgenden Wort Sekunden nur ein "S" ausgegeben? :o
2017.01.09 15:01:37 4: TTS_Wohnzimmer: Auflistung der Textbausteine nach Aufbereitung:
2017.01.09 15:01:37 4: TTS_Wohnzimmer: 0 => test
2017.01.09 15:01:37 4: Verwende TTS Spracheinstellung: Deutsch
2017.01.09 15:01:37 4: Text2Speech: Bearbeite jetzt den Text: test
2017.01.09 15:01:37 4: Text2Speech: test als direkte MP3 Datei erkannt!
2017.01.09 15:01:37 4: Text2Speech: test gefunden, kein Download
2017.01.09 15:01:37 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 641.
2017.01.09 15:01:37 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=2.0
-nolirc -noconsolecontrols test
Cannot find HOME directory.
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
Usage: mplayer [options] [url|path/]filename
Basic options: (complete list in the man page)
-vo <drv> select video output driver ('-vo help' for a list)
-ao <drv> select audio output driver ('-ao help' for a list)
vcd://<trackno> play (S)VCD (Super Video CD) track (raw device, no mount)
dvd://<titleno> play DVD title from device instead of plain file
-alang/-slang select DVD audio/subtitle language (by 2-char country code)
-ss <position> seek to given (seconds or hh:mm:ss) position
-nosound do not play sound
-fs fullscreen playback (or -vm, -zoom, details in the man page)
-x <x> -y <y> set display resolution (for use with -vm or -zoom)
-sub <file> specify subtitle file to use (also see -subfps, -subdelay)
-playlist <file> specify playlist file
-vid x -aid y select video (x) and audio (y) stream to play
-fps x -srate y change video (x fps) and audio (y Hz) rate
-pp <quality> enable postprocessing filter (details in the man page)
-framedrop enable frame dropping (for slow machines)
Basic keys: (complete list in the man page, also check input.conf)
<- or -> seek backward/forward 10 seconds
down or up seek backward/forward 1 minute
pgdown or pgup seek backward/forward 10 minutes
< or > step backward/forward in playlist
p or SPACE pause movie (press any key to continue)
q or ESC stop playing and quit program
+ or - adjust audio delay by +/- 0.1 second
o cycle OSD mode: none / seekbar / seekbar + timer
* or / increase or decrease PCM volume
x or z adjust subtitle delay by +/- 0.1 second
r or t adjust subtitle position up/down, also see -vf expand
double click toggle fullscreen
right click pause (press again to continue)
* * * SEE THE MAN PAGE FOR DETAILS, FURTHER (ADVANCED) OPTIONS AND KEYS * * *
sh: 2: -nolirc: not found
Internals:
ALSADEVICE hw=2.0
DEF hw=2.0
MODE DIRECT
NAME TTS_Wohnzimmer
NR 162
STATE Initialized
TYPE Text2Speech
Readings:
2017-01-09 15:02:34 duration
2017-01-09 15:02:34 endTime 00:00:00
2017-01-09 15:02:34 playing 0
2017-01-08 20:40:10 volume 100
Helper:
Text2Speech:
Attributes:
TTS_Language Deutsch
TTS_MplayerCall /usr/bin/mplayer
TTS_Ressource Google
TTS_UseMP3Wrap 1
verbose 5
Zitat von: Otto123 am 09 Januar 2017, 16:54:17
Hallo,
fhem in Gruppe audio?
Gruß Otto
id fhem
uid=999(fhem) gid=20(dialout) Gruppen=20(dialout),29(audio),998(i2c),997(gpio),120(pulse-access)
ZitatPERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 641.Der mplayer sieht aus als startet er und weiß nicht was er machen soll.
Zitat von: Otto123 am 09 Januar 2017, 17:45:09
ok gerade gesehen, dein Modul hat ein Problem:Der mplayer sieht aus als startet er und weiß nicht was er machen soll.
Kannst Du die mp3 abspielen? Also ist die erzeugte / gefundene Datei intakt?
Gruß Otto
/usr/bin/mplayer -ao alsa:device=hw=2.0 -nolirc -noconsolecontrols 507bf3947094663bd3800f4a75f6bfe9.mp3
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
Playing 507bf3947094663bd3800f4a75f6bfe9.mp3.
Detected file format: MP2/3 (MPEG audio layer 2/3) (libavformat)
[mp3 @ 0x75c145b8]Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: audio (mp3), -aid 0
Load subtitles in .
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] alsa-lib: pcm_hw.c:1557:(snd_pcm_hw_open) open '/dev/snd/pcmC2D0p' failed (-16): Device or resource busy
[AO_ALSA] Playback open error: Device or resource busy
Failed to initialize audio driver 'alsa:device=hw=2.0'
Could not open/initialize audio device -> no sound.
Audio: no sound
Video: no video
Exiting... (End of file)
ZitatFailed to initialize audio driver 'alsa:device=hw=2.0'Du verwendest eine Soundkarte?
Could not open/initialize audio device -> no sound.
ZitatThe given alsadevice has to be configured in /etc/asound.conf
pi@raspberrypi:/opt/fhem/cache $ mplayer -ao alsa:device=hw=2.0 24297495b7b784402bcd06f751a7e832.mp3
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
Playing 24297495b7b784402bcd06f751a7e832.mp3.
Detected file format: MP2/3 (MPEG audio layer 2/3) (libavformat)
[mp3 @ 0x75b9b5b8]Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: audio (mp3), -aid 0
Load subtitles in .
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] 48000Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A: 1.2 (01.2) of 1.2 (01.2) 2.4%
Exiting... (End of file)
2017.01.13 12:58:52 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=2.0
-nolirc -noconsolecontrols cache/24297495b7b784402bcd06f751a7e832.mp3
[b]Cannot find HOME directory.[/b]
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
Usage: mplayer [options] [url|path/]filename
Basic options: (complete list in the man page)
-vo <drv> select video output driver ('-vo help' for a list)
...
2017.01.13 14:11:29 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 30 cache/15f3ee2c2bd4e05acae32c787e103a17.mp3
Cannot find HOME directory.
define TTS_Wohnzimmer Text2Speech hw=2.0\
attr TTS_Wohnzimmer TTS_Language Deutsch
attr TTS_Wohnzimmer TTS_Ressource Google
attr TTS_Wohnzimmer TTS_UseMP3Wrap 1
attr TTS_Wohnzimmer verbose 5
2017.01.13 14:42:59 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 641.
2017.01.13 14:43:33 4: TTS_Wohnzimmer: Auflistung der Textbausteine nach Aufbereitung:
2017.01.13 14:43:33 4: TTS_Wohnzimmer: 0 => ARRAY(0x23ea178)
2017.01.13 14:43:33 4: TTS_Wohnzimmer: 1 => Hallo Test
Internals:
ALSADEVICE hw=0.0
DEF hw=0.0
MODE DIRECT
NAME MyTTS
NR 25
STATE Initialized
TYPE Text2Speech
VOLUME 30
Readings:
2017-01-13 16:01:43 duration 2
2017-01-13 16:01:43 endTime 00:00:00
2017-01-13 16:01:47 playing 0
2017-01-13 16:01:41 volume 30
Helper:
Text2Speech:
Attributes:
TTS_MplayerCall /usr/bin/mplayer
TTS_UseMP3Wrap 1
verbose 5
Zitat von: Wzut am 03 März 2017, 13:06:47Hat bei mir auch ziemlich viel Kopfzerbrechen verursacht und ein paar Tassen Kaffee gekostet... Hoffe es klappt auf Anhieb...
Donnerwetter, das ging ja schnell :) Big THX, da werden dir mit Sicherheit ein paar SIP User um den Hals fallen 8)
Zitatund mittels Modulnotify Funktion auf das Reading reagierendas wird der nächste Schritt :)
Zitat von: Tobias am 09 März 2017, 09:32:01
setz mal bitte das Attribut TTS_speakAsFastAsPossible auf 1, dann verhält sich wieder alles wie vorher. Hilft das??
An der internen VErarbeitung habe ich nämlich nix geändert...
alt: if($dev =~ m/^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*/ ) {
neu: if($dev =~ m/^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*/ || $dev =~ m/[^:]+:[0-9]+/) {
alt: $conn = IO::Socket::SSL->new(PeerAddr => "$dev") if(!$@);
neu: $conn = IO::Socket::SSL->new(PeerAddr => "$dev", MultiHomed => 1) if(!$@);
alt: $conn = IO::Socket::INET->new(PeerAddr => $dev);
neu: $conn = IO::Socket::INET->new(PeerAddr => $dev, MultiHomed => 1);
alt: $cmd = $TTS_MplayerCall . " " . $mplayerAudioOpts . $AlsaDevice . " " .$NoDebug. " " . $mplayerOpts . " " . $file;
neu: $cmd = "play -q " . $file;
Zitat von: Tobias am 09 März 2017, 14:25:14
probier bitte erstemal das Attribut TTS_speakAsFastAsPossible
Das mit der Mickeymausstimme kann ich hier leider nicht nachvollziehen, es scheint nur sporatisch bei einigen Usern aufzutreten. Hier im Thread gab es schon dikussionen dazu...
Zitat
sub Text2Speech_BuildMplayerCmdString($$) {
...
my $AlsaDevice = $hash->{ALSADEVICE};
if($AlsaDevice eq "none") {
$AlsaDevice = "";
$mplayerAudioOpts = "";
$mplayerNoDebug = "";
$mplayerOpts = "";
}
...
Zitat
Und wenn Du Zeile 547 so ändern könntest (vielleicht über zusätzliches Reading), dass man auch ein komplett anderes Programm zur Wiedergabe starten kann. Ich nutze z.B. play, welches viel schneller als mplayer startet und die gleiche Funktion bietet.
define MYTTS Text2Speech none
attr MYTTS TTS_UseMP3Wrap 1
attr MYTTS TTS_MplayerCall sudo /usr/bin/mpg123 -q
attr MYTTS verbose 4
Zitat von: fhemhurz am 11 März 2017, 14:50:25
Hallo zusammen,
ich setze dieses Modul schon lange ein und bin damit sehr zufrieden. Nun hätte ich eine Bitte bzw. Anregung für einen kleinen "Fix", der zumindest mir das (FHEM-)Leben erleichtern würde ;)
Ich verwende kein Alsa-Device sondern mpg123 für die mp3-Ausgabe. Dazu dürfen natürlich keine Alsa-spezifischen Parameter beim Aufruf von mpg123 übergeben werden, was aber in der Funktion Text2Speech_BuildMplayerCmdString so geschieht.
Als Fix müssen in dieser Funktion im Falle eines Nicht-Alsa-Devices "nur 2 Zeilen" eingefügt werden:
$mplayerNoDebug und $mplayerOpts werden bei der Initialisierung am Modul-Anfang immer mit Alsa-spezifischen Werten vorbelegt und müssen hier nur zurückgesetzt werden.
Ich hatte das schon mal hier: https://forum.fhem.de/index.php/topic,18481.msg311903/topicseen.html#msg311903 (https://forum.fhem.de/index.php/topic,18481.msg311903/topicseen.html#msg311903) beschrieben, was aber wohl irgendwie untergegangen war.
Da ich nach jedem Update des Moduls manuell die 2 Zeilen in den Source-Code einfügen muss, dies aber meistens vergesse und dann der Raspi schweigt, wäre es echt toll, wenn die Änderung aufgenommen werden könnte.
EDIT: Ich glaube diese Änderung wäre auch die Lösung für Rogers https://forum.fhem.de/index.php/topic,18481.msg602425.html#msg602425 (https://forum.fhem.de/index.php/topic,18481.msg602425.html#msg602425) letzten Änderungswunsch:
2017.03.19 17:49:54 4: TTS_BadOG: Auflistung der Textbausteine nach Aufbereitung:
2017.03.19 17:49:54 4: TTS_BadOG: 0 => Test Hallo
2017.03.19 17:49:54 4: Verwende TTS Spracheinstellung: Deutsch
2017.03.19 17:49:54 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: e73c942070af13045c7ee77855c224a3.mp3
2017.03.19 17:49:54 4: Text2Speech: Verwende Google OnlineResource zum Download
2017.03.19 17:49:54 4: Text2Speech: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=Test%20Hallo
2017.03.19 17:49:55 4: Text2Speech: Schreibe mp3 in die Datei cache/e73c942070af13045c7ee77855c224a3.mp3 mit 4320 Bytes
2017.03.19 17:49:55 4: Text2Speech: Bearbeite jetzt den Text: Test Hallo
2017.03.19 17:49:55 4: Text2Speech: cache/e73c942070af13045c7ee77855c224a3.mp3 gefunden, kein Download
2017.03.19 17:49:55 4: Text2Speech_CalcMP3Duration: cache/e73c942070af13045c7ee77855c224a3.mp3 hat eine Länge von 1 Sekunden.
2017.03.19 17:49:55 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols cache/e73c942070af13045c7ee77855c224a3.mp3
Cannot find HOME directory.
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
Terminal type `unknown' is not defined.
Playing cache/e73c942070af13045c7ee77855c224a3.mp3.
Detected file format: MP2/3 (MPEG audio layer 2/3) (libavformat)
[mp3 @ 0x75bbc5b8]Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: audio (mp3), -aid 0
Load subtitles in 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] 22050Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A: 0.0 (00.0) of 1.1 (01.0) ??,?%
A: 0.3 (00.2) of 1.1 (01.0) 1.2%
A: 0.5 (00.4) of 1.1 (01.0) 1.1%
A: 0.7 (00.7) of 1.1 (01.0) 1.1%
A: 0.7 (00.7) of 1.1 (01.0) 1.1%
A: 0.8 (00.7) of 1.1 (01.0) 1.1%
A: 0.8 (00.7) of 1.1 (01.0) 1.1%
A: 0.8 (00.7) of 1.1 (01.0) 1.1%
A: 0.8 (00.8) of 1.1 (01.0) 1.1%
A: 0.8 (00.8) of 1.1 (01.0) 1.1%
A: 0.9 (00.8) of 1.1 (01.0) 1.1%
A: 0.9 (00.8) of 1.1 (01.0) 1.1%
A: 0.9 (00.8) of 1.1 (01.0) 1.1%
A: 0.9 (00.9) of 1.1 (01.0) 1.1%
A: 0.9 (00.9) of 1.1 (01.0) 1.1%
A: 1.0 (00.9) of 1.1 (01.0) 1.1%
A: 1.0 (00.9) of 1.1 (01.0) 1.1%
A: 1.0 (00.9) of 1.1 (01.0) 1.1%
A: 1.0 (01.0) of 1.1 (01.0) 1.1%
A: 1.0 (01.0) of 1.1 (01.0) 1.1%
Exiting... (End of file)
Internals:
ALSADEVICE hw=0.0
DEF hw=0.0
MODE DIRECT
NAME TTS_BadOG
NR 20
STATE Initialized
TYPE Text2Speech
Readings:
2017-03-19 17:49:55 duration 1
2017-03-19 17:49:55 endTime 00:00:00
2017-03-19 17:49:56 lastFilename cache/e73c942070af13045c7ee77855c224a3.mp3
2017-03-19 17:49:56 playing 0
2017-03-19 15:19:38 volume 100
Helper:
Text2Speech:
Attributes:
TTS_MplayerCall /usr/bin/mplayer
TTS_UseMP3Wrap 1
room Text2Speech
verbose 5
Zitat von: martin2day am 19 März 2017, 17:56:25Hallo Martin,
Die Lautsprecher gehen zwar an, aber ich höre keine Sprache. Wie kann das sein?
"speaker-test -t sine -f 440 -c 2 -s 1"
in der FHEM Kommandozeile an dem System wo die Lautsprecher angeschlossen sind?pi@Bad_OG:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_amp], device 0: HifiBerry AMP HiFi tas5713-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
pi@Bad_OG:~ $ amixer
Simple mixer control 'Master',0
Capabilities: volume volume-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 248
Mono: 112 [45%]
Simple mixer control 'Channels',0
Capabilities: volume
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 248
Front Left: 218 [88%]
Front Right: 218 [88%]
Zitat von: martin2day am 19 März 2017, 19:00:31d.h. der MPD und Text2Speech benutzen das gleiche Alsa Device zur gleichen Zeit ?
und auch über MPD bereist den Raspberry nutze, gehe ich davon aus das hier auch die richtige Soundausgabe eingestellt ist.
/usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols cache/e73c942070af13045c7ee77855c224a3.mp3
"/usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols <irgendeine mp3 datei>"
aus der FHEM Kommandozeile?pi@Bad_OG:~ $ /usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols cache/e73c942070af13045c7ee77855c224a3.mp3
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
Cannot open file '/home/pi/.mplayer/input.conf': No such file or directory
Failed to open /home/pi/.mplayer/input.conf.
Cannot open file '/etc/mplayer/input.conf': No such file or directory
Failed to open /etc/mplayer/input.conf.
Playing cache/e73c942070af13045c7ee77855c224a3.mp3.
Cannot open file 'cache/e73c942070af13045c7ee77855c224a3.mp3': No such file or directory
Failed to open cache/e73c942070af13045c7ee77855c224a3.mp3.
Exiting... (End of file)
/usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols /opt/fhem/cache/1a736ed3824cafda02d407ef65c0af26.mp3
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
Cannot open file '/home/pi/.mplayer/input.conf': No such file or directory
Failed to open /home/pi/.mplayer/input.conf.
Cannot open file '/etc/mplayer/input.conf': No such file or directory
Failed to open /etc/mplayer/input.conf.
Playing /opt/fhem/cache/1a736ed3824cafda02d407ef65c0af26.mp3.
Detected file format: MP2/3 (MPEG audio layer 2/3) (libavformat)
[mp3 @ 0x75bd85b8]Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: audio (mp3), -aid 0
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] 22050Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A: 1.3 (01.2) of 1.3 (01.3) 1.1%
Exiting... (End of file)
mplayer /opt/fhem/cache/1a736ed3824cafda02d407ef65c0af26.mp3
mplayer /opt/fhem/cache/1a736ed3824cafda02d407ef65c0af26.mp3
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
Cannot open file '/home/pi/.mplayer/input.conf': No such file or directory
Failed to open /home/pi/.mplayer/input.conf.
Cannot open file '/etc/mplayer/input.conf': No such file or directory
Failed to open /etc/mplayer/input.conf.
Playing /opt/fhem/cache/1a736ed3824cafda02d407ef65c0af26.mp3.
Detected file format: MP2/3 (MPEG audio layer 2/3) (libavformat)
[mp3 @ 0x75bb65b8]Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: audio (mp3), -aid 0
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: [pulse] Init failed: Connection refused
AO: [alsa] 22050Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A: 1.3 (01.2) of 1.3 (01.3) 1.1%
Exiting... (End of file)
aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_amp], device 0: HifiBerry AMP HiFi tas5713-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
sudo apt-get install sox libsox-fmt-all
pi@Bad_OG:~ $ play /opt/fhem/cache/1a736ed3824cafda02d407ef65c0af26.mp3
play FAIL formats: can't open output file `default': snd_pcm_hw_params error: Invalid argument
/usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols /opt/fhem/cache/e73c942070af13045c7ee77855c224a3.mp3
/usr/bin/mplayer -ao alsa:device=hw=1.0 -nolirc -noconsolecontrols /opt/fhem/cache/e73c942070af13045c7ee77855c224a3.mp3
Zitat von: Wzut am 05 März 2017, 19:58:36
Ich habe das jetzt so im SIP Modul eingebunden :
1. ich überschreibe lastFilename mit ---
2. rufe tts mit Text auf
3. warte das lastFilename einen Wert ungleich --- hat (Abbruch nach vom User definierter Zeit)
4. wandle mit sox das mp3 File in ein raw audio
5. starte den Anruf und spiele das File ab.
Zitat von: Dittel am 14 April 2017, 10:57:55https://forum.fhem.de/index.php/topic,18481.msg602741.html#msg602741
Hat jemand eine Idee, warum bei mir die erzeugten Dateien, wenn sie aus mehreren als Wraps zusammengesetzt sind, manchmal zu langsam und manchmal zu schnell wiedergegeben werden? Die Stimmen klingen dadurch verzerrt. Ich habe die Dateien mal mit dem VLC Player wiedergegeben. Dort werden sie korrekt abgespielt. Der Mediaplayer spielt sie aber auch verzerrt ab, zumindest immer nur den zweiten zusammengesetzen Teil... Sehr merkwürdig.
Update: mit deaktiviertem MP3Wrap scheint es zu funktionieren.
2017.04.14 23:23:47 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2017.04.14 23:23:47 4: MyTTS: 0 => Hallo
2017.04.14 23:23:47 4: Verwende TTS Spracheinstellung: Deutsch
2017.04.14 23:23:47 4: Text2Speech: Bearbeite jetzt den Text: Hallo
2017.04.14 23:23:47 4: Text2Speech: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 71ce4185214eb43202358604a63cdcab.mp3
2017.04.14 23:23:47 4: Text2Speech: cache/71ce4185214eb43202358604a63cdcab.mp3 gefunden, kein Download
2017.04.14 23:23:47 4: Text2Speech_CalcMP3Duration: cache/71ce4185214eb43202358604a63cdcab.mp3 hat eine Länge von 1 Sekunden.
2017.04.14 23:23:47 4: Text2Speech:sudo /usr/bin/mplayer -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 100 cache/71ce4185214eb43202358604a63cdcab.mp3
attr SensorAussen userReadings tempText { my $val = (ReadingsVal("$name","temperature","Fehler"));; $val =~ s/\./ komma /;; return $val;;}
ZitatTTS_CacheFileDir
Optional: Die per Google geladenen Sprachbausteine werden in diesem Verzeichnis zur Wiedeverwendung abgelegt. Es findet zurZEit keine automatisierte Löschung statt.
Default: cache/
Zitat von: Tueftler1983 am 19 Juni 2017, 07:03:41Entweder wertest Du den Dateinamen aus, der da über Event/Log abgreifbar sein sollte, oder Du guckst nach der Datei mit dem neusten timestamp.
Ja habe ich gefunden jetzt stehe ich vor dem Problem das ich nicht weiß wie ich fhem in dem Befehl sagen soll das es immer das zuletzt generierte File an den GartenMedia zum abspielen soll.
Zitat von: Tueftler1983 am 19 Juni 2017, 07:03:41Ich habe Dir doch den Link weiter oben gegeben. Text2Speech gibt doch die richtige Datei aus, mit meinem Script hast Du doch genau diese, Du brauchst sie oder die Info darüber doch bloß weiterzuleiten.
Ja habe ich gefunden jetzt stehe ich vor dem Problem das ich nicht weiß wie ich fhem in dem Befehl sagen soll das es immer das zuletzt generierte File an den GartenMedia zum abspielen soll.
● pulseaudio.service - PulseAudio Sound System
Loaded: loaded (/etc/systemd/system/pulseaudio.service; enabled)
Active: active (running) since Mo 2017-06-26 12:11:00 CEST; 8min ago
Main PID: 424 (pulseaudio)
CGroup: /system.slice/pulseaudio.service
└─424 /usr/bin/pulseaudio
Jun 26 12:11:00 raspib2W pulseaudio[424]: N: [pulseaudio] main.c: System-Modus aktiv, Exit-Idle-Time gezwungenermaßen deaktiviert!
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] main.c: OK, nun wird PA im System Mode betrieben. Vorsicht, dies sollte man nicht tun.
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] main.c: Bei Nichtbeachtung, selber Schuld wenn Dinge nicht funktionieren.
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] main.c: Für eine Erklärung warum System Mode eine schlechte Idee ist, bitte http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode lesen
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] authkey.c: Failed to open cookie file '/var/run/pulse/.config/pulse/cookie': Datei oder Verzeichnis nicht gefunden
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] authkey.c: Failed to load authorization key '/var/run/pulse/.config/pulse/cookie': Datei oder Verzeichnis nicht gefunden
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] authkey.c: Failed to open cookie file '/var/run/pulse/.pulse-cookie': Datei oder Verzeichnis nicht gefunden
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] authkey.c: Failed to load authorization key '/var/run/pulse/.pulse-cookie': Datei oder Verzeichnis nicht gefunden
Jun 26 12:11:00 raspib2W pulseaudio[424]: E: [pulseaudio] bluez4-util.c: org.bluez.Manager.GetProperties() failed: org.freedesktop.DBus.Error.UnknownMethod: Method "GetProperties" with signature "" on interface "org.bluez.Manager" doesn't exist
Jun 26 12:11:00 raspib2W systemd[1]: Started PulseAudio Sound System.
pacmd set-sink-volume 0 65535
Es läuft kein PulseAudio-Dienst oder nicht als Sessiondienst.
paplay /usr/share/sounds/alsa/Front_Left.wav
Damit sollte die Einrichtung abgeschlossen sein und wir können überprüfen, ob wir etwas über Bluetooth ausgeben können
mplayer -ao pulse http://stream01.iloveradio.de/iloveradio1.mp3
define TTS Text2Speech default
Zitat von: Otto123 am 26 Juni 2017, 11:50:01
Hi,
ich habe schon so viel Zeit in den BT Mist investiert und mir geschworen: ich streame Musik darüber und telefoniere im Auto darüber - aber linux und BT geht einfach nicht zusammen.
Ich will mich doch nochmal hinsetzen und deine Anleitung nachvollziehen. :D
Beim durchlesen ergeben sich diese Fragen:
- Wozu braucht man die Pakete python-gobject python-gobject-2 ?
- Du machst in Punkt 3 die Rechte Anpassung für Pi, das muss doch auch für User fhem passieren!?
Allgemeine Frage:
Sollte der alte Folgeabschnitt nach deinem (ich denke Original von Tobias) nicht einfach gestrichen werden? Ich hatte da schon mal die Randbemerkungen dran gemacht.
Ich weiß allerdings nicht genau, wie man diese Information händeln soll. Ich befürchte, wie mit vielen Dingen, müsste man exakt die Systemvoraussetzungen hinschreiben, denn mit dem nächsten Release eines Treibers/ Kernels/ Systems ist alles grundlegend anders. :-\ :'(
So, ich arbeite Schritt für Schritt ab mal sehen wie weit ich komme.
Edit:
Nur als Hinweis: Schritt 8 status pulseaudio ist in Ordnung -> läuft auf den ersten Blick - aber???Code Auswählen● pulseaudio.service - PulseAudio Sound System
Loaded: loaded (/etc/systemd/system/pulseaudio.service; enabled)
Active: active (running) since Mo 2017-06-26 12:11:00 CEST; 8min ago
Main PID: 424 (pulseaudio)
CGroup: /system.slice/pulseaudio.service
└─424 /usr/bin/pulseaudio
Jun 26 12:11:00 raspib2W pulseaudio[424]: N: [pulseaudio] main.c: System-Modus aktiv, Exit-Idle-Time gezwungenermaßen deaktiviert!
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] main.c: OK, nun wird PA im System Mode betrieben. Vorsicht, dies sollte man nicht tun.
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] main.c: Bei Nichtbeachtung, selber Schuld wenn Dinge nicht funktionieren.
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] main.c: Für eine Erklärung warum System Mode eine schlechte Idee ist, bitte http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode lesen
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] authkey.c: Failed to open cookie file '/var/run/pulse/.config/pulse/cookie': Datei oder Verzeichnis nicht gefunden
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] authkey.c: Failed to load authorization key '/var/run/pulse/.config/pulse/cookie': Datei oder Verzeichnis nicht gefunden
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] authkey.c: Failed to open cookie file '/var/run/pulse/.pulse-cookie': Datei oder Verzeichnis nicht gefunden
Jun 26 12:11:00 raspib2W pulseaudio[424]: W: [pulseaudio] authkey.c: Failed to load authorization key '/var/run/pulse/.pulse-cookie': Datei oder Verzeichnis nicht gefunden
Jun 26 12:11:00 raspib2W pulseaudio[424]: E: [pulseaudio] bluez4-util.c: org.bluez.Manager.GetProperties() failed: org.freedesktop.DBus.Error.UnknownMethod: Method "GetProperties" with signature "" on interface "org.bluez.Manager" doesn't exist
Jun 26 12:11:00 raspib2W systemd[1]: Started PulseAudio Sound System.
Bei Schritt 10 bin ich gestorben -> pacmd set-sink-volume 0 65535 Ausgabe: Es läuft kein PulseAudio-Dienst oder nicht als Sessiondienst.
Schritt 11 geht dann auch nicht -> Abbruch
:-[
Gruß Otto
define MyTTS Text2Speech default
attr MyTTS room Text2Speech
attr MyTTS TTS_UseMP3Wrap 1
Zitat von: Intruder1956 am 26 Juni 2017, 16:27:53
hallo,
ich habe es jetzt mal versucht nachzubauen wie @Otto auch
Habe einen Raspi 3 mit aktuellem Jessie lite vom 21.06.17 gerade neu installiert
Fhem installiert, aber noch nichts in Fhem eingegeben außer "update"
also beides ganz frisch.
bis Schritt 10 bin ich auch und bekomme die gleiche Meldung wie @OttoCode Auswählenpacmd set-sink-volume 0 65535
Es läuft kein PulseAudio-Dienst oder nicht als Sessiondienst.
bei Punkt 11 bekomme ich aber trotzdem über die Klinkenbuchse und einen LautsprecherCode Auswählenpaplay /usr/share/sounds/alsa/Front_Left.wav
die Ansage des Mädel "Left"
ich werde jetzt bei Punkt 12 weitermachen ;)
Muss ich denn anschl. oben den Mplayer bis zum define myTTS auch installieren ???
Gruß Werner
pulseaudio -D
sudo nano /etc/rc.local
Zitat von: mumpitzstuff am 26 Juni 2017, 23:09:30Zur Antwort von Ellert fällt mir hier noch ein: am einfachsten userReadings definieren und Text2Speech Ausgabe mit "set magic"
3.) Gibt's eine einfache Möglichkeit bestimmte Dinge aus einem Reading zu ersetzen, bevor man es dem Modul übergibt? Z.b. °C in grad celsius?
attr SensorAussen userReadings tempText { my $val = (ReadingsVal("$name","temperature","Fehler"));; $val =~ s/\./ komma /;; return $val;;}
set MyTTS tts Es sind [SensorAussen:tempText] Grad)
defmod WETTER_ANSAGEN_DI DOIF ([06:30-10:00] && ([MOTION_WOHNZIMMER:state] eq "motion" && [?$SELF:B_ANSAGE] ne "done"))\
(\
set TTS tts :axe.mp3:, set TTS tts Guten Morgen. Das Wetter ist heute [WETTER:ur_fc0_text], setreading $SELF B_ANSAGE done\
)\
DOELSEIF ([06:29])\
(\
setreading $SELF B_ANSAGE wait\
)
attr WETTER_ANSAGEN_DI do always
attr WETTER_ANSAGEN_DI room WETTER
setstate WETTER_ANSAGEN_DI initialized
setstate WETTER_ANSAGEN_DI 2017-07-07 21:25:44 B_ANSAGE done
setstate WETTER_ANSAGEN_DI 2017-07-07 21:27:52 cmd 0
setstate WETTER_ANSAGEN_DI 2017-07-07 21:27:52 state initialized
setstate WETTER_ANSAGEN_DI 2017-07-07 21:27:52 timer_01_c01 08.07.2017 06:30:00
setstate WETTER_ANSAGEN_DI 2017-07-07 21:27:52 timer_02_c01 08.07.2017 10:00:00
setstate WETTER_ANSAGEN_DI 2017-07-07 21:27:52 timer_03_c02 08.07.2017 06:29:00
Zunächst Gewitter. Tiefsttemperatur 18 grad celsius.
ur_fc0_text { my $val = (ReadingsVal("$name","fc0_text","Fehler"));; $val =~ s/[^\d]*°C/ grad celsius/;; $val =~ s/[^\d]*km\/h/ kmh/;; $val =~ s/[^\d]*%/ prozent/;;return $val;; }
--- 98_Text2Speech.pm 2017-07-14 22:08:54.841860671 +0200
+++ 98_Text2Speech.pm 2017-07-15 11:53:12.464123999 +0200
@@ -455,8 +455,9 @@
return "no set cmd on a disabled device !" if(IsDisabled($me));
if($cmd eq "tts") {
if($hash->{MODE} eq "DIRECT" || $hash->{MODE} eq "SERVER") {
+ $hash->{VOLUME} = ReadingsNum($me, "volume", 100);
readingsSingleUpdate($hash, "playing", "1", 1);
Text2Speech_PrepareSpeech($hash, join(" ", @a));
$hash->{helper}{RUNNING_PID} = BlockingCall("Text2Speech_DoIt", $hash, "Text2Speech_Done", $TTS_TimeOut, "Text2Speech_AbortFn", $hash) unless(exists($hash->{helper}{RUNNING_PID}));
@@ -537,12 +538,12 @@
# bei Angabe direkter MP3-Files wird hier ein temporäres Template vergeben
for(my $i=0; $i<(@text); $i++) {
- @FileTplPc = ($text[$i] =~ /:(\w+.+[mp3|ogg|wav]):/g);
+ @FileTplPc = ($text[$i] =~ /:(\w+?\.(?:mp3|ogg|wav)):/g);
for(my $j=0; $j<(@FileTplPc); $j++) {
my $time = time();
$time =~ s/\.//g;
- my $tpl = "FileTpl_".$time."_#".$i; #eindeutige Templatedefinition schaffen
- Log3 $hash, 4, "$me: Angabe einer direkten MP3-Datei gefunden: $FileTplPc[$i] => $tpl";
+ my $tpl = "FileTpl_".$time."_#".$j; #eindeutige Templatedefinition schaffen
+ Log3 $hash, 4, "$me: Angabe einer direkten MP3-Datei gefunden: $FileTplPc[$j] => $tpl";
push(@FileTpl, $tpl.":".$FileTplPc[$j]); #zb: FileTpl_123645875_#0:/ring.mp3
$text[$i] =~ s/$FileTplPc[$j]/$tpl/g; # Ersetze die DateiDefinition gegen ein Template
}
@@ -558,11 +559,15 @@
@text = Text2Speech_SplitString(\@text, 0, $cutter, 1, "");
}
+ Log3 $hash, 4, "$me: MaxChar = $ttsMaxChar{$TTS_Ressource}, Delimiter = $TTS_Delemiter, ForceSplit = $TTS_ForceSplit, AddDelimiter = $TTS_AddDelemiter";
+
@text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, $TTS_Delemiter, $TTS_ForceSplit, $TTS_AddDelemiter);
- @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, "(?<=[\\.!?])\\s*", 0, "");
+ @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, "(?<=[.!?])\\s*", 0, "");
@text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, ",", 0, "al");
@text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, ";", 0, "al");
- @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, "und", 0, "af");
+ @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, ":", 0, "al");
+ @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, "\\bund\\b", 0, "af");
+ @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, " ", 0, "");
Log3 $hash, 4, "$me: Auflistung der Textbausteine nach Aufbereitung:";
for(my $i=0; $i<(@text); $i++) {
@@ -582,22 +587,22 @@
#####################################
# param1: array : Text 2 Speech
# param2: string: MaxChar
-# param3: string: Delemiter
-# param4: int : 1 -> es wird am Delemiter gesplittet
+# param3: string: Delimiter
+# param4: int : 1 -> es wird am Delimiter gesplittet
# 0 -> es wird nur gesplittet, wenn Stringlänge länger als MaxChar
-# param5: string: Add Delemiter to String? [al|af|<empty>] (AddLast/AddFirst)
+# param5: string: Add Delimiter to String? [al|af|<empty>] (AddLast/AddFirst)
#
# Splittet die Texte aus $hash->{helper}->{Text2Speech} anhand des
-# Delemiters, wenn die Stringlänge MaxChars übersteigt.
-# Ist "AddDelemiter" angegeben, so wird der Delemiter an den
+# Delimiters, wenn die Stringlänge MaxChars übersteigt.
+# Ist "AddDelimiter" angegeben, so wird der Delimiter an den
# String wieder angefügt
#####################################
sub Text2Speech_SplitString($$$$$){
my @text = @{shift()};
my $MaxChar = shift;
- my $Delemiter = shift;
+ my $Delimiter = shift;
my $ForceSplit = shift;
- my $AddDelemiter = shift;
+ my $AddDelimiter = shift;
my @newText;
for(my $i=0; $i<(@text); $i++) {
@@ -606,12 +611,35 @@
next;
}
- my @b = split(/$Delemiter/, $text[$i]);
- for(my $j=0; $j<(@b); $j++) {
- $b[$j] = $b[$j] . $Delemiter if($AddDelemiter eq "al"); # Am Satzende wieder hinzufügen.
- $b[$j+1] = $Delemiter . $b[$j+1] if(($AddDelemiter eq "af") && ($b[$j+1])); # Am Satzanfang des nächsten Satzes wieder hinzufügen.
- push(@newText, $b[$j]);
- }
+ my @b;
+ if($Delimiter =~/^ $/) {
+ @b = split(' ', $text[$i]);
+ }
+ else {
+ @b = split(/$Delimiter/, $text[$i]);
+ }
+ if((@b)>1) {
+ if(length($Delimiter)==1) {
+ for(my $k=0; $k<(@b); ) {
+ if($k+1<(@b) && length($b[$k])+length($b[$k+1]) <= $MaxChar) {
+ $b[$k] = join($Delimiter, $b[$k], $b[$k+1]);
+ splice(@b, $k+1, 1);
+ }
+ else {
+ $k++;
+ }
+ }
+ }
+ for(my $j=0; $j<(@b); $j++) {
+ (my $boundaryDelimiter = $Delimiter) =~ s/^\\b(.+)\\b$/$1/g;
+ $b[$j] = $b[$j] . $boundaryDelimiter if($AddDelimiter eq "al"); # Am Satzende wieder hinzufügen.
+ $b[$j+1] = $boundaryDelimiter . $b[$j+1] if(($AddDelimiter eq "af") && ($b[$j+1])); # Am Satzanfang des nächsten Satzes wieder hinzufügen.
+ push(@newText, $b[$j]);
+ }
+ }
+ elsif((@b)==1) {
+ push(@newText, $text[$i]);
+ }
}
return @newText;
}
##############################################
# $Id: 98_Text2Speech.pm 13704 2017-03-14 19:33:42Z Tobias.Faust $
#
# 98_Text2Speech.pm
} elsif ($TTS_Ressource eq "ESpeak") {
my $FileWav = $file . ".wav";
- $cmd = "sudo espeak -vde+f3 -k5 -s150 \"" . $text . "\">\"" . $FileWav . "\"";
+ $cmd = "sudo espeak -vde+f3 -k5 -s150 \"" . $text . "\" -w \"" . $FileWav . "\"";
Log3 $hash, 4, "Text2Speech:" .$cmd;
system($cmd);
pcm.!default {
type hw card 0
rate 44100
}
ctl.!default {
type hw card 0
}
Couldn't find audio filter 'resample'
[libaf] Couldn't create or open audio filter 'resample'
Error at audio filter chain pre-init!
omxplayer -o local foo.mp3
amixer cset numid=3 2
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: ALSA [bcm2835 ALSA], Gerät 0: bcm2835 ALSA [bcm2835 ALSA]
Sub-Geräte: 8/8
Sub-Gerät #0: subdevice #0
...
Sub-Gerät #7: subdevice #7
Karte 0: ALSA [bcm2835 ALSA], Gerät 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
return undef if(AttrVal($defs{$DbLogDev}, "DbLogType", "History") !~ /Current/); # muss die Tabelle Current nutzen
root@px3 /opt/fhem > mplayer -V
mpv 0.23.0 (C) 2000-2016 mpv/MPlayer/mplayer2 projects
built on UNKNOWN
ffmpeg library versions:
libavutil 55.34.101
libavcodec 57.64.101
libavformat 57.56.101
libswscale 4.2.100
libavfilter 6.65.100
libswresample 2.3.100
ffmpeg version: 3.2.8-1~deb9u1
root@px3 /opt/fhem > mpv -ao alsa:device=hw=0.0 cache/8027551bd47f8dc12fc2c5804daf99ce.mp3
Option ao: this option does not accept sub-options.
Sub-options for --vo and --ao were removed from mpv in release 0.23.0.
See https://0x0.st/uM for details.
Error parsing option ao (option could not be parsed)
Setting command line option '--ao=alsa:device=hw=0.0' failed.
mpv --audio-device=help
mpv --audio-device=alsa cache/8027551bd47f8dc12fc2c5804daf99ce.mp3
my $mplayerOpts = '';
my $mplayerNoDebug = '-really-quiet';
my $mplayerAudioOpts = '--audio-device=';
defmod MyTTS Text2Speech alsa;
reload 98_Text2Speech.pm;
$cmd = "espeak -vde+f3 -k5 -s150 \"" . $text . "\" -w " . $FileWav ;
Zitat von: Markus64 am 27 Juli 2017, 07:49:10
Hallo,
ich hab ein kleines Problem mit espeak. Beim erstmaligen ausgeben von Text funktioniert alles bestens. Beim zweiten mal ausgeben des selben Text erfolgt keine Ausgabe.
Nach ein wenig suchen habe ich dan gesehen, das die cache files korrupt sind. Anstelle mp3 sind dort die stdout von espeak zu finden.
Nach ändern der Zeile 764 derCode Auswählen##############################################
# $Id: 98_Text2Speech.pm 13704 2017-03-14 19:33:42Z Tobias.Faust $
#
# 98_Text2Speech.pm
} elsif ($TTS_Ressource eq "ESpeak") {
my $FileWav = $file . ".wav";
- $cmd = "sudo espeak -vde+f3 -k5 -s150 \"" . $text . "\">\"" . $FileWav . "\"";
+ $cmd = "sudo espeak -vde+f3 -k5 -s150 \"" . $text . "\" -w \"" . $FileWav . "\"";
Log3 $hash, 4, "Text2Speech:" .$cmd;
system($cmd);
funktioniert alles wieder wie gewünscht.
Vielleicht kann man das ändern.
LG
Markus
aplay /usr/share/sounds/alsa/Front_Center.wav
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)
/usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols /opt/fhem/cache/71ce4185214eb43202358604a63cdcab.mp3
sudo adduser fhem audio
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.
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.
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.
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.
Zitat von: mumpitzstuff am 27 Februar 2018, 16:17:43
Attribut TTS_Language setzen?
my %language = ("Google" => {"Deutsch" => "de",
"English-US" => "en-us",
"Schwedisch" => "sv",
"Indian-Hindi" => "hi",
"Arabic" => "ar",
"France" => "fr",
"Spain" => "es",
"Italian" => "it",
"Chinese" => "cn"
},
Zitat von: mumpitzstuff am 02 März 2018, 16:37:24
Stimmt. Das habe ich mir gar nicht angesehen. Dann bleibt dir tatsächlich nur, das Modul manuell zu ändern und es vom Update auszuschliessen. Da es hierfür wahrscheinlich sowieso kein Update mehr gibt, ist das Risiko relativ gering.Code Auswählenmy %language = ("Google" => {"Deutsch" => "de",
"English-US" => "en-us",
"Schwedisch" => "sv",
"Indian-Hindi" => "hi",
"Arabic" => "ar",
"France" => "fr",
"Spain" => "es",
"Italian" => "it",
"Chinese" => "cn"
},
Hier könntest du einfach deinen Fall mit eintragen.
defmod Antwort_HT2 FS20 632d 56
attr Antwort_HT2 IODev CUL_0
attr Antwort_HT2 follow-on-for-timer 1
attr Antwort_HT2 room FS20
attr Antwort_HT2 showtime 1
defmod BewegungAnHaustur2 DOIF ([Antwort_HT2] =~ "on"){Meldung_Bewegung();;}
sub
Meldung_Bewegung
{
fhem ("set Audio_Cubie on;
defmod antwort0 at +00:00:02 set MyTTS tts Es ist jemand vor der Haustür;
defmod antwort1 at +00:00:08 set alabama ttsSay Ja. Das habe ich auch gehört;
defmod antwort2 at +00:00:12 set MyTTS tts Vielleicht kommt Besuch. Jemand muss mal nachsehen;
defmod wiederaus at +00:00:20 set Audio_Cubie off;
setstate Antwort_HT off")
}
Zitat von: monty_burns_007 am 04 März 2018, 11:31:35
Yep, habe ich gerade "Dutch" => "nl" eingetragt und funzt super ! :-)
danke
Zitat von: monty_burns_007 am 13 April 2018, 15:50:45
Hi, wenn wird diese änderung auch in die repo eingetragen ?
Jetzt muss ich immer nach eine update von FHEM diese änderung manuel zuruck eintragen.
wäre schon sein das die Dutch (nl) auch in die repo angepasst wird.
mfg
Monty
Zitat von: Tobias am 11 Juni 2018, 10:55:55Ok danke. Funzt. 👍😃
erledigt .... endlich ;)
diff 98_Text2Speech.pm 98_Text2Speech.pm.orig
44c44
< my $mplayerOpts = '';
---
> my $mplayerOpts = '-nolirc -noconsolecontrols';
46c46
< my $mplayerAudioOpts = '--audio-device=';
---
> my $mplayerAudioOpts = '-ao alsa:device=';
define MyTTS Text2Speech alsa:device=fhemvol
defmod MyTTS Text2Speech alsa/fhemvol
defmod MyTTS Text2Speech alsa/fhemvol
attr MyTTS TTS_MplayerCall sudo /usr/bin/mpv --audio-device=alsa/fhemvol -really-quiet
ALL ALL = NOPASSWD: /usr/bin/mpv
killall mpv
hat den gewünschten Erfolg gebracht!
2018.10.15 14:59:48.620 5 : SB_PLAYER_Set: called with sayText
2018.10.15 14:59:48.638 5 : SB_PLAYER_Set: called with ?
2018-10-15 14:59:48.639 SB_PLAYER SB_PLAYER_000001010089 sayText Hallo
2018.10.15 14:59:48.663 5 : SB_PLAYER_Set: called with ?
2018.10.15 14:59:48.664 5 : SB_PLAYER_Set: called with ?
2018.10.15 14:59:48.665 4 : SB_PLAYER_Get: called with SB_PLAYER_000001010089 ?
2018.10.15 14:59:49.208 5 : SB_PLAYER_Set: called with ?
ZitatCode Auswählenreturn undef if(AttrVal($defs{$DbLogDev}, "DbLogType", "History") !~ /Current/); # muss die Tabelle Current nutzen
#!/bin/bash
for curr_song in $( ls *mp3 ); do
curr_song_base_name=${curr_song%.*}
rate=$(ffprobe -hide_banner "$curr_song" 2>&1 | grep -oE "([0-9]*) Hz" | rev | cut -c 4- | rev)
if [[ ${curr_song} =~ "_original.mp3" ]]; then
# ignore this file
echo "step over ${curr_song_base_name}"
elif [ ${rate} -eq 24000 ]; then
echo "-->${curr_song_base_name}"
echo "-->${rate}"
else
echo "-->${curr_song_base_name}"
echo "-->${rate} -->24000"
mv ${curr_song} ${curr_song_base_name}_original.mp3
ffmpeg -i ${curr_song_base_name}_original.mp3 -ac 1 -ab 32k -ar 24000 -f mp3 - >${curr_song}
fi
done
Internals:
ALSADEVICE hw=0.0
DEF hw=0.0
MODE DIRECT
NAME MyTTS
NR 27
STATE Initialized
TYPE Text2Speech
READINGS:
2018-12-28 15:00:52 duration 1
2018-12-28 15:00:52 endTime 00:00:00
2018-12-28 15:00:52 lastFilename /opt/fhem/www/sounds/S1.mp3
2018-12-28 15:00:52 playing 0
helper:
Text2Speech:
Attributes:
TTS_FileTemplateDir /opt/fhem/www/sounds
TTS_MplayerCall /usr/bin/mplayer
TTS_UseMP3Wrap 1
verbose 5
2018.12.28 15:01:52 4: Text2Speech:/usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols /opt/fhem/www/sounds/S1.mp3
MPlayer 1.3.0 (Debian), built with gcc-7 (C) 2000-2016 MPlayer Team
Terminal type `unknown' is not defined.
Playing /opt/fhem/www/sounds/S1.mp3.
libavformat version 57.83.100 (external)
Audio only file format detected.
Load subtitles in /opt/fhem/www/sounds/
==========================================================================
Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III
AUDIO: 44100 Hz, 2 ch, s16le, 320.0 kbit/22.68% (ratio: 40000->176400)
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.
/usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols /opt/fhem/www/sounds/S1.mp3
"speaker-test -t sine -f 440 -c 2 -s 1"
set sprachausgabe tts mein erster text; set sprachausgabe tts mein zweiter text; set sprachausgabe tts mein dritter text;
set sprachausgabe tts :template01.mp3::template02.mp3:
set sprachausgabe tts :template01.mp3:ein Beispieltext:template02.mp3:
Zitat von: RomanticBoy83 am 04 Januar 2019, 21:29:17
Ich habe mich mal an eine Fehlerbeseitigung gemacht!
Problem:
- DBLog-Device mit unerwarteten Einstellungen führt zum Absturz des Moduls.
Diesen Fehler hatte ich hier schon einmal beschrieben und auch einen Patch angehangen, dennoch hier noch einmal der Vollständigkeit halber.
Bei mir läuft DBLog nicht mit der Tabelle Current. In diese möchte jedoch das Modul selbständig reinschreiben.
Eine Prüfung schaut nun, ob es überhaupt möglich ist und überspringt diesen Punkt wenn die Tabelle nicht vorhanden ist.- Array in der Ansage
Manchmal tauchte ein Array in der Ansage auf, welches von Google mit seiner Adresse Übersetzt worden ist!
Im Modul war ein wenig etwas durcheinander sobald mehr als nur ein Satz gesprochen werden sollte. Unter Umständen konnte sich so ein ungewolltes Array als einzelnes Wort unterschmugeln. Korigiert wurde dies in dem jeder eingehende Satz nun als eigenes Array abgearbeitet wird und auch nur jene komplett entfernt werden nach der Wiedergabe.
Konstrukt wie das nachfolgende, welches hintereinander mehrmals eine Sprachausgabe erwünscht, sollten nun problemfrei möglich sein.
Diese Problem scheint nun behoben.
[/list]Code Auswählenset sprachausgabe tts mein erster text; set sprachausgabe tts mein zweiter text; set sprachausgabe tts mein dritter text;
- mehrere Templates in einem Satz
Mehr als eine Angabe eines Templates war nicht möglich. Eine falsche Regex löste das Problem. Beispielsweise sind nun folgende Satz ebenfalls möglich:Code Auswählenset sprachausgabe tts :template01.mp3::template02.mp3:
set sprachausgabe tts :template01.mp3:ein Beispieltext:template02.mp3:
- Log-Ausgaben unordentlich
Beim Fehlersuchen fiel mir die unordentliche Log-Ausgabe auf, welche ich ebenfalls verschönert habe. Das Modul zeigt nun durchweg überall seinen Namen in der Zeile.
und nun der Patch
- Log3 $hash->{NAME}, 4, "Text2Speech:" .$cmd;
- system($cmd);
+ Log3 $hash->{NAME}, 4, $hash->{NAME}.":" .$cmd;
+ #system($cmd);
- splice(@{$hash->{helper}{Text2Speech}}, 0, $tts_done);
+ splice(@{$hash->{helper}{Text2Speech}}, 0, 1);
Zitat von: RomanticBoy83 am 04 Januar 2019, 21:29:17
Ich habe mich mal an eine Fehlerbeseitigung gemacht!
Konstrukt wie das nachfolgende, welches hintereinander mehrmals eine Sprachausgabe erwünscht, sollten nun problemfrei möglich sein.Code Auswählenset sprachausgabe tts mein erster text; set sprachausgabe tts mein zweiter text; set sprachausgabe tts mein dritter text;
- mehrere Templates in einem Satz
Mehr als eine Angabe eines Templates war nicht möglich. Eine falsche Regex löste das Problem. Beispielsweise sind nun folgende Satz ebenfalls möglich:Code Auswählenset sprachausgabe tts :template01.mp3::template02.mp3:
set sprachausgabe tts :template01.mp3:ein Beispieltext:template02.mp3:
set sprachausgabe tts mein erster text; set sprachausgabe tts mein zweiter text; set sprachausgabe tts mein dritter text;
set sprachausgabe tts :template01.mp3::template02.mp3:
set sprachausgabe tts :template01.mp3:ein Beispieltext:template02.mp3:
Zitat von: RomanticBoy83 am 19 Januar 2019, 12:25:31ja, Patch erfolgreich eingespielt!
Das kann ich so nicht nachvollziehen. Ich habe das jetzt gerade noch einmal explizit getestet. Läuft genau wie von mir beschrieben.
Deine Beschreibung klingt als würdest du mit der Version vor dem Patch arbeiten.
- Hast du den Patch erfolgreich eingespielt?
- Hast du das Modul erfolgreich neu geladen?
2019.01.19 14:59:46 4: myTTS: Angabe einer direkten MP3-Datei gefunden: Hausalarm.mp3 => FileTpl_1547906386_#0
2019.01.19 14:59:46 4: myTTS: Angabe einer direkten MP3-Datei gefunden: deaktiviert.mp3 => FileTpl_1547906386_#0
2019.01.19 14:59:46 4: myTTS: Auflistung der Textbausteine nach Aufbereitung:
2019.01.19 14:59:46 4: myTTS: 0 => /data/fhem/TTS/cache/templates/Hausalarm.mp3
2019.01.19 14:59:46 4: myTTS: 1 => /data/fhem/TTS/cache/templates/Hausalarm.mp3
2019.01.19 14:59:46 4: myTTS: Verwende TTS Spracheinstellung: Deutsch
2019.01.19 14:59:46 4: myTTS: /data/fhem/TTS/cache/templates/Hausalarm.mp3 als direkte MP3 Datei erkannt!
2019.01.19 14:59:46 4: myTTS: Bearbeite jetzt den Text: /data/fhem/TTS/cache/templates/Hausalarm.mp3 /data/fhem/TTS/cache/templates/Hausalarm.mp3
2019.01.19 14:59:46 4: myTTS: /data/fhem/TTS/cache/templates/Hausalarm.mp3 gefunden, kein Download
2019.01.19 14:59:46 4: myTTS: /data/fhem/TTS/cache/templates/Hausalarm.mp3 hat eine Länge von 1 Sekunden.
2019.01.19 14:59:46 4: myTTS:/home/fhem/TTS/mplayer.sh -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols /data/fhem/TTS/cache/templates/Hausalarm.mp3
set sprachausgabe tts :tada.mp3::notify.mp3:
2019.01.19 18:14:02 4: sprachausgabe: Angabe einer direkten MP3-Datei gefunden: tada.mp3 => FileTpl_154791804299809_#0
2019.01.19 18:14:02 4: sprachausgabe: Angabe einer direkten MP3-Datei gefunden: notify.mp3 => FileTpl_154791804299927_#0
2019.01.19 18:14:03 4: sprachausgabe: Auflistung der Textbausteine nach Aufbereitung:
2019.01.19 18:14:03 4: sprachausgabe: 0 => sounds/tada.mp3
2019.01.19 18:14:03 4: sprachausgabe: 1 => sounds/notify.mp3
2019.01.19 18:14:03 4: sprachausgabe: Verwende TTS Spracheinstellung: Deutsch
2019.01.19 18:14:03 4: sprachausgabe: sounds/tada.mp3 als direkte MP3 Datei erkannt!
2019.01.19 18:14:03 4: sprachausgabe: sounds/notify.mp3 als direkte MP3 Datei erkannt!
set myTTS tts :Hausalarm.mp3::deaktiviert.mp3:
2019.01.19 14:59:46 4: myTTS: Angabe einer direkten MP3-Datei gefunden: Hausalarm.mp3 => FileTpl_1547906386_#0
2019.01.19 14:59:46 4: myTTS: Angabe einer direkten MP3-Datei gefunden: deaktiviert.mp3 => FileTpl_1547906386_#0
2019.01.19 14:59:46 4: myTTS: Auflistung der Textbausteine nach Aufbereitung:
2019.01.19 14:59:46 4: myTTS: 0 => /data/fhem/TTS/cache/templates/Hausalarm.mp3
2019.01.19 14:59:46 4: myTTS: 1 => /data/fhem/TTS/cache/templates/Hausalarm.mp3
2019.01.19 14:59:46 4: myTTS: Verwende TTS Spracheinstellung: Deutsch
2019.01.19 14:59:46 4: myTTS: /data/fhem/TTS/cache/templates/Hausalarm.mp3 als direkte MP3 Datei erkannt!
2019.01.19 14:59:46 4: myTTS: Bearbeite jetzt den Text: /data/fhem/TTS/cache/templates/Hausalarm.mp3 /data/fhem/TTS/cache/templates/Hausalarm.mp3
2019.01.19 14:59:46 4: myTTS: /data/fhem/TTS/cache/templates/Hausalarm.mp3 gefunden, kein Download
2019.01.19 14:59:46 4: myTTS: /data/fhem/TTS/cache/templates/Hausalarm.mp3 hat eine Länge von 1 Sekunden.
2019.01.19 14:59:46 4: myTTS:/home/fhem/TTS/mplayer.sh -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols /data/fhem/TTS/cache/templates/Hausalarm.mp3
2019.01.19 14:59:46 4: myTTS: Angabe einer direkten MP3-Datei gefunden: Hausalarm.mp3 => FileTpl_1547906386_#0
2019.01.19 14:59:46 4: myTTS: Angabe einer direkten MP3-Datei gefunden: deaktiviert.mp3 => FileTpl_1547906386_#0
FileTpl_1547906386_#0 == FileTpl_1547906386_#0
my $tpl = "FileTpl_".$time."_#".$i; #eindeutige Templatedefinition schaffen
my $tpl = "FileTpl_#".$i."_".$j; #eindeutige Templatedefinition schaffen
ZitatFrage, was setzt du denn ein (Rechner und System)?Beaglebone Black mit Debian Wheezy
2019.01.19 19:43:00 4: myTTS: Auflistung der Textbausteine nach Aufbereitung:
2019.01.19 19:43:00 4: myTTS: 0 => Hausalarm
2019.01.19 19:43:00 4: myTTS: 1 => deaktiviert
2019.01.19 19:43:00 4: myTTS: Verwende TTS Spracheinstellung: Deutsch
2019.01.19 19:43:00 4: myTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 2b548a35d13c45da15700da833ef703e.mp3
2019.01.19 19:43:00 4: myTTS: Bearbeite jetzt den Text: Hausalarm deaktiviert
2019.01.19 19:43:00 4: myTTS: /data/fhem/TTS/cache/2b548a35d13c45da15700da833ef703e.mp3 gefunden, kein Download
2019.01.19 19:43:00 4: myTTS: /data/fhem/TTS/cache/2b548a35d13c45da15700da833ef703e.mp3 hat eine Länge von 1 Sekunden.
2019.01.19 19:43:00 4: myTTS:/home/fhem/TTS/mplayer.sh -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols /data/fhem/TTS/cache/2b548a35d13c45da15700da833ef703e.mp3
Zitat von: RomanticBoy83 am 19 Januar 2019, 20:35:55
Ich habe genau den Patch, welchen ich ebend oben angehangen habe noch einmal überprüft. Der sollte jetzt auch bei dir laufen.
Bei deiner Log-Ausgabe sind auf einmal die Endungen verschwunden. Da waren wir doch garnicht dran?!
Anmerkung: Du scheinst keine Templates angegeben zu haben und er hat den Text normal verarbeitet.
Sollte es noch immer nicht gehen, dann versuche nocheinmal bei null zu starten und gib mir bitte Rückantwort.
1) original mit dem neuen Patch patchen
2) modul einspielen
3) modul neu laden
4) Log hier posten
Ich schaue mir das dann noch einmal an.
set myTTS tts :Hausalarm.mp3::deaktiviert.mp3:
2019.01.19 21:24:37 4: myTTS: Angabe einer direkten MP3-Datei gefunden: Hausalarm.mp3 => FileTpl_#0_0
2019.01.19 21:24:37 4: myTTS: Angabe einer direkten MP3-Datei gefunden: deaktiviert.mp3 => FileTpl_#0_1
2019.01.19 21:24:37 4: myTTS: Auflistung der Textbausteine nach Aufbereitung:
2019.01.19 21:24:37 4: myTTS: 0 => /data/fhem/TTS/cache/templates/Hausalarm.mp3
2019.01.19 21:24:37 4: myTTS: 1 => /data/fhem/TTS/cache/templates/deaktiviert.mp3
2019.01.19 21:24:37 4: myTTS: Verwende TTS Spracheinstellung: Deutsch
2019.01.19 21:24:37 4: myTTS: /data/fhem/TTS/cache/templates/Hausalarm.mp3 als direkte MP3 Datei erkannt!
2019.01.19 21:24:37 4: myTTS: Bearbeite jetzt den Text: /data/fhem/TTS/cache/templates/Hausalarm.mp3 /data/fhem/TTS/cache/templates/deaktiviert.mp3
2019.01.19 21:24:37 4: myTTS: /data/fhem/TTS/cache/templates/Hausalarm.mp3 gefunden, kein Download
2019.01.19 21:24:37 4: myTTS: /data/fhem/TTS/cache/templates/Hausalarm.mp3 hat eine Länge von 1 Sekunden.
2019.01.19 21:24:37 4: myTTS:/home/fhem/TTS/mplayer.sh -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols /data/fhem/TTS/cache/templates/Hausalarm.mp3
TTS_FileTemplateDir
/data/fhem/TTS/cache/templates
Zitat von: RomanticBoy83 am 19 Januar 2019, 22:33:20
Hier noch einmal der Patch, in welchem auch das Problem behoben sein sollte.
attr MyTTS TTS_UseMP3Wrap 1
Zitat von: Billy am 20 Januar 2019, 11:14:37Das man da auch ein debian Paket dafür braucht und nicht nur ein Attribut ist aber klar - oder?
Wenn man aber MP3Wrap aktiviertCode Auswählenattr MyTTS TTS_UseMP3Wrap 1
geht es nicht mehr!
Gruß Billy
sudo apt-get install libdigest-sha-perl mp3wrap
**** Liste der Hardware-Ger▒te (PLAYBACK) ****
Karte 0: DAC [USB Audio DAC], Ger▒t 0: USB Audio [USB Audio]
Sub-Ger▒te: 1/1
Sub-Ger▒t #0: subdevice #0
Karte 1: ALSA [bcm2835 ALSA], Ger▒t 0: bcm2835 ALSA [bcm2835 ALSA]
Sub-Ger▒te: 7/7
Sub-Ger▒t #0: subdevice #0
Sub-Ger▒t #1: subdevice #1
Sub-Ger▒t #2: subdevice #2
Sub-Ger▒t #3: subdevice #3
Sub-Ger▒t #4: subdevice #4
Sub-Ger▒t #5: subdevice #5
Sub-Ger▒t #6: subdevice #6
Karte 1: ALSA [bcm2835 ALSA], Ger▒t 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
Sub-Ger▒te: 1/1
Sub-Ger▒t #0: subdevice #0
2019-01-28 21:30:08 Text2Speech MyTTS playing: 1
2019-01-28 21:30:08 Text2Speech MyTTS duration: 11
2019-01-28 21:30:09 Text2Speech MyTTS endTime: 00:00:00
2019-01-28 21:30:11 Text2Speech MyTTS lastFilename: /opt/fhem/Sound/doorbell-2.mp3
2019-01-28 21:30:11 Text2Speech MyTTS playing: 0
/usr/bin/omxplayer -o local --vol 400
2019.03.15 10:23:05 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2019.03.15 10:23:05 4: MyTTS: 0 => test
2019.03.15 10:23:05 4: MyTTS: Verwende TTS Spracheinstellung: Deutsch
2019.03.15 10:23:05 4: MyTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 71f783ed67e131a66e252ec9b458daaf.mp3
2019.03.15 10:23:05 4: MyTTS: Bearbeite jetzt den Text: test
2019.03.15 10:23:05 4: MyTTS: cache/71f783ed67e131a66e252ec9b458daaf.mp3 gefunden, kein Download
2019.03.15 10:23:05 4: MyTTS: cache/71f783ed67e131a66e252ec9b458daaf.mp3 hat eine Länge von 1 Sekunden.
2019.03.15 10:23:05 4: MyTTS:sudo /usr/bin/mplayer --audio-device=alsa -really-quiet -softvol -softvol-max 110 -volume 100 cache/71f783ed67e131a66e252ec9b458daaf.mp3 >/dev/null
2019.03.15 10:23:06 4: MyTTS: Es wurden 1 Teile ausgegeben und der Befehl ist abgearbeitet.
Internals:
ALSADEVICE alsa
DEF alsa
FUUID 5c6428db-f33f-edf9-355d-0acb8755d474c30d
MODE DIRECT
NAME MyTTS
NR 32
STATE Initialized
TYPE Text2Speech
VOLUME 100
READINGS:
2019-03-15 10:23:05 duration 1
2019-03-15 10:23:05 endTime 00:00:00
2019-03-15 10:23:06 lastFilename cache/71f783ed67e131a66e252ec9b458daaf.mp3
2019-03-15 10:23:06 playing 0
2019-03-15 10:22:23 volume 100
helper:
Text2Speech:
Attributes:
TTS_FileMapping Glocke:glocke.mp3 Tischglocke:tischglocke.mp3
TTS_FileTemplateDir /opt/fhem/mp3
TTS_Language Deutsch
TTS_Ressource Google
TTS_noStatisticsLog 1
room System
verbose 4
Zitat von: stratege-0815 am 15 März 2019, 11:06:43
Hallo zusammen,
eine kurze Schnellfrage - sehe ich das richtig (im Wiki) das als Ausgabe "nur" folgende Möglichkeiten bestehen:
- Klinken Ausgang
- HDMI Ausgang
- Bluetooth Speaker
- anderer FHEM Pi mit obigen Ausgängen
?
Also keine Ausgabe z.B. an ein IP Device wie ein WLAN Radio?
Beste Grüße
Jan
Zitat2019.03.15 11:59:06 4: SagEs1Pi2: Auflistung der Textbausteine nach Aufbereitung:
2019.03.15 11:59:06 4: SagEs1Pi2: 0 => templates/stereo_total_suendenbock.mp3
2019.03.15 11:59:07 4: SagEs1Pi2: Verwende TTS Spracheinstellung: Deutsch
2019.03.15 11:59:07 4: SagEs1Pi2: templates/stereo_total_suendenbock.mp3 als direkte MP3 Datei erkannt!
2019.03.15 11:59:07 4: SagEs1Pi2: Bearbeite jetzt den Text: templates/stereo_total_suendenbock.mp3
2019.03.15 11:59:07 4: SagEs1Pi2: cache/templates/stereo_total_suendenbock.mp3 gefunden, kein Download
2019.03.15 11:59:07 4: SagEs1Pi2: cache/templates/stereo_total_suendenbock.mp3 hat eine Länge von 189 Sekunden.
2019.03.15 11:59:07 4: SagEs1Pi2:sudo /usr/bin/mplayer --audio-device=alsa cache/templates/stereo_total_suendenbock.mp3
Unknown option on the command line: --audio-device
Error parsing option on the command line: --audio-device=alsa
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
2019.03.15 11:59:11 4: SagEs1Pi2: Es wurden 1 Teile ausgegeben und der Befehl ist abgearbeitet.
Zitat von: Audi_Coupe_S am 18 März 2019, 10:19:09Schau Dir den Befehl restore und das globale Attribut exclude_from_update in der Befehlsreferenz an, damit sollte das Problem zulösen sein.
Hallo,
seit einem Update gestern funktioniert bei mir das Text2Speech auch nicht mehr.
Unknown option on the command line: --audio-device=hw0.0
Error parsing option on the command line: --audio-device=hw0.0
Ein neuerlicher Updateversuch gab "nothing to do".
Was kann ich tun, das es wieder funktioniert?
Zitat
2019.03.21 21:08:39 3: CUL_HM set WZ_Heizung_Clima desired-temp 18.0 2019.03.21 21:08:40 4: MyTTS: Angabe einer direkten MP3-Datei gefunden: doorbell_15.mp3 => FileTpl_#0_0 2019.03.21 21:08:40 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung: 2019.03.21 21:08:40 4: MyTTS: 0 => mp3/doorbell_15.mp3 2019.03.21 21:08:40 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung: 2019.03.21 21:08:40 4: MyTTS: 0 => Die Raumtemperatur wurde auf 18 Grad eingestellt 2019.03.21 21:08:40 3: Die Raumtemperatur wurde auf 18 Grad eingestellt 2019.03.21 21:08:40 4: MyTTS: Verwende TTS Spracheinstellung: Deutsch 2019.03.21 21:08:40 4: MyTTS: mp3/doorbell_15.mp3 als direkte MP3 Datei erkannt! 2019.03.21 21:08:40 4: MyTTS: Bearbeite jetzt den Text: mp3/doorbell_15.mp3 2019.03.21 21:08:40 4: MyTTS: mp3/doorbell_15.mp3 gefunden, kein Download 2019.03.21 21:08:40 4: MyTTS: mp3/doorbell_15.mp3 hat eine Länge von 4 Sekunden. 2019.03.21 21:08:40 4: MyTTS:/usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 200 -volume 60 mp3/doorbell_15.mp3 >/dev/null 2019.03.21 21:08:45 4: MyTTS: Es wurden 1 Teile ausgegeben und der Befehl ist abgearbeitet. 2019.03.21 21:08:45 4: MyTTS: Verwende TTS Spracheinstellung: Deutsch 2019.03.21 21:08:45 4: MyTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: d38876340551dbf3b16149f2a0b09b3e.mp3 2019.03.21 21:08:45 4: MyTTS: Bearbeite jetzt den Text: Die Raumtemperatur wurde auf 18 Grad eingestellt 2019.03.21 21:08:45 4: MyTTS: Verwende Google OnlineResource zum Download 2019.03.21 21:08:45 4: MyTTS: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=ARRAY%280x53658e0%29 2019.03.21 21:08:46 4: MyTTS: Schreibe mp3 in die Datei cache/d38876340551dbf3b16149f2a0b09b3e.mp3 mit 26784 Bytes 2019.03.21 21:08:46 4: MyTTS: cache/d38876340551dbf3b16149f2a0b09b3e.mp3 hat eine Länge von 7 Sekunden. 2019.03.21 21:08:46 4: MyTTS:/usr/bin/mplayer -ao alsa:device=hw=0.0 -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 200 -volume 60 cache/d38876340551dbf3b16149f2a0b09b3e.mp3 >/dev/null
2019.03.21 23:06:48.147 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2019.03.21 23:06:48.148 4: MyTTS: 0 => Test
2019.03.21 23:06:48.153 3: telnetForBlockingFn_1553206008: port 41449 opened
2019.03.21 23:06:48.186 4: MyTTS: Verwende TTS Spracheinstellung: Deutsch
2019.03.21 23:06:48.188 4: MyTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 15f3ee2c2bd4e05acae32c787e103a17.mp3
2019.03.21 23:06:48.189 4: MyTTS: Bearbeite jetzt den Text: Test
2019.03.21 23:06:48.191 4: MyTTS: Verwende Google OnlineResource zum Download
2019.03.21 23:06:48.192 4: MyTTS: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=ARRAY%280x19aab40%29
2019.03.21 23:06:48.356 4: MyTTS: Schreibe mp3 in die Datei /tmp/15f3ee2c2bd4e05acae32c787e103a17.mp3 mit 14688 Bytes
2019.03.21 23:06:48.360 4: MyTTS: /tmp/15f3ee2c2bd4e05acae32c787e103a17.mp3 hat eine Länge von 4 Sekunden.
2019.03.21 23:06:48.361 4: MyTTS:/usr/bin/mplayer -ao alsa:device=hw=1.0 -nolirc -noconsolecontrols /tmp/15f3ee2c2bd4e05acae32c787e103a17.mp3
attr TTS_SpeakAsFastAsPossible != 0
--- Text2Speech_Download($hash, $file, $hash->{helper}{Text2Speech}->[0]);
+++ Text2Speech_Download($hash, $file, join(" ",@{$hash->{helper}{Text2Speech}->[0]}));
Es werden Höchsttemperaturen von 14 Grad Celsius und schwacher Wind aus Nordwest mit frischen Böen erwartet. Es kommt zu Niederschlagsmengen von 0 Liter pro Quadratmeter, die Niederschlagswahrscheinlichkeit beträgt 41 Prozent, die Sonne scheint 1 Stunden.
2019.04.09 00:56:09 4: TTS: Auflistung der Textbausteine nach Aufbereitung:
2019.04.09 00:56:09 4: TTS: 0 => Es werden Hoechsttemperaturen von 14 Grad Celsius
2019.04.09 00:56:09 4: TTS: 1 => und schwacher Wind aus Nordwest mit frischen Boeen erwartet.,;
2019.04.09 00:56:09 4: TTS: 2 => Es kommt zu Niederschlagsmengen von 0 Liter pro Quadratmeter,
2019.04.09 00:56:09 4: TTS: 3 => die Niederschlagswahrscheinlichkeit betraegt 41 Prozent,
2019.04.09 00:56:09 4: TTS: 4 => die Sonne scheint 1 Stunden.,
2019.04.09 00:56:09 4: TTS: Verwende TTS Spracheinstellung: Deutsch
2019.04.09 00:56:09 4: TTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 3af4eafcd330effa6792493fe7164469.mp3
2019.04.09 00:56:09 4: TTS: Bearbeite jetzt den Text: Es werden Hoechsttemperaturen von 14 Grad Celsius und schwacher Wind aus Nordwest mit frischen Boeen erwartet.,; Es kommt zu Niederschlagsmengen von 0 Liter pro Quadratmeter, die Niederschlagswahrscheinlichkeit betraegt 41 Prozent, die Sonne scheint 1 Stunden.,
2019.04.09 00:56:09 4: TTS: Verwende Google OnlineResource zum Download
2019.04.09 00:56:09 4: TTS: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=Es%20werden%20Hoechsttemperaturen%20von%2014%20Grad%20Celsius%20und%20schwacher%20Wind%20aus%20Nordwest%20mit%20frischen%20Boeen%20erwartet.%2C%3B%20Es%20kommt%20zu%20Niederschlagsmengen%20von%200%20Liter%20pro%20Quadratmeter%2C%20die%20Niederschlagswahrscheinlichkeit%20betraegt%2041%20Prozent%2C%20die%20Sonne%20scheint%201%20Stunden.%2C
2019.04.09 00:56:09 4: TTS: Schreibe mp3 in die Datei cache/3af4eafcd330effa6792493fe7164469.mp3 mit 0 Bytes
2019.04.09 00:56:09 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 655.
2019.04.09 00:56:09 1: stacktrace:
2019.04.09 00:56:09 1: main::__ANON__ called by ./FHEM/98_Text2Speech.pm (655)
2019.04.09 00:56:09 1: main::Text2Speech_BuildMplayerCmdString called by ./FHEM/98_Text2Speech.pm (902)
2019.04.09 00:56:09 1: main::Text2Speech_DoIt called by FHEM/Blocking.pm (194)
2019.04.09 00:56:09 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2019.04.09 00:56:09 1: main::BlockingCall called by ./FHEM/98_Text2Speech.pm (463)
2019.04.09 00:56:09 1: main::Text2Speech_Set called by fhem.pl (3693)
2019.04.09 00:56:09 1: main::CallFn called by fhem.pl (1883)
2019.04.09 00:56:09 1: main::DoSet called by fhem.pl (1915)
2019.04.09 00:56:09 1: main::CommandSet called by fhem.pl (1229)
2019.04.09 00:56:09 1: main::AnalyzeCommand called by ./FHEM/01_FHEMWEB.pm (2664)
2019.04.09 00:56:09 1: main::FW_fC called by ./FHEM/01_FHEMWEB.pm (939)
2019.04.09 00:56:09 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (567)
2019.04.09 00:56:09 1: main::FW_Read called by fhem.pl (3698)
2019.04.09 00:56:09 1: main::CallFn called by fhem.pl (745)
2019.04.09 00:56:09 4: TTS:/usr/bin/mplayer -ao pulse::bluez_sink.00_02_3C_44_F6_27.a2dp_sink -nolirc -noconsolecontrols cache/3af4eafcd330effa6792493fe7164469.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/3af4eafcd330effa6792493fe7164469.mp3.
libavformat version 57.56.101 (external)
Mismatching header version 57.56.100
Exiting... (End of file)
2019.04.09 00:56:10 4: TTS: Es wurden 5 Teile ausgegeben und weitere folgen!
2019.04.09 00:56:10 4: TTS: Verwende TTS Spracheinstellung: Deutsch
2019.04.09 00:56:10 4: TTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: c3535e52ad7377674a7b28a12a29381e.mp3
2019.04.09 00:56:10 4: TTS: Bearbeite jetzt den Text: und schwacher Wind aus Nordwest mit frischen Boeen erwartet.,; Es kommt zu Niederschlagsmengen von 0 Liter pro Quadratmeter, die Niederschlagswahrscheinlichkeit betraegt 41 Prozent, die Sonne scheint 1 Stunden.,
2019.04.09 00:56:10 4: TTS: Verwende Google OnlineResource zum Download
2019.04.09 00:56:10 4: TTS: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=und%20schwacher%20Wind%20aus%20Nordwest%20mit%20frischen%20Boeen%20erwartet.%2C%3B%20Es%20kommt%20zu%20Niederschlagsmengen%20von%200%20Liter%20pro%20Quadratmeter%2C%20die%20Niederschlagswahrscheinlichkeit%20betraegt%2041%20Prozent%2C%20die%20Sonne%20scheint%201%20Stunden.%2C
2019.04.09 00:56:10 4: TTS: Schreibe mp3 in die Datei cache/c3535e52ad7377674a7b28a12a29381e.mp3 mit 0 Bytes
2019.04.09 00:56:10 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 655.
2019.04.09 00:56:10 3: eval: {Text2Speech_Done('TTS|1|cache/3af4eafcd330effa6792493fe7164469.mp3')}
2019.04.09 00:56:10 1: stacktrace:
2019.04.09 00:56:10 1: main::__ANON__ called by ./FHEM/98_Text2Speech.pm (655)
2019.04.09 00:56:10 1: main::Text2Speech_BuildMplayerCmdString called by ./FHEM/98_Text2Speech.pm (902)
2019.04.09 00:56:10 1: main::Text2Speech_DoIt called by FHEM/Blocking.pm (194)
2019.04.09 00:56:10 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2019.04.09 00:56:10 1: main::BlockingCall called by ./FHEM/98_Text2Speech.pm (951)
2019.04.09 00:56:10 1: main::Text2Speech_Done called by (eval 1029) (1)
2019.04.09 00:56:10 1: (eval) called by fhem.pl (1128)
2019.04.09 00:56:10 1: main::AnalyzePerlCommand called by fhem.pl (1153)
2019.04.09 00:56:10 1: main::AnalyzeCommand called by fhem.pl (1082)
2019.04.09 00:56:10 1: main::AnalyzeCommandChain called by ./FHEM/98_telnet.pm (255)
2019.04.09 00:56:10 1: main::telnet_Read called by fhem.pl (3698)
2019.04.09 00:56:10 1: main::CallFn called by fhem.pl (745)
2019.04.09 00:56:10 4: TTS:/usr/bin/mplayer -ao pulse::bluez_sink.00_02_3C_44_F6_27.a2dp_sink -nolirc -noconsolecontrols cache/c3535e52ad7377674a7b28a12a29381e.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/c3535e52ad7377674a7b28a12a29381e.mp3.
libavformat version 57.56.101 (external)
Mismatching header version 57.56.100
Exiting... (End of file)
2019.04.09 00:56:10 4: TTS: Es wurden 4 Teile ausgegeben und weitere folgen!
2019.04.09 00:56:10 4: TTS: Verwende TTS Spracheinstellung: Deutsch
2019.04.09 00:56:10 4: TTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: d42429a1a26a2a8ad6a0900c7ccbbc37.mp3
2019.04.09 00:56:10 4: TTS: Bearbeite jetzt den Text: Es kommt zu Niederschlagsmengen von 0 Liter pro Quadratmeter, die Niederschlagswahrscheinlichkeit betraegt 41 Prozent, die Sonne scheint 1 Stunden.,
2019.04.09 00:56:10 4: TTS: Verwende Google OnlineResource zum Download
2019.04.09 00:56:10 4: TTS: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=Es%20kommt%20zu%20Niederschlagsmengen%20von%200%20Liter%20pro%20Quadratmeter%2C%20die%20Niederschlagswahrscheinlichkeit%20betraegt%2041%20Prozent%2C%20die%20Sonne%20scheint%201%20Stunden.%2C
2019.04.09 00:56:10 4: TTS: Schreibe mp3 in die Datei cache/d42429a1a26a2a8ad6a0900c7ccbbc37.mp3 mit 48672 Bytes
2019.04.09 00:56:10 4: TTS: cache/d42429a1a26a2a8ad6a0900c7ccbbc37.mp3 hat eine Länge von 12 Sekunden.
2019.04.09 00:56:10 4: TTS:/usr/bin/mplayer -ao pulse::bluez_sink.00_02_3C_44_F6_27.a2dp_sink -nolirc -noconsolecontrols cache/d42429a1a26a2a8ad6a0900c7ccbbc37.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/d42429a1a26a2a8ad6a0900c7ccbbc37.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: [pulse] 24000Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A: -0.0 (unknown) of 12.0 (12.0) ??,?%
A: 0.1 (00.0) of 12.0 (12.0) ??,?%
A: 0.1 (00.1) of 12.0 (12.0) ??,?%
A: 0.2 (00.1) of 12.0 (12.0) ??,?%
A: 0.3 (00.2) of 12.0 (12.0) 0.1%
A: 0.3 (00.3) of 12.0 (12.0) 0.2%
A: 0.4 (00.3) of 12.0 (12.0) 0.2%
A: 0.5 (00.4) of 12.0 (12.0) 0.2%
A: 0.6 (00.5) of 12.0 (12.0) 0.2%
A: 0.6 (00.6) of 12.0 (12.0) 0.2%
A: 0.7 (00.7) of 12.0 (12.0) 0.2%
A: 0.8 (00.8) of 12.0 (12.0) 0.2%
A: 0.9 (00.8) of 12.0 (12.0) 0.2%
A: 1.0 (00.9) of 12.0 (12.0) 0.2%
A: 1.1 (01.0) of 12.0 (12.0) 0.2%
A: 1.1 (01.1) of 12.0 (12.0) 0.2%
A: 1.2 (01.2) of 12.0 (12.0) 0.2%
A: 1.3 (01.3) of 12.0 (12.0) 0.2%
A: 1.4 (01.4) of 12.0 (12.0) 0.2%
A: 1.5 (01.4) of 12.0 (12.0) 0.2%
A: 1.6 (01.5) of 12.0 (12.0) 0.2%
A: 1.6 (01.6) of 12.0 (12.0) 0.2%
A: 1.7 (01.7) of 12.0 (12.0) 0.2%
A: 1.8 (01.8) of 12.0 (12.0) 0.2%
A: 1.9 (01.9) of 12.0 (12.0) 0.2%
A: 2.0 (01.9) of 12.0 (12.0) 0.2%
A: 2.1 (02.0) of 12.0 (12.0) 0.2%
A: 2.1 (02.1) of 12.0 (12.0) 0.2%
A: 2.2 (02.2) of 12.0 (12.0) 0.2%
A: 2.3 (02.3) of 12.0 (12.0) 0.2%
A: 2.4 (02.3) of 12.0 (12.0) 0.2%
A: 2.5 (02.4) of 12.0 (12.0) 0.2%
A: 2.6 (02.5) of 12.0 (12.0) 0.2%
A: 2.6 (02.6) of 12.0 (12.0) 0.2%
A: 2.7 (02.7) of 12.0 (12.0) 0.2%
A: 2.8 (02.7) of 12.0 (12.0) 0.2%
A: 2.9 (02.8) of 12.0 (12.0) 0.2%
A: 3.0 (02.9) of 12.0 (12.0) 0.2%
A: 3.0 (03.0) of 12.0 (12.0) 0.2%
A: 3.1 (03.1) of 12.0 (12.0) 0.2%
A: 3.2 (03.2) of 12.0 (12.0) 0.2%
A: 3.3 (03.2) of 12.0 (12.0) 0.2%
A: 3.4 (03.3) of 12.0 (12.0) 0.2%
A: 3.5 (03.4) of 12.0 (12.0) 0.2%
A: 3.5 (03.5) of 12.0 (12.0) 0.2%
A: 3.6 (03.6) of 12.0 (12.0) 0.2%
A: 3.7 (03.6) of 12.0 (12.0) 0.2%
A: 3.8 (03.7) of 12.0 (12.0) 0.2%
A: 3.9 (03.8) of 12.0 (12.0) 0.2%
A: 3.9 (03.9) of 12.0 (12.0) 0.2%
A: 4.0 (04.0) of 12.0 (12.0) 0.2%
A: 4.1 (04.1) of 12.0 (12.0) 0.2%
A: 4.2 (04.1) of 12.0 (12.0) 0.2%
A: 4.3 (04.2) of 12.0 (12.0) 0.2%
A: 4.3 (04.3) of 12.0 (12.0) 0.2%
A: 4.4 (04.4) of 12.0 (12.0) 0.2%
A: 4.5 (04.5) of 12.0 (12.0) 0.2%
A: 4.6 (04.5) of 12.0 (12.0) 0.2%
A: 4.7 (04.6) of 12.0 (12.0) 0.2%
A: 4.7 (04.7) of 12.0 (12.0) 0.2%
A: 4.8 (04.8) of 12.0 (12.0) 0.2%
A: 4.9 (04.9) of 12.0 (12.0) 0.2%
A: 5.0 (04.9) of 12.0 (12.0) 0.2%
A: 5.1 (05.0) of 12.0 (12.0) 0.2%
A: 5.2 (05.1) of 12.0 (12.0) 0.2%
A: 5.2 (05.2) of 12.0 (12.0) 0.2%
A: 5.3 (05.3) of 12.0 (12.0) 0.2%
A: 5.4 (05.3) of 12.0 (12.0) 0.2%
A: 5.5 (05.4) of 12.0 (12.0) 0.2%
A: 5.6 (05.5) of 12.0 (12.0) 0.2%
A: 5.6 (05.6) of 12.0 (12.0) 0.2%
A: 5.7 (05.7) of 12.0 (12.0) 0.2%
A: 5.8 (05.8) of 12.0 (12.0) 0.2%
A: 5.9 (05.8) of 12.0 (12.0) 0.2%
A: 6.0 (05.9) of 12.0 (12.0) 0.2%
A: 6.1 (06.0) of 12.0 (12.0) 0.2%
A: 6.1 (06.1) of 12.0 (12.0) 0.2%
A: 6.2 (06.2) of 12.0 (12.0) 0.2%
A: 6.3 (06.3) of 12.0 (12.0) 0.2%
A: 6.4 (06.3) of 12.0 (12.0) 0.2%
A: 6.5 (06.4) of 12.0 (12.0) 0.2%
A: 6.5 (06.5) of 12.0 (12.0) 0.2%
A: 6.6 (06.6) of 12.0 (12.0) 0.2%
A: 6.7 (06.7) of 12.0 (12.0) 0.2%
A: 6.8 (06.7) of 12.0 (12.0) 0.2%
A: 6.9 (06.8) of 12.0 (12.0) 0.2%
A: 6.9 (06.9) of 12.0 (12.0) 0.2%
A: 7.0 (07.0) of 12.0 (12.0) 0.2%
A: 7.1 (07.1) of 12.0 (12.0) 0.2%
A: 7.2 (07.1) of 12.0 (12.0) 0.2%
A: 7.3 (07.2) of 12.0 (12.0) 0.2%
A: 7.4 (07.3) of 12.0 (12.0) 0.2%
A: 7.4 (07.4) of 12.0 (12.0) 0.2%
A: 7.5 (07.5) of 12.0 (12.0) 0.2%
A: 7.6 (07.5) of 12.0 (12.0) 0.2%
A: 7.7 (07.6) of 12.0 (12.0) 0.2%
A: 7.8 (07.7) of 12.0 (12.0) 0.2%
A: 7.8 (07.8) of 12.0 (12.0) 0.2%
A: 7.9 (07.9) of 12.0 (12.0) 0.2%
A: 8.0 (08.0) of 12.0 (12.0) 0.2%
A: 8.1 (08.0) of 12.0 (12.0) 0.2%
A: 8.2 (08.1) of 12.0 (12.0) 0.2%
A: 8.3 (08.2) of 12.0 (12.0) 0.2%
A: 8.3 (08.3) of 12.0 (12.0) 0.2%
A: 8.4 (08.4) of 12.0 (12.0) 0.2%
A: 8.5 (08.4) of 12.0 (12.0) 0.2%
A: 8.6 (08.5) of 12.0 (12.0) 0.2%
A: 8.7 (08.6) of 12.0 (12.0) 0.2%
A: 8.7 (08.7) of 12.0 (12.0) 0.2%
A: 8.8 (08.8) of 12.0 (12.0) 0.2%
A: 8.9 (08.9) of 12.0 (12.0) 0.2%
A: 9.0 (08.9) of 12.0 (12.0) 0.2%
A: 9.1 (09.0) of 12.0 (12.0) 0.2%
A: 9.2 (09.1) of 12.0 (12.0) 0.2%
A: 9.2 (09.2) of 12.0 (12.0) 0.2%
A: 9.3 (09.3) of 12.0 (12.0) 0.2%
A: 9.4 (09.4) of 12.0 (12.0) 0.2%
A: 9.5 (09.5) of 12.0 (12.0) 0.2%
A: 9.6 (09.5) of 12.0 (12.0) 0.2%
A: 9.6 (09.6) of 12.0 (12.0) 0.2%
A: 9.7 (09.7) of 12.0 (12.0) 0.2%
A: 9.9 (09.8) of 12.0 (12.0) 0.2%
A: 10.0 (09.9) of 12.0 (12.0) 0.2%
A: 10.1 (10.0) of 12.0 (12.0) 0.2%
A: 10.1 (10.1) of 12.0 (12.0) 0.2%
A: 10.2 (10.1) of 12.0 (12.0) 0.2%
A: 10.3 (10.2) of 12.0 (12.0) 0.2%
A: 10.3 (10.3) of 12.0 (12.0) 0.2%
A: 10.4 (10.3) of 12.0 (12.0) 0.2%
A: 10.4 (10.4) of 12.0 (12.0) 0.2%
A: 10.5 (10.5) of 12.0 (12.0) 0.2%
A: 10.6 (10.5) of 12.0 (12.0) 0.2%
A: 10.6 (10.6) of 12.0 (12.0) 0.2%
A: 10.7 (10.7) of 12.0 (12.0) 0.2%
A: 10.8 (10.7) of 12.0 (12.0) 0.2%
A: 10.9 (10.8) of 12.0 (12.0) 0.2%
A: 10.9 (10.9) of 12.0 (12.0) 0.2%
A: 11.0 (11.0) of 12.0 (12.0) 0.2%
A: 11.1 (11.0) of 12.0 (12.0) 0.2%
A: 11.2 (11.1) of 12.0 (12.0) 0.2%
A: 11.2 (11.2) of 12.0 (12.0) 0.2%
A: 11.3 (11.3) of 12.0 (12.0) 0.2%
A: 11.4 (11.3) of 12.0 (12.0) 0.2%
A: 11.5 (11.4) of 12.0 (12.0) 0.2%
A: 11.6 (11.5) of 12.0 (12.0) 0.2%
A: 11.6 (11.6) of 12.0 (12.0) 0.2%
A: 11.7 (11.7) of 12.0 (12.0) 0.2%
A: 11.8 (11.8) of 12.0 (12.0) 0.2%
A: 11.9 (11.8) of 12.0 (12.0) 0.2%
Exiting... (End of file)
2019.04.09 00:56:23 4: TTS: Es wurden 3 Teile ausgegeben und weitere folgen!
2019.04.09 00:56:23 4: TTS: Verwende TTS Spracheinstellung: Deutsch
2019.04.09 00:56:23 4: TTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 642ef57d00248568ea9b5efda2c3ef9c.mp3
2019.04.09 00:56:23 4: TTS: Bearbeite jetzt den Text: die Niederschlagswahrscheinlichkeit betraegt 41 Prozent, die Sonne scheint 1 Stunden.,
2019.04.09 00:56:23 4: TTS: Verwende Google OnlineResource zum Download
2019.04.09 00:56:23 4: TTS: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=die%20Niederschlagswahrscheinlichkeit%20betraegt%2041%20Prozent%2C%20die%20Sonne%20scheint%201%20Stunden.%2C
2019.04.09 00:56:23 4: TTS: Schreibe mp3 in die Datei cache/642ef57d00248568ea9b5efda2c3ef9c.mp3 mit 28800 Bytes
2019.04.09 00:56:23 4: TTS: cache/642ef57d00248568ea9b5efda2c3ef9c.mp3 hat eine Länge von 7 Sekunden.
2019.04.09 00:56:23 4: TTS:/usr/bin/mplayer -ao pulse::bluez_sink.00_02_3C_44_F6_27.a2dp_sink -nolirc -noconsolecontrols cache/642ef57d00248568ea9b5efda2c3ef9c.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/642ef57d00248568ea9b5efda2c3ef9c.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: [pulse] 24000Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A: -0.0 (unknown) of 7.0 (07.0) ??,?%
A: 0.1 (00.0) of 7.0 (07.0) ??,?%
A: 0.1 (00.1) of 7.0 (07.0) ??,?%
A: 0.2 (00.1) of 7.0 (07.0) ??,?%
A: 0.3 (00.2) of 7.0 (07.0) 0.1%
A: 0.3 (00.3) of 7.0 (07.0) 0.1%
A: 0.4 (00.3) of 7.0 (07.0) 0.1%
A: 0.5 (00.4) of 7.0 (07.0) 0.1%
A: 0.5 (00.5) of 7.0 (07.0) 0.1%
A: 0.6 (00.5) of 7.0 (07.0) 0.1%
A: 0.7 (00.6) of 7.0 (07.0) 0.2%
A: 0.8 (00.7) of 7.0 (07.0) 0.2%
A: 0.8 (00.8) of 7.0 (07.0) 0.2%
A: 0.9 (00.9) of 7.0 (07.0) 0.2%
A: 1.0 (01.0) of 7.0 (07.0) 0.2%
A: 1.1 (01.0) of 7.0 (07.0) 0.2%
A: 1.2 (01.1) of 7.0 (07.0) 0.2%
A: 1.3 (01.2) of 7.0 (07.0) 0.2%
A: 1.3 (01.3) of 7.0 (07.0) 0.2%
A: 1.4 (01.4) of 7.0 (07.0) 0.2%
A: 1.5 (01.5) of 7.0 (07.0) 0.2%
A: 1.6 (01.5) of 7.0 (07.0) 0.2%
A: 1.7 (01.6) of 7.0 (07.0) 0.2%
A: 1.7 (01.7) of 7.0 (07.0) 0.2%
A: 1.8 (01.8) of 7.0 (07.0) 0.2%
A: 1.9 (01.8) of 7.0 (07.0) 0.2%
A: 2.0 (01.9) of 7.0 (07.0) 0.2%
A: 2.1 (02.0) of 7.0 (07.0) 0.2%
A: 2.1 (02.1) of 7.0 (07.0) 0.2%
A: 2.2 (02.2) of 7.0 (07.0) 0.2%
A: 2.3 (02.2) of 7.0 (07.0) 0.2%
A: 2.4 (02.3) of 7.0 (07.0) 0.2%
A: 2.4 (02.4) of 7.0 (07.0) 0.2%
A: 2.5 (02.5) of 7.0 (07.0) 0.2%
A: 2.6 (02.5) of 7.0 (07.0) 0.2%
A: 2.7 (02.6) of 7.0 (07.0) 0.2%
A: 2.8 (02.7) of 7.0 (07.0) 0.2%
A: 2.8 (02.8) of 7.0 (07.0) 0.2%
A: 2.9 (02.9) of 7.0 (07.0) 0.2%
A: 3.0 (02.9) of 7.0 (07.0) 0.2%
A: 3.1 (03.0) of 7.0 (07.0) 0.2%
A: 3.2 (03.1) of 7.0 (07.0) 0.2%
A: 3.2 (03.2) of 7.0 (07.0) 0.2%
A: 3.3 (03.3) of 7.0 (07.0) 0.2%
A: 3.4 (03.3) of 7.0 (07.0) 0.2%
A: 3.5 (03.4) of 7.0 (07.0) 0.2%
A: 3.6 (03.5) of 7.0 (07.0) 0.2%
A: 3.6 (03.6) of 7.0 (07.0) 0.2%
A: 3.7 (03.7) of 7.0 (07.0) 0.2%
A: 3.8 (03.7) of 7.0 (07.0) 0.2%
A: 3.9 (03.8) of 7.0 (07.0) 0.2%
A: 3.9 (03.9) of 7.0 (07.0) 0.2%
A: 4.0 (04.0) of 7.0 (07.0) 0.2%
A: 4.1 (04.0) of 7.0 (07.0) 0.2%
A: 4.2 (04.1) of 7.0 (07.0) 0.2%
A: 4.3 (04.2) of 7.0 (07.0) 0.2%
A: 4.3 (04.3) of 7.0 (07.0) 0.2%
A: 4.4 (04.4) of 7.0 (07.0) 0.2%
A: 4.5 (04.4) of 7.0 (07.0) 0.2%
A: 4.6 (04.5) of 7.0 (07.0) 0.2%
A: 4.7 (04.6) of 7.0 (07.0) 0.2%
A: 4.7 (04.7) of 7.0 (07.0) 0.2%
A: 4.8 (04.8) of 7.0 (07.0) 0.2%
A: 4.9 (04.8) of 7.0 (07.0) 0.2%
A: 5.0 (04.9) of 7.0 (07.0) 0.2%
A: 5.0 (05.0) of 7.0 (07.0) 0.2%
A: 5.1 (05.1) of 7.0 (07.0) 0.2%
A: 5.2 (05.2) of 7.0 (07.0) 0.2%
A: 5.3 (05.2) of 7.0 (07.0) 0.2%
A: 5.4 (05.3) of 7.0 (07.0) 0.2%
A: 5.4 (05.4) of 7.0 (07.0) 0.2%
A: 5.5 (05.5) of 7.0 (07.0) 0.2%
A: 5.6 (05.5) of 7.0 (07.0) 0.2%
A: 5.7 (05.6) of 7.0 (07.0) 0.2%
A: 5.7 (05.7) of 7.0 (07.0) 0.2%
A: 5.8 (05.8) of 7.0 (07.0) 0.2%
A: 5.9 (05.9) of 7.0 (07.0) 0.2%
A: 6.0 (05.9) of 7.0 (07.0) 0.2%
A: 6.1 (06.0) of 7.0 (07.0) 0.2%
A: 6.1 (06.1) of 7.0 (07.0) 0.2%
A: 6.2 (06.2) of 7.0 (07.0) 0.2%
A: 6.3 (06.3) of 7.0 (07.0) 0.2%
A: 6.4 (06.3) of 7.0 (07.0) 0.2%
A: 6.5 (06.4) of 7.0 (07.0) 0.2%
A: 6.5 (06.5) of 7.0 (07.0) 0.2%
A: 6.6 (06.6) of 7.0 (07.0) 0.2%
A: 6.7 (06.6) of 7.0 (07.0) 0.2%
A: 6.8 (06.7) of 7.0 (07.0) 0.2%
A: 6.9 (06.8) of 7.0 (07.0) 0.2%
A: 6.9 (06.9) of 7.0 (07.0) 0.2%
A: 7.0 (06.9) of 7.0 (07.0) 0.2%
Exiting... (End of file)
2019.04.09 00:56:31 4: TTS: Es wurden 2 Teile ausgegeben und weitere folgen!
Internals:
ALSADEVICE default
DEF default
FUUID 5c4b8856-f33f-55cb-1398-1fa02cbec5dd4f32
FVERSION 98_Text2Speech.pm:0.191160/2019-04-05
MODE DIRECT
NAME TTS
NR 133
STATE Initialized
TYPE Text2Speech
READINGS:
2019-04-09 00:56:36 duration 2
2019-04-09 00:56:36 endTime 00:00:00
2019-04-09 00:56:39 lastFilename cache/3db4c6b48e103772f53354070c331c7f.mp3
2019-04-09 00:56:39 playing 0
2017-07-08 00:03:00 volume 100
helper:
Text2Speech:
Attributes:
TTS_Language Deutsch
TTS_MplayerCall /usr/bin/mplayer -ao pulse::bluez_sink.00_02_3C_44_F6_27.a2dp_sink
TTS_SpeakAsFastAsPossible 1
TTS_TimeOut 60
TTS_UseMP3Wrap 0
room TOOLS
verbose 5
Es werden Höchsttemperaturen von 14 Grad Celsius und schwacher Wind aus Nordwest mit frischen Böen erwartet. Es kommt zu Niederschlagsmengen von 0 Liter pro Quadratmeter, die Niederschlagswahrscheinlichkeit beträgt 41 Prozent, die Sonne scheint 1 Stunden.
Text2Speech_Download($hash, $file, join(" ",@{$hash->{helper}{Text2Speech}->[0]}));
splice(@{$hash->{helper}{Text2Speech}->[0]}, 0, $tts_done);
$hash->{helper}{RUNNING_PID} = BlockingCall("Text2Speech_DoIt", $hash, "Text2Speech_Done", $TTS_TimeOut, "Text2Speech_AbortFn", $hash);
Text2Speech_Download($hash, $file, join(" ",@{$hash->{helper}{Text2Speech}->[0]}));
https://github.com/mhop/fhem-mirror/blob/78165781376a8abbb094eb85a109022fc0214d53/fhem/FHEM/98_Text2Speech.pm
Zitat von: mumpitzstuff am 10 April 2019, 00:16:06Code Auswählenhttps://github.com/mhop/fhem-mirror/blob/78165781376a8abbb094eb85a109022fc0214d53/fhem/FHEM/98_Text2Speech.pm
Zitat2019.04.11 17:07:16 3: MyTTS: Fehler beim abrufen der Daten von Google Translator
2019.04.11 17:07:16 3: MyTTS: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=BAUMA: Can't connect(1) to http://translate.google.com:80: IO::Socket::INET: Bad hostname 'translate.google.com:80'
2019.04.11 17:07:16 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 756.
2019.04.11 17:07:16 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 655.
2019.04.11 17:11:34 3: MyTTS: Fehler beim abrufen der Daten von Google Translator
2019.04.11 17:11:34 3: MyTTS: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=hihohuuu: Can't connect(1) to http://translate.google.com:80: IO::Socket::INET: Bad hostname 'translate.google.com:80'
2019.04.11 17:11:34 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 756.
2019.04.11 17:11:34 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 655.
2019.04.11 17:12:25 3: MyTTS: Fehler beim abrufen der Daten von Google Translator
2019.04.11 17:12:25 3: MyTTS: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=hghfhf: Can't connect(1) to http://translate.google.com:80: IO::Socket::INET: Bad hostname 'translate.google.com:80'
2019.04.11 17:12:25 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 756.
2019.04.11 17:12:25 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 655.
ZitatWenn ich auf die links in deinem Post klicke geht der Browser auf und ich habe Sound. Bei Dir auch?Ja, aus meinem Headset kommt das auch, aber halt nicht mehr über das Text2Spech Modul - nutzt Du das? Klappt bei Dir ein
set <<DeinTTSDevice>> tts aaabbbcccddddeeeeee
Zitat2019.04.12 15:52:35 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2019.04.12 15:52:35 4: MyTTS: 0 => warum geht text2speech nicht mehr?
2019.04.12 15:52:35 4: MyTTS: Verwende TTS Spracheinstellung: Deutsch
2019.04.12 15:52:35 4: MyTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: c9c7633bec995f9dfea60331411052a0.mp3
2019.04.12 15:52:35 4: MyTTS: Verwende Google OnlineResource zum Download
2019.04.12 15:52:35 4: MyTTS: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=warum%20geht%20text2speech%20nicht%20mehr%3F
2019.04.12 15:52:35 3: MyTTS: Fehler beim abrufen der Daten von Google Translator
2019.04.12 15:52:35 3: MyTTS: http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=warum%20geht%20text2speech%20nicht%20mehr%3F: Can't connect(1) to http://translate.google.com:80: IO::Socket::INET: Bad hostname 'translate.google.com:80'
2019.04.12 15:52:35 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 756.
2019.04.12 15:52:35 4: MyTTS: Schreibe mp3 in die Datei cache/c9c7633bec995f9dfea60331411052a0.mp3 mit Bytes
2019.04.12 15:52:35 4: MyTTS: Bearbeite jetzt den Text: warum geht text2speech nicht mehr?
2019.04.12 15:52:35 4: MyTTS: cache/c9c7633bec995f9dfea60331411052a0.mp3 gefunden, kein Download
2019.04.12 15:52:35 1: PERL WARNING: Use of uninitialized value $mp3Duration in string at ./FHEM/98_Text2Speech.pm line 655.
2019.04.12 15:52:35 4: MyTTS:sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols cache/c9c7633bec995f9dfea60331411052a0.mp3
MPlayer svn r34540 (Raspbian), built with gcc-4.6 (C) 2000-2012 MPlayer Team
Playing cache/c9c7633bec995f9dfea60331411052a0.mp3.
libavformat version 53.21.1 (external)
Mismatching header version 53.19.0
Exiting... (End of file)
2019.04.12 15:52:37 4: MyTTS: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.
Zitat
Internals:
ALSADEVICE hw=0.0
DEF hw=0.0
FUUID 5c5554b2-f33f-1574-93af-8fe91cdd22264e4c
MODE DIRECT
NAME MyTTS
NR 46
STATE Initialized
TYPE Text2Speech
READINGS:
2019-04-12 15:52:35 duration
2019-04-12 15:52:35 endTime 00:00:00
2019-04-12 15:52:36 lastFilename cache/c9c7633bec995f9dfea60331411052a0.mp3
2019-04-12 15:52:37 playing 0
2016-02-20 10:29:35 volume 100
helper:
Text2Speech:
Attributes:
TTS_Language Deutsch
TTS_UseMP3Wrap 1
disable 0
room xxxxxx
verbose 5
ZitatCan't connect(1) to http://translate.google.com:80: IO::Socket::INET: Bad hostname 'translate.google.com:80'
ping translate.google.com
Zitatpi@raspberrypi ~ $ ping translate.google.com
ping: unknown host translate.google.com
Zitat von: Dr. Boris Neubert am 10 April 2019, 18:38:58
Hallo,
hier eine Metainformation aus der Moderation.
Es gibt nur eine Wahrheit, und die liegt im SVN: https://svn.fhem.de/trac/browser/trunk (https://svn.fhem.de/trac/browser/trunk)
Bitte hier Patches posten und den Maintainer idealerweise per PM informieren, wenn sich zeigt, dass er nicht auf die Nachrichten hier anspricht.
Viele Grüße
Boris
ZitatBesteht die Möglichkeit uns an deinem Wissen teilhaben zu lassen?Klar, ist ein Kapitel im neuen FHEM-Buch ;D ;D
sudo pip3 install awscli
sudo -u fhem aws configure
aws polly synthesize-speech --output-format mp3 --voice-id Marlene --text '%text%' abc.mp3
cpan Paws
Zitat von: mumpitzstuff am 17 April 2019, 20:48:29
Hier die Änderungen noch mal als Diff.
Zitat von: mumpitzstuff am 17 April 2019, 20:55:14
Amazon Polly einzubinden scheint gar nicht so kompliziert zu sein, das könnte man bestimmt auch einfach in dieses Modul integrieren.Code Auswählensudo pip3 install awscli
sudo -u fhem aws configure
Und dann an geeigneter Stelle im Code:Code Auswählenaws polly synthesize-speech --output-format mp3 --voice-id Marlene --text '%text%' abc.mp3
Das splitten des Textes müsste man dann einfach nicht machen, da es bei Amazon ja keine Limitierung gibt.
ZitatHört sich nach einer ernstzunehmenden neuen TTS Engine anNein. Amazon hat die Firma Ivona aufgekauft, die die anerkannt beste Engine hatte. Seitdem heißt das Amazon Polly.
ZitatWer Glück hat, findet auch heute noch im Internet ein kostenloses Software-Paket von Ivona, mit dem die beste
deutsche Stimme "Marlene" an Stelle der normalen TTS-Engine auf Android-Smartphones installiert werden kann. Suchen Sie
nach den Regulären Ausdrücken
com.ivona.tts..*.apk
com.ivona.tts.voicebeta.deu.deu.marlene*...apk
Zitat von: Tobias am 22 April 2019, 07:45:23
Bitte prüft mal, ob es jetzt funktioniert. Ist eingecheckt. Ich wollte erst NUR die erine ZEile mit dem Join zurücknehmen, hab mich dann aber doch für den patch entschieden
Ich bin bei mir gerade am umbauen und haben keine TTS Hardware angeschlossen. Deswegen konnte ich die Funktionalität nur ohne Ton in der FHEM WebUI testen
ZitatGibts das als Debian Package
2019.04.24 16:54:05 4: TTS_EG_WZ: Auflistung der Textbausteine nach Aufbereitung:
2019.04.24 16:54:05 4: TTS_EG_WZ: 0 => Das ist mein Test Nummer 2.
2019.04.24 16:54:05 4: TTS_EG_WZ: Verwende TTS Spracheinstellung: Deutsch
2019.04.24 16:54:05 4: TTS_EG_WZ: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 7c564a078d42029883d0c5f20f1f1f94.mp3
2019.04.24 16:54:06 4: TTS_EG_WZ: Schreibe mp3 in die Datei cache/7c564a078d42029883d0c5f20f1f1f94.mp3 mit 27 Chars
2019.04.24 16:54:06 4: TTS_EG_WZ: Bearbeite jetzt den Text: Das ist mein Test Nummer 2.
2019.04.24 16:54:06 4: TTS_EG_WZ: cache/7c564a078d42029883d0c5f20f1f1f94.mp3 gefunden, kein Download
2019.04.24 16:54:06 4: TTS_EG_WZ: cache/7c564a078d42029883d0c5f20f1f1f94.mp3 hat eine Länge von 2 Sekunden.
2019.04.24 16:54:06 4: TTS_EG_WZ:/usr/bin/mplayer -ao alsa:device=hw=1,0 -really-quiet -nolirc -noconsolecontrols cache/7c564a078d42029883d0c5f20f1f1f94.mp3 >/dev/null
2019.04.24 16:54:08 4: TTS_EG_WZ: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.
Zitat<li>TTS_MplayerCall<br>
Optional: Angabe des Systemaufrufes zu Mplayer oder einem anderem Tool. Wird ein anderes Tool als mplayer<br>
dort verwendet gelten folgende Templates: <br>
<ul>
<li>{device}</li>
<li>{volume}</li>
<li>{volumeadjust}</li>
<li>{file}</li>
</ul>
Beispiele:<br>
<code>attr myTTS TTS_MplayerCall sudo /usr/bin/mplayer</code>
<code>attr myTTS TTS_MplayerCall AUDIODEV={device} play -q -v {volume} {file}</code>
</li>
use Text::Iconv;
...
#-- we may have problems with umlaut characters
my $converter = Text::Iconv->new("utf-8", "iso-8859-1");
my $text = $converter->convert($texti);
Zitat von: Prof. Dr. Peter Henning am 25 April 2019, 08:37:46
- Ausgabe: Für die Ausgabe auf Soundsystemen wäre es schön, wenn der Mechanismus implementiert wäre, den ich in dem Polly-Code auch habe: Kombination des gesamten Audiomaterials in einer Datei mit festem Namen, diese wird in ein bestimmtes Verzeichnis (eines DLNA-Servers...) geschoben, nachdem die vorher dort vorhandene Datei gleichen Namens gelöscht worden ist (Aushebeln des DLNA Caching). Dann müsste eiN Abspielbefehl an ein FHEM-Device übermittelt werden.
define TTS_SERVER Text2Speech none
attr TTS_SERVER TTS_Language Deutsch
attr TTS_SERVER TTS_TimeOut 60
attr TTS_SERVER TTS_UseMP3Wrap 1
defmod nty_TTS_SERVER notify TTS_SERVER:lastFilename.* set RADIO_WOHNZIMMER stream $EVTPART1
ZitatFinde ich eine super Idee. Sowas suche Ich zurzeit.
Zitatnice-to-haveist das eher nicht - und "löschen plus neu schreiben" statt einfach nur "überschreiben" wären nur 2 Codezeilen im Modul. Dann könnte man durch ein einzelnes Attribut abhaken, welche der beiden Schreibmöglichkeiten für die endgültige Datei gewählt wird.
ZitatWarum muss der Dateiname fest sein?Bose-Systeme können keine Streams abspielen, die sie über das Netz bekommen. Und die Verbindung über Bluetooth ist mir zu wackelig.
Zitat von: Tobias am 25 April 2019, 09:26:55Du sprichst hier lastFilename an ?
Mittels notify kann man auf ein filename event des TTs Moduls reagieren.
ZitatFalls man wirklich einen festen Dateinamen benötigt sehe ich ein neues Attribut wo man einen Pfad mit Dateinamen angeben kann Diesen kann man nur setzen wenn mp3wrap aktiviert ist. Ist dieser gesetzt wird das EndErgebnis immer in diese Datei geschrieben und "lastfilename" angetriggert.Klingt gut.
Class=0x20041C
aus Zitat/var/lib/bluetooth/XX:XX:XX:XX:XX:XX/settingslöscht.
sudo nano /etc/bluetooth/audio.conf
[General]
Enable=Source,Sink,Headset,Gateway,Control,Media,Socket
Class=0x20041C
sudo nano /etc/bluetooth/main.conf
[General]
Name = UD100
Class = 0x20041C
[General]
Discoverable=false
DiscoverableTimeout=60
Alias=UD100
ZitatKostenloses Kontingent
5 Millionen Zeichen pro Monat
Das kostenlose Kontingent von Amazon Polly umfasst 5 Mio. Zeichen pro Monat für Sprach- oder Sprach-Metadaten-Anforderungen während der ersten 12 Monate ab Ihrer ersten Sprachanfrage.
ZitatNutzungsabhängiges Modell1Mio Zeichen für 4$ bezeichne ich als so gut wie kostenlos
Sie erhalten monatlich eine Rechnung über die Anzahl der verarbeiteten Textzeichen. Außerhalb des kostenlosen Kontingents werden für Amazon Polly für Sprach- oder Sprach-Metadaten-Anforderungen 4,00 USD pro 1 Millionen Zeichen berechnet.
ZitatTTS_OutputFile
Angabe eines fixen Dateinamens als mp3 Output. Das Attribut ist nur relevant in Verbindung mit TTS_UseMP3Wrap.
Wenn ein Dateinamen angegeben wird, so wird zusätzlich TTS_CacheFileDir beachtet. Bei einer absoluten Pfadangabe
muss der Dateipfad durch FHEM schreibbar sein.
<code>attr myTTS TTS_OutputFile output.mp3</code>
<code>attr myTTS TTS_OutputFile /media/miniDLNA/output.mp3</code>
ZitatAmazonPolly ist Welten besserSag ich ja - und nicht Amazon hats erfunden...
sudo -u fhem aws polly synthesize-speech --output-format mp3 --voice-id Marlene --text 'Das ist ein Test' test.mp3
Unknown output type: mp3
Zitat von: Ellert am 26 April 2019, 16:30:04
Die Umlaute funktionieren jetzt auch bei mir wieder.
Ein bestehendes Problem bleibt die Trennung bei "und".
Ein Beispiel, hörbar im Anhang:
Ich habe keinen Grund zugehen aber Du gehst immer wieder grundlos oder ist es weil du rundlich bist oder was ist los mit dir und deinem Hund Marie
Edit:
Die Amazon Stimme haut mich jetzt nicht vom Hocker, sie spricht ziemlich schnell und hat kaum Modulation in Vergleich zu Google. Das ist auch die unvoreingenommene Einschätzung meiner Frau.
@text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, "und", 0, "af");
@text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, "\bund\b", 0, "af");
system("wget -q --user-agent='Mozilla/5.0' \'http://translate.google.de/translate_tts?ie=UTF-8&tl=de&client=tw-ob&q=$text\' -O $file.mp3")
ZitatIch habe keinen Grund zugehen aber Du gehst immer wieder grundlos oder ist es weil du rundlich bist oder was ist los mit dir und deinem Hund Marie
ZitatIch habe keinen Grund zu gehen, aber Du gehst immer wieder grundlos - oder ist es weil du rundlich bist? Oder was ist los mit dir und deinem Hund, Marie?
ZitatDie Amazon Stimme haut mich jetzt nicht vom Hocker, sie spricht ziemlich schnell und hat kaum Modulation in Vergleich zu Google..
ZitatDas ist auch die unvoreingenommene Einschätzung meiner Frau.
Zitat von: Prof. Dr. Peter Henning am 26 April 2019, 16:51:31Das Beispiel ist zur Verdeutlichung gedacht. Die fehlerhafte Trennung kommt in der Praxis vor.
Pack mal Interpunktion rein - das wirkt Wunder
Zitat von: mumpitzstuff am 26 April 2019, 16:48:58Code Auswählen@text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, "\bund\b", 0, "af");
2019.04.26 17:56:35 1: PERL WARNING: Use of uninitialized value within %ttsUser in numeric gt (>) at ./FHEM/98_Text2Speech.pm line 460.
2019.04.26 17:56:35 1: PERL WARNING: Use of uninitialized value within %ttsAPIKey in numeric gt (>) at ./FHEM/98_Text2Speech.pm line 459.
return "No APIKey specified" if (!defined($TTS_APIKey) && defined($ttsAPIKey{$TTS_Ressource}) && length($ttsAPIKey{$TTS_Ressource})>0);
return "No Username for TTS Access specified" if (!defined($TTS_User) && defined($ttsUser{$TTS_Ressource}) && length($ttsUser{$TTS_Ressource})>0);
use paws;
use Paws;
return "No APIKey specified" if (!defined($TTS_APIKey) && defined($ttsAPIKey{$TTS_Ressource}) && length($ttsAPIKey{$TTS_Ressource})>0);
return "No Username for TTS Access specified" if (!defined($TTS_User) && defined($ttsUser{$TTS_Ressource}) && length($ttsUser{$TTS_Ressource})>0);
cpan paws
ZitatEs muss aber Paws sein!So steht es in meiner Anleitung, gut bemerkt. Da steht auch, dass es lange dauert. Aber von Krampf kann keine Rede sein, und bei CPAN geht eben in der Regel _nichts_ schief.
Zitat von: Tobias am 29 April 2019, 16:30:31Die Nutzung von File::HomeDir wird sicherlich für Aufregung sorgen. Kann das Laden des Moduls davon abhängig gemacht werden, ob aws genutzt wird?
neue TestVersion in mein Git released. Bitte testen
Einige Bugfixes sind raus. Den Patch von Hanjo habe ich größtenteils übernommen. Die Einbindung der Paws Library habe ich korrigiert
Vor allem bitte mal Umlaute mit Google testen.
ZitatIst ja schnell eingerichtet und definiert und kein Hexenwerk ;) Mein FHEM User kann sich auch anmelden sodass ich nicht mit root arbeiten muss ;)Sicher, aber das sollte nicht Voraussetzung für ein funktionierendes Update sein.
Zitat von: Ellert am 30 April 2019, 13:28:40Das glaub ich so nicht.
Soweit mir bekannt wird bei einer Standardinstallation der user fhem ohne Homeverzeichnis angelegt.
{qx(echo ~fhem)}
gibt bei allen meinem Systemen /opt/fhemfhem:x:999:20::/opt/fhem:/bin/false
Zitat von: Otto123 am 30 April 2019, 13:47:03
Also meines Wissen wird der user fhem mit dem FHEM Installationspfad als Homedir angelegt. Er wird ohne Anmeldung angelegt.
Eintrag in der passwdCode Auswählenfhem:x:999:20::/opt/fhem:/bin/false
Gruß Otto
{$ENV{PWD}}
enthält den Homepath ?PWD = /opt/fhem
OLDPWD = /
PERL_LWP_SSL_VERIFY_HOSTNAME = 0
LANG = en_GB.UTF-8
PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2019.04.30 14:30:20 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at (eval 4908605) line 1.
2019.04.30 14:30:20 3: eval: {my $key;foreach $key (keys %ENV) { printf "$key = $ENV{$key}\n" }}
HOME =
{my $key;;foreach $key (keys %ENV) { printf "$key = $ENV{$key}\n" }}
{qx(echo ~fhem)}
liefert bei mir auch /opt/fhem, demnach lag ich falsch.useradd --system --home /opt/fhem --gid dialout --shell /bin/false fhem
Zitat-r, --systemMöglicherweise liegt hier die Diskrepanz zwischen $ENV und Home_Dir.
erstellt ein Systemkonto
Systembenutzer werden ohne Hinterlegung ihres Alters in /etc/shadow erstellt. Ihre numerische Kennung wird aus der Spanne SYS_UID_MIN bis SYS_UID_MAX anstelle von UID_MIN bis UID_MAX gewählt (gleiches gilt für die GID bei der Erstellung von Gruppen).
Note that useradd will not create a home directory for such a user, regardless of the default setting in /etc/login.defs ( CREATE_HOME). You have to specify the -m options if you want a home directory for a system account to be created.
{qx(echo \$HOME)}
liefert nichtsecho $HOME
als user pi ausgeführt liefert /home/pi
"Messages collected while initializing FHEM:
configfile: Cannot load module Text2Speech"
2019.05.02 20:19:50 1: reload: Error:Modul 98_Text2Speech deactivated:
Can't locate Text/Iconv.pm in @INC (you may need to install the Text::Iconv module) (@INC contains: . D:/fhem_portable/perl/site/lib D:/fhem_portable/perl/vendor/lib D:/fhem_portable/perl/lib ./FHEM) at ./FHEM/98_Text2Speech.pm line 28, <$fh> line 432.
BEGIN failed--compilation aborted at ./FHEM/98_Text2Speech.pm line 28, <$fh> line 432.
2019.05.02 20:19:50 0: Can't locate Text/Iconv.pm in @INC (you may need to install the Text::Iconv module) (@INC contains: . D:/fhem_portable/perl/site/lib D:/fhem_portable/perl/vendor/lib D:/fhem_portable/perl/lib ./FHEM) at ./FHEM/98_Text2Speech.pm line 28, <$fh> line 432.
BEGIN failed--compilation aborted at ./FHEM/98_Text2Speech.pm line 28, <$fh> line 432.
2019.05.02 20:19:55 1: configfile: Cannot load module Text2Speech
Please define MyTTS 5c4eaa1b-f33f-17a4-cc5e-44e272b9ef9d9208 first
ZitatPerlmodul Text::Iconv ist tatsächlich nicht installiert. Wird es benötigt?::) ::)
set myTTS tts <speak>Mary had a little lamb.</speak>
ZitatWo genau kann man die FHEM-Modulanforderungen bezügl. Perlmodule nachschauen?In den Fehlermeldungen - vorausgesetzt, man ignoriert sie nicht.
Zitat von: Prof. Dr. Peter Henning am 03 Mai 2019, 18:17:07Sorry, aber das finde ich falsch. Es mag sein, dass mancher durchs Leben geht und nur aus Fehlern lernt oder auch nicht.
In den Fehlermeldungen - vorausgesetzt, man ignoriert sie nicht.
LG
pah
ZitatWo genau kann man die FHEM-Modulanforderungen bezügl. Perlmodule nachschauen?Normalerweise in der Doku / Commandref.
ZitatSorry, aber das finde ich falschDie Erfahrung zeigt, dass die CommandRef erst nach dem ersten Installationsversuch gelesen wird.
Zitat von: Prof. Dr. Peter Henning am 04 Mai 2019, 10:24:07Ich weiß dies ist jetzt OT. Aber ich kann jetzt nicht anders :)
Die Erfahrung zeigt, dass die CommandRef erst nach dem ersten Installationsversuch gelesen wird.
2019.05.02 20:19:50 1: reload: Error:Modul 98_Text2Speech deactivated:
Can't locate Text/Iconv.pm in @INC (you may need to install the Text::Iconv module) (@INC contains: . D:/fhem_portable/perl/site/lib D:/fhem_portable/perl/vendor/lib D:/fhem_portable/perl/lib ./FHEM) at ./FHEM/98_Text2Speech.pm line 28, <$fh> line 432.
BEGIN failed--compilation aborted at ./FHEM/98_Text2Speech.pm line 28, <$fh> line 43
ZitatUnd nachfragen darf man ja normalerweise, um sicherzugehenDas eben empfinde ich als unhöflich.
Zitat von: Prof. Dr. Peter Henning am 05 Mai 2019, 09:20:23Zu dem Problem gibt es eine Lösungsmöglichkeit https://forum.fhem.de/index.php/topic,18481.msg850986.html#msg850986
Es gibt noch ein anderes Problem mit mp3wrap. Es fügt nämlich mp3-Dateien auch dann zusammen, wenn diese eine unterschiedliche Samplingrate haben, und schreibt in die Metadaten der erzeugten Gesamtdatei die Samplingrate der ersten Datei hinein. Wirkt sich auf die Klangqualität sehr negativ aus...
LG
pah
2019.05.05 12:41:14 4: pitTTS: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.
See the manpage mpg123(1) or call mpg123 with --longhelp for more parameters and information.
-? this help --version print name + version
-C enable control keys --no-gapless not skip junk/padding in mp3s
-u a HTTP authentication string -E f Equalizer, data from file
-z shuffle play (with wildcards) -Z random play
-@ f read filenames/URLs from f -T get realtime priority
-m mix both channels (mono) -p p use HTTP proxy p [$HTTP_PROXY]
-0 decode channel 0 (left) only -1 decode channel 1 (right) only
-d n play every n'th frame only -h n play every frame n times
-2 downsample 1:2 (22 kHz) -4 downsample 1:4 (11 kHz)
-o m select output module -a d set audio device
-r n set/force samplerate [auto]
-b n output buffer: n Kbytes [0] -f n change scalefactor [32768]
-c check range violations -y DISABLE resync on errors
-k n skip first n frames [0] -n n decode only n frames [all]
-w f write output as WAV file
-t testmode (no output) -s write to stdout
-v increase verbosity level -q quiet (don't print title)
supported options [defaults in brackets]:
usage: mpg123 [option(s)] [file(s) | URL(s) | -]
free software (LGPL) without any warranty but with best wishes
version 1.23.8; written and copyright by Michael Hipp and others
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
2019.05.05 12:41:14 5: pitTTS: readingsSingleUpdateByName: Dev:pitTTS Reading:endTime Val:00:00:00
You made some mistake in program usage... let me briefly remind you:
2019.05.05 12:41:14 5: pitTTS: readingsSingleUpdateByName: Dev:pitTTS Reading:duration Val:1
2019.05.05 12:41:14 4: pitTTS: /usr/bin/mpg123 -q
2019.05.05 12:41:14 4: pitTTS: cache/71f783ed67e131a66e252ec9b458daaf.mp3 hat eine Länge von 1 Sekunden.
2019.05.05 12:41:14 4: pitTTS: Bearbeite per MP3Wrap jetzt den Text: test
2019.05.05 12:41:14 4: pitTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 71f783ed67e131a66e252ec9b458daaf.mp3
2019.05.05 12:41:14 4: pitTTS: Verwende TTS Spracheinstellung: Deutsch
2019.05.05 12:41:14 4: pitTTS: 0 => test
2019.05.05 12:41:14 4: pitTTS: Auflistung der Textbausteine nach Aufbereitung:
2019.05.05 12:41:13 4: pitTTS: MaxChar = 100, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2019.05.05 21:27:36 4: pitTTS: /usr/bin/mpg123 -q cache/71f783ed67e131a66e252ec9b458daaf.mp3
Zitat von: gestein am 05 Mai 2019, 20:04:48Hallo Gerhard,
Was ist der Vorteil von Text2Speech, wenn ich Sonos bereits installiert habe?
Oder ist es egal?
Danke im Voraus
lg, Gerhard
ZitatWas ist der Vorteil von Text2Speech, wenn ich Sonos bereits installiert habe?
Oder ist es egal?
"Deutsch" => "de",
"English-US" => "en-us",
"Schwedisch" => "sv",
"France" => "fr",
"Spain" => "es",
"Italian" => "it",
"Chinese" => "cn",
"Dutch"
{Dumper(Text2Speech_SplitString(["Das ist ein Test, in dem ein kleiner Teil <amazon:effect name=\"whispered\">geflüstert</amazon:effect> wird"],10," ",0,"al"))}
Can't locate object method "my_home" via package "File::HomeDir" at ./FHEM/98_Text2Speech.pm line 326, <$fh> line 796.
Can't locate object method "my_home" via package "File::HomeDir" at /opt/fhem/FHEM/98_Text2Speech.pm line 326, <$fh> line 20.
define Sprachausgabe Text2Speech hw=0.0
attr Sprachausgabe TTS_UseMP3Wrap 1
attr Sprachausgabe TTS_FileTemplateDir /opt/fhem/mp3
attr Sprachausgabe TTS_CacheFileDir /opt/cache_sprachausgabe
attr Sprachausgabe TTS_Language Deutsch
attr Sprachausgabe TTS_Quality 48khz_16bit_stereo
attr Sprachausgabe TTS_OutputFile /opt/cache_sprachausgabe/1/output.mp3
attr Sprachausgabe TTS_Ressource Amazon-Polly
attr Sprachausgabe room (z2)Sprachausgabe
Internals:
ALSADEVICE default
DEF default
FUUID 5cce0752-f33f-8098-9661-8790c1ceafcd202e
MODE DIRECT
NAME MyTTS
NR 19
STATE Initialized
TYPE Text2Speech
VOLUME 0
READINGS:
2019-05-27 05:15:55 duration 1
2019-05-27 05:15:55 endTime 00:00:00
2019-05-27 05:15:56 lastFilename cache/72a447622d75949ae7f378e7f01dd667.mp3
2019-05-27 05:15:56 playing 0
2019-05-27 05:15:45 volume 0
helper:
Text2Speech:
Attributes:
TTS_FileMapping Glocke:glocke.mp3 Tischglocke:tischglocke.mp3
TTS_FileTemplateDir /opt/fhem/mp3
TTS_Language Deutsch
TTS_MplayerCall /usr/bin/mplayer
TTS_Quality 48khz_16bit_mono
TTS_Ressource Google
TTS_UseMP3Wrap 1
TTS_noStatisticsLog 1
room System
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=([0]="0")
BASH_SOURCE=([0]="/opt/bin/vlc-wrapper.sh")
BASH_ALIASES=()
BASH_ARGC=([0]="1")
BASH_ARGV=([0]="cache/392a03a908698a0925e5a2e832596aad.mp3")
BASH_CMDS=()
BASH_LINENO=([0]="0")
BASH_SOURCE=([0]="/opt/bin/vlc-wrapper.sh")
$cmd = $TTS_MplayerCall . " " . $mplayerAudioOpts . $AlsaDevice . " " .$NoDebug. " " . $mplayerOpts . " " . $file;
# anstatt mplayer wird ein anderer Player verwendet
if ($TTS_MplayerCall !~ m/mplayer/) {
$TTS_MplayerCall =~ s/{device}/$AlsaDevice/g;
$TTS_MplayerCall =~ s/{volume}/$hash->{VOLUME}/g;
$TTS_MplayerCall =~ s/{volumeadjust}/$TTS_VolumeAdjust/g;
$TTS_MplayerCall =~ s/{file}/$file/g;
$cmd = $TTS_MplayerCall;
} else {
$cmd = $TTS_MplayerCall . " " . $mplayerAudioOpts . $AlsaDevice . " " .$NoDebug. " " . $mplayerOpts . " " . $file;
}
# anstatt mplayer wird ein anderer Player verwendet
if ($TTS_MplayerCall !~ m/mplayer/) {
$TTS_MplayerCall =~ s/{device}/$AlsaDevice/g;
$TTS_MplayerCall =~ s/{volume}/$hash->{VOLUME}/g;
$TTS_MplayerCall =~ s/{volumeadjust}/$TTS_VolumeAdjust/g;
$TTS_MplayerCall =~ s/{file}/$file/g;
$cmd = $TTS_MplayerCall . " " . $file;
} else {
$cmd = $TTS_MplayerCall . " " . $mplayerAudioOpts . $AlsaDevice . " " .$NoDebug. " " . $mplayerOpts . " " . $file;
}
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 006: ID 8087:0aa7 Intel Corp.
Bus 001 Device 004: ID 0d8c:000c C-Media Electronics, Inc. Audio Adapter <-------
Bus 001 Device 007: ID 046d:c227 Logitech, Inc. G15 Refresh Keyboard
Bus 001 Device 005: ID 046d:c226 Logitech, Inc. G15 Refresh Keyboard
Bus 001 Device 003: ID 046d:c223 Logitech, Inc. G11/G15 Keyboard / USB Hub
Bus 001 Device 002: ID 046d:c051 Logitech, Inc. G3 (MX518) Optical Mouse
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xa1410000 irq 129
1 [Set ]: USB-Audio - C-Media USB Headphone Set
C-Media USB Headphone Set at usb-0000:00:15.0-4, full speed
cannot open mixer: No such file or directory
ALSA lib confmisc.c:767:(parse_card) cannot find card '0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM default
aplay: main:788: audio open error: No such file or directory
2019-06-03 21:42:16 Text2Speech MyTTS playing: 1
2019.06.03 21:42:16 4 : MyTTS: ermittelte CodePage: ascii , konvertiere nach UTF-82019.06.03 21:42:16 4 : MyTTS: MaxChar = 100, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter = 2019.06.03 21:42:16 4 : MyTTS: Auflistung der Textbausteine nach Aufbereitung:2019.06.03 21:42:16 4 : MyTTS: 0 => ww2019-06-03 21:42:16 Text2Speech MyTTS duration: 1
2019-06-03 21:42:16 Text2Speech MyTTS endTime: 00:00:00
2019-06-03 21:42:16 Text2Speech MyTTS lastFilename: cache/37e5f0055a8e6f63b6bb511497c5fd9b.mp3
2019.06.03 21:42:16 4 : MyTTS: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.2019-06-03 21:42:16 Text2Speech MyTTS playing: 0
Internals:
ALSADEVICE hw=0.0
DEF hw=0.0
FUUID 5c475225-f33f-8a7d-4ecb-5083358739a82bb3
MODE DIRECT
NAME MyTTS
NR 608
STATE Initialized
TYPE Text2Speech
VOLUME 95
READINGS:
2019-07-08 16:10:49 duration 17
2019-07-08 16:10:49 endTime 00:00:00
2019-07-08 16:11:06 lastFilename cache/831ba7dadcb3ed0dd270c8463ff28db2.mp3
2019-07-08 16:11:06 playing 0
2019-07-08 16:08:53 volume 95
helper:
Text2Speech:
Attributes:
TTS_UseMP3Wrap 1
room Text2Speech
userReadings VOLUME
verbose 5
2019.07.08 16:10:42.058 4: MyTTS: ermittelte CodePage: ascii , konvertiere nach UTF-8
2019.07.08 16:10:42.058 4: MyTTS: MaxChar = 100, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2019.07.08 16:10:42.058 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2019.07.08 16:10:42.058 4: MyTTS: 0 => probe
2019.07.08 16:10:42.260 4: MyTTS: Verwende TTS Spracheinstellung: Deutsch
2019.07.08 16:10:42.261 4: MyTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 1db4f32dbff2fabe4c975814cab5d987.mp3
2019.07.08 16:10:42.262 4: MyTTS: Bearbeite per MP3Wrap jetzt den Text: probe
2019.07.08 16:10:42.265 4: MyTTS: cache/1db4f32dbff2fabe4c975814cab5d987.mp3 hat eine Länge von 1 Sekunden.
2019.07.08 16:10:42.266 4: MyTTS: sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 95 cache/1db4f32dbff2fabe4c975814cab5d987.mp3
2019.07.08 16:10:42.266 5: MyTTS: readingsSingleUpdateByName: Dev:MyTTS Reading:duration Val:1
2019.07.08 16:10:42.308 5: MyTTS: readingsSingleUpdateByName: Dev:MyTTS Reading:endTime Val:00:00:00
MPlayer 1.3.0 (Debian), built with gcc-6.2.1 (C) 2000-2016 MPlayer Team
Terminal type `unknown' is not defined.
Playing cache/1db4f32dbff2fabe4c975814cab5d987.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] 44100Hz 2ch s16le (2 bytes per sample)
[Mixer] No hardware mixing, inserting volume filter.
Video: no video
Starting playback...
A: 0.0 (00.0) of 0.9 (00.9) ??,?%
A: 0.0 (00.0) of 0.9 (00.9) 0.9%
A: 0.1 (00.0) of 0.9 (00.9) 0.8%
A: 0.1 (00.1) of 0.9 (00.9) 0.9%
A: 0.1 (00.1) of 0.9 (00.9) 0.9%
A: 0.2 (00.1) of 0.9 (00.9) 1.0%
A: 0.2 (00.2) of 0.9 (00.9) 1.0%
A: 0.2 (00.2) of 0.9 (00.9) 1.0%
A: 0.3 (00.2) of 0.9 (00.9) 1.0%
A: 0.3 (00.3) of 0.9 (00.9) 1.0%
A: 0.3 (00.3) of 0.9 (00.9) 1.1%
A: 0.4 (00.3) of 0.9 (00.9) 1.1%
A: 0.4 (00.3) of 0.9 (00.9) 1.0%
A: 0.4 (00.4) of 0.9 (00.9) 1.0%
A: 0.5 (00.4) of 0.9 (00.9) 1.0%
Exiting... (End of file)
2019.07.08 16:10:43.748 4: MyTTS: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.
sudo dpkg --install pico2wave.deb
dpkg: Fehler beim Bearbeiten des Archivs pico2wave.deb (--install):
Paket-Architektur (armhf) passt nicht zum System (i386)
Fehler traten auf beim Bearbeiten von:
pico2wave.deb
sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 95 cache/1db4f32dbff2fabe4c975814cab5d987.mp3
Zitat von: Prof. Dr. Peter Henning am 09 Juli 2019, 13:54:12laut seinem Post sah das für mich wie eine manuelle deb installation aus. Das das deb von irgendwoher heruntergalden wurde und nicht per automatisiertem installprozess
Offenbar glaubt dpkg, es sei auf eine i386-System installiert - der Fehler sollte also vorher passiert sein.
sudo dpkg --install pico2wave.deb
root@zotak:~# aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: PCH [HDA Intel PCH], Gerät 0: ALC892 Analog [ALC892 Analog]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
Karte 0: PCH [HDA Intel PCH], Gerät 1: ALC892 Digital [ALC892 Digital]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
Karte 0: PCH [HDA Intel PCH], Gerät 3: HDMI 0 [HDMI 0]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
Karte 0: PCH [HDA Intel PCH], Gerät 7: HDMI 1 [HDMI 1]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
Karte 0: PCH [HDA Intel PCH], Gerät 8: HDMI 2 [HDMI 2]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
Gerät: PulseAudio F1: Hilfe x
x Chip: PulseAudio F2: System-Informationen x
x Ansicht: F3:[Wiedergabe] F4: Aufnahme F5: Alle F6: Soundkarte auswählen x
x Element: Master Esc: Beenden x
x x
x lqqk x
x xaax x
x xaax x
x lqqqqqqq Soundkarte qqqqqqqk x
x x- (Standard) x x
x x0 HDA Intel PCH x x
x x Gerätenamen eingeben...x x
x mqqqqqqqqqqqqqqqqqqqqqqqqqqj
Zitatsudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 95 cache/1db4f32dbff2fabe4c975814cab5d987.mp3- sieht so aus :
MPlayer 1.3.0 (Debian), built with gcc-6.2.1 (C) 2000-2016 MPlayer Team
Playing cache/1db4f32dbff2fabe4c975814cab5d987.mp3.
File not found: 'cache/1db4f32dbff2fabe4c975814cab5d987.mp3'
Failed to open cache/1db4f32dbff2fabe4c975814cab5d987.mp3.
Exiting... (End of file)
ZitatWarum willst du pico2wave installieren? Abgesehen davon hast du das falsche deb-package ausgewählt welches nicht zu deiner Architektur passt ;)stand im Wiki ;)- und erst durch mein falsches Paket ist mir aufgefallen, das ich das nicht wirklich brauche :-\
sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 95 /opt/fhem/cache/1db4f32dbff2fabe4c975814cab5d987.mp3
speaker-test -t sine -f 440 -c 2 -s 1
$filename = md5_hex($language{$TTS_Ressource}{$TTS_Language} ."|". $t) . ".mp3";
md5_hex($ttsResource."|".$t);
speak(<Ausgabeziel>,":betritt:")
speaker-test 1.1.3
Wiedergabe-Gerät ist default
Stream-Parameter sind 48000 Hz, S16_LE, 2 Kanäle
Sinuswelle mit Frequenz 440,0000 Hz
Rate ist 48000 Hz (angefordert: 48000 Hz)
Puffergröße von 96 bis 1048576
Periodengröße von 32 bis 349526
Verwende maximale Puffergröße 1048576
Perioden = 4
gesetzt: period_size = 262144
gesetzt: buffer_size = 1048576
- Vorne links
root@zotak:~# sudo /usr/bin/mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 95 /opt/fhem/cache/1db4f32dbff2fabe4c975814cab5d987.mp3
MPlayer 1.3.0 (Debian), built with gcc-6.2.1 (C) 2000-2016 MPlayer Team
Playing /opt/fhem/cache/1db4f32dbff2fabe4c975814cab5d987.mp3.
libavformat version 57.56.101 (external)
Mismatching header version 57.56.100
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)
[Mixer] No hardware mixing, inserting volume filter.
Video: no video
Starting playback...
A: 0.5 (00.4) of 0.9 (00.9) 1.2%
Exiting... (End of file)
AUDIODEV={device} play -q -v $(({volume}*{volumeadjust}/10000)).$(({volume}*{volumeadjust}%10000)) {file}
$(perl -e 'print {volume}*{volumeadjust} / 10000;')
use DBI;
sqlite3 tts.db "CREATE TABLE tts (key INTEGER PRIMARY KEY, count INT, time INT, content TEXT);"
chown fhem:dialout tts.db
sub tts_dblog($$){
my ($key,$text) = @_;
#--
my $path = "/home/fhem";
my $dbargs = {AutoCommit => 0, PrintError => 1};
my $dbh = DBI->connect("dbi:SQLite:dbname=".$path."/tts.db", "", "", $dbargs);
#-- check existence
my ($res) = $dbh->selectrow_array("SELECT EXISTS ( SELECT 1 FROM tts WHERE key='".$key."')");
#-- exists
if( $res == 0 ){
#-- insert a line
$dbh->do("INSERT INTO tts (key,count,time,content) VALUES ('".$key."','1','".time()."','".$text."');");
if ($dbh->err()) {
Log 1,"[tts_dblog] $DBI::errstr";
}
#-- does not exist
}else{
#-- modify
$dbh->do("UPDATE tts SET count = count + 1 WHERE key='".$key."';");
if ($dbh->err()) {
Log 1,"[tts_dblog] $DBI::errstr";
}
}
$dbh->commit();
$dbh->disconnect();
return $res;
}
sub tts_dbshow(){
#--
my $path = "/home/fhem";
my $dbargs = {AutoCommit => 0, PrintError => 1};
my $dbh = DBI->connect("dbi:SQLite:dbname=".$path."/tts.db", "", "", $dbargs);
my $ret = "";
#-- print rows
my $res = $dbh->selectall_arrayref("SELECT key,count,time,content FROM tts;");
foreach my $row (@$res) {
my ($keyr,$countr,$timer,$textr) = @$row;
$ret .= sprintf("%s %d %d %s",$keyr,$countr,$timer,$textr);
}
$dbh->disconnect();
return $ret;
}
sub tts_dbpurge($$){
my ($deltime,$mincount) = @_;
#--
my $path = "/home/fhem";
my $dbargs = {AutoCommit => 0, PrintError => 1};
my $dbh = DBI->connect("dbi:SQLite:dbname=".$path."/tts.db", "", "", $dbargs);
if( defined($deltime) && $deltime > 0){
my $earliest = time() - 86400*$deltime;
$dbh->do("DELETE from tts where time < ".$earliest.";");
if ($dbh->err()) {
Log 1,"[tts_dblog] $DBI::errstr";
}
}elsif( defined($mincount) && $mincount > 0){
$dbh->do("DELETE from tts where count < ".$mincount.";");
if ($dbh->err()) {
Log 1,"[tts_dblog] $DBI::errstr";
}
}
$dbh->disconnect();
}
defmod myTTS Text2Speech hw=0.0
2019.07.13 19:25:12.023 1: reload: Error:Modul 98_Text2Speech deactivated:
Can't locate URI/Escape.pm in @INC (you may need to install the URI::Escape module) (@INC contains: . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/arm-linux-gnueabihf/perl5/5.24 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base /data/fhem//FHEM /data/fhem//FHEM/lib) at /data/fhem//FHEM/98_Text2Speech.pm line 27.
BEGIN failed--compilation aborted at /data/fhem//FHEM/98_Text2Speech.pm line 27.
2019.07.13 19:25:12.023 0: Can't locate URI/Escape.pm in @INC (you may need to install the URI::Escape module) (@INC contains: . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/arm-linux-gnueabihf/perl5/5.24 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base /data/fhem//FHEM /data/fhem//FHEM/lib) at /data/fhem//FHEM/98_Text2Speech.pm line 27.
BEGIN failed--compilation aborted at /data/fhem//FHEM/98_Text2Speech.pm line 27.
Zitat von: Otto123 am 13 Juli 2019, 19:44:24
Hi,
also ich denke Du brauchst liburi-perl
und
laut meinen Notizen mplayer libdigest-sha-perl mp3wrap
Gruß Otto
Zitat von: Tobias am 11 Juli 2019, 07:30:31Da steht es nun :)
@Otto, mir fällt leider nix besseres ein da theoretisch jeder Tool andere Einstellungen hat. Dein erstes PlayBeispiel könntest du aber ins Wiki aufnehmen :)
Zitat von: Tobias am 03 Mai 2019, 09:30:42File::Homedir müsste jedoch File::HomeDir sein.
Das Wiki ist noch nicht komplett ergänzt.
Es wird Text::Iconv sowie in der nächsten Version Encode::Guess benötigt.
Wenn du die neue Amazon Polly Engine nutzen willst, kommt noch Paws und File::Homedir dazu
Bitte nachinstallieren
Zitat von: mumpitzstuff am 26 April 2019, 22:07:42Gruß schlimbo
Im Wiki steht drin, dass man:Code Auswählencpan paws
starten soll. Es muss aber Paws sein!
IO::File Perl Core
Digest::MD5 Perl Core
URI::Escape liburi-perl wird bei debian per default installiert
Text::Iconv libtext-iconv-perl wird bei debian per default installiert
Encode::Guess Perl Core
MP3::Info libmp3-info-perl
mp3wrap mp3wrap
} or return "Paws Module not installed. Please install, goto https
Zitat von: Tobias am 16 Juli 2019, 07:58:49Danke für die Anpassung.
Habe im Wiki die Abhängigkeiten jetzt genauer beschrieben
ZitatAbhängigkeiten Installationspakete
Egal welche Sprachengine verwendet werden soll müssen folgende Pakete installiert sein:
- IO::File
- Digest::MD5
- URI::Escape
- Text::Iconv
- Encode::Guess
- MP3::Info
- mp3wrap
sudo apt-get install libfile-homedir-perl libdigest-perl-md5-perl libany-uri-escape-perl libtext-iconv-perl libencode-perl libmp3-info-perl mp3wrap
defmod TTS Text2Speech none
attr TTS TTS_OutputFile /opt/fhem/icache/test.mp3
attr TTS room Status
attr TTS verbose 5
setstate TTS 2019-11-07 10:23:20 lastFilename cache/3e426ce1c4535b345c10019ddce0d6f6.mp3
setstate TTS 2019-11-07 10:23:20 playing 0
mp3wrap is already the newest version (0.5-4).
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.
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.
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:12:16.608 4: TTS: Benenne Datei um von <cache/08c99ed89ac124562b9d3042376b03d7.mp3> nach </opt/fhem/icache/test.mp3>
use File::Copy;
my $ttsFile = ReadingsVal("TTS", "lastFilename", "");
copy($ttsFile, "/opt/fhem/icache/morning.mp3");
mplayer: relocation error: mplayer: symbol av_alloc_vdpaucontext version LIBAVCODEC_58 not defined in file libavcodec.so.58
Can't locate object method "my_home" via package "File::HomeDir" at ./FHEM/98_Text2Speech.pm line 326
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.
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.
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";
}
{qx(echo ~fhem)}
eingebe{my $key;;foreach $key (keys %ENV) { printf "$key = $ENV{$key}\n" }}
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
use File::HomeDir;
$home = File::HomeDir->my_home;
print $home;
use File::HomeDir;
$home = File::HomeDir->my_home;
print $home;
Zitatuse File::HomeDir;
$home = File::HomeDir->my_home;
print $home;
[table]
[tr]
[td]# Bei TTS- Meldung Radio unterbrechen, Lautstärke hochfahren,
# nach Ansage Radio wieder einschalten, Lautstärke auf alten Wert fahren.
define Func_VolAut_N notify myTTS { \
\
my $Radio = (Value("SRadio"));;\
my $Station = ReadingsVal("SRadio", "StreamURL", "");;\
my $Old_Vol = (OldValue("Dum_Volume_D"));;\
\
if ($Radio eq "playing") { \
fhem("set SRadio STOP ;; set Dum_Volume_D 99");;\
fhem("define Radio_Comeback_A at +00:00:10 set SRadio PLAY $Station;;;; set Dum_Volume_D $Old_Vol");;\
} \
if ($Radio eq "stopped") { \
fhem("set Dum_Volume_D 99");;\
fhem("define Vol_Res_A at +00:00:10 set Dum_Volume_D $Old_Vol");;\
} \
}
attr Func_VolAut_N room Radio[/td]
[/tr]
[/table]
attr <tts-device> TTS_MplayerCall AUDIODEV={device} /usr/bin/play -q -v $(({volume}*{volumeadjust}/10000)).$(({volume}*{volumeadjust}%10000)) {file} -t alsa
use Audio::Play::MPlayer;
...
#############################################################################
#
# MPlayer routines
#
#############################################################################
sub mplay_loadlist{
my ($self,$list) = @_;
$self->command( qq{loadlist "$list"} );
$self->{state} = 1;
$playstate = 1;
}
sub mplay_loadfile{
my ($self,$file) = @_;
$self->command( qq{loadfile "$file"} );
$self->{state} = 1;
$playstate = 1;
}
sub mplay_stop{
my ($self) = @_;
$self->command( 'quit' )
if(defined($self));
$playstate = 0;
undef $self;
}
sub mplay_forward{
my ($self) = @_;
$self->command( qq{pt_step 1} )
if(defined($self));
}
sub mplay_back{
my ($self) = @_;
$self->command( qq{pt_step -1} )
if(defined($self));
}
sub mplay_poller{
my ($self) = @_;
#-- check if playdev is RpiAudio.DG or RpiAudio.Meson
my $playdev = ( ReadingsVal("RpiAudio.DG","state",undef) )?"RpiAudio.DG":"RpiAudio.Meson";
if( defined($self) && (ReadingsVal($playdev,"state","") ne "off") ){
$self->poll(0);
if( $self->state != 0 ){
my ($trk,$art,$ret194,$ret90);
if( ReadingsVal($playdev,"origin","") !~ /SWR/ ){
$trk = $self->title;
$art = $self->artist;
$ret194 = "playing <i>".$trk."</i><br>by <i>".$art."</i>";
$ret90 = "<i>".$trk."</i><br>von <i>".$art."</i>";
}else{
$ret194 = "playing <i>SWR3</i><br>";
$ret90 = "<i>SWR3</i>";
}
fhem("setreading $playdev playinfo $ret194");
fhem("setreading $playdev playinfo2 $ret90");
$playstate = 1;
InternalTimer(time()+5, "mplay_poller", $self,0);
}elsif( ($self->state == 0) && ($playstate == 1) ){
$playstate = 0;
InternalTimer(time()+2, "mplay_poller", $self,0);
}else{
Log 1,"state=0";
mplay_stop($self);
fhem("set $playdev off");
fhem("setreading $playdev playinfo stopped");
fhem("setreading $playdev playinfo2 stopped");
}
}else{
}
}
Attributes TTS_MplayerCall AUDIODEV={device} /usr/bin/play -q -v $(({volume}*{volumeadjust}/10000)).$(({volume}*{volumeadjust}%10000)) {file} -t alsa TTS_Ressource Google TTS_UseMP3Wrap 1 TTS_VolumeAdjust 3200 |
ZitatFür den MPlayer gibt es aber ein Perl-Interface. Mit dem steuere ich das Ding, geht wunderbar.
Zitat
2020.05.11 19:42:42 4: MyTTS: MaxChar = 100, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2020.05.11 19:42:42 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2020.05.11 19:42:42 4: MyTTS: 0 => Hallo da höre ich nichts
2020.05.11 19:42:43 4: MyTTS: Verwende TTS Spracheinstellung: Deutsch
2020.05.11 19:42:43 4: MyTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 087d7e5197bed09789d1ff0760fe6cf7.mp3
2020.05.11 19:42:43 4: MyTTS: Verwende Google Resource zur TTS-Generierung
2020.05.11 19:42:43 4: MyTTS: Hole URL: http://translate.google.com/translate_tts?tl=de&client=tw-ob&ie=UTF-8&q=Hallo%20da%20h%C3%B6re%20ich%20nichts
2020.05.11 19:42:43 4: MyTTS: Schreibe mp3 in die Datei cache/087d7e5197bed09789d1ff0760fe6cf7.mp3 mit 9120 Bytes
2020.05.11 19:42:43 4: MyTTS: Bearbeite per MP3Wrap jetzt den Text: Hallo da höre ich nichts
2020.05.11 19:42:43 4: MyTTS: cache/087d7e5197bed09789d1ff0760fe6cf7.mp3 hat eine Länge von 2 Sekunden.
2020.05.11 19:42:43 4: MyTTS: AUDIODEV=hw=1.0 /usr/bin/play -q -v $((100*10000/10000)).$((100*10000%10000)) cache/087d7e5197bed09789d1ff0760fe6cf7.mp3 -t alsa >/dev/null
2020.05.11 19:42:44 3: define Vol_Res_B at +00:00:21 set Dum_Volume_D 40 : Vol_Res_B already defined, delete it first
2020.05.11 19:42:44 3: Func_VolAut_N return value: Vol_Res_B already defined, delete it first
2020.05.11 19:42:44 3: FS20 set Kelder_Stem on-for-timer 40
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM hw=1.0
/usr/bin/play FAIL formats: can't open output file `hw=1.0': snd_pcm_open error: No such file or directoryZitat
defmod wstts Text2Speech hw:1,0
attr wstts TTS_CacheFileDir /opt/fhem/cache
attr wstts TTS_FileTemplateDir /opt/fhem/cache/templates
attr wstts TTS_MplayerCall AUDIODEV={device} /usr/bin/play -q -v $(({volume}*{volumeadjust}/10000)).$(({volume}*{volumeadjust}%10000)) {file} -t alsa
attr wstts TTS_UseMP3Wrap 1
attr wstts TTS_VolumeAdjust 100
attr wstts verbose 4
setstate wstts 2020-05-11 18:44:57 duration 3
setstate wstts 2020-05-11 18:44:57 endTime 00:00:00
setstate wstts 2020-05-11 18:45:00 lastFilename /opt/fhem/cache/f92b45a9232ee8761f72711774c44b28.mp3
setstate wstts 2020-05-11 18:45:00 playing 0
170d169
< " TTS_EspeakParameters".
375,376d373
< } elsif ($a[2] eq "TTS_EspeakParameters"){
< return "This Attribute is only available with TTS_Ressource *ESpeak*" if(AttrVal($hash->{NAME},"TTS_Ressource","")ne "ESpeak");
588,589d584
< my $TTS_EspeakParameters=AttrVal($hash->{NAME}, "TTS_EspeakParameters", "");
<
669a665
> @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, ",", 0, "al");
670a667
> @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, "und", 0, "af");
673,675d669
< if ($TTS_Ressource ne "ESpeak"){
< @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, "und", 0, "af");
< @text = Text2Speech_SplitString(\@text, $ttsMaxChar{$TTS_Ressource}, ",", 0, "al");
677c671
< }
---
>
901,904c895
<
< my $TTS_EspeakParameters=AttrVal($hash->{NAME}, "TTS_EspeakParameters", "");
< $cmd = "sudo espeak ".$TTS_EspeakParameters." \"" . $text . "\" -w \"" . $FileWav . "\"";
<
---
> $cmd = "sudo espeak -vde+f3 -k5 -s150 \"" . $text . "\" -w \"" . $FileWav . "\"";
sleep 3; AUDIODEV={device} /usr/bin/play -q -v $(({volume}*{volumeadjust}/10000)).$(({volume}*{volumeadjust}%10000)) {file} -t alsa
Can't locate object method "name" via package "Empty string, empty guess" (perhaps you forgot to load "Empty string, empty guess"?) at ./FHEM/98_Text2Speech.pm line 610.
2021.03.11 08:30:05.400 3: MP3::Info Modul fehlt, konnte MP3 Tags nicht entfernen
if(-e $t){
Log3 $hash->{NAME}, 4, $hash->{NAME}.": Benenne Datei um von <".$t."> nach <".$Mp3WrapFile.">";
rename($t, $Mp3WrapFile);
#falls die Datei existiert den ID3V1 und ID3V2 Tag entfernen
eval{
remove_mp3tag($Mp3WrapFile, 2);
remove_mp3tag($Mp3WrapFile, 1);
Log3 $hash, 4, $hash->{NAME}.": Die ID3 Tags von $Mp3WrapFile wurden geloescht";
} or Log3 $hash->{NAME}, 3, "MP3::Info Modul fehlt, konnte MP3 Tags nicht entfernen";
} else {Log3 $hash->{NAME}, 3, $hash->{NAME}.": MP3WRAP Fehler!, Datei wurde nicht generiert.";}
fhem ("set SprachAusgabe tts :DieHeizungIn.mp3::$Raum.mp3::GehtAuf.mp3:$TempWert:GradCelsius.mp3:");
.....
2021.03.09 10:02:38.157 4: SprachAusgabe: Angabe einer direkten MP3-Datei gefunden: DieHeizungIn.mp3 => FileTpl_#0_0
2021.03.09 10:02:38.157 4: SprachAusgabe: Angabe einer direkten MP3-Datei gefunden: GradCelsius.mp3 => FileTpl_#0_1
2021.03.09 10:02:38.158 4: SprachAusgabe: MaxChar = 100, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2021.03.09 10:02:38.158 4: SprachAusgabe: Auflistung der Textbausteine nach Aufbereitung:
2021.03.09 10:02:38.158 4: SprachAusgabe: 0 => TTSFiles/DieHeizungIn.mp3
2021.03.09 10:02:38.158 4: SprachAusgabe: 1 => GehtAuf.mp3
2021.03.09 10:02:38.159 4: SprachAusgabe: 2 => 21
2021.03.09 10:02:38.159 4: SprachAusgabe: 3 => FileTpl_#0_1:
2021.03.09 10:02:38.317 4: SprachAusgabe: Verwende TTS Spracheinstellung: Deutsch
2021.03.09 10:02:38.318 4: SprachAusgabe: TTSFiles/DieHeizungIn.mp3 als direkte MP3 Datei erkannt!
2021.03.09 10:02:38.318 4: SprachAusgabe: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: cf821dc257bd0d74cf1e55c430fa316f.mp3
2021.03.09 10:02:38.318 4: SprachAusgabe: Verwende Google Resource zur TTS-Generierung
....
2021.03.28 21:28:26 1: PERL WARNING: Use of uninitialized value within %ttsAPIKey in numeric gt (>) at ./FHEM/98_Text2Speech.pm line 505.
2021.03.28 21:28:26 1: PERL WARNING: Use of uninitialized value within %ttsUser in numeric gt (>) at ./FHEM/98_Text2Speech.pm line 506.
2021.03.28 21:30:55 4: Txt2Talk: ermittelte CodePage: ascii , konvertiere nach UTF-8
2021.03.28 21:30:55 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 661.
2021.03.28 21:30:55 4: Txt2Talk: MaxChar = , Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2021.03.28 21:30:55 1: PERL WARNING: Use of uninitialized value $MaxChar in numeric le (<=) at ./FHEM/98_Text2Speech.pm line 709.
2021.03.28 21:30:55 1: PERL WARNING: Use of uninitialized value $MaxChar in numeric le (<=) at ./FHEM/98_Text2Speech.pm line 725.
2021.03.28 21:30:55 4: Txt2Talk: Auflistung der Textbausteine nach Aufbereitung:
2021.03.28 21:30:55 4: Txt2Talk: 0 => Hello
2021.03.28 21:30:55 4: Txt2Talk: 1 => World
2021.03.28 21:30:55 4: Txt2Talk: Verwende TTS Spracheinstellung: English-US
2021.03.28 21:30:55 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 996.
2021.03.28 21:30:55 4: Txt2Talk: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 2504345dd27296d1fee09dd85e7d89db.mp3
2021.03.28 21:30:55 4: Txt2Talk: Verwende ESpeak Resource zur TTS-Generierung
2021.03.28 21:30:55 4: Txt2Talk:sudo espeak -vde+f3 -k5 -s150 "Hello" -w "cache/2504345dd27296d1fee09dd85e7d89db.mp3.wav"
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
2021.03.28 21:30:55 4: Txt2Talk:lame "cache/2504345dd27296d1fee09dd85e7d89db.mp3.wav" "cache/2504345dd27296d1fee09dd85e7d89db.mp3"
System error.
Could not open sound file "cache/2504345dd27296d1fee09dd85e7d89db.mp3.wav".
Could not find "cache/2504345dd27296d1fee09dd85e7d89db.mp3.wav".
Can't init infile 'cache/2504345dd27296d1fee09dd85e7d89db.mp3.wav'
2021.03.28 21:30:55 4: Txt2Talk: Bearbeite jetzt den Text: Hello
2021.03.28 21:30:55 4: Txt2Talk: Verwende ESpeak Resource zur TTS-Generierung
2021.03.28 21:30:55 4: Txt2Talk:sudo espeak -vde+f3 -k5 -s150 "Hello" -w "cache/2504345dd27296d1fee09dd85e7d89db.mp3.wav"
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
2021.03.28 21:30:55 4: Txt2Talk:lame "cache/2504345dd27296d1fee09dd85e7d89db.mp3.wav" "cache/2504345dd27296d1fee09dd85e7d89db.mp3"
System error.
Could not open sound file "cache/2504345dd27296d1fee09dd85e7d89db.mp3.wav".
Could not find "cache/2504345dd27296d1fee09dd85e7d89db.mp3.wav".
Can't init infile 'cache/2504345dd27296d1fee09dd85e7d89db.mp3.wav'
2021.03.28 21:30:55 4: Txt2Talk: Es wurde nur ein Teil ausgegeben und weitere Teile folgen!
2021.03.28 21:30:55 4: Txt2Talk: Verwende TTS Spracheinstellung: English-US
2021.03.28 21:30:55 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_Text2Speech.pm line 996.
2021.03.28 21:30:55 3: eval: {Text2Speech_Done('Txt2Talk|1|cache/2504345dd27296d1fee09dd85e7d89db.mp3')}
2021.03.28 21:30:55 4: Txt2Talk: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 9e5361ec6eaee7c10b86f9b5d3e82253.mp3
2021.03.28 21:30:55 4: Txt2Talk: Verwende ESpeak Resource zur TTS-Generierung
2021.03.28 21:30:55 4: Txt2Talk:sudo espeak -vde+f3 -k5 -s150 "World" -w "cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3.wav"
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
2021.03.28 21:30:55 4: Txt2Talk:lame "cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3.wav" "cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3"
System error.
Could not open sound file "cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3.wav".
Could not find "cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3.wav".
Can't init infile 'cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3.wav'
2021.03.28 21:30:55 4: Txt2Talk: Bearbeite jetzt den Text: World
2021.03.28 21:30:55 4: Txt2Talk: Verwende ESpeak Resource zur TTS-Generierung
2021.03.28 21:30:55 4: Txt2Talk:sudo espeak -vde+f3 -k5 -s150 "World" -w "cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3.wav"
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
2021.03.28 21:30:55 4: Txt2Talk:lame "cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3.wav" "cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3"
System error.
Could not open sound file "cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3.wav".
Could not find "cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3.wav".
Can't init infile 'cache/9e5361ec6eaee7c10b86f9b5d3e82253.mp3.wav'
2021.03.28 21:30:55 4: Txt2Talk: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.
Zitatsudo espeakIt seems, that you will use the espeak and the Modul is'nt properly configured.
list Txt2Talk
Zitat von: PNinBB am 07 März 2021, 10:02:16
Guten Morgen,
Ich habe gestern 'Text2Speech' installiert und nach einigen kleinen Problemchen läuft es auch wie erwartet.
Nun bin ich gerade - mehr zufällig und unabsichtlich - auf die Schaltfläche 'Set ... tts' gekommen und das Eingabefeld für den Text war leer.
Ergebnis: FHEM stürzt ab; Meldung im Logfile:Code Auswählen
Can't locate object method "name" via package "Empty string, empty guess" (perhaps you forgot to load "Empty string, empty guess"?) at ./FHEM/98_Text2Speech.pm line 610.
Zugegeben, es ist nicht die normale Betriebsweise, aber vielleicht hilft diese Erfahrung, es noch stabiler zu machen.
Mit gefülltem Eingabefeld funktioniert es natürlich.
Die Module, die in https://wiki.fhem.de/wiki/Text2Speech (https://wiki.fhem.de/wiki/Text2Speech) aufgeführt sind, sind installiert und auf dem neuesten Stand.
Aber auf jeden Fall: Danke an die 'Macher'!
Peter
Ergänzung:
Mit 'verbose 5' für diesen Fall kommen keinerlei weitere Einträge !
Internals:
ALSADEVICE default
CFGFN
DEF default
FUUID 60610c0d-f33f-13e5-b8c8-e5a87fea45154293
MODE DIRECT
NAME Txt2Talk
NR 44
STATE Initialized
TYPE Text2Speech
VOLUME 100
READINGS:
2021-03-28 21:26:30 duration 1
2021-03-28 21:26:30 endTime 00:00:00
2021-03-28 22:17:52 lastFilename cache/9142fd5238e818e089933765eb6be41e.mp3
2021-03-28 22:17:52 playing 0
helper:
Text2Speech:
Attributes:
TTS_Language English-US
TTS_MplayerCall /usr/bin/mplayer
TTS_Ressource ESpeak
room admin
verbose 4
{qx(groups fhem)}
sudo gpasswd -a fhem audio
TTS_Ressource ESpeak
Zitat von: Ingo298 am 24 Januar 2020, 10:24:28
Wollte gern auf Amazon Polly umstellen. beim Einstellen stürtzt Fhem jedoch ab. Im LogCode AuswählenCan't locate object method "my_home" via package "File::HomeDir" at ./FHEM/98_Text2Speech.pm line 326
das Modul "File::HomeDir" ist bereits in der neusten Version installiert.Code Auswählenpi@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 ??
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...
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.
Zitat von: mumpitzstuff am 25 Mai 2021, 10:35:01Ich habe bei mir den Cache gelöscht. Auch die jetzt neu erzeugten Ansagen verwenden die unterschiedlichen Stimmen.
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...
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...
Unmatched ( in regex; marked by <-- HERE in m/: Oberhausen ( <-- HERE 22:/ at ./FHEM/98_Text2Speech.pm line 668.
Zitat2021.06.12 15:44:45 3: MP3::Info Modul fehlt, konnte MP3 Tags nicht entfernen
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
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
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
$text[$i] =~ s/\Q:$FileTplPc[$j]:\E/$cutter$FileTplPc[$j]$cutter/g;
Zitat von: mumpitzstuff am 25 Mai 2021, 10:35:01die neue Stimme ist ja eine einzige Katastrophe :'( :'( :'(
Ja. Google scheint eine andere Stimme zu verwenden
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.
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 (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?
Zitat von: Tobias am 26 Juni 2021, 19:36:11Auf meiner verlinkten Seite weiter unten und kann man Pitch, Speed und Stimmenart einstellen zum testen. Wenn man dort ein wenig rumspielt kann man genau so eine besoffene Stimme, wie aktuell im TTS Modul benutzt wird erzeugen. Diese Parameter kann man ja sicherlich optional auch mit an die API übergeben.
Eventuel.... schreib mal welche Parameter genau....
Zitat von: Dittel am 27 Juni 2021, 11:33:02Du könntest es selbst mal versuchen und das Ergebnis hier präsentieren.
... Diese Parameter kann man ja sicherlich optional auch mit an die API übergeben.
¶merter=Wert
Zeile 55: my %ttsAddon = ("Google" => "client=tw-ob&ie=UTF-8",
Zitat von: Ellert am 28 Juni 2021, 07:14:55
Du könntest es selbst mal versuchen und das Ergebnis hier präsentieren.
In Zeile 55 des Moduls kannst Du die Parameter ergänzen in der Form:Code Auswählen¶merter=Wert
Code AuswählenZeile 55: my %ttsAddon = ("Google" => "client=tw-ob&ie=UTF-8",
Zitat von: Dittel am 30 Juni 2021, 18:35:15
Funktioniert leider gar nicht. Die API, die das Modul benutzt ist veraltet und wir auch gar nicht mehr offiziell unterstützt.
Zitat von: Dittel am 14 Juli 2021, 15:00:17
https://techcrunch.com/2009/12/14/the-unofficial-google-text-to-speech-api/ (https://techcrunch.com/2009/12/14/the-unofficial-google-text-to-speech-api/)
Zitat von: Tobias am 14 Juli 2021, 15:40:49Das Modul ist ja auch von 2013 und nach dieser Methodik holt es nun mal die Stimmen dort ab.
Stand December 14, 2009 !!!!
my $res = $polly->SynthesizeSpeech(
VoiceId => $TTS_Language,
Text => $text,
TextType => $texttype,
OutputFormat => 'mp3',
);
Zitat von: chunter1 am 01 September 2021, 13:19:39
Gibt es irgendeine Möglichkeit die seit einiger Zeit abartige Google Stimme zu verbessern?
ZitatGibt es noch eine Alternative es installiert zu bekommen?Aber ja. Mit einem ordentlichen Telnet oder SSH-Client anmelden, statt mit dem absurden putty.
Zitat von: chunter1 am 01 September 2021, 13:19:39
Gibt es irgendeine Möglichkeit die seit einiger Zeit abartige Google Stimme zu verbessern?
55 my %ttsAddon = ("Google" => "client=tw-ob&ie=UTF-8",
56 "VoiceRSS" => ""
57 );
Zitat von: chunter1 am 01 September 2021, 13:19:39Das ist halt das kostenlose Angebot. Gegen Einwurf von Münzen kann man über die Google Cloud Services deutlich bessere Stimmen bekommen, alternativ die kostenpflichtigen Angebote von Amazon, MS-Azure, IBM, ...
Gibt es irgendeine Möglichkeit die seit einiger Zeit abartige Google Stimme zu verbessern?
Zitat von: Prof. Dr. Peter Henning am 01 September 2021, 18:59:08
Aber ja. Mit einem ordentlichen Telnet oder SSH-Client anmelden, statt mit dem absurden putty.
LG
pah
Zitat von: chunter1 am 01 September 2021, 13:19:39
Gibt es irgendeine Möglichkeit die seit einiger Zeit abartige Google Stimme zu verbessern?
#{system("sudo aws polly synthesize-speech --output-format mp3 --voice-id Marlene --text 'Heute ist schönes Wetter' /opt/fhem/cache/star.mp3'");}
fhem( "set MyTTS tts :/opt/fhem/cache/star.mp3:" );
Zitat von: Panik am 11 September 2021, 07:10:35Man kann einheitlich in allen üblichen, aktuellen Desktop Systemen einfach ssh verwenden, ist mW in jedem System integriert.
... absurde Clients ausprobieren in der Hoffnung, irgendwann einen Ordentlichen zu erwischen.
...
ZitatDie Antwort suggeriert mir, ich wäre genau so absurd und meine Frage auch, wie das von mir eingesetzte Putty.In Anlehnung an Helmut Schmidt: Wer Suggestionen hat, sollte vielleicht mal zum Arzt gehen.
Zitat von: Panik am 15 August 2021, 09:18:48
ich wollte das Modul jetzt auch mal auf Polly umstellen.
Unter Putty habe ich auch den Befehl "sudo cpan Paws" erfolgreich absetzen können.
Jedoch fliegt nach einer halben Stunde immer die Verbindung zu Putty raus und
damit bricht wohl auch das Update ab.
Ich hab das etliche Male probiert - es wird nichts. Das Text2SpeechModul kann Polly nicht als installiert erkennen.
Gibt es noch eine Alternative es installiert zu bekommen?
screen /bin/bash
apt install cpanminus
cpanm Future
cpanm Paws --configure-timeout 7200 --build-timeout 7200 --test-timeout 7200
if (! -e "/opt/fhem/.aws/credentials"){
attr global exclude_from_update 98_Text2Speech.pm
update reset
Zitat von: Tobias am 19 November 2021, 10:02:53
Edit: das neue controls.txt file heißt jetzt "controls_tobiasfaust.txt" da ich im Repo mehr als nur text2speech habe
:notify02: Es hat geklingelt. Jemand steht vor der Haustür. Bitte prüfen! :notify02:
TTS_UseMP3Wrap 1
endet der Text in etwa mit "... Bitte p", gefolgt vom Soundfile.2021.11.23 17:16:53 4: EG.wz.TTS.01: MaxChar = 3000, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2021.11.23 17:16:53 4: EG.wz.TTS.01: Auflistung der Textbausteine nach Aufbereitung:
2021.11.23 17:16:53 4: EG.wz.TTS.01: 0 => /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3
2021.11.23 17:16:53 4: EG.wz.TTS.01: 1 => Es hat geklingelt. Jemand steht vor der Haust�r. Bitte pr�fen!
2021.11.23 17:16:53 4: EG.wz.TTS.01: 2 => /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3
2021.11.23 17:16:53 4: EG.wz.TTS.01: Verwende TTS Spracheinstellung: Deutsch
2021.11.23 17:16:53 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 als direkte MP3 Datei erkannt!
2021.11.23 17:16:53 4: EG.wz.TTS.01: Bearbeite jetzt den Text: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3
2021.11.23 17:16:53 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 gefunden, kein Download
2021.11.23 17:16:53 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 hat eine Länge von 5 Sekunden.
2021.11.23 17:16:53 4: EG.wz.TTS.01:sudo /usr/bin/mplayer -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 60 /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 >/dev/null
2021.11.23 17:16:59 4: EG.wz.TTS.01: Es wurde nur ein Teil ausgegeben und weitere Teile folgen!
2021.11.23 17:16:59 4: EG.wz.TTS.01: Verwende TTS Spracheinstellung: Deutsch
2021.11.23 17:16:59 4: EG.wz.TTS.01: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 0f5dcc151ba0bcc65b0a3cce6b01eeca.mp3
2021.11.23 17:16:59 4: EG.wz.TTS.01: Bearbeite jetzt den Text: Es hat geklingelt. Jemand steht vor der Haust�r. Bitte pr�fen!
2021.11.23 17:16:59 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/0f5dcc151ba0bcc65b0a3cce6b01eeca.mp3 gefunden, kein Download
2021.11.23 17:16:59 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/0f5dcc151ba0bcc65b0a3cce6b01eeca.mp3 hat eine Länge von 4 Sekunden.
2021.11.23 17:16:59 4: EG.wz.TTS.01:sudo /usr/bin/mplayer -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 60 /opt/fhem/mp3/cache/0f5dcc151ba0bcc65b0a3cce6b01eeca.mp3 >/dev/null
2021.11.23 17:17:04 4: EG.wz.TTS.01: Es wurde nur ein Teil ausgegeben und weitere Teile folgen!
2021.11.23 17:17:04 4: EG.wz.TTS.01: Verwende TTS Spracheinstellung: Deutsch
2021.11.23 17:17:04 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 als direkte MP3 Datei erkannt!
2021.11.23 17:17:04 4: EG.wz.TTS.01: Bearbeite jetzt den Text: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3
2021.11.23 17:17:04 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 gefunden, kein Download
2021.11.23 17:17:04 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 hat eine Länge von 5 Sekunden.
2021.11.23 17:17:04 4: EG.wz.TTS.01:sudo /usr/bin/mplayer -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 60 /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 >/dev/null
2021.11.23 17:17:10 4: EG.wz.TTS.01: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.
2021.11.23 17:18:31 4: EG.wz.TTS.01: MaxChar = 3000, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2021.11.23 17:18:31 4: EG.wz.TTS.01: Auflistung der Textbausteine nach Aufbereitung:
2021.11.23 17:18:31 4: EG.wz.TTS.01: 0 => /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3
2021.11.23 17:18:31 4: EG.wz.TTS.01: 1 => Es hat geklingelt. Jemand steht vor der Haust�r. Bitte pr�fen!
2021.11.23 17:18:31 4: EG.wz.TTS.01: 2 => /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3
2021.11.23 17:18:31 4: EG.wz.TTS.01: Verwende TTS Spracheinstellung: Deutsch
2021.11.23 17:18:31 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 als direkte MP3 Datei erkannt!
2021.11.23 17:18:31 4: EG.wz.TTS.01: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 0f5dcc151ba0bcc65b0a3cce6b01eeca.mp3
2021.11.23 17:18:31 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 als direkte MP3 Datei erkannt!
2021.11.23 17:18:31 4: EG.wz.TTS.01: Bearbeite per MP3Wrap jetzt den Text: /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3 Es hat geklingelt. Jemand steht vor der Haust�r. Bitte pr�fen! /opt/fhem/mp3/cache/templates/103_notify_tone_02.mp3
2021.11.23 17:18:31 4: EG.wz.TTS.01: /opt/fhem/mp3/cache/2ae352789e9ad05ccf29883b79e990e4.mp3 hat eine Länge von 12 Sekunden.
2021.11.23 17:18:31 4: EG.wz.TTS.01: sudo /usr/bin/mplayer -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 60 /opt/fhem/mp3/cache/2ae352789e9ad05ccf29883b79e990e4.mp3 >/dev/null
2021.11.23 17:18:45 4: EG.wz.TTS.01: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.
[AO_ALSA] alsa-lib: pcm_hw.c:1822:(_snd_pcm_hw_open) Invalid value for card
{qx(whoami)} --> fhem
{qx(groups)} --> fhem tty mail dialout audio video bluetooth gpio i2c
sudo usermod -aG audio fhem
usermod: user 'fhem' does not exist
ZitatAber fürs Einloggen in FHEM nutze ich "pi".Was genau meinst Du damit? Du hast im FHEMWEB einen User pi angelegt mit dem Du Dich an der Weboberfläche anmelden kannst?
Zitat- "/dev/snd/:/dev/snd/"Entweder kann es hier zufällig einer oder Du solltest die Frage nochmal konkret mit allen Infos separat stellen. ;)
Zitat von: Robert1963 am 02 Dezember 2021, 11:25:23Hi,
Hallo,
nachdem mich die Google Trantute sooo nerft , hab ich Amazon-Polly installiert.
Die Polly spricht ein wenig schnell, TTS_Speed Einstellung brachte, wie auch bei Google, nichts.
Also Cache gelöscht und geschaut ob ich das irgendwo einstellen/ändern kann. Forum,Wiki, Aws etc. .
Nichts gefunden, bzw. für mich nicht verständlich.
Ware Dankbarfür ne Idee wo, wenn überhaupt, eine Möglichkeit bestände die Stimme zu verändern.
Viele Grüße
set <MyTTS> tts <speak>Ansage der heutigen Wetterlage:<prosody rate="slow">Das Wetter sieht heute nicht gut aus. Es wird schneien und glatt werden</prosody></speak>
Zitat von: Martin Fischer am 16 November 2021, 18:39:14
Wenn auch spät aber ggf. für andere festgehalten.
Zum einen böte es sich an mit Screen (https://wiki.ubuntuusers.de/Screen/) zu arbeiten. Dann schlagen Verbindungsabbrüche nicht ins Gewicht. Alle weiteren hier gezeigten Eingaben, erfolgen unter dem root User. Alternativ auch mittels sudo:
(usw.)
Viel Erfolg!
2023.02.09 13:48:27 4: MyTTSa: 0 => Test
2023.02.09 13:48:27 4: MyTTSa: Verwende TTS Spracheinstellung: Deutsch
2023.02.09 13:48:27 4: MyTTSa: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 1885ae4bdca1e1546de1492a880fee55.mp3
2023.02.09 13:48:27 4: MyTTSa: Bearbeite per MP3Wrap jetzt den Text: Test
2023.02.09 13:48:27 4: MyTTSa: /opt/fhem/cache/a/1885ae4bdca1e1546de1492a880fee55.mp3 hat eine Länge von 1 Sekunden.
2023.02.09 13:48:27 4: MyTTSa: /usr/bin/mplayer -ao alsa:device=bluealsa -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 30 /opt/fhem/cache/a/1885ae4bdca1e1546de1492a880fee55.mp3 >/dev/null
2023.02.09 13:48:29 4: MyTTSa: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.
2023.02.09 13:48:37 4: MyTTSa: ermittelte CodePage: ascii , konvertiere nach UTF-8
2023.02.09 13:48:37 4: MyTTSa: MaxChar = 3000, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2023.02.09 13:48:37 4: MyTTSa: Auflistung der Textbausteine nach Aufbereitung:
2023.02.09 13:48:37 4: MyTTSa: 0 => test
2023.02.09 13:48:38 4: MyTTSa: Verwende TTS Spracheinstellung: Deutsch
2023.02.09 13:48:38 4: MyTTSa: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: ace6e4adaa68b0a82025cc4d5afaa7cc.mp3
2023.02.09 13:48:38 4: MyTTSa: Bearbeite per MP3Wrap jetzt den Text: test
2023.02.09 13:48:38 4: MyTTSa: /opt/fhem/cache/a/ace6e4adaa68b0a82025cc4d5afaa7cc.mp3 hat eine Länge von 1 Sekunden.
2023.02.09 13:48:38 4: MyTTSa: /usr/bin/mplayer -ao alsa:device=bluealsa -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 30 /opt/fhem/cache/a/ace6e4adaa68b0a82025cc4d5afaa7cc.mp3 >/dev/null
2023.02.09 13:48:39 4: MyTTSa: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.
2023.02.09 13:48:52 4: MyTTSa: ermittelte CodePage: ascii , konvertiere nach UTF-8
2023.02.09 13:48:52 4: MyTTSa: MaxChar = 3000, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2023.02.09 13:48:52 4: MyTTSa: Auflistung der Textbausteine nach Aufbereitung:
2023.02.09 13:48:52 4: MyTTSa: 0 => /opt/fhem/mp3/099_Selbstzerstoerung.mp3
2023.02.09 13:48:52 4: MyTTSa: Verwende TTS Spracheinstellung: Deutsch
2023.02.09 13:48:52 4: MyTTSa: /opt/fhem/mp3/099_Selbstzerstoerung.mp3 als direkte MP3 Datei erkannt!
2023.02.09 13:48:52 4: MyTTSa: Bearbeite per MP3Wrap jetzt den Text: /opt/fhem/mp3/099_Selbstzerstoerung.mp3
2023.02.09 13:48:52 4: MyTTSa: /opt/fhem/mp3/099_Selbstzerstoerung.mp3 hat eine Länge von 67 Sekunden.
2023.02.09 13:48:52 4: MyTTSa: /usr/bin/mplayer -ao alsa:device=bluealsa -really-quiet -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 30 /opt/fhem/mp3/099_Selbstzerstoerung.mp3 >/dev/null
2023.02.09 13:49:04 4: MyTTSa: ermittelte CodePage: ascii , konvertiere nach UTF-8
2023.02.09 13:49:04 4: MyTTSa: MaxChar = 3000, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2023.02.09 13:49:04 4: MyTTSa: Auflistung der Textbausteine nach Aufbereitung:
2023.02.09 13:49:04 4: MyTTSa: 0 => Test
2023.02.09 13:49:55 1: Timeout for Text2Speech_DoIt reached, terminated process 14122
2023.02.09 13:49:55 2: MyTTSa: BlockingCall for MyTTSa was aborted
"pkill mplayer"
loszuschicken.Agent registered
[Soundcore 3]# info F4:2B:7D:01:66:9B
Device F4:2B:7D:01:66:9B (public)
Name: Soundcore 3
Alias: Soundcore 3
Class: 0x00240414
Icon: audio-card
Paired: yes
Trusted: yes
Blocked: no
Connected: yes
LegacyPairing: no
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: Advanced Audio Distribu.. (0000110d-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: Handsfree (0000111e-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
UUID: Vendor specific (0cf12d31-fac3-4553-bd80-d6832e7b3117)
UUID: Vendor specific (0cf12d31-fac3-4553-bd80-d6832e7c3117)
Modalias: bluetooth:v03E0p2835d0100
Connected: yes
ZitatWie bekomme ich den String auswertbar in FHEM zurück aus einem Shell Aufruf?Ginge mit etwas Perl Code und qx() - ist aber eben leider im FHEM blockierend.
use Audio::Play::MPG123;
use Audio::Alsa::Mixer;
...
#############################################################################
#
# event handler for local mpg123
#
#############################################################################
sub mpg123_eventhandler($$){
my ($playdev,$event) = @_;
return
if($event =~ /playinfo.*/);
Log 1,"[mpg123_eventhandler] called with $playdev and event $event";
my ($hash,$src,$srd,$cha,$fil,$isl,$vol,$volnew,$trk,$ret);
$hash = $defs{$playdev};
$vol = ReadingsVal($playdev,"volume",undef);
$trk = ReadingsVal($playdev,"track","");
#-- on: normalize the source which is stored already in the origin reading,
# then start the player
#-- origin <source>: normalize the source which is in the parameter,
# store it in the origin reading, then start the player
if( $event =~ /^(origin)|(on).*/ ){
if( $event =~ /origin: (.+)/ ){
$src = $1;
}else{
$src = ReadingsVal($playdev,"origin","");
}
($src,$srd,$cha,$fil,$isl) = audio_source($src);
#-- artist not found
if( $isl == -1 ){
Log 1,"[mpg123_eventhandler] called with invalid source $src";
speak($playdev,"Es tut mir leid, diese Quelle kann ich nicht finden");
return;
#-- artist found, need to fill the playlist first
}elsif( $isl == 2 ){
fhem("attr Playlister MediaList_PlayerDevice $playdev");
fhem("trigger Playlister playartist");
return;
}
fhem("setreading $playdev origin $src");
fhem("setreading $playdev listfil $fil");
fhem("setreading $playdev listsrc $isl");
#-- safeguard against high volume
# TODO: Nur beim Start
if( $vol > 35 ){
fhem("setreading $playdev volume 35");
Log 1, "[mpg123_eventhandler] enforcing volume 35";
$vol = 35;
}
alsa_setvolume($vol);
#-- start the player
my $player = new Audio::Play::MPG123;;
$hash->{helper}{player} = $player;
fhem("setstate $playdev on");
Log 1,"[mpg123_eventhandler] started Player with ".(($isl==0)?"file source ":"list source ").$fil;
#-- single file
if($src =~ /(SWR)|(speech)/){
$player->load($fil);
fhem("setreading $playdev listpos -");
}else{
$player->loadlist(1,$fil);
fhem("setreading $playdev listpos 1");
}
mpg123_poller($player);
}elsif( $event =~ /listpos:? (\d+)/){
#-- off-event
}elsif( $event eq "off"){
mpg123_off();
}elsif( $event eq "nextTrack"){
mpg123_forward();
}elsif( $event eq "prevTrack"){
mpg123_back();
}elsif( $event =~ /volume:? (\d+)/ ){
alsa_setvolume($1);
}
return undef;
}
#############################################################################
#
# mpg123 routines
#
#############################################################################
sub mpg123_off(){
#-- check if playdev is SoundLinux.DG or RpiAudio.Meson
my $playdev = "SoundLinux.DG";
my $hash = $defs{$playdev};
my $player = $hash->{helper}{player};
return
if( !defined($player));
$player->stop_mpg123();
fhem("setstate $playdev off");
fhem("setreading $playdev track -");
fhem("setreading $playdev artist -");
fhem("setreading $playdev playinfo stopped");
fhem("setreading $playdev playinfo2 stopped");
$hash->{helper}{player} = undef;
}
sub mpg123_forward(){
#-- check if playdev is SoundLinux.DG or RpiAudio.Meson
my $playdev = "SoundLinux.DG";
my $hash = $defs{$playdev};
my $player = $hash->{helper}{player};
return
if( !defined($player));
my $isList = ReadingsVal($playdev,"listsrc",0);
my $listl = ReadingsVal($playdev,"listlen",1);
my $listp = ReadingsVal($playdev,"listpos",1);
my $listf = ReadingsVal($playdev,"listfil","");
$listp++;
if( $listp <= $listl ){
$player->loadlist($listp,$listf);
#Log 1,"====> Loadlist $listp file $listf called";
fhem("setreading $playdev listpos $listp");
fhem("setreading $playdev listwait 1");
InternalTimer(time()+2, "mpg123_poller", $player,0);
}else{
mpg123_off();
}
}
sub mpg123_back(){
#-- check if playdev is SoundLinux.DG or RpiAudio.Meson
my $playdev = "SoundLinux.DG";
my $hash = $defs{$playdev};
my $player = $hash->{helper}{player};
return
if( !defined($player));
my $isList = ReadingsVal($playdev,"listsrc",0);
my $listl = ReadingsVal($playdev,"listlen",1);
my $listp = ReadingsVal($playdev,"listpos",1);
my $listf = ReadingsVal($playdev,"listfil","");
$listp--;
if( $listp > 0){
$player->loadlist($listp,$listf);
fhem("setreading $playdev listpos $listp");
fhem("setreading $playdev listwait 1");
InternalTimer(time()+2, "mpg123_poller", $player,0);
}else{
mpg123_off();
}
}
sub mpg123_poller($){
my ($self) = @_;
#-- check if playdev is SoundLinux.DG or RpiAudio.Meson
my $playdev = "SoundLinux.DG";
my $hash = $defs{$playdev};
my $player = $hash->{helper}{player};
if( !defined($player)){
Log 1,"[mpg123_poller] no player found";
return
#}elsif( !defined($player->{state})){
# Log 1,"[mpg123_poller] no player->{state} found";
# print {$player->{w}} "Q\n";
# return
}
my $isList = ReadingsVal($playdev,"listsrc",0);
my $listl = ReadingsVal($playdev,"listlen",1);
my $listp = ReadingsVal($playdev,"listpos",1);
my $listf = ReadingsVal($playdev,"listfil","");
my $listw = ReadingsVal($playdev,"listwait",0);
#-- we are playing
if( $player->{state} ne "0" ){
$player->poll(1);
InternalTimer(time()+2, "mpg123_poller", $player,0);
my $trk = $player->title;
my $art = $player->artist;
my ($ret94,$ret90);
if( ReadingsVal($playdev,"origin","") !~ /SWR/ ){
$ret94 = "playing <i>".$trk."</i><br>by <i>".$art."</i>";
$ret90 = "<i>".$trk."</i><br>von <i>".$art."</i>";
}else{
$ret94 = "playing <i>SWR3</i><br>";
$ret90 = "<i>SWR3</i>";
}
#-- get count of current playlist
$listl = $player->{listl};
readingsBeginUpdate($hash);
readingsBulkUpdateIfChanged($hash, "playinfo", $ret94);
readingsBulkUpdateIfChanged($hash, "playinfo2", $ret90);
readingsBulkUpdateIfChanged($hash, "track", $trk);
readingsBulkUpdateIfChanged($hash, "artist", $art);
readingsBulkUpdateIfChanged($hash, "listlen", $listl);
readingsBulkUpdateIfChanged($hash, "listwait", 0);
readingsEndUpdate($hash,1);
#-- we are not playing, and are not waiting for a listentry to come up
}elsif( $player->{state} eq "0" && $listw == 0){
#-- list is not finished => next entry
if( $listp < $listl ){
$listp++;
$player->loadlist($listp,$listf);
fhem("setreading $playdev listpos $listp");
fhem("setreading $playdev listwait 1");
#Log 1,"++++++> State = 0 => starting track $listp on list $listf";
InternalTimer(time()+2, "mpg123_poller", $player,0);
#-- list is finished => end player
}else{
mpg123_off();
}
#-- state is unclear, just poll another time
}else{
$player->poll(1);
InternalTimer(time()+2, "mpg123_poller", $player,0);
}
return undef;
}
#############################################################################
#
# ALSA volume routines (for USB sound card)
#
#############################################################################
sub alsa_getvolume {
my $vl=Audio::Alsa::Mixer->device('USB-Audio')->control('Speaker')->channel('Front Left')->volume_out('%');
my $vr=Audio::Alsa::Mixer->device('USB-Audio')->control('Speaker')->channel('Front Right')->volume_out('%');
return ($vl+$vr)/2;
}
sub alsa_setvolume {
my ($volnew) = @_;
Audio::Alsa::Mixer->device('USB-Audio')->control('Speaker')->channel('Front Left')->volume_out($volnew."%");
Audio::Alsa::Mixer->device('USB-Audio')->control('Speaker')->channel('Front Right')->volume_out($volnew."%");
}
2023.02.27 16:13:13 4: MyTTS: ermittelte CodePage: ascii , konvertiere nach UTF-8
2023.02.27 16:13:13 4: MyTTS: MaxChar = 200, Delimiter = (?<=[\.!?])\s*, ForceSplit = 0, AddDelimiter =
2023.02.27 16:13:13 4: MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2023.02.27 16:13:13 4: MyTTS: 0 => test
2023.02.27 16:13:45 4: MyTTS: Verwende TTS Spracheinstellung: Deutsch
2023.02.27 16:13:45 4: MyTTS: Textbaustein ist keine direkte MP3 Datei, ermittle MD5 CacheNamen: 0bcffcb06e7ae232cc9e789d12f0ac7a.mp3
2023.02.27 16:13:45 4: MyTTS: Bearbeite per MP3Wrap jetzt den Text: test
2023.02.27 16:13:45 4: MyTTS: cache/0bcffcb06e7ae232cc9e789d12f0ac7a.mp3 hat eine Länge von 1 Sekunden.
2023.02.27 16:13:45 4: MyTTS: sudo /usr/bin/mplayer -ao alsa:device=hw=1.0 -nolirc -noconsolecontrols -softvol -softvol-max 800 -volume 100 cache/0bcffcb06e7ae232cc9e789d12f0ac7a.mp3
2023.02.27 16:13:45 5: MyTTS: readingsSingleUpdateByName: Dev:MyTTS Reading:duration Val:1
2023.02.27 16:13:45 5: MyTTS: readingsSingleUpdateByName: Dev:MyTTS Reading:endTime Val:00:00:00
MPlayer 1.4 (Debian), built with gcc-10 (C) 2000-2019 MPlayer Team
Terminal type `unknown' is not defined.
Playing cache/0bcffcb06e7ae232cc9e789d12f0ac7a.mp3.
libavformat version 58.45.100 (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)
[Mixer] No hardware mixing, inserting volume filter.
Video: no video
Starting playback...
A: -0.0 (unknown) of 1.0 (01.0) ??,?%
A: 0.0 (00.0) of 1.0 (01.0) 0.3%
A: 0.0 (00.0) of 1.0 (01.0) 0.3%
A: 0.1 (00.0) of 1.0 (01.0) 0.4%
A: 0.1 (00.0) of 1.0 (01.0) 0.4%
A: 0.1 (00.1) of 1.0 (01.0) 0.4%
A: 0.1 (00.1) of 1.0 (01.0) 0.4%
A: 0.2 (00.1) of 1.0 (01.0) 0.4%
A: 0.2 (00.2) of 1.0 (01.0) 0.4%
A: 0.2 (00.2) of 1.0 (01.0) 0.4%
A: 0.3 (00.2) of 1.0 (01.0) 0.4%
A: 0.3 (00.2) of 1.0 (01.0) 0.4%
A: 0.3 (00.3) of 1.0 (01.0) 0.4%
A: 0.4 (00.3) of 1.0 (01.0) 0.4%
A: 0.4 (00.3) of 1.0 (01.0) 0.4%
A: 0.4 (00.4) of 1.0 (01.0) 0.4%
A: 0.4 (00.4) of 1.0 (01.0) 0.4%
A: 0.5 (00.4) of 1.0 (01.0) 0.5%
A: 0.5 (00.4) of 1.0 (01.0) 0.4%
A: 0.5 (00.5) of 1.0 (01.0) 0.5%
A: 0.6 (00.5) of 1.0 (01.0) 0.5%
A: 0.6 (00.5) of 1.0 (01.0) 0.5%
A: 0.6 (00.6) of 1.0 (01.0) 0.5%
Exiting... (End of file)
2023.02.27 16:13:46 4: MyTTS: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.
defmod MyTTS Text2Speech hw=1.0
attr MyTTS TTS_FileTemplateDir audio
attr MyTTS TTS_Language Deutsch
attr MyTTS TTS_UseMP3Wrap 1
attr MyTTS TTS_VolumeAdjust 800
attr MyTTS verbose 5
setstate MyTTS 2023-02-27 16:17:12 duration 1
setstate MyTTS 2023-02-27 16:17:12 endTime 00:00:00
setstate MyTTS 2023-02-27 16:17:14 lastFilename cache/0bcffcb06e7ae232cc9e789d12f0ac7a.mp3
setstate MyTTS 2023-02-27 16:17:14 playing 0
setstate MyTTS 2023-02-26 13:02:10 volume 100
cpan Paws
zwar einige Zeit, war aber nach korrektem Einstellen des AWS-Homedirs und Kopieren der credentials an passende Stelle sofort einsatzbereit und funktional. my $res = $polly->SynthesizeSpeech(
VoiceId => $TTS_Language,
Text => $text,
TextType => $texttype,
OutputFormat => 'mp3',
Engine => 'neural',
);
http(s)://<fhem server ip>:<fhem port>/fhem/Text2Speech/<device name>/last.mp3
Wenn dieses Attribut den Aufruf eines Remoteplayers enthält, wird er nach dem Erzeugen der letzten mp3 Datei ausgeführt.attr <device name> TTS_RemotePlayerCall GetFileFromURL('http(s)://<remote player>:2323/?cmd=playSound&url=http(s)://<fhem server ip>:<fhem port>/fhem/Text2Speech/<device name>/last.mp3&loop=false&password=<password>')
Zitat von: Ellert am 08 März 2024, 18:04:01FileRead liest zeilenweise, das geht mit mp3 nicht.FileRead() war gemeint gewesen. Weiß nicht, ob das vergleichbar ist, aber MYSENSORS_DEVICE liest z.B. auch die firmwares als bin oder hex-Dateien ein und verarbeitet die dann weiter. Ist dann halt "eine Zeile".
Zitat von: Beta-User am 08 März 2024, 11:51:53Da https://forum.fhem.de/index.php?msg=1227529 bzw. https://forum.fhem.de/index.php?topic=128346.msg1227537#msg1227537 auch schon länger offen sind, habe ich eben aus Anlass von Ellerts patch-Vorschlag einen PR eröffnet für meinen alten Code.
@Ellert: Habe mir deinen patch noch nicht angesehen, vermutlich ist da manches doppelt. Vielleicht bekommen wir das synchronisiert, dann liefere ich das auf dem (m.E. ziemlich umständlichen) github-PR-Weg nach...
Nachtrag: "die" (Zeile 1263) geht m.E. aber in einem FHEM-Modul gar nicht... Warum wird da nicht die FHEM-interne Lesefunktion aufgerufen?
Zitat von: Tobias am 09 März 2024, 07:00:00Uii, diese patches habe ich überhaupt nicht gesehen...... schau ich mir an. Oder hast du schon alles fertig zusammen integriert?Ist nur ein patch, der zumindest in Teilen wohl dasselbe macht wie der Vorschlag von @Ellert (aber zumindest auf den ersten Blick eher in der Art wie die anderen Quellen eingebunden werden). Ist für Miminc3 (als MaryTTS-kompatible Lösung) von ein paar Usern getestet.
Zitat von: Beta-User am 09 März 2024, 08:35:22der zumindest in Teilen wohl dasselbe macht wie der Vorschlag von @Ellert
Zitat von: Beta-User am 08 März 2024, 18:15:44Vielleicht kannst du auch mal meine Fassung austesten, die ist zwar von meiner Seite nur für Mimic 3 getestet, sollte aber auch mit MaryTTS klarkommen.Ehrlich gesagt, fehlt mir gerade die Zeit und wohl auch die Ressourcen, mein Testrechner ist ein Pi B+, da möchte ich keine TTS Engine rauf frickeln.
close $fh
eingebaut, im Falle eines Lesefehlers.982 } else if ( $TTS_Ressource eq 'maryTTS' ) {
Zitat von: Beta-User am 10 März 2024, 16:13:50Falls du also irgendwo überhaupt eine Instanz am Laufen hast (? es klang so), sollte das ohne größeren Aufwand gehen.
Zitat von: JensS am 11 März 2024, 19:09:32Bei mir läuft eine mimic3-Testinstanz auf http://192.168.100.1:59125Vorab mal vielen Dank für's Aufgreifen der Bitte!!!
Wie trage ich das in T2S ein? Als Ressource gibt's ja jetzt maryTTS.
Gruß Jens
define T2S Text2Speech default
attr T2S TTS_Language Deutsch
attr T2S TTS_MplayerCall /usr/bin/mplayer
attr T2S TTS_Ressource maryTTS
attr T2S TTS_UseMP3Wrap 1
attr T2S TTS_User host=192.168.100.1 port=59125 lang=de_DE voice=de_DE/thorsten_low
Hab's mit SIP getestet und Thorsten sagt, was er soll.Zitat von: JensS am 12 März 2024, 05:23:31Hmm, vermutlich ist das "mehr als notwendig", meine alte Einstellung war die (define mit "none"):Code Auswählendefine T2S Text2Speech default
Hab's mit SIP getestet und Thorsten sagt, was er soll.
attr T2S TTS_Language Deutsch
attr T2S TTS_MplayerCall /usr/bin/mplayer
attr T2S TTS_Ressource maryTTS
attr T2S TTS_UseMP3Wrap 1
attr T2S TTS_User host=192.168.100.1 port=59125 lang=de_DE voice=de_DE/thorsten_low
Gruß Jens
Attributes: TTS_Ressource maryTTS
TTS_User host=192.168.2.64
Zitat von: JensS am 12 März 2024, 07:14:53Gibt's eine Möglichkeit, frei definierbare Argumente und HTML-Tags zu übergeben?Also: das TTS_User-Attribut nutzt parseParams, so dass man darüber im Prinzip beliebige key-value-Paare an den HTTP-Aufruf übergeben kann. Da das aber ein Attribut ist, möchte man das (in der Regel) ja nicht dauernd ändern.
Dann kann man die Mehrsprachigkeit von mimic3 nutzen https://community.rhasspy.org/t/mimic-3-tts-preview/3651/28?u=jens-schiffke (https://community.rhasspy.org/t/mimic-3-tts-preview/3651/28?u=jens-schiffke)
Gruß Jens
<a id="Text2Speech-attr-TTS_User"></a><li>TTS_User<br>
Actual only used for maryTTS (and Mimic 3, but might be appropriate for any TTS enginge to be addressed via http-GET request). Needed in case if a TTS Engine needs a username and an APIKey for a request. You may hand over any key-value-pair necessary for your enginge, so also Mimic 3 successor Piper should work as well.<br>
<p>(Full) example for maryTTS (values are defaults and may be left out):</p>
<p><code>attr t2s TTS_User host=127.0.0.1 port=59125 lang=de_DE voice=de_DE/thorsten_low</code></p>
</li>
<a id="Text2Speech-attr-TTS_User"></a><li>TTS_User<br>
Derzeit nur für maryTTS (bzw. kompatible Dienste wie Mimic 3) genutzt, sollte aber auch für andere TTS-Dienste funktionieren, die mit http-GET-Aufrufen angesprochen werden können, falls eine Sprachengine zusätzlich zum APIKey einen Usernamen oder sonstige Parametrierungen im Request verlangt. Es können beliebige key-value-Paare übergeben werden<br>
<p>(Vollständiges) Beispiel für maryTTS (die angegebenen Werte entsprechen den defaults):</p>
<p><code>attr t2s TTS_User host=127.0.0.1 port=59125 lang=de_DE voice=de_DE/thorsten_low</code></p>
</li>
Zitat von: Tobias am 12 März 2024, 10:57:17Die SSML Tags können direkt in den tts text integriert werden. Steht auch so in der Doku. Zumindest funktioniert es für AWS-Polly so.Klar - SSML-Tags. Folgende Variante funktioniert zweisprachig:
define T2S Text2Speech default
attr T2S TTS_MplayerCall /usr/bin/mplayer
attr T2S TTS_Ressource maryTTS
attr T2S TTS_User host=192.168.100.1 port=59125 lang=de_DE voice=de_DE/thorsten_low ssml=1
set T2S tts '<voice name="de_DE/m-ailabs_low#rebecca_braunert_plunkett">Das ist ein Test in deutsch </voice><voice name="en_US/vctk_low#p236">and this is an test in english.</voice>'
Zitat von: Tobias am 16 März 2024, 08:14:45@Ellert, es wäre super wenn du als Basis immer den aktuellen Stand aus dem Git nimmst@Tobias:
BlockingInformParent("Text2Speech_readingsSingleUpdateByName", [$hash->{NAME}, "endTime", "00:00:00"], 0);