Probleme mit der Overlay Funktion für TTS

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Hannes Schellnast
    Smart Home'r
    • 28.08.2015
    • 93

    #1

    Probleme mit der Overlay Funktion für TTS

    Ich probiere gerade die Overlay Funktion mit TTS aus. Leider funktioniert bei mir nur TTS ohne die Overlay Funktion.
    Folgendes funktioniert:
    Event: http://xx.xx.xx.xx/event/event.php?t...xt=test&zone=4
    Folgendes funktioniert:
    Overlay TTS: 0
    Dabei wird der Text über die Zone 4 ausgegeben.
    Folgendes funktioniert nicht:
    Overlay TTS: 1
    Keine hörbare Ausgabe des Textes
    Hier die Overlay Einstellung:
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: overlay001.jpg
Ansichten: 445
Größe: 146,5 KB
ID: 115901
    Hier die Ausgabe über den Browser:
    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: overlay002.jpg Ansichten: 1 Größe: 58,1 KB ID: 115900
    Kann mir jemand einen Tipp geben, wo hier der Fehler liegt?

    MfG
    Hannes
    Zuletzt geändert von Hannes Schellnast; 16.09.2017, 23:16.
  • hismastersvoice
    Supermoderator
    • 25.08.2015
    • 7319

    #2
    1. Beschreibung des System
    2. Versuch mal einen lägeren Text
    Kein Support per PN!

    Kommentar

    • Hannes Schellnast
      Smart Home'r
      • 28.08.2015
      • 93

      #3
      Mein System:
      Intel NUC N3700 (NUC5PPYH) / 4GB RAM / 480GB SSD
      Installierte Version: 0.4.9
      Soundkarten: 2xLogilink USB Soundbox
      Interne Zonen: 6
      Ext. Zonen: -

      Einen längeren Text habe ich soeben probiert. Leider gibt es hier auch keine Änderung.

      MfG
      Hannes

      Kommentar


      • hismastersvoice
        hismastersvoice kommentierte
        Kommentar bearbeiten
        Poste noch die URL mit overlay bitte.
    • Hannes Schellnast
      Smart Home'r
      • 28.08.2015
      • 93

      #4
      Hier ist die URL:


      Ausgabe:
      -----------------------------------------------------------------------
      Verbindung zum Server OK
      -----------------------------------------------------------------------

      -----------------------------------------------------------------------
      Buero (Mode = play / Volume = 24)
      -----------------------------------------------------------------------

      -----------------------------------------------------------------------
      -----------------------------------------------------------------------
      TTS Provicer = voicerss
      -----------------------------------------------------------------------
      Text = und nun einen längeren text.
      Wiedergabe-Volume = 50
      -----------------------------------------------------------------------
      Zonen = 4
      Zonen extern = all
      -----------------------------------------------------------------------
      Signal = 0
      Repeat = 0
      Play nach Wiedergabe = 1
      Sync nach Wiedergabe = 1
      Ready-Impulse = kein VI angegeben.
      -----------------------------------------------------------------------




      Gibt es ein Log od. ein Konfigurationsfile, in das man einen Blick werfen kann?


      MfG
      Hannes

      Kommentar

      • hismastersvoice
        Supermoderator
        • 25.08.2015
        • 7319

        #5
        Die URL sieht so weit richtig aus. Füge mal noch &zone_ext=0 hinzu.
        Der Overlay geht nur bei internen Zonen bei externen nicht. Allerdings sollte der MS4L das selber unterscheiden können.

        Unter /var/log/logitschmediaserver/ werden für jeden Player die Logs geschrieben. Dort müsste auch die Log-Datei für den Player Event stehen.
        Kein Support per PN!

        Kommentar

        • Hannes Schellnast
          Smart Home'r
          • 28.08.2015
          • 93

          #6
          Hab gerade gesehen, dass meine Logs für alle Zonen mit 16.09 aufhören. Die Serverloggings sind jedoch aktuell.
          Am 16.09 hab ich sowohl ein Update für die Squeezeplayer, als auch auf den Music Server gemacht.
          Meine aktuellen Versionen sind:
          LogitechMediaServer Update

          Installierte Version :7.9.1~1505480690
          SqueezePlayer Update

          Installierte Version :1.8.7-999

          Über welches Script werden die Player gestartet/gestoppt? Kann es sein, dass nach dem Update die Loggings nicht mehr aktiv sind?


          MfG
          Hannes
          Zuletzt geändert von Hannes Schellnast; 20.09.2017, 19:09.

          Kommentar

          • Hannes Schellnast
            Smart Home'r
            • 28.08.2015
            • 93

            #7
            Ich habe mir die Scripte ein wenig durchgesehen, und die generierten Files hochgeladen.
            Zur Info: Ich will den TTS Text auf Player aa:bb:cc:dd:ee:04 ausgeben.
            Dabei werden folgende Files generiert:
            Virtuelle Event-Soundkarte:

            ################################################## ####
            ## Zone EVENT

            pcm.zone_event {
            type plug
            slave {
            pcm "multi"
            channels 16
            }
            ttable.0.0 1
            ttable.1.1 1
            }

            pcm.zone_event_eq {
            type plug
            slave.pcm {
            type equal
            slave.pcm "zone_event"
            controls "/opt/music_server/sq_cfg/eq/zone_event_mbeq.bin"
            library "/usr/lib/ladspa/mbeq_1197.so"
            module "mbeq"
            }
            }

            ctl.zone_event_eq {
            type equal
            controls "/opt/music_server/sq_cfg/eq/zone_event_mbeq.bin"
            library "/usr/lib/ladspa/mbeq_1197.so"
            module "mbeq"
            }


            und temporär auch die event.tmp

            zones_anzahl="1"
            zones_int_anzahl="1"
            zones_ext_anzahl="0"
            event_player_mac="99:4d:30:63:a0:fc"
            volume="50"
            overlay="1"
            overlay_drop="40"
            file="/var/www/event/tts_tmp/c9018f52e871f67c9b189341002d73f4-de-de.mp3"
            zones_int[0]="aa:bb:cc:dd:ee:01"
            zones_volume_int[0]="20.0"
            zones_mode_int[0]="stop"
            zones[0]="aa:bb:cc:dd:ee:04"
            zones_volume[0]="24"
            zones_mode[0]="stop"
            channels="2"
            channels_multi="16"
            channel[0]="ttable.0.0 1"
            channel[1]="ttable.1.1 1"
            signal="0"
            repeat="0"
            timeout="30"
            amp_delay="1"
            risevol_set="0"
            risevol_from=""
            risevol_to=""
            risevol_time=""




            Beim Argument zones_int[0] steht die MAC meiner 1.Zone, jedoch werden die 5 weiteren existierenden Zonen nicht aufgelistet.
            Auf zones[0] steht die MAC des Players, auf dem ausgegeben werden soll.

            Sind die beiden Files plausibel?

            Falls ja, an welchen Ecken kann ich noch weitersuchen?

            MfG
            Hannes



            Kommentar

            • hismastersvoice
              Supermoderator
              • 25.08.2015
              • 7319

              #8
              Sehr komisch... wenn du ihm dei Zone 4 vorgibst hat die Zone 1 nicht im File zu suchen.
              Werde es mir die Tage mal anschauen ob ich das nachstellen kann.
              Zuletzt geändert von hismastersvoice; 20.09.2017, 21:32.
              Kein Support per PN!

              Kommentar

              • Hannes Schellnast
                Smart Home'r
                • 28.08.2015
                • 93

                #9
                Zitat von hismastersvoice
                Sehr komisch... wenn du ihm dei Zone 4 vorgibst hat die Zone 1 nicht im File zu suchen.
                Werde es mir die Tage mal anschauen ob ich das nachstellen kann.
                Wenn du meine Konfigurationsfiles zum Nachstellen brauchst, melde dich bitte, damit ich sie dir zuschicken kann.

                Kommentar

                • Hannes Schellnast
                  Smart Home'r
                  • 28.08.2015
                  • 93

                  #10
                  Zitat von hismastersvoice
                  Sehr komisch... wenn du ihm dei Zone 4 vorgibst hat die Zone 1 nicht im File zu suchen.
                  Werde es mir die Tage mal anschauen ob ich das nachstellen kann.
                  Ich habe mir deine Scripte nochmals angesehen, und die dafür verantwortlichen Codezeilen aus dem event.php hier rauskopiert.

                  event.tmp schreiben:
                  $handle = fopen($event_file, "w");
                  fwrite($handle, "zones_anzahl="" . count($zones_mac_array) . ""\n");
                  fwrite($handle, "zones_int_anzahl="" . count($zones_int_array) . ""\n");
                  fwrite($handle, "zones_ext_anzahl="" . count($zones_ext_array) . ""\n");
                  fwrite($handle, "event_player_mac="99" . $mac_cut . ""\n");
                  fwrite($handle, "volume="" . $vol . ""\n");
                  fwrite($handle, "overlay="" . $overlay . ""\n");
                  fwrite($handle, "overlay_drop="" . $overlay_drop . ""\n");
                  if ($type != "fav") {
                  fwrite($handle, "file="" . $tts_pfad . $fileolang . ".mp3"\n");
                  } else {
                  fwrite($handle, "file="" . $file . ""\n");
                  }
                  for ($i = 0; $i < count($zones_int_array); $i++) {
                  fwrite($handle, "zones_int[" . $i . "]="" . $zones_int_array[$i] . ""\n");
                  fwrite($handle, "zones_volume_int[" . $i . "]="" . $volume_int[$i] . ""\n");
                  fwrite($handle, "zones_mode_int[" . $i . "]="" . $mode_int[$i] . ""\n");
                  }
                  for ($i = 0; $i < count($zones_ext_array); $i++) {
                  fwrite($handle, "zones_ext[" . $i . "]="" . $zones_ext_array[$i] . ""\n");
                  fwrite($handle, "zones_volume_ext[" . $i . "]="" . $volume_ext[$i] . ""\n");
                  fwrite($handle, "zones_mode_ext[" . $i . "]="" . $mode_ext[$i] . ""\n");
                  }
                  for ($i = 0; $i < count($zones_mac_array); $i++) {
                  fwrite($handle, "zones[" . $i . "]="" . $zones_mac_array[$i] . ""\n");
                  fwrite($handle, "zones_volume[" . $i . "]="" . $volume[$i] . ""\n");
                  fwrite($handle, "zones_mode[" . $i . "]="" . $mode[$i] . ""\n");
                  }
                  fwrite($handle, "channels="" . count($channel_all_array) . ""\n");
                  fwrite($handle, "channels_multi="" . $channels_multi_array[0] . ""\n");
                  for ($i = 0; $i < count($channel_all_array); $i++) {
                  fwrite($handle, "channel[" . $i . "]="" . $channel_all_array[$i] . ""\n");
                  }
                  fwrite($handle, "signal="" . $signal . ""\n");
                  fwrite($handle, "repeat="" . $repeat . ""\n");
                  fwrite($handle, "timeout="" . $timeout . ""\n");
                  fwrite($handle, "amp_delay="" . $amp_delay . ""\n");
                  fwrite($handle, "risevol_set="" . $risevol_set . ""\n");
                  fwrite($handle, "risevol_from="" . $risevol[0] . ""\n");
                  fwrite($handle, "risevol_to="" . $risevol[1] . ""\n");
                  fwrite($handle, "risevol_time="" . $risevol[2] . ""\n");
                  fclose($handle);


                  das Befüllen des arrays passiert davor:

                  if ($zone != "all" && $zone != "0") {
                  $zone_player = explode(",", $zone);
                  for ($i = 0; $i < count($zone_player); $i++) {
                  array_push($zones_mac_array, $configzone[$zone_player[$i]][SLM_MAC_ADDRESS][$zone_player[$i]]);
                  array_push($zones_int_array, $configzone[$i + 1][SLM_MAC_ADDRESS][$i + 1]);
                  array_push($zones_name_array, $configzone[$zone_player[$i]][SLM_NAME][$zone_player[$i]]);
                  array_push($zones_soundcard_array, $configzone[$i + 1][SLM_SOUNDCARD][$i + 1]);
                  }
                  }


                  So wie ich das sehe, wird das event.tmp genau so beschrieben, wie es im Code vorgegeben wird. Wenn für zones_int[0]="aa:bb:cc:dd:ee:01" jedoch die Zone 4 stehen soll, dann ist die Zeile array_push($zones_int_array, $configzone[$i + 1][SLM_MAC_ADDRESS][$i + 1]); nicht korrekt.
                  Was ist denn der Unterschied in der Bedeutung der keys zones_int[] u. zones[] im event.tmp?
                  Gehe ich richtig in der Annahme dass zones_int[] für die neue Overlayausgabe verwendet wird, und zones[] für die urspr. Eventausgabe?


                  MfG
                  Hannes


                  Zuletzt geändert von Hannes Schellnast; 24.10.2017, 21:36.

                  Kommentar

                  • hismastersvoice
                    Supermoderator
                    • 25.08.2015
                    • 7319

                    #11
                    Es gibt keine Zonesteuerung[0] da die Zone 1,2,3 usw heißt und deswegen +1 da es sonst beim proggen zur verwechseln kommen könnte.

                    Der Code funktiofunktioniert auf 4 Geräten bei mir, sowie bei anderen Installationen hier im Forum. Was bei dir anders ist kann ich jetzt nicht feststellen.

                    Um das ganze Abwärtskompatibel zu halten übergebe ich beide Parameter, das hast du korrekt interpretiert.
                    Zuletzt geändert von hismastersvoice; 24.10.2017, 21:51.
                    Kein Support per PN!

                    Kommentar

                    • Hannes Schellnast
                      Smart Home'r
                      • 28.08.2015
                      • 93

                      #12
                      Bitte nicht falsch verstehen, ich glaub dir ja, dass die Installation bei dir und vielen anderen läuft. Bin nur verzweifelt dran, dass Overlay bei mir zum Laufen zu bringen, da ich ja auch eine "Standardinstallation" mit "Standardhardware" verwende. Vielleicht lags ja am Updateschritt von 0.4.1 auf 0.4.9. (Ev. war der Updateschritt hier zu groß)
                      Vielleicht kannst du mir ja sagen, wie das "event.tmp" genau aussehen muss, wenn ich folgende Nachricht abschicke:
                      http://192.168.0.26/event/event.php?...verlay_drop=40
                      (Macadresse für Zone 4 ist aa:bb:cc:dd:ee:04)
                      Mit diesen Informationen könnte ich das event.php in den nächsten Tagen debuggen, damit ich sehe, wie sich die falschen Daten in das event.tmp einschleichen.
                      Es wäre mir wirklich sehr weitergeholfen, wenn du mir für den obigen TTS-Call die korrekte event.tmp zukommen lassen kannst, damit das debuggen auf meiner Seite Sinn macht.

                      Vielleicht noch ein wenig zu den Hintergrundinformationen, warum ich das Overlay bei mir unbedingt zum Laufen bekommen will: Ich scihreibe schon seit einiger Zeit an einer Art Plugin für deinen loxMS. Dieses besteht im Prinzip aus einem UDP-Server, der mir eine vereinfachte Tastenverwendung für Favoritenhandling (sortiert nach Gruppierungen, Auto-Synchronisation,..) ermöglicht, und auch andere Services wie z.B. TTS erweitert um automatische Abfrage von Loxone Variablen (+Interpreter).

                      MfG
                      Hannes

                      Update: Habe gerade die entsprechenden Stellen im event.php mit dem Debugger angesehen, und den Screenshot hier angehängt. (Stand der Variablen ist genau am Breakpoint. D.h. beim Befüllen der Strukturen)
                      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: debugging_event.png Ansichten: 1 Größe: 305,3 KB ID: 123828
                      Zuletzt geändert von Hannes Schellnast; 26.10.2017, 17:14.

                      Kommentar

                      • Hannes Schellnast
                        Smart Home'r
                        • 28.08.2015
                        • 93

                        #13
                        So wie ich das sehe, ist mir beim Debuggen nichts aufgefallen, und das "event.tmp" schein zu stimmen.
                        Deshalb bin ich jetzt einen Schritt weiter gegangen, und habe versucht, den virtuellen Player zu starten.
                        Hier bekomme ich jedoch eine Fehlermeldung zurück:

                        music@music-server:~$ squeezelite -n "Event" -m 99:4d:30:63:a0:fc -o zone_event -a 80:4:: -M MusicServer4Lox_Event_Player &
                        [1] 10273
                        music@music-server:~$ [20:42:16.961268] test_open:277 playback open error: No such file or directory
                        [20:42:16.961442] output_init_common:382 unable to open output device

                        [1]+ Fertig squeezelite -n "Event" -m 99:4d:30:63:a0:fc -o zone_event -a 80:4:: -M MusicServer4Lox_Event_Player



                        Das File event.cfg existiert im Ordner /opt/music_server/soundcard_cfg
                        assound.cfg
                        ################################################## ####
                        ## ASOUND.CFG CREATED BY MUSICSERVER4LOX

                        #Link to Alsa Multicard_Config
                        </opt/music_server/soundcard_cfg/multicard/multi.cfg>

                        #Link to Alsa Allchannel_Config
                        </opt/music_server/soundcard_cfg/defaultcard/default.cfg>

                        # Link to Alsa Zone_Config
                        </opt/music_server/soundcard_cfg/zones/zone_01.cfg>
                        </opt/music_server/soundcard_cfg/zones/zone_02.cfg>
                        </opt/music_server/soundcard_cfg/zones/zone_03.cfg>
                        </opt/music_server/soundcard_cfg/zones/zone_04.cfg>
                        </opt/music_server/soundcard_cfg/zones/zone_05.cfg>
                        </opt/music_server/soundcard_cfg/zones/zone_06.cfg>
                        </opt/music_server/soundcard_cfg/event.cfg>

                        event.cfg
                        ################################################## ####
                        ## Zone EVENT

                        pcm.zone_event {
                        type plug
                        slave {
                        pcm "multi"
                        channels 16
                        }
                        ttable.0.0 1
                        ttable.1.1 1
                        }

                        pcm.zone_event_eq {
                        type plug
                        slave.pcm {
                        type equal
                        slave.pcm "zone_event"
                        controls "/opt/music_server/sq_cfg/eq/zone_event_mbeq.bin"
                        library "/usr/lib/ladspa/mbeq_1197.so"
                        module "mbeq"
                        }
                        }

                        ctl.zone_event_eq {
                        type equal
                        controls "/opt/music_server/sq_cfg/eq/zone_event_mbeq.bin"
                        library "/usr/lib/ladspa/mbeq_1197.so"
                        module "mbeq"
                        }



                        Kann sonst noch beim Player etwas für die virtuelle Soundcard fehlen?

                        MfG
                        Hannes
                        Zuletzt geändert von Hannes Schellnast; 26.10.2017, 20:26.

                        Kommentar

                        • hismastersvoice
                          Supermoderator
                          • 25.08.2015
                          • 7319

                          #14
                          So habe den Fehler schnell gefunden

                          Hatte ihn bereits behoben aber wohl nicht in der 0.4.9 eingefügt. Deswegen hat bei mir alles funktioniert.
                          Tausche die Datei und melde dich kurz ob alles OK ist.

                          Angehängte Dateien
                          Zuletzt geändert von hismastersvoice; 27.10.2017, 09:59.
                          Kein Support per PN!

                          Kommentar

                          • hismastersvoice
                            Supermoderator
                            • 25.08.2015
                            • 7319

                            #15
                            Vielleicht noch ein wenig zu den Hintergrundinformationen, warum ich das Overlay bei mir unbedingt zum Laufen bekommen will: Ich scihreibe schon seit einiger Zeit an einer Art Plugin für deinen loxMS. Dieses besteht im Prinzip aus einem UDP-Server, der mir eine vereinfachte Tastenverwendung für Favoritenhandling (sortiert nach Gruppierungen, Auto-Synchronisation,..) ermöglicht, und auch andere Services wie z.B. TTS erweitert um automatische Abfrage von Loxone Variablen (+Interpreter).
                            Das musst du mir genauer erklären... Hört sich ja interessant an.
                            Kein Support per PN!

                            Kommentar

                            Lädt...