Problem Description: After installation of SDK 2013 R3, voice recognition may not work when gesture recognition is enabled at the same time if you are using UtilPipeline in your code. This is a regression in R3. Using UtilPipeline with EnableGesture() and EnableVoiceRecognition() causes the issue. When EnableGesture() is commented out, voice recognition works.
Fix: The fix for this issue is available as patch for R3 release. Please download attached file, copy to “C:\Program Files (x86)\Intel\PCSDK\sample\common\src\util_pipeline_raw.cpp” replacing original file from R3 release, then open and rebuild "C:\Program Files (x86)\Intel\PCSDK\sample\common\libpxcutils_vs20xx.sln", where xx=08/10/12 depending on your VisualStudio version. The "Program Files (x86)" is for 64-bit OS, replace to "Program Files" if you run 32-bit version Windows. This fix will also be a part of SDK R4 release.
Recommendation: It is recommended that the application uses two instances of UtilPipleine for audio and video in separate threads for the reasons below:
(1) The utility class assumes that audio and image samples can be obtained from the same device. This may restrict the application on future camera devices (that may not have integrated audio.)
(2) UtilPipeline processes image algorithms and audio algorithms serially. Under heavy workload, the image processing workloads may impact audio sample delivery, which results in dropped audio packets. For 48KHz sampling rate, if the overall pipeline frame rate runs is lesser than 24fps, then there will be audio packet loss.