Voice recognition may not work with gestures in Intel® Perceptual Computing SDK 2013 R3(fix is included in R4 release)

Voice recognition may not work with gestures in Intel® Perceptual Computing SDK 2013 R3(fix is included in R4 release)

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.

AttachmentSize
Downloadtext/x-c++src util-pipeline-raw.cpp8.64 KB
9 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

How open this issue on C# for voice recognition and this issue fix for C++ or for SDK? Do we have to build the libpxcclr library or not?

This fix should also works for C#, you need not rebuild libpxcclr. Please let me know if you have any issue. Thanks!

Forgive me but how can a fix that changes the underlying C++ in the C# wrapper not require the C# wrapper to be rebuilt, or is the C# lib an implementation instead of a wrapper?

Oh i see, I have been banging my head against the wall trying to find out why my code isn't working. In my case, In Unity, i have a PXCUPipeline instance for voice in one thread, andone for gesture in another, worked fine before, but now only the voice initializes, while the gesture fails. I'll perform this fix. thanks for the update!

I used both voice recognition and gestures in an app which I submitted during the early submission phase. I used the R3 version of the SDK and both components worked for me at the same time, however unfortunately I did not read this post until now. So I'm asking myself if my app might fail on other systems? Or does the fact that it worked for me imply that it does not need the fix and it will work in general?

If it might fail, is there any way to correct my submission?

There is no such issue If you use those two components in different thread. 

But I use them in the same thread with only one UtilPipeline instance (albeit it is not the main application thread). And it still works - at least for me. Would be great to be notified and allowed to upload a patched version in case this causes trouble.

You can download latest R4 release now. This bug has been fixed in R4 release. Thanks, David

Leave a Comment

Please sign in to add a comment. Not a member? Join today