Musik kurz unterbrechen für Sprachausgabe und dann wieder fortsetzen - WIE?

Begonnen von chunter1, 28 September 2015, 14:26:21

Vorheriges Thema - Nächstes Thema

chunter1

Hallo,

ich hab ein Logitech Squeezebox Radio in Verbindung mit einem Squeezebox Controller (läuft auf einem Synology NAS) im Einsatz.
Normalerweise hört meine Freundin darüber Internet Radiosender.
Was ich gerne machen würde ist, dass das laufende Radioporgramm für eine FHEM Sprach-/Signalausgabe (via mp3 file)  kurz unterbrochen wird und anschließend wieder fortgesetzt wird.
Dass das Radio das mp3 file abspielt habe ich schon hinbekommen, aber nicht, dass das Radio danach wieder in den ursprünglichen Mode wechselt.

Kann mir da bitte wer mit einem Codeschnipsel weiter helfen?

Danke
Chunter

ChrisD

Hallo,

Wenn du das Radio in FHEM eingebunden hast kannst du das Ganze mit dem Befehl
set meinPlayer talk |Sprachausgabe.mp3|machen.

Grüße,

ChrisD

kvo1

Zitat von: ChrisD am 28 September 2015, 22:16:14
Hallo,

Wenn du das Radio in FHEM eingebunden hast kannst du das Ganze mit dem Befehl
set meinPlayer talk |Sprachausgabe.mp3|machen.

Grüße,

ChrisD

und wo müßte Sprachausgabe.mp3   stehen ?!

Geht das auch mit set meinPlayer talk | sayText cooles Modul |   ;)
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

ChrisD

Hallo,

Zitatund wo müßte Sprachausgabe.mp3   stehen ?!
Bei diesem Beispiel muss die Datei im Hauptverzeichnis stehen. Wenn die Datei in einem anderen Verzeichnis steht muss der Pfad mit angegeben werden. Ein andere Möglichkeit ist das Attribut ttsMP3FileDir zu setzen, z.B.
attr meinPlayer ttsMP3FileDir /mnt/audio/effekte
Dies führt dazu dass die Dateien im Ordner /mnt/audio/effekte gesucht werden.

ZitatGeht das auch mit set meinPlayer talk | sayText cooles Modul |
Das führt dazu dass der Text "sayText cooles Modul" über TTS ausgegeben wird. Es ist im Moment nicht möglich eine Audiodatei abzuspielen die am Anfang oder Ende Leerzeichen hat.

Das Modul hängt auch die Erweiterung mp3 automatisch an wenn sie fehlt,
set meinPlayer talk |Sprachausgabe.mp3|
ist also das Gleiche wie
set meinPlayer talk |Sprachausgabe|

Grüße,

ChrisD

kvo1

Hallo ChrisD,

muss leider nochmal nerven, sorry.
Bei mir wird überhaupt nix ausgegeben. Muß das mit TTS noch speziell konfiguriert werden.

weder

set meinPlayer talk |Hello|
noch
set meinPlayer talk |Hello.mp3|
noch
set meinPlayer talk |cooles Modul| (also ein Text) wird ausgegeben. Die Musik stoppt aber .

habe sogar noch mit

attr meinPlayer ttsMP3FileDir /opt/fhem
den Pfad explizit gesetzt !

Grüsse
klaus



RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

ChrisD

Hallo,

Die talk-Funktion unterstützt 2 verschiedene Möglichkeiten etwas auszugeben:
- über die Umwandlung von Text zu Sprache über Google oder VoiceRSS
- durch die Ausgabe von fertigen MP3-Dateien

Die Syntax für die 1. Variante ist
set meinPlayer talk Hellooder
set meinPlayer talk cooles Modul
Dabei wird der Text an Google/VoiceRSS geschickt und diese liefern einen Audio-Stream zurück. Wenn dabei etwas schief geht wird nichts ausgegeben. Da Google vor kurzem die Parameter geändert hat, benötigst du mindestens Version 0045 das Moduls.

Für die 2. Variante ist die Syntax
set meinPlayer talk |Hello.mp3|Dadurch wird die bereits vorhandene Datei Hello.mp3 abgespielt.

Die beiden Varianten lassen sich auch mischen:
set meinPlayer talk |gong.mp3| Hallo |gong.mp3|
Dabei wird zuerst die bereits vorhandene MP3-Datei gong.mp3 abgespielt, danach der Text von Google/VoiceRSS in einen Stream umgewandelt und abgespielt und zuletzt nochmal gong.mp3 abgespielt.

Grüße,

ChrisD

kvo1

Hallo ChrisD,
(so langsam wird es mir peinlich...., aber ich verzweifle fast...)

Variante 1
die Version habe ich schon mal !
$Id: 98_SB_PLAYER.pm 8773 beta 0045 CD/MM/Matthew $

Aber bei
set squeeze_Denver talk cooles Modul  wird zwar die laufende Musik unterbrochen, aber
ansonsten passiert leider nix ....aus im log

2015.10.04 23:40:10 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_SB_PLAYER.pm line 1112

ich habe bisher folgende atrtribute für tts
ttslink              http://translate.google.com/translate_tts?ie=UTF-8
ttslanguage     de
ttsMP3FileDir   /opt/fhem

Variante 2
set meinPlayer talk | Hello.mp3 | läuft nicht , mein Problem waren die Leerzeichen

set meinPlayer talk |Hello.mp3| läuft

Hast Du noch ne Idee bzgl. Variante 1

PS:
danke für die Geduld (weiss das sehr zu schätzen) und wie gesagt .....cooles Modul  :)

gruss
klaus

RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

ChrisD

Hallo,

Kannst du versuchen das Attribut ttslink wie folgt zu setzen
attr squeeze_Denver ttslink http://translate.google.com/translate_tts?ie=UTF-8&tl=<LANG>&q=<TEXT>&client=t&prev=inputund den talk-Befehl erneut abzusetzen ?

Ich befürchte dass die 'alten' Links nicht automatisch richtig angepasst werden. Ich muss den entsprechenden Code nochmal überarbeiten.

ZitatPERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_SB_PLAYER.pm line 1112
Ich habe den Fehler gefunden und werde ihn in der nächsten Version beheben. Er führt dazu dass die ursprüngliche Position nach einem recall nicht angesprungen wird wenn der Player auf Pause stand.

Auf dein aktuellen Problem hat dies aber keinen Einfluss.

Grüße,

ChrisD

kvo1

Hallo Chris,

ZitatKannst du versuchen das Attribut ttslink wie folgt zu setzen
Code: [Auswählen]

attr squeeze_Denver ttslink http://translate.google.com/translate_tts?ie=UTF-8&tl=<LANG>&q=<TEXT>&client=t&prev=input

und den talk-Befehl erneut abzusetzen ?

Ich befürchte dass die 'alten' Links nicht automatisch richtig angepasst werden. Ich muss den entsprechenden Code nochmal überarbeiten.

PERFEKT , das wars  :D :D   Danke !


RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

Gallo

Hallo zusammen ,

bei mir läuft es leider aktuell noch garnicht. Ich kann Musik abspielen , beim Kommando

set Player talk |gong.mp3|

hört die Musik auf , es herrscht stille und dann fängt die Musik wieder an. Also schonmal gut, dass die Musik wieder weiter geht , aber warum spielt er nix ? :-D Im globalen Log sehe ich garnichts .

ChrisD

Hallo,

Wahrscheinlich findet der Server die Datei gong.mp3 nicht. In welchem Verzeichnis hast du sie abgelegt ? Hast du das Attribut 'ttsMP3FileDir' gesetzt ?

Grüße,

ChrisD

Gallo

Hi ,

ja , habe das Atrribut gesetzt und die Datei liegt dort auch . TTS direkt per google klappt ja auch nicht. Bleibt einfach Stumm. :-(

define Wohnzimmer SB_PLAYER xx:xx:xx:xx:xx:xx
attr Wohnzimmer IODev squeezeplay
attr Wohnzimmer amplifier play
attr Wohnzimmer coverartheight 50
attr Wohnzimmer coverartwidth 50
attr Wohnzimmer donotnotify false
attr Wohnzimmer event-on-change-reading currentTitle,currentArtist,state
attr Wohnzimmer fadeinsecs 10
attr Wohnzimmer fp_EG 89,193,1,,
attr Wohnzimmer idismac true
attr Wohnzimmer room SB_PLAYER
attr Wohnzimmer serverautoon true
attr Wohnzimmer ttsMP3FileDir /opt/fhem
attr Wohnzimmer ttslanguage de
attr Wohnzimmer ttslink http://translate.google.com/translate_tts?ie=UTF-8&tl=<LANG>&q=<TEXT>&client=t&prev=input
attr Wohnzimmer volumeLimit 100
attr Wohnzimmer volumeStep 10
attr Wohnzimmer webCmd playlists:volume
define FileLog_Wohnzimmer FileLog ./log/Wohnzimmer-%Y.log Wohnzimmer
attr FileLog_Wohnzimmer logtype text
attr FileLog_Wohnzimmer room SB_PLAYER

ChrisD

Hallo,

Dass die Ausgabe über Google nicht mehr funktioniert liegt wahrscheinlich am ttslink. Aktuell geht (noch):
attr Wohnzimmer ttslink http://translate.google.com/translate_tts?ie=UTF-8&tl=<LANG>&q=<TEXT>&client=tw-ob

Wenn du den Loglevel beim Server auf 4 und beim Player auf 5 setzt sollten im Log auch zusätzliche Ausgaben sein.

Grüße,

ChrisD


Rince

ZitatAlso schonmal gut, dass die Musik wieder weiter geht , aber warum spielt er nix ?
Hast du zufällig vergessen, die Rechte der Datei anzupssen?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Gallo

Hi ,

danke erstmal für die Antworten. Berechtigungen auf die Datei sind korrekt für Benutzer "fhem"

Mit der Sprachausgabe teste ich gerade nochmal , danke :)