Ankündigung

Einklappen
Keine Ankündigung bisher.

Audio-Steuerung und Multiroom-Audio

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Audio-Steuerung und Multiroom-Audio

    Hallo zusammen,

    ich plane aktuell mein KNX-basiertes Smart-Home-System im Neubau und werde sicherlich noch viele Fragen haben 😊

    Derzeit beschäftigt mich aus meiner Sicht das wohl komplexeste Thema: Audio-Steuerung und Multiroom-Audio.

    Was ich damit meine bzw. erreichen möchte:

    1. Keine Cloud-Anbindung oder andere Formen der Obsoleszenz

    Ich komme aus der Softwareentwicklung (Garbage-Collector-basierte Sprachen) und habe auch Erfahrung im Umgang mit Hardware (z.B. Flashen). Deshalb darf es gerne eine Bastellösung sein - das würde ich sogar bevorzugen, weil ich dann weiß, wie alles funktioniert und im Zweifel Komponenten austauschen kann, unabhängig davon, ob es die Hersteller überhaupt noch gibt.

    2. Sprachsteuerung und Sprachausgabe

    Ich möchte jeden Raum mit einem Mikrofon und musik­tauglichen Lautsprechern ausstatten. Für die Sprachsteuerung brauche ich nichts "Smartes" a lá Alexa - feste Phrasen reichen völlig aus.

    3. Konferenz "mitnehmen"

    Ich möchte mein Laptop (oder auch Smartphone) z.B. im Büro über den Mikrofon-/Kopfhörer-Kombiport oder über Bluetooth anschließen und so das im Raum installierte Mikrofon und die Lautsprecher nutzen. Während einer Teams-Konferenz möchte ich dann z.B. ins Wohnzimmer wechseln und die Übertragung per Sprachbefehl dorthin umschalten. Ich sollte weiterhin Sprachbefehle abgeben können (perfekt wäre es, wenn diese nur von mir über das lokale Mikrofon erkannt werden und nicht etwa von Teams-Teilnehmern 😄). Auch Echo/Rückkopplungen sollen es nicht geben.

    Bei Bluetooth-Verbindung würde ich gern auch den Mediaplayer steuern ("Nächstes Lied", Lautstärke etc., z.B. über AVRCP).

    4. Multiroom

    Analog zu Punkt 3 möchte ich Musik in mehreren Räumen gleichzeitig abspielen oder "mitnehmen" können. Synchronisierung wäre ideal, aber nicht zwingend erforderlich.

    5. Kontext

    Das System soll "wissen", wer und wo gerade mit ihm kommuniziert. Da jeder von uns unterschiedliche Vorlieben hat, wären kürzere Phrasen sinnvoll. Beispielsweise hätte jeder ein eigenes Aktivierungswort, und je nachdem, über welches Mikrofon der Befehl kommt, würden unterschiedliche Routinen ausgeführt.
    Wenn ich im Badezimmer "Licht an" sage, soll es z.B. nur auf 30% eingeschaltet werden, während meine Kleine eher 80% bräuchte. Da ohnehin Präsenzmelder geplant sind, wäre auch eine automatische "Verfolgung" von Licht, Musik usw. interessant, jedoch nicht notwendig.

    6. Stromsparsamkeit

    Optional, aber sehr wünschenswert wäre ein möglichst geringer Stromverbrauch im Leerlauf.

    Das ist erstmal meine Wunschliste und mir ist bewusst, dass das technisch anspruchsvoll ist. Ich gehe davon aus, dass es eine fertige Lösung dafür derzeit nicht gibt, zumindest habe ich bisher nichts Vergleichbares gefunden.

    Was ich bisher überlege:

    1. In jedem Raum einen Raspberry Pi installieren

    Dazu jeweils 2x Audio-Eingang (Mikrofon + Laptop), 1x DAC für den Laptop sowie eine Endstufe für die Lautsprecher (60 W sollten m.M.n. reichen). Alternativ 2x DAC und ein separater Verstärker.

    Konkrete Modelle habe ich noch nicht ausgesucht, am ehesten passt aktuell das HiFiBerry DAC8x mit ADC8x-Addon und einem Verstärker. Je 8 Kanäle sind eigentlich überdimensioniert, aber eine sinnvollere Kombination habe ich noch nicht gefunden. Den DAC könnte man evtl. auch für 5.1 statt 2.0 nutzen.

    2. bluez/ALSA/PipeWire konfigurieren

    Soweit ich gelesen habe, sollte es grundsätzlich funktionieren, sowohl das Audio des Mikrofons bzw. des Laptops abzugreifen als auch auszugeben, und auch Media-Befehle per Bluetooth an das Laptop zu senden.

    Eine weitere Idee wäre, die USB-Schnittstelle zu nutzen und den Raspberry Pi als Soundkarte und Tastatur (Mediensteuerung) auszugeben. Vielleicht sogar als Kamera und Monitor, um in Zukunft auch Videoübertragung zu ermöglichen. Allerdings weiß ich nicht, wie kompatibel das mit Smartphones wäre, insbesondere wenn der USB-Anschluss bei Smartphones zukünftig wegfallen sollte.

    3. Weiterleitung der Streams über WebRTC

    Ich habe eine gewisse Erfahrung mit Mediasoup SFU und könnte es nutzen, um Audio in alle benötigten Richtungen zu verteilen. Eine echte Multiroom-Synchronisierung funktioniert damit zwar nicht, aber für meine Zwecke sollte es reichen. Fraglich ist natürlich, ob die Qualität durch mehrfache Umkodierung für Sprache und Musik ausreicht.

    4. Smarte Funktionen

    Für Aktivierungswörter, Spracherkennung und Sprachausgabe gibt es viele Open-Source-Bibliotheken. Welche davon schnell und gut genug sind, kann ich noch nicht beurteilen. In dem beschriebenen Setup könnte ich jedoch alle Daten an einen zentralen Server weiterleiten, der leistungsfähiger ist als ein Raspberry. Dort könnte dann auch die Anbindung an KNX/HomeAssistant erfolgen.

    Wenn man bedenkt, dass ich 7 bis 10 solcher Einheiten bräuchte, sind Preis und Stromverbrauch (10-15W im Leerlauf?) nicht unerheblich. Gerade letzteres stört mich: 7/10 * 10/15W * 24h * 365d / 1000 * 0,3€ = 184€ bis 394€ pro Jahr. Man könnte überlegen, manche Geräte über Präsenzmelder abzuschalten, aber sie müssten dann schnell genug wieder einsatzbereit sein. Oder man verzichtet auf den 3,5-mm-Klinkenanschluss und spart sich die vielen DACs/ADCs - das wäre aber schade, weil ich den Anschluss extrem praktisch finde und oft nutze.

    Grundsätzlich wäre auch denkbar, die Satelliten auf Basis von ESP32 o.ä. aufzubauen, die nur die (drahtlose) Übertragung an den zentralen Server übernehmen, während die Audioverarbeitung dort stattfindet. Beispiele gibt es viele, aber bis ich das verstanden und implementiert habe, vergehen vermutlich Jahre 🙀

    Was ich sehr ungern machen würde, ist 2-4 mm²-Leitungen quer durchs Haus zu ziehen. Koaxiales S/PDIF wäre akzeptabel, aber damit kenne ich mich zu wenig aus - und es muss ja auch an irgendwas angeschlossen werden.

    Was denkt ihr darüber? Gibt es Alternativen? Geht es einfacher? Gibt es vielleicht andere Foren, in denen ich nachfragen sollte? Ich bin für alles offen.

    Viele Grüße und vielen Dank!

    Anton

    #2
    Über einen Verstärker je Raum hab ich auch schon mal nachgedacht, dann aber wieder verworfen. Ich konnte keinen Beitrag finden, wo so etwas jemals umgesetzt wurde, während ein zentraler Verstärker vergleichsweise häufig eingesetzt wird.

    Da du aber bereit bist zu basteln würde ich einfach mal einen Raspi wie von dir beschrieben zusammenbauen und schauen, wie's läuft.

    Wenn dann konkrete Probleme auftauchen helfen Foren sicher bei der Lösung. Micros, die denn gesamten Raum abdecken, werden nicht trivial sein. Statt Klinkenstecker würd' ich gleich auf BT setzen, die Audio Profile werden da laufend besser.

    Kommentar


      #3
      Ich halte das Projekt für hoffnungslos überambitioniert aber sag gerne Bescheid, wenn du zumindest die Hälfte davon umgesetzt hast :-)

      Hier ein paar Gedanken:
      1. Du bekommst Größe/Abstand/Qualität von Mikrofonen nicht zusammen. Sprich für gute Sprachqualität musst du entweder ausreichend nahe ran oder große Mikros benutzen. Nahe dran bekommst du von den Kabeln her nicht hin, dann liegen in den Räumen zentral Kabel. Vielleicht gibt es drahtlose Optionen dann wird da aber ständiges Lademanagement nötig sein. Wenn du die Mikros unter die Decke hängst werden die entweder zu groß oder die Qualität zu schlecht.
      2. Tracking von Personen
      Wie stellst du dir das vor? Du müsstest ja ständig einen Transponder o.ä. bei dir tragen. Weiß nicht wie schnell ein Air-Tag so sendet aber um das sehr fein aufzulösen brauchst du ja auch einen haufen Infrastruktur um das auszuwerten. Spätestens wenn du dein Handy nicht dabei hast, oder im Schlafanzug unterwegs bist wird das nicht funktionieren. Sprachauswertung mit unterschiedlicher Steuerung nach Person wird noch schwieriger. dann braucht es ja im Hintergrund schon ne Spracherkennung. Wenn das flüssig laufen soll dann mit entsprechender Leistung und Stromverbrauch im Hintergrund.
      Wenn dann könnte man über sowas wie "Papa Licht an" nachdenken um unterschiedliche Dinge zu streuern. Spätestens bei Gästen möchte man das aber nicht, da soll das Licht einfach über Präsenz angehen. Woher weiß jetzt das System, ob gleich ein Sprachbefehl kommt oder ein Gast zur Tür reingekommen ist?
      3. Raumkollision
      Was passiert eigentlich, wenn drei Leute ihre Musik gleichzeitig in einen Raum mitnehmen?
      Die Tochter hört im Wohnzimmer Musik und plötzlich geht die aus weil die Geschäftspartner im Teams Call gerade sensible Details mitteilen?

      Kommentar


        #4
        Zitat von scw2wi Beitrag anzeigen
        Über einen Verstärker je Raum hab ich auch schon mal nachgedacht, dann aber wieder verworfen. Ich konnte keinen Beitrag finden, wo so etwas jemals umgesetzt wurde, während ein zentraler Verstärker vergleichsweise häufig eingesetzt wird.
        Dezentral ist eben teurer in Anschaffung und Betrieb und erfordert trotzdem irgendwo Platz. Aber eine Lautstärkeregelung würde ich definitiv nutzen wollen.

        Zitat von scw2wi Beitrag anzeigen
        Da du aber bereit bist zu basteln würde ich einfach mal einen Raspi wie von dir beschrieben zusammenbauen und schauen, wie's läuft.

        Wenn dann konkrete Probleme auftauchen helfen Foren sicher bei der Lösung. Micros, die denn gesamten Raum abdecken, werden nicht trivial sein.
        Vielen Dank für den Hinweis wegen der Mikrofone. Ich dachte eigentlich, dass das ein gelöstes Problem ist - irgendwie funktionieren ja die ganzen Assistenten.

        Ich hatte vor, die Mikrofone an der Decke zu platzieren. Eigentlich würden sich dafür "Konferenz-Spinnen" besser eignen, aber diese sind entweder unbezahlbar oder haben einen USB-Ausgang. Da bin ich mir unsicher, ob das so einfach unter Raspberry laufen wird.

        Ansonsten habe ich das hier gefunden:
        https://www.henri.de/Audiotechnik/Mi...amikrofon.html

        Die Stromversorgung ist natürlich Käse, aber für den ADC wäre vermutlich ohnehin ein Vorverstärker notwendig. Hier wäre der ja integriert. Die Überlegung wäre, zwei solcher Mikrofone pro Zimmer zu installieren - eines in der Decke und eines dort, wo man sich aufhält, um an einer Konferenz teilzunehmen. Im Wohnzimmer natürlich mehr. Wie das mit Rückkopplung ist - keine Ahnung, aber 8x ADC wären dann tatsächlich passender.

        Ich bin beim Raspberry noch wegen des Stromverbrauchs hin- und hergerissen. Der ESP32 bietet eigentlich alles, was ich brauche, inklusive BT mit HFP/AVRCP, WLAN, WebRTC-Client, sofern das notwendig wird. Aber ich habe Respekt vor dem Aufwand...​

        Zitat von scw2wi Beitrag anzeigen
        Statt Klinkenstecker würd' ich gleich auf BT setzen, die Audio Profile werden da laufend besser.


        BT ist mega unbequem. Das ganze Verbinden und Trennen kostet viel zu viel Zeit. Bei 3,5mm einfach reinstecken/rausstecken und voilà. Selbst meine Sony WH-1000XM3 nutze ich am Laptop kabelgebunden, weil es einfach schneller ist, und per BT sind sie mit dem Handy verbunden.

        Kommentar


          #5
          Zitat von Inselino Beitrag anzeigen
          Ich halte das Projekt für hoffnungslos überambitioniert aber sag gerne Bescheid, wenn du zumindest die Hälfte davon umgesetzt hast :-)

          Hier ein paar Gedanken:
          1. Du bekommst Größe/Abstand/Qualität von Mikrofonen nicht zusammen. Sprich für gute Sprachqualität musst du entweder ausreichend nahe ran oder große Mikros benutzen. Nahe dran bekommst du von den Kabeln her nicht hin, dann liegen in den Räumen zentral Kabel. Vielleicht gibt es drahtlose Optionen dann wird da aber ständiges Lademanagement nötig sein. Wenn du die Mikros unter die Decke hängst werden die entweder zu groß oder die Qualität zu schlecht.
          Vielen Dank! Wegen der Mikrofone siehe oben. Die Größe würde mich nicht stören. Hast du da eine Empfehlung?

          Zitat von Inselino Beitrag anzeigen
          2. Tracking von Personen
          Wie stellst du dir das vor? Du müsstest ja ständig einen Transponder o.ä. bei dir tragen. Weiß nicht wie schnell ein Air-Tag so sendet aber um das sehr fein aufzulösen brauchst du ja auch einen haufen Infrastruktur um das auszuwerten. Spätestens wenn du dein Handy nicht dabei hast, oder im Schlafanzug unterwegs bist wird das nicht funktionieren. Sprachauswertung mit unterschiedlicher Steuerung nach Person wird noch schwieriger. dann braucht es ja im Hintergrund schon ne Spracherkennung. Wenn das flüssig laufen soll dann mit entsprechender Leistung und Stromverbrauch im Hintergrund.
          Wenn dann könnte man über sowas wie "Papa Licht an" nachdenken um unterschiedliche Dinge zu streuern. Spätestens bei Gästen möchte man das aber nicht, da soll das Licht einfach über Präsenz angehen. Woher weiß jetzt das System, ob gleich ein Sprachbefehl kommt oder ein Gast zur Tür reingekommen ist?
          Tracking ist ohnehin optional. Ich habe mir das einfach über Präsenzmelder vorgestellt. Man geht z.B. aus dem Büro in die Küche, und die Präsenzmelder werden entsprechend ausgelöst: Büro an, Büro aus, Treppe oben an, Treppe oben aus, Treppe unten an, Treppe unten aus, Küche an. Natürlich wird das bei mehreren Personen nicht immer klappen. Aber in unserem speziellen Fall oft genug, und ansonsten kann man ja manuell übersteuern.

          Personen würden wie oben beschrieben über Aktivierungswörter unterschieden - quasi so, als würde man Alexa, Google und Siri gleichzeitig verwenden. Ich halte das für einfach und effektiv.

          Das Problem "Sprachbefehl vs. Gast" habe ich noch nicht ganz verstanden. Grundsätzlich plane ich, bestimmte Logiken festzulegen, die die meisten Fälle abdecken. Z.B. würde ich nachts überall das Licht auf 20 % schalten, sobald der entsprechende Präsenzmelder anspringt. Mit einem Sprachbefehl würde man das übersteuern, und mit "Licht an" oder "Licht aus" genau das Gleiche erreichen, wie man es bei einem physischen Schalter tun würde.​

          Zitat von Inselino Beitrag anzeigen
          3. Raumkollision
          Was passiert eigentlich, wenn drei Leute ihre Musik gleichzeitig in einen Raum mitnehmen?
          Die Tochter hört im Wohnzimmer Musik und plötzlich geht die aus weil die Geschäftspartner im Teams Call gerade sensible Details mitteilen?
          Das würde so funktionieren, wie ich es festlegen würde🤓 Aus meiner Sicht ist das Sinnvollste, dass etwas, das bereits läuft, weiterläuft und erst durch Übersteuerung etwas anderes aktiviert wird. Bei uns haben wir das Problem ohnehin nicht, weil die Musik der Tochter ihre Zimmer nicht verlassen wird (ihr Wunsch!), wenn noch jemand zu Hause ist, und wir mit meiner Frau die Musik meistens gemeinsam hören 🙂

          Kommentar


            #6
            Zitat von Anton11 Beitrag anzeigen
            Wegen der Mikrofone siehe oben. Die Größe würde mich nicht stören. Hast du da eine Empfehlung?
            Ne leider nicht. Ich glaube auch nicht, dass es sowas überhaupt gibt. Wenn du etwas von weiter weg aufnehmen willst musst du entweder die Eingangverstärkung hochsetzen was sehr viel Raum mit aufnimmt und auch sehr anfällig für Rückkopplungen ist oder du hast extrem gerichtete Mikrofone (z.B. Tonangeln beim Fernsehen) die dann aber nur für einen kleinen Bereich aufnehmen.
            Das was Alexa an "Sprachqualität" aufnimmt ist halt nicht gut und würde ich niemandem in ner Videokonferenz zumuten. Um ein Mikro mitzunehmen gibt es eben Headsets. Wenn es optisch schön sein soll kannst du ja mal schauen, ob es mit dem PC koppelbare Lavaliermikrofone gibt (das sind diese Ansteckmikros in Talk-Shows). Denn normalerweise hast du dann Funkempfänger und dann wird es schnell kompliziert mit den Antennen dafür etc.

            Zitat von Anton11 Beitrag anzeigen
            Tracking ist ohnehin optional. Ich habe mir das einfach über Präsenzmelder vorgestellt. Man geht z.B. aus dem Büro in die Küche, und die Präsenzmelder werden entsprechend ausgelöst:
            Das wird dir nur auf die Nerven gehen. Natürlich lösen die Präsenzmelder aus, das ist nicht das Problem. Aber wenn noch jemand im Wohnzimmer ist und du nur kurz nen Kaffee in der Küche holst? Oder dauerhaft zum Kochen in die Küche gehst? Wie soll das System das unterscheiden? Wenn das System aus dem Standby vielleicht 2 Sekunden braucht, in der Zeit bist du fast schon wieder aus der Küche raus? Was wenn die Frau die Musik weiterhören will?

            Es ist ja schon herausfordernd, das Licht in Räumen zu automatisieren, da eben ständig andere Anforderungen bestehen je nachdem ob in dem Raum gerade gegessen, geputzt oder ferngesehen wird. Da wird also viel über Tastendruck geregelt.
            Du kannst ja mal folgendes überlegen: Baue eine System bei dem du bei Betreten vom Raum am Taster eine Taste angezeigt wird "Musik mitnehmen" und dann die Musik mitgeht.
            Wenn du da bist kannst du auch überlegen, ob du das über PM automatisiert machst oder nicht.

            Kommentar


              #7
              Zitat von Inselino Beitrag anzeigen
              Ne leider nicht. Ich glaube auch nicht, dass es sowas überhaupt gibt.
              Doch, doch, die Konferenzspinnen sind genau dafür ausgelegt. Ich hatte leider die Gelegenheit verpasst, beim Kunden das Modell abzugucken. Das hat in einem Raum von ca. 25m² wunderbar funktioniert. Es gibt anscheinend schon Gründe, warum die drei bis vierstellig pro Stück kosten. Aktuell möchte ich mir sowas nicht leisten und dachte, dass es schon etwas Gutes und Günstiges für DIY gibt.

              Ich weiß nicht, in welcher Qualität Alexa und co. aufnehmen können. Damit diese aber die Sprache interpretieren können, muss es schon eine gewisse Qualität haben, vielleicht sogar besser, als es für Menschen bei einer Konferenz notwendig wäre, m.M.n.

              Ich besitze Hollyland Lark M2 und habe damit sehr gute Erfahrungen gemacht, wenn man auf die Kleidung achtet. Aber das ist nicht Sinn der Sache 🤓​

              Zitat von Inselino Beitrag anzeigen
              Das wird dir nur auf die Nerven gehen.
              Ich bin mir sicher, dass wir für uns gute Defaults und Prozesse finden werden - da mache ich mir keine Sorgen. Erst mal geht es darum, es überhaupt hinzukriegen, unabhängig davon, ob es manuell oder automatisiert gesteuert wird - da mache ich mir große Sorgen 🙀

              Kommentar


                #8
                Ich werfe das einfach mal in den Raum da ich letztens selbst drüber gestolpert bin.

                Du kannst ja mal den Musicserver4home anschauen. Evtl kann man den ja erweitern.

                Kommentar


                  #9
                  Zum Thema Mikrofone kann ich noch folgenden Link in der Raum werfen.
                  https://wiki.seeedstudio.com/ReSpeaker_Product_Guide/

                  Gruß Stefan

                  Kommentar


                    #10
                    Zitat von Theees Beitrag anzeigen
                    Ich werfe das einfach mal in den Raum da ich letztens selbst drüber gestolpert bin.

                    Du kannst ja mal den Musicserver4home anschauen. Evtl kann man den ja erweitern.
                    Vielen Dank! PHP ist erstmal gar kein Problem, auch wenn ich es seit mehr als 10 Jahren nicht mehr angefasst habe. Also habe ich erstmal keine Zweifel, dass man es erweitern kann. Was mich ein bisschen stört, ist, dass ich kein Repository gefunden habe.

                    Kommentar


                      #11
                      Zitat von stoepf Beitrag anzeigen
                      Zum Thema Mikrofone kann ich noch folgenden Link in der Raum werfen.
                      https://wiki.seeedstudio.com/ReSpeaker_Product_Guide/

                      Gruß Stefan
                      Vielen Dank, Stefan! Es sieht so aus, als würden die meisten Mikrofon-Arrays nicht mehr unterstützt. Natürlich findet man noch etwas bei Reichelt und Aliexpress...

                      Was anscheinend noch unterstützt wird, ist das ReSpeaker XMOS XVF3800, mit und ohne ESP32-S3. Laut Herstellerangaben reicht es bis zu 5m im Radius, was nach Abzug der Decke nicht viel ist, aber eventuell knapp reichen könnte.​

                      Kommentar


                        #12
                        Zitat von Anton11 Beitrag anzeigen
                        Doch, doch, die Konferenzspinnen sind genau dafür ausgelegt.
                        Meines Wissens sind Konferenzspinnen mehrere Mikros mit hoher Richtcharakteristik, entsprechend rund angeordnet. Wenn jetzt Leute an einem Tisch sitzen und das Ding steht in der Mitte dann spricht man ziemlich gut in Richtung der Mikros. Du hast einen Abstand von 1/2/3 m vom Mikro in der Horizontalen und den Mund irgendwie 0,5m über der Tischplatte oder so.
                        Wenn du das Ding jetzt umgekehrt an die Decke hängst und am Schreibtisch sitzt, dann sprichst du nicht mehr wirklich in Richtung der Mikros. Du sitzt eher 1/1,5m unter dem Mikro, du müsstest also für den gleichen Winkel deutlich weiter weg sitzen. Oder du hast sogar das Problem, dass du dich unter der Spinne befindest wo eine tote Zone ist (denn wenn das Ding auf dem Tisch steht befindet sich ja niemand darüber um es zu nutzen. Und rumlaufen ist eben auch nicht, da du in RIchtung der Mikros.sprechen musst.

                        Kommentar

                        Lädt...
                        X