Configuring the DMO

Kinect for Windows 1.5, 1.6, 1.7, 1.8

The KinectAudio DMO provides all the features of the standard Windows DMO along with special array microphone features. Array microphone features that can be configured are:

  • Automatic beamforming: This tells the KinectAudio DMO to automatically choose the direction to listen

  • Automatic gain control: This tells the KinectAudio DMO to automatically adjust the gain (essentially, the volume) on the incoming signal to maximize the signal clarity.

  • Acoustic echo suppression (noise suppression): This tells the KinectAudio DMO to remove noise from the incoming signal. This enhances speech recognition in noisy environments.

  • Automatic echo cancellation: This tells the KinectAudio DMO to subtract the sound that the computer is making through its speakers from the incoming signal.

Configuring the KinectAudio DMO in C++

To enable or disable echo cancellation, follow the example in the AudioBasics-D2D C++ sample. The MFPKEY_WMAAECMA_SYSTEM_MODE property should be set to OPTIBEAM_ARRAY_ONLY for beamforming only (no echo cancellation), or to OPTIBEAM_ARRAY_AND_AEC (for beamforming and echo cancellation). If the PC is playing audio during Kinect capture, we recommend using echo cancellation. The default is OPTIBEAM_ARRAY_ONLY.

To set more advanced DMO properties, you may need to first set the DMO to override the default feature settings by first setting the MFPKEY_WMAAECMA_FEATURE_MODE property to VARIANT_TRUE. Then you can set any of the properties listed in the Remarks section of the MFPKEY_WMAAECMA_FEATURE_MODE topic. However, most audio use scenarios do not require this.

You can manually set the beam angle by setting the MFPKEY_WMAAECMA_FEATR_MICARR_MODE DMO property. However, the recommended (and easier) way to do this is to use the INuiAudioBeam.SetBeam method. See the AudioExplorer-D2D C++ sample for an example of setting the beam angle.

Configuring the KinectAudio DMO in C#

To configure the KinectAudio DMO in C#, set the appropriate properties in the KinectAudioSource class.

Community Additions