Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. uweklatt

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Profile
    • Following 0
    • Followers 0
    • Topics 14
    • Posts 180
    • Best 12
    • Groups 2

    uweklatt

    @uweklatt

    15
    Reputation
    106
    Profile views
    180
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    uweklatt Follow
    Pro Starter

    Best posts made by uweklatt

    • RE: Offline Sprachausgabe in hoher Qualität

      Lokaler Text2Speak (TTS) Server

      Ich beschreibe hier meine Vorgehensweise zur Einrichtung eines im lokalen Netzwerk befindlichen TTS-Servers. Dieser kann zum Erstellen von WAV-Sounddateien genutzt werden. Als Eingabe dient der gewünschte Text, den man über eine Webschnittstelle an diesen Server sendet und dann die WAV-Datei anschließend von diesem herunterladen und weiter verwenden kann.

      Es gibt diverse Stimmen in vielen Sprachen: https://github.com/rhasspy/piper/blob/master/VOICES.md

      Verwendete Softwarekomponenten:

      • Debian oder Devuan Linux (minimale Serverversion genügt)
      • Webserver mit PHP-CGI (lighttpd)
      • Python3 mit PIP
      • piper (AI-Sprachgenerierung) => https://github.com/rhasspy/piper

      Ich habe einen „neuen“ virtuellen Proxmox Server genutzt. Man kann aber auch einen RasPi oder einen anderen Linuxserver verwenden. Dann muss die Installation der einzelnen Softwarekomponenten evtl. angepasst werden. Ich haben Devuan 4 als Basis verwendet. https://www.devuan.org/

      Bei Debian/Deuvan basierten Linuxsystemen wird apt zur Softwareverwaltung verwendet.
      Das wird auch bei dieser Anleitung verwendet.

      Die folgenden Schritte habe ich als root-User durchgeführt:

      Installation des Devuan-Linux bzw. Nutzung eines vorhandenen Linux.
      Anschließend Update der aktuellen Software:

      apt update
      apt upgrade

      Installation von python und pip:

      apt install python3 pip

      Installation von piper:

      pip install piper-tts

      Test der piper Installation: (Optional)

      echo 'Willkommen!' | piper --model de_DE-thorsten-high --output_file welcome.wav

      Diese WAV-Datei sollte sich mit einem Player abspielen lassen.
      Beim ersten Aufruf von „piper“ wird die benutzte Stimme (hier de_DE_thorsten-high) heruntergeladen und im aktuellen Verzeichnis gespeichert. Die generierte WAV-Datei landet ebenfalls im aktuellen Verzeichnis.

      Installation des Webservers mit php-cgi:

      apt install lighttpd php-cgi

      Aktivierung von PHP fastcgi:

      ln -s /etc/lighttpd/conf-available/10-fastcgi.conf /etc/lighttpd/conf-enabled/10-fastcgi.conf
      ln -s /etc/lighttpd/conf-available/15-fastcgi-php.conf /etc/lighttpd/conf-enabled/15-fastcgi-php.conf

      Neustart des Webservers:

      /etc/init.d/lighttpd restart

      Damit die heruntergeladene Stimme und die WAV-Datei im WEB-Verzeichnis /var/www/html erstellt werden können, bekommt dieses Verzeichnis Schreibrechte für alle User! Das sollte man bei einem öffentlich erreichbaren Server so nicht tun!

      chmod 777 /var/www/html

      Im Webverzeichnis /var/www/html wird nun eine kleine PHP-Datei index.php erstellt, die zum Empfang des zu erstellenden Textes dient. Sie ruft dann piper mit den erforderlichen Parametern auf.

      /var/www/html/index.php:

      <?php
        $text = htmlspecialchars_decode($_GET['text']); 
        $text2 = escapeshellarg($text);
        exec("/bin/echo '".$text2."' | /usr/local/bin/piper --model de_DE-thorsten-high --output_file tts.wav");
      ?>
      

      Nun kann durch den Aufruf des Servers mit Übergabe des Textes eine entsprechende WAV-Datei erstellt werden:
      http://server-ip?text=Willkommen

      Die WAV-Datei kann anschliessend heruntergeladen werden:
      http://server-ip/tts.wav

      Im ioBroker nutze ich den Server per JavaScript mit dem Chromecast Adapter.
      Der gewünschte Text wird mit dem httpGet() Befehl zum Server übertragen und anschließend die URL der WAV-Datei im Chromecast Adapter im Objekt chromecast.0.Google_Home.player.url2play eingetragen und abgespielt.
      Damit das sauber funktioniert, musste ich nach dem Generieren der WAV-Datei eine kleine Pause (1 sec) einfügen, bevor die URL zum Chromecast gesandt wird.
      Der Code sieht wie folgt aus:

      function talk(text)
      {
          setState('chromecast.0.Google_Home.player.volume', 30);
          setState('chromecast.0.Google_Home.player.announcement', "http://ioBroker-ip:8082/sayit.0/tts.userfiles/mp3_silence_1sec.mp3");
          httpGet("http://server-ip/?text="+text, function() 
          {
              setTimeout(function()
              { 
                  setState('chromecast.0.Google_Home.player.url2play', 'http://server-ip/tts.wav'); 
              }, 1000);  
          });
      }
      

      Eine Demo für den Webbrowser liefert diese HTML-Datei. Sie bietet neben der Eingabemöglichkeit des Textes auch einen Player zum direkten Abspielen im Browser.

      <!doctype html>
      <head>
      <meta charset=utf-8>
      <title>TTS-Demo</title>
      </head>
      <body>
        <?php
          $text = htmlspecialchars_decode($_GET['text']); 
          $text2 = escapeshellarg($text);
          exec("/bin/echo '".$text2."' | /usr/local/bin/piper --model de_DE-thorsten-high --output_file play.wav");
        ?>
        <form action="/play.php">
          <input type="text" name="text" value="<?php echo $text;?>">
          <input type="submit" value="Generate">
        </form> 
        <audio id="audio" controls src="/play.wav"></audio><br>
        <a href="/play.wav">Download WAV</a>
        <script type="text/javascript">
          document.getElementById('audio').addEventListener("ended",function() {
              this.src = "/play.wav.php?nocache="+new Date().getTime();
              this.play();
          });
        </script>
      </body>
      </html>
      

      Evtl. ist das alles für den Einen oder Anderen nützlich.

      Tschau
      Uwe

      posted in Praktische Anwendungen (Showcase)
      uweklatt
      uweklatt
    • RE: sayit mag nicht mehr

      Hallo,

      ich habe nun übergangsweise ebenfalls Pico als Sprachausgabe eingestellt.
      Ich musste dazu noch zwei Debian Pakete nachinstallieren, da sie nicht vorhanden waren:

      apt install libttspico-utils lame
      

      libttspico-utils mit den zugehörigen Abhängigkeiten beinhaltet die Sprachengine und lame dient zum Erzeugen einer MP3-Datei.

      Tschau
      Uwe

      posted in ioBroker Allgemein
      uweklatt
      uweklatt
    • RE: Test Adapter EnOcean v0.5.x

      Ich konnte den Sensor erfolgreich in den Konfigurationsdateien hinzufügen.
      Details dazu gibt es im oben genannten Git-issue!

      Tschau
      Uwe

      posted in Tester
      uweklatt
      uweklatt
    • RE: Offline Sprachausgabe in hoher Qualität

      @liv-in-sky sagte in Offline Sprachausgabe in hoher Qualität:

      also braucht man natürlich eine alexa oder google box

      Nein, jedes "Gerät", das WAV-Dateien im lokalen Netzwerk abspielen kann, kann für die Ausgabe verwendet werden. (z.B. auch ein RasPi).

      Im Prinzp kann der TTS Server auch selbst die Ausgabe übernehmen, wenn er einen Audioausgang hat. Dann kann die WAV-Datei mit z.B.

      aplay /var/www/html/tts.wav

      direkt ausgegeben werden. Noch eleganter ist es, die Ausgabe von Piper direkt als Stream in das Audiodevice zu leiten. Piper kann auch direkt Audiodaten als RAW Stream generieren...

      Tschau
      Uwe

      posted in Praktische Anwendungen (Showcase)
      uweklatt
      uweklatt
    • RE: Proxmox LXC mit Frigate

      Ich nutze aktuell 0.14.0 ohne erkennbare Probleme.
      Nur die GUI ist ab 0.14 komplett umgekrempelt. Da muss man erst einmal suchen, wo was ist 😉

      Tschau
      Uwe

      posted in Proxmox
      uweklatt
      uweklatt
    • RE: Kameranzeige in ioBroker, oder besser extra System?

      Hallo,

      eine prima Überwachungssoftware, die mit KI arbeitet, ist Frigate.
      Läuft bei mir in einem Docker Container auf einem NAS und sendet die Ereignisinfos per MQTT an ioBroker.

      Das Besondere ist, dass nicht einfach Bewegung erkannt wird, sondern mit einem neuronalen Netz Objekte detektiert werden.

      Ich finde es praxisgerechter als z.B. Shinobi.

      Tschau
      Uwe

      posted in ioBroker Allgemein
      uweklatt
      uweklatt
    • Offline Sprachausgabe in hoher Qualität

      Hallo,

      ich war auf der Suche nach einer offline Sprachausgabe, die als Ersatz für SayIt dienen kann und eine gute Sprachqualität besitzt.

      Als Ergebnis habe ich das Projekt piper verwendet und dieses auf einem virtuellen Linux Server installiert.
      Dort läuft auch ein Webserver, der die generierten Sprachausgaben zur Nutzung/Download bereitstellt.
      Die gewünschten Texte werden über eine HTTP Webanfrage dorthin übermittelt.

      Falls Interesse besteht, kann ich die Schritte zur Umsetzung hier zeigen.

      Tschau
      Uwe

      posted in Praktische Anwendungen (Showcase)
      uweklatt
      uweklatt
    • RE: Neuer Proxmox Server aufbauen,aber wie

      @bob-der-1
      Warum nicht LVM thin mit Proxmox nutzen?
      Damit bekommt man auch Snapshots und kann den Speicher flexibel aufteilen.

      Tschau
      Uwe

      posted in Proxmox
      uweklatt
      uweklatt
    • RE: Tvspielfilm.adapter TV Programm für VIS

      @michael-mauer Der tvspielfilm-Adapter ist momentan "defekt"
      Uwe

      posted in ioBroker Allgemein
      uweklatt
      uweklatt
    • RE: iob diag - Skript

      @djmarc75 🍻

      posted in ioBroker Allgemein
      uweklatt
      uweklatt

    Latest posts made by uweklatt

    • RE: unbekannte Fehlermeldung beim Daikin Adapter

      @homoran
      Du hast vermutlich noch die ältere WLAN Einheit, die eine lokale Kommunikation ermöglicht. Dazu kann ich leider nichts sagen.
      Ich habe die "nur Cloud" Version.

      Tschau
      Uwe

      posted in ioBroker Allgemein
      uweklatt
      uweklatt
    • RE: unbekannte Fehlermeldung beim Daikin Adapter

      @homoran
      Ich habe die Firmware der Stylish Inneneinheiten auf 1_39_0 upgedatet.
      Der ioBroker Adapter hat Version 0.4.11
      Tschau
      Uwe

      Edit:
      Ich sehe gerade. Es geht um den "nicht Cloud" Adapter. Sorry für das Rauschen...

      posted in ioBroker Allgemein
      uweklatt
      uweklatt
    • RE: unbekannte Fehlermeldung beim Daikin Adapter

      @apollon77
      Habe das Update bereits installiert.
      Der lokale Zugang funktioniert weiterhin.

      Tschau
      Uwe

      posted in ioBroker Allgemein
      uweklatt
      uweklatt
    • RE: Smartmeter Adapter für Volkszähler (IR) an remotem Raspi

      Evtl. den Lesekopf über ser2net zum ioBroker leiten.
      Dazu ist am Zähler quasi nur ein beliebiges Linuxsystem mit ser2net erforderlich.
      Leider weiß ich nicht, ob der Smartmeter Adapter direkt einen TCP-Socket als Schnittstelle nutzen kann.
      Mit dem Programm socat kann aber notfalls eine virtuelle Schnittstelle erstellt werden.

      Tschau
      Uwe

      posted in ioBroker Allgemein
      uweklatt
      uweklatt
    • RE: Hilfe beim durchreichen USB2CAN an Proxmox LXC Container

      @ronrich
      Schon einmal probiert, den ganzen USB-bus durchzureichen?
      z.B. bei Bus 001:
      lxc.mount.entry: /dev/bus/usb/001 dev/bus/usb/001 none bind,optional,create=dir 0, 0

      Tschau
      Uwe

      posted in Proxmox
      uweklatt
      uweklatt
    • RE: Neuer Proxmox Kernel verfügbar

      @agrippinenser eno1 ist vermutlich das physikalische Netzwerkinterface.
      vmbr0 eine Bridge damit die VMs mit dem physikalischen Interface verbunden werden können.

      Tschau
      Uwe

      posted in Proxmox
      uweklatt
      uweklatt
    • RE: Neuer Proxmox Server aufbauen,aber wie

      @martinp
      Die Datei- und Ordnernamen darf man sich nicht ansehen.
      Mit z.B. Portainer ist das aber auch nicht erforderlich.

      Tschau
      Uwe

      posted in Proxmox
      uweklatt
      uweklatt
    • RE: Neuer Proxmox Server aufbauen,aber wie

      @david-g
      Ja, ich sprach von Docker Containern.
      LXCs kann man natürlich mit apt aktualisieren.

      Tschau
      Uwe

      posted in Proxmox
      uweklatt
      uweklatt
    • RE: Neuer Proxmox Server aufbauen,aber wie

      @david-g
      Genau der Weg ist eigentlich nicht so gedacht.
      Der Container sollte aus dem neusten Image neu erzeugt werden.
      Zur einfachen grafischen Verwaltung bietet sich "Portainer" (Ist auch ein Docker Container) an.

      Tschau
      Uwe

      posted in Proxmox
      uweklatt
      uweklatt
    • RE: Neuer Proxmox Server aufbauen,aber wie

      @bob-der-1
      Container sind "Wegwerfsoftware". Nur die Konfiguration und die Daten überleben das Update eines Containers. (Soweit es korrekt eingerichtet ist!)
      Somit sollte man pro Dienst/Anwendung einen eigenen Container verwalten, damit man die auch getrennt updaten kann.

      Der Vorteil von Containern gegenüber VMs ist die Ressourcensparsamkeit.
      Ein Container nutzt den vorhandenen Linuxkernel des Hosts und spart so eine Menge RAM und Massenspeicherplatz.
      Zusätzlich ist ein direkter Hardwarezugriff leicht möglich.

      Eine VM muss viele Dinge emulieren und hat deshalb neben dem erhöhten Ressourcenverbrauch auch Performanceeinbußen.
      Der Hauptvorteil einer VM ist die "bessere" Isolierung vom Hostsystem und die Möglichkeit, andere Betriebssysteme zu verwenden.

      Es kommt also "darauf an".

      Tschau
      Uwe

      posted in Proxmox
      uweklatt
      uweklatt
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo