SOLVED

Acoustic Echo Cancellation (AEC) for Teams Rooms Integration

Copper Contributor

I've been researching on Teams Rooms audio integration for large conference rooms. System design in question calls for an external DSP processor. I've read an opinion that for non-certified audio device Teams will apply a default audio processing in the cloud, including AEC processing. Wich may be detrimental for the audio when DSP runs its own AEC.

Is there a way to avoid this extra in-cloud processing? In particular, if my DSP shows as generic Echo Canceling Speakerphone in Teams Rooms Settings, will it still get the same audio treatment in the cloud?

 

13 Replies
Graham, in general. Would you say that what he says can be applied? That if a DSP is non certified, audio processing will be ON in the cloud and if the DSP is certified, all audio processing will be handled within the cloud?
I have read already that when a device connectsto a pc, it will do some kind of driver handshake to identiy what built in driver/ profile that will be used depending on application.
This is a imortant subject to lift and the answer is not very clearly stated.
Cheers!
That is what I understand, I'm no DSP / audio, processing expert. Just what I have seen in the field and feedback from Microsoft.

I have seen many installations of customers using non-certified DSPs and inputs and I guess they work around it with programming. It might work today but could fail tomorrow.

But of course, the MTR manufacturer will usually get the blame as it's their hardware in front of the user, not the DSP (or network etc.)

Well, its the old story. MS tries to be super smart and does everything auto-magically.

For what it's worth "the other guys named Z**M" handle it very good.

In their Z**M ROOMS application there is a simple admin switch called "software audio processing".

When certain whitelisted audio products are detected, this switch is flipped automatically to OFF.

For all other DSPs it defaults to ON but can be forced OFF.

This would also be nice to have on the TEAMS side.

 

For what it's worth: There is a similar function called "original audio" even on their client & mobile app, so not just on their room products.

best response confirmed by DUtkin (Copper Contributor)
Solution

Hello

Not quite, the original intention seemingly is like this:

* If the external audio DSP is MS-Teams-certified, all the MS-sided audio processing will be turned off, be it on the cloud side OR within the local running app.
Reason: The certification process proved, that the in-room external DSP is able to do a good in enough or even better job than all MS' automagic.

* If the DSP is NOT certified, then MS does not switch off its own processing but forces it.
Reason: MS does not know, how "good" the DSP is, so better safe than sorry. Well, ....

* The external DSP can indeed signal to the host PC, that it does have AEC capabilities. This is done via the USB terminal type. Trusted rumors are, that for example SkypeConsumer uses this info to switch on/off local AEC. However MS Teams does NOT work that way. Teams is using its own whitelist = certification list to decide.

 

This has some serious consequences, which are far from optimal:

1. If you hook up a perfectly working but not-certified external DSP, then MS nevertheless throws in its own DSP/AEC. Now having two different DSPs trying to improve audio is almost a guarantee for more or less distratrous results.
==> If using a non-certified DSP (for whatever reason), do yourself a favour and switch off all its dynamic functions and also switch off all kinds of AEC, NR=noise reduction and other gizmos until MS wakes up and gives us audio guys some control over the MS side of audio processing.

=> AEC and NR are highly dynamic processes and work well only in an otherwise non-dynamic system. Their operation is pure "cause and effect" like you turning the driving wheel. As soon as someone else is also steering without you knowing, your wheel turning (cause) will have a different effect, from what you expected.
Means: If you have two or more of theses dynamic parts like AEC & NR in the signal change, things get very ugly very fast.

 

2. The algorithms in the cloud are most likely developed at a much faster pace and using much more smartness (like machine learning, etc.) compared to a local audio DSP, which is most likely installed, tuned and afterwards forgotten about.
Means: It could be very beneficial to combine both the on-site specific tuning of an in-room DSP setup by knowledeable people AS WELL AS still having access to advanced stuff like psycho-acoustic tricks from a cloud-based intelligence.
However, until audio guys dont have acess to both cloud-side as well as local (in-app) processing, it is close to impossible to tune for perfection. Also the cloud side can (and will!) change any time and the app-side can change with any monthly app update. So what used to work well can break any time!

 

3. Just installing a certified external DSP does not guarantee perfect results. There are so many parameters to tweak on a modern DSP => many possibilites to screw up.
Despite all their good intentions, MS can never be sure, that the external audio DSP is setup properly. The certification process proved, that the external box CAN be made sounding great, but has zero to do with the actual install.

 

Long story short:

In order to make it simply for a majority of people, MS does it make very difficult for people knowing what they are doing OR for applications which are "beyond" than the cubicle and standard conference room setup and therefor needing specialist audio know-how & hardware in the room.

As stated: Others give me as the audio guy at least some basic access but the whole concept is far from being perfect.

 

Hope this helps

HST

 

 

 

8605pemo wrote:

Graham, in general. Would you say that what he says can be applied? That if a DSP is non certified, audio processing will be ON in the cloud and if the DSP is certified, all audio processing will be handled within the cloud?
I have read already that when a device connectsto a pc, it will do some kind of driver handshake to identiy what built in driver/ profile that will be used depending on application.
This is a imortant subject to lift and the answer is not very clearly stated.
@8605pemo

Hello, Harald! I have a question for you.

This process of "auto-sensing if the external DSP is MS-Teams-certified or not and then auto-switching OFF/ON the AEC processing (either cloud side or within the local running app)" will happen only in Teams Rooms? Or it is also true for the standard desktop MS Teams app?

We have an MS-certified ceiling microphone array + a DSP-USB interface in a room, but since I didn't receive the MTR kit yet (NUC + touch interface) I configured/tested the microphones/DSP using a standard PC with the standard Teams desktop app, and I'm not getting the quality that I was expecting :\ I'm wondering if I'm suffering the "double-AEC" problem.

 

Thank you!

When you say "I'm not getting the quality that I was expecting" what symptoms are you hearing? What are your testing scenarios?

@AGBasalo 
Hello.
It is hard to say without knowing your setup but I suspect, that your system cannot be considered certified. Which in turn means Teams.exe is NOT offloading AEC to your hardware.
FYI: The whitelist to differ between certified and not-certified is done via USB-PVID/VID since (currently) the only way of getting external audio into a TeamsRoom is via USB.
So the make-or-break question is not about the microphone but whether your "DSP/USB" box is certified.
So...
1. Does your "DSP/USB" box include an AEC and is it activated? yes/no?
2.  Maybe I missed something, but is there any such thing as a teams certified mic array? As long as it is not directly connected to the PC via USB there is no way of identifying from the PC aka MS.

SORRY, but I do not know the answer to your question about teams desktop app vs. teams rooms app.
I am curious myself. If I had to speculate I would think, that they behave differently.

What is your less-than-perfect experience?

@AGBasalo 


As some others are asking, what USB interface are you using ?

Please note that is has to be a certified DSP, such as Bose, Shure / Biamp / Q-SYS or what brand you might have.

You may find them here:
https://docs.microsoft.com/en-us/microsoftteams/rooms/requirements

 

There is also  on / off settings for "Automatic Level Adjustments" and "Noise Reduction" via the Teams desktop client, if you check your settings. (Where you choose camera etc)

 

It's now mid 2022. Supply chain issues are wreaking havoc with everyone. The need for systems that "play nice" with Teams as well as Brand "Z", and other cloud-based Collaboration/Conferencing providers is paramount. I have run into ZERO end-users who standardize on one solution. So even going into a larger room with mic arrays, pro DSP with AEC, etc - they just use whichever conferencing platform they like.
Are there any updates as to how Microsoft deals with these varying end-user scenarios? Is there a place on the Microsoft website to get help? Naturally, our clients do not want a "Microsoft Teams Room" - they want a conference room that will "just work" with whatever call they make. Typically there's a room PC that is connected via USB to the audio system and to the network to make the call.

@C_Wisner The idea is that you choose a Teams Room or a Zoom Room, and it also allows you to join the other vendors meetings through Direct Guest Join.

 

Enable Teams Rooms devices to join third-party meetings - Microsoft Teams | Microsoft Docs

I dont assume your users dont want to have a license handy for every single uc platform there is out there and having your IT guys taking care of keeping it up and running on the conf room PCs, right?
A very basic concept of MTRs (if you want to avoid calling them MSFT teams rooms) is the ability to do "direct guest join" from a MTR into a Zoom or Webex Meeting and soon also GoToMeeting and others.
1 best response

Accepted Solutions
best response confirmed by DUtkin (Copper Contributor)
Solution

Hello

Not quite, the original intention seemingly is like this:

* If the external audio DSP is MS-Teams-certified, all the MS-sided audio processing will be turned off, be it on the cloud side OR within the local running app.
Reason: The certification process proved, that the in-room external DSP is able to do a good in enough or even better job than all MS' automagic.

* If the DSP is NOT certified, then MS does not switch off its own processing but forces it.
Reason: MS does not know, how "good" the DSP is, so better safe than sorry. Well, ....

* The external DSP can indeed signal to the host PC, that it does have AEC capabilities. This is done via the USB terminal type. Trusted rumors are, that for example SkypeConsumer uses this info to switch on/off local AEC. However MS Teams does NOT work that way. Teams is using its own whitelist = certification list to decide.

 

This has some serious consequences, which are far from optimal:

1. If you hook up a perfectly working but not-certified external DSP, then MS nevertheless throws in its own DSP/AEC. Now having two different DSPs trying to improve audio is almost a guarantee for more or less distratrous results.
==> If using a non-certified DSP (for whatever reason), do yourself a favour and switch off all its dynamic functions and also switch off all kinds of AEC, NR=noise reduction and other gizmos until MS wakes up and gives us audio guys some control over the MS side of audio processing.

=> AEC and NR are highly dynamic processes and work well only in an otherwise non-dynamic system. Their operation is pure "cause and effect" like you turning the driving wheel. As soon as someone else is also steering without you knowing, your wheel turning (cause) will have a different effect, from what you expected.
Means: If you have two or more of theses dynamic parts like AEC & NR in the signal change, things get very ugly very fast.

 

2. The algorithms in the cloud are most likely developed at a much faster pace and using much more smartness (like machine learning, etc.) compared to a local audio DSP, which is most likely installed, tuned and afterwards forgotten about.
Means: It could be very beneficial to combine both the on-site specific tuning of an in-room DSP setup by knowledeable people AS WELL AS still having access to advanced stuff like psycho-acoustic tricks from a cloud-based intelligence.
However, until audio guys dont have acess to both cloud-side as well as local (in-app) processing, it is close to impossible to tune for perfection. Also the cloud side can (and will!) change any time and the app-side can change with any monthly app update. So what used to work well can break any time!

 

3. Just installing a certified external DSP does not guarantee perfect results. There are so many parameters to tweak on a modern DSP => many possibilites to screw up.
Despite all their good intentions, MS can never be sure, that the external audio DSP is setup properly. The certification process proved, that the external box CAN be made sounding great, but has zero to do with the actual install.

 

Long story short:

In order to make it simply for a majority of people, MS does it make very difficult for people knowing what they are doing OR for applications which are "beyond" than the cubicle and standard conference room setup and therefor needing specialist audio know-how & hardware in the room.

As stated: Others give me as the audio guy at least some basic access but the whole concept is far from being perfect.

 

Hope this helps

HST

 

 

 

8605pemo wrote:

Graham, in general. Would you say that what he says can be applied? That if a DSP is non certified, audio processing will be ON in the cloud and if the DSP is certified, all audio processing will be handled within the cloud?
I have read already that when a device connectsto a pc, it will do some kind of driver handshake to identiy what built in driver/ profile that will be used depending on application.
This is a imortant subject to lift and the answer is not very clearly stated.
@8605pemo

View solution in original post