Unifi - Kameras als Lautsprecher benutzen (TTS, audio files)

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • MarkusCosi
    LoxBus Spammer
    • 28.09.2023
    • 270

    #1

    Unifi - Kameras als Lautsprecher benutzen (TTS, audio files)

    vllt. für den ein oder anderen von Interesse:

    Mit einem tool zum rtp-Streamen kann man auf Unifi-Kameras wie der Dome G4 / G5 Audio-Inhalte streamen. Folgendes Beispiel zeigt wie das mit einem Loxberry funktioniert (benötigt das AnyPlugin).

    Mit dem Tool ffmpeg (+ library "libflite" für TTS, standardmäßg auf dem Loxberry installiert, siehe hier!) lässt sich eine mp3-Datei oder aber ein Text auf die Kamera als Audio streamen. Eine solche Audio-Ausgabe kann dann per Bash- bzw. Shell-Befehl über das AnyPlugin z.B. via einem virtuellen Ausgang in Loxone getriggert werden.

    Folgender Befehl spielt eine mp3 über den Lautsprecher der Kamera ab (zweites Beispiel: mit cropping & Lautstärke-Anpassung, file lokal auf dem Loxberry per filemanager abgelegt):
    • ffmpeg -re -i 'file:///Users/../Test.mp3' -c:a opus -strict -2 -b:a 24k -f rtp rtp://IPderKamera:7004
    • ffmpeg -re -ss 00:00:00 -to 00:00:04 -i 'http://LoxberryUserName:LoxBerryPSW@LoxberryIP/admin/system/tools/filemanager/system/webfrontend/legacy
      /Test.mp3' -c:a opus -strict -2 -b:a 24k -filter:a "volume=1.0" -f rtp rtp://IPderKamera:7004
    Alternativ: Text-To-Speech (verfügbare Stimmen / voices: siehe Kommandozeilenbefehl: ffmpeg -f lavfi -i "flite=list_voices=true" → awb (male), kal (male, slower), kal16 (broken?), rms (male), slt (female, fast); Hinweis den ich hierzu fand: "Note the kal (diphone) voice is a different technology from the others and is much less computationally expensive but more robotic."
    • ffmpeg -re -f lavfi -i flite=text='This is a test':voice=slt -c:a opus -strict -2 -b:a 24k -f rtp rtp://IPderKamera:7004
    Über das AnyPlugin am Loxberry lassen sich solche Befehle nun per virtuellem Ausgang ausführen.
    Hierzu gemäß Anleitung des AnyPlugin vorgehen, d.h. Plugin installieren, dann in der Loxone Config einen virtuellen Ausgang anlegen mit der Adresse tcp://IPLoxberry:9095, und dann einen virtuellen Ausgangsbefehl XYZ wie oben anlegen mit NameBefehl udp command XYZ.

    Nun kann man z.B. auch mit <v> im Befehl und Textübergabe ähnlich dem Intercom TTS-Eingang Sprachbefehle an die Unifi-Kameras übergeben.

    Hintergrund:
    Folgende Schritte muss man vermutlich nicht extra ausführen, da die talkback-session URL (=rtp://IPderKamera:7004) generisch scheint!
    Im Unifi Web-Interface kann man unter Settings → Control Plane → Integrations → Your API Keys einen API Key anlegen (im folgenden XXXX → abspeichern / merken). In einem Terminal / einer Kommando-Zeile kann man folgende Schritte ausführen um den rtp-Stream Adresse zu bekommen:
    1. curl -k -X GET 'https://YourUDMProIP/proxy/protect/integration/v1/cameras' -H 'X-API-KEY: XXX' -H 'Accept: application/json'
    2. → Kamera ID merken / speichern: YYY (steht im Output des obigen Befehls im Terminal)
    3. curl -k -X POST 'https://YourUDMProIP/proxy/protect/integration/v1/cameras/YYY/talkback-session' -H 'X-API-KEY: XXX' -H 'Accept: application/json'
    4. Als Ausgabe im Terminal steht dann die Info: {"url":"rtp://IPderKamera:7004","codec":"opus","sampling Rate": 24000,"bitsPerSample":16}
    Ursprünglicher Post zur Python-API: hier, bzw. hier.
    Zuletzt geändert von MarkusCosi; 08.05.2025, 12:04.
  • LoxTech
    Azubi
    • 05.05.2023
    • 3

    #2
    Danke Markus, klingt sehr gut. Danke für deine Arbeit.

    Werde es versuchen wenn ich mal auf Urlaub bin ob ich das so hinbekomme.

    Habe geschaut ob wer schon ein Video hochgeladen hat. Nichts gefunden. Also ganz was seltenes würde ich sagen:-)
    Lg

    Kommentar

    Lädt...