Acoustic Echo Cancelling AEC in MS Teams

Teams Certification

Um kaum ein anderes Thema gibt es so viel Verwirrung, Fehlinformation oder Fehlinterpretation wie über Acoustic Echo Cancelling AEC in MS Teams. Dieser Artikel soll dazu dienen, ein wenig Licht ins Dunkel zu bringen und vor allem das Thema MS Teams certified devices näher zu beleuchten. Auch warum das viel mehr ist als nur ein Marketing Gag. Dies wie gewohnt im Kontext „richtigen“ Meetingräumen wie z.B. Microsoft Teams Rooms = MTR.
Das Thema schlechtes Audio im Meetingraum ist ein Dauerbrenner, siehe auch schon hier.

Was ist überhaupt AEC und warum ist es wichtig?

Um diesen Blogpost nicht unnötig lang werden zu lassen, empfehle ich allen jenen, welchen mit AEC noch nicht wirklich vertraut sind, folgenden guten Artikel:

https://www.shure.com/de-DE/konferenzen-meetings/ignite/wie-funktioniert-die-akustische-echokompensation-bei-einer-videokonferenz

sowie das folgende Video:

Jedes Duplex-Freisprech-System MUSS über AEC verfügen, welches die vom Lautsprecher kommenden Signale der Gegenstelle wieder herausrechnet, bevor diese fälschlicherweise wieder zurückgesendet werden.
Wichtig: Das Ergebnis dieses Prozesses ist a) niemals perfekt, b) sehr stark von der Leistungsfähigkeit des Audio-DSPs und auch c) sehr vom Setup (Raumakustik, Lautsprecher-Platzierung, etc.) abhängig.

Ausgangssituation

Wer ist nun für AEC in einem Raumsystem zuständig?

Wer ist nun für das Acoustic Echo Cancelling AEC in MS Teams zuständig? Leider kann dies nicht so ganz einfach beantwortet werden. Dieser Artikel liefert einige Antworten und einen Blick hinter die Kulissen.

Der einfachste Lösungsansatz wäre es, alle Audio-DSP-Aufgaben der PC-Applikation zu überantworten. Der Host-PC erledigt also AEC, NR & Co. Dann kann man einfach alle möglichen (auch ganz dumme) Audiogeräte anschließen und fertig. In der Tat ist in jedem Software-Codec, ganz egal ob Skype, Teams, Webex oder Zoom ein Audio-DSP mit AEC enthalten und standardmäßig aktiviert.

Wo liegt also das Problem?

Nun ja, es gibt eine Reihe von Szenarien, wo der eingebaute AEC in der PC-App schlichtweg überfordert oder komplett ungeeignet ist und daher besser aus der Signalkette entfernt werden sollte.

  1. AEC funktioniert nur dann wirklich gut, wenn jedes einzelne Mikrofon gesondert bearbeitet wird. In anderen Worten: Sobald mehrere Mikrofone im Raum sind, vielleicht sogar noch mit einem Automatik-Mischer, wird ein AEC im PC oder einer in der Cloud scheitern.
  2. Je größer und je halliger der Meetingraum ist, umso schwerer ist es für den AEC, das Signal der Gegenstelle zu erkennen und wirksam herauszubekommen.
    In anderen Worten: Typische AEC Algorithmen im PC sind nicht darauf ausgelegt.

Die Lösung ist folglich der Einsatz eines externen, entsprechend leistungsfähigen Audio-DSPs. Dieser übernimmt das AEC samt anderem Processing und liefert über USB das fertige Audiosignal an den PC.
Damit ist das Problem aber nicht gelöst, denn im PC wartet ja noch der integrierte Sound Processor und der greift nochmals massiv ein, ganz egal ob wir das wollen oder nicht.
Mehrere Audio-DSPs in der Signalkette, die noch dazu nichts voneinander wissen, sind denkbar schlecht für die Audioqualität. Dies gilt es unter allen Umständen zu vermeiden!

Korrekt wäre es nun, das Processing im PC einfach abzuschalten, wenn im Raum ein externer Audio-DSP installiert ist.

Überraschung!

Genau an dieser Stelle haben wir aktuell leider ein echtes Problem beim Thema Acoustic Echo Cancelling AEC in MS Teams:

Der Teams Rooms Client bietet dem User bis dato keinerlei Möglichkeit sein integriertes Audio-Processing ein- oder auszuschalten oder zu parametrisieren!
Der System-Integrator hat keine direkte Eingriffsmöglichkeit!

Systemintegrator Faktum

Die Microsoft Automatik – Bevormundung oder smarte Lösung?

Die gute Nachricht:
Acoustic Echo Cancelling AEC in MS Teams wird unter gewissen Umständen „automagisch“ deaktiviert und macht so den Weg frei für professionelle Audio-DSPs. Man nennt dies Hardware Offloading. Der PC lagert die notwendige Funktion an eine externe Hardware aus. So soll es sein.

Die schlechte Nachricht:
Wie gesagt gibt uns Microsoft jedoch keine direkte Eingriffsmöglichkeit! Stattdessen müssen viele Dinge zusammenspielen, damit „es“ passiert. Leider gibt es keine Indikation, was der PC schlussendlich (noch) macht oder nicht macht.

Die Wunderwaffe USB

USB ist in der Tat ein sehr cleveres Bussystem. Neben den reinen Nutzdaten (Audio, Video, etc.) wird zusätzlich noch eine Fülle an Daten übertragen und genau das macht sich Windows bzw. MS Teams bei der Aufgabenverteilung in Sachen AEC zu Nutzen. Ohne Anspruch auf Vollständigkeit gibt es folgende Möglichkeiten zur Übermittlung von wichtigen Informationen:

  1. USB 1.0 Audio Terminal Type
    Ein bidirektionales USB-Audio Gerät (also eines mit Lautsprecher und Mikrofon) wie z.B. ein Headset aber auch ein externer Audio-DSP kann seit mehr als 20 Jahren per Audio Terminal Type mitteilen, ob es selbst AEC eingebaut hat oder diese Funktion vom Host-PC braucht.
    • Handheld & Headset  (code 0x401 oder 0x402) braucht kein AEC, weil das Mikrofon ja den Lautsprecher nicht hört. Es gibt also gar kein Echo Problem.
    • Speakerphone (code 0x403) hat KEIN eigenes AEC, braucht dies aber vom Host PC.
    • Echo-Canceling Speakerphone (code 0x405) hat AEC selbst eingebaut, braucht also keines vom Host-PC.
      Nicht vergessen: Ein zweites Processing schadet immer mehr als es nützt!
  2. USB 3.0 Multi-Function Processing Unit
    Dieser recht neue Standard ermöglicht noch viel genauere Infos. Interessanterweise empfehlen die MS Teams Certification Dokumente die Verwendung von USB3.0 für externe DSPs für die Zukunft.
    Zitat: It is recommended (optional) that the USB devices would implement the USB v3.0 specification Audio Function Topology reporting as described Audio Device Class Definition document Section 3.13.9.3 Multi-Function Processing Unit. Correct info in this descriptor can help the operation of future Teams or Skype clients. Teams or Skype will potentially use this info to better tune the audio processing in the client.

Ein USB 3.0 Audio-Gerät kann den Host-PC also nicht nur viel genauer über seine Fähigkeiten bzw. Ansprüche informieren, sondern vom PC aus lassen sich auch einzelne Funktionsblöcke ein- und ausschalten und sogar Parameter verändern. Die Windows-Applikation erhält also Durchgriff auf die einzelnen Processing-Einheiten des externen DSPs. Voraussetzung ist natürlich, dass diese umfangreiche Spezifikation auch von den Hardwareherstellern in ihre Geräte eingebaut wird. Ein USB3.0 Interface alleine nützt nichts.

  1. Oft übersehen, weil banal, aber trotzdem sehr wichtig:
    Jedes USB-Gerät identifiziert sich mich einer PID und einer VID.
    PID steht für Produkt-ID und VID ist die Vendor-ID, also der Hersteller.
    Der MS Teams Client KANN damit echtes White- bzw. Black-Listing machen:
    Wenn Gerät X vom Hersteller Y angesteckt wird, dann schaltet die Teams App den AEC ab, wenn Gerät A von Hersteller B jedoch angeschlossen ist, passiert etas ganz anderes und Geräte vom Hersteller Z funktionieren gleich gar nicht!

Was macht MS Teams mit diesen Infos?

Diese drei Faktoren sind nur ein kleiner Teil jener Parameter, nach der die MS Teams Room App entscheidet, ob bzw. welche Art von Hardware Offloading passiert. Wie schon angesprochen, leider ohne jedes Feedback an den User oder den System-Integrator.

Und genau hier kommt ein von Technikern oft unterschätztes Faktum ins Spiel:
Es ist die berüchtigte Hardware-Zertifikation durch Microsoft;
der nicht nur fürs Marketing wichtige MS Certified Sticker.

Acoustic Echo Cancelling AEC in MS Teams in zertifizierten Geräten

Während der Begriff im Englischen unmissverständlich ist, verwirrt die deutsche Übersetzung!
„Microsoft Teams-fähige Geräte“ ist einfach formal falsch, sorry MS!
FÄHIG wären praktisch alle USB-Audio-Geräte, welche man an einen PC ansteckt. Mehr oder weniger erwartbar gut funktionieren müssen sie deshalb aber noch lange nicht!

Ohne jetzt noch mehr ins Detail gehen zu wollen, prüft Microsoft die Geräte nach einem außergewöhnlich umfangreichen Test-Katalog (144 Seiten PDF!). Wenn dann das Prädikat „Microsoft Certified for MS Teams“ verliehen wird, dann (und nur dann!) kann man davon ausgehen, dass die MS Teams Room Applikation „automagisch“ das Richtige in Sachen Audio macht!
In jedem anderen Setup mischt sich die Microsoft Plattform leider weiterhin in den Audioweg, was die Wahrscheinlichkeit für schlechte Audio-Ergebnisse bedauerlichweise massiv erhöht, speziell bei intelligenten Audio-DSPs.

Auswirkungen bei der Verwendung von nicht MS Teams zertifizierten Audio-DSPs

Microsoft gibt offen zu, dass sie aktives Whitelisting über die USB PID/VID Informationen betreiben und dies hat leider bemerkenswerte Auswirkungen.

Beispiel:

Ein hochwertiger aber nicht MS Teams zertifizierter externer DSP mit eingebautem AEC wird von einem AV-Profi installiert und perfekt eingestellt. Der DSP weist sich auch korrekterweise per USB als Echo-Cancelling Speakerphone Type 0x405 aus. Dessen USB PID/VID findete sich aber mangels Zertifzierung nicht in der (nicht öffentlichen!) White-List von Microsoft; daher schaltet die Teams-App das eigene Processing NICHT aus! Anstatt die „ich bin ein DSP mit eingebautem AEC“ Informationen aus der USB-Info zu beachten, vermurkst die App das Audiosignal durch unnötige zusätzliche Signalbearbeitung. Leider kann niemand etwas dagegen machen. Weder der Gerätehersteller, noch der Systemintegrator und auch nicht der IT-Admin!
Lapidarer Kommentar von Microsoft:
Wenn man nur zertifizierte Geräte verwendet, hat man das Problem nicht.

Kritische Betrachtung

Bei aller Wertschätzung für Microsoft, finde ich dies ziemlich unglücklich. Es dient sicher auch nicht der Kundenzufriedenheit.
Einen Punkt übersieht nämlich Microsoft offenbar: Es ist ein Trugschluss zu glauben bzw. den Kunden glauben zu lassen, dass die Zertifizierung alleine perfekte Ergebnisse garantiert. Egal ob ein zertifizierter oder nicht nicht zertifizierter DSP eingesetzt wird: Nur ein perfekt eingestellter externer DSP bringt wirklich tolle Ergebenisse.

Wie immer gilt es auch das Kleingedruckte zu lesen:
Microsoft behält sich ausdrücklich das Recht vor, nach eigenem Gutdünken (auch bei zertifizierten Geräten!) jederzeit Änderungen vorzunehmen, ob Hardware-Offloading passiert bzw. welches Processing im Client deaktiviert bzw. reaktiviert wird. Ein Beispiel ist, wenn der externe DSP nur 8kHz wideband audio unterstützt, künftige Teams-Clients aber 12kHz oder sogar 18kHz Audio-Bandbreite intern verarbeiten können.
Ein anderer Fall wäre es, wenn das Processing im Client mittlerweile besser geworden ist als der externe DSP. Dies ist dank der rasanten Entwicklungen durchaus möglich und wäre auch im Sinne des Fortschrittes.
Zu dumm nur, dass das der externe DSP davon nichts weiß und sich nicht automatisch umkonfiguriert, nur weil Microsoft mit einem Update des Clients seine Meinung geändert hat!

Kurzum, Acoustic Echo Cancelling AEC in MS Teams bleibt ein sich bewegendes Ziel, das dem Systemintegrator durchaus Überraschungen bieten kann.

Muss das wirklich so sein? Wie machen es die anderen?

Zum Vergleich sei der Mitbewerber ZOOM ROOMS positiv erwähnt. Zoom hat ebenfalls eine ähnliche Automatik, welche sich jedoch ganz einfach manuell übersteuern lässt! Im Namen aller Meeting-Raum Profis ein großes DANKE an Zoom.
Auch Zoom identifiziert anhand einer USB-Whitelist bekannte und für gut befundene externe Audio-DSPs und schaltet bei diesen das AEC (bei Zoom SAP =„Software Audio Processing“ genannt) ab. Im Setup der App kann dies aber jederzeit rückgängig gemacht werden. Und vice versa: Bei unbekannten (=nicht Zoom certified) Geräten ist das Processing eingeschalten, kann aber jederzeit deaktiviert werden.
Quelle: https://support.zoom.us/hc/en-us/articles/360025379211-Zoom-Rooms-Audio-Guidelines

Hallo Microsoft: Wieso musst Du uns immer bevormunden? Zoom zeigt es vor, wie einfach es gehen kann!

Update September 2021: Microsoft hat unsere Bitten erhört und vespricht, schon bald (Oktober 2021) mehr Eingriffsmöglichkeiten im MS Teams Client anzubieten. Rund um den „Music-Mode“ soll es endlich möglich sein, den AEC im Client zu deaktivieren.

Zusammenfasssung

Die öffentlich zugänglichen Dokumente (hier erhältlich: https://docs.microsoft.com/en-us/skypeforbusiness/certification/test-spec ) sind eine wahre Fundgrube und geben wichtige Einblicke in die sonst verborgene Wirkungsweise der Microsoft Technologien.

Microsoft hat in den letzten Jahren und speziell mit dem Projekt LRS Lync Room Systems sehr viel dazugelernt. Während man früher primär auf den Desktop fixiert war, gibt es nun wirklich realistische Test-Kriterien für Geräte zur Verwendung in Räumen wie externe DSPs, Soundbars u.ä.

Wie dieser Artikel gezeigt hat, ist das MS Zertifizierungsprogramm viel mehr als nur eine Marketing-Masche und muss auch den Techniker interessieren. Es greift tief in die Funktionsweise von Acoustic Echo Cancelling AEC in MS Teams ein und hat massive Auswirkungen auf die Interaktion zwischen der Microsoft Software und externen Audiogeräten. Damit also auf die Audioqualität.
Eine schnell wachsende Liste der MS Teams zertifizierten Geräte finden Sie hier: https://www.microsoft.com/de-at/microsoft-365/microsoft-teams/across-devices

„Geheimnis“ gelüftet

Damit ist auch das „Rätsel“ gelöst, warum praktisch alle Hersteller von Audio-DSPs aktuell keine Kosten und Mühen scheuen, ihre Geräte schnell zertifiziert zu bekommen. Mittlerweile weiß man, dass nicht zertifizierte DSPs aus obigen Gründen einfach nicht gut an MS Teams funktionieren.

Ich hoffe mit diesem Artikel ein wenig Klarheit zu liefern. Meines Wissens nach wurde dieses Thema noch niemals zuvor ähnlich detailliert erörtert. Die vielen Fragen und große Verunsicherung auch bei sonst sehr gut informierten Personen waren die wesentliche Motivation einmal recht tief in dieses auch für Systemintegratoren wichtige Thema einzutauchen. Wie immer freue ich mich auf Ihr Feedback, hier als Kommentar oder in den sozialen Netzen.