1.6 SDK and Developer Toolkit Known Issues
Kinect for Windows 1.6
Here is a list of known issues with this release.
Software Development Kit (SDK)
SkeletonFrame.TrackingMode property is reserved for future use
To determine that ST is in Seated mode, check the SkeletonStream.TrackingMode property or confirm that the TrackingStatus property of one of the lower 10 joints of a tracked skeleton, such as the HipCenter joint, returns NotTracked.
Do Not Use INuiSensor::NuiUniqueId or KinectSensor.UniqueKinectId
Call KinectSensor.Start and KinectSensor.Stop after sensor transitions in KinectSensorCollection.StatusChanged events
Calls to KinectSensor.Map and DepthImageFrame.Map may fail if you called KinectSensor.Stop already or removed the sensor while the application is running
Call SetDeviceStatusCallback before calling NuiInitialize or NuiShutdown.
USB host controller compatibility
The Kinect for Windows drivers have encountered compatibility problems with certain USB host controllers when tested in specific computer configurations. Some examples of these controllers are the AMD Fusion A75 USB2.0 controller, certain NEC USB 2.0 controllers, the Etron USB 3.0 Extensible Host Controller, and the Renesas Electronics USB 3.0 Controller. On those controllers, you may encounter a problem, such as a low RGB frame rate, or a Not Ready status when plugging/unplugging a Kinect. If this happens to you, you may have to restart your application or reboot your computer. You can also try updating your USB controller drivers, or plugging your device into another USB 2.0 controller.
Number and date normalization in Kinect for Windows Speech Grammars
Kinect for Windows is integrated with Microsoft Speech Platform Version 11, an upgrade from the Version 10.2 included in previous Beta versions. This version, in conjunction with the Kinect for Windows Speech Language Pack, provides superior speech recognition capabilities to Kinect for Windows.
Note that this version comes without the support for standard TN/ITN (numbers and dates normalization), requiring some changes to grammars built on top of previous Beta versions. Now you need to expand numbers and dates on your grammars. For example use “Play song number five” instead of “Play song number 5”.
Microphone Array default gain setting is sub-optimal
The default gain applied to the sound recorded by the Kinect sensor’s Microphone array is higher than optimal and can affect speech recognition quality when users are speaking close to the Kinect sensor.
If you notice the Kinect audio signal clipping in your application, or experience the Speech Platform SDK reporting AudioSignalProblemOccurred events use TooLoud audio input, set the microphone gain level to 3 on a scale of 100.To set the correct gain value:
- Open the Windows Control Panel, select Sound, then the Recording tab.
- Select Kinect Microphone Array and then press the Properties button. Select the Levels tab.
- Set the Microphone Array gain level to 3. (The default is 100.) Press OK and then OK.
Audio is not processed if skeleton stream is enabled after starting audio capture
kinectSensor.Start(); kinectSensor.AudioSource.Start(); // --> this will create an audio stream kinectSensor.SkeletonStream.Enable(); // --> this will stop the audio stream as an undesired side effect
The workaround is to invert the order of the calls or to restart the AudioSource after changing SkeletonStream status.
Workaround #1 (start audio after skeleton): kinectSensor.Start(); kinectSensor.SkeletonStream.Enable(); kinectSensor.AudioSource.Start(); Workaround #2 (restart audio after skeleton): kinectSensor.Start(); kinectSensor.AudioSource.Start(); // --> this will create an audio stream kinectSensor.SkeletonStream.Enable(); // --> this will stop the audio stream as an undesired side effect kinectSensor.AudioSource.Start(); // --> this will create another audio stream
Resetting the SkeletonStream engine status is an expensive call. It should be made at application startup only, unless the app has specific needs that require turning Skeleton on and off.
A Kinect Studio recording (stored in a .xed file) plays properly only when the same Kinect sensor is being used by the application. You should keep a record of the precise sensor used to record each file so that you can play the file back with correct synchronization between color and depth cameras. We are considering updating the information that Kinect Studio stores in the .xed file so that playback is possible using any sensor.
If the Kinect-enabled application that you are recording turns skeletal tracking on or off while recording, recording stops. However, toggling the skeleton stream using SkeletonStream.Enable and SkeletonStream.Disable will cause Kinect Studio to lose connection with the application and stop playback/record or live preview.
If Kinect Studio ever crashes or hangs, the intact recording can be found in the temporary file directory specified under Tools > Options. (Change the file extension to .xed before playing it.)
While recording content in M2's Kinect Studio, depth values less than 800 will be recorded as unknown. Do not do production recording with M2's Kinect Studio.
Installation of the DirectX SDK (June 2010) fails if installed after the Kinect for Windows SDK
There is a known issue with the Visual C++ 2010 Redistributable Package included in the DirectX SDK installer that causes this failure. You can find more information about this issue and the workaround at this location: Known Issue: DirectX SDK (June 2010) Setup and the S1023 error.