Kinect + SpCreateDefaultObjectFromCategoryId = SPERR_NOT_FOU
Kinect + SpCreateDefaultObjectFromCategoryId = SPERR_NOT_FOUND
我创建了一个解决方案,它使用microsoft SAPI来识别语法文件中定义的语音。
就其本身而言,此代码运行良好。然而,当我将它与运行Kinect SDK的同一程序集成时,它在以下行失败:
hr = cpRecognizer->SpGetDefaultTokenFromCategoryId(SPCAT_AUDIOIN,&pAudioToken);
//At this point, HR == -2147200966 == SPERR_NOT_FOUND
我尝试将kinect外部的麦克风插入可用的麦克风端口,并将其设置为默认麦克风。这也没有给我带来任何快乐。
然后我使用pAudioToken调用cpRecognizer->SetInput(pAudioToken,TRUE);
需要考虑的一件事是桌面SAPI识别器和服务器SAPI识别程序之间的差异。不幸的是,(通过视觉检查)确定你包含的是哪一个非常棘手——它们都被命名为sapi.h,但类别ID不同。
一个简单的区别是,SAPI_VER对于服务器版本为0x055,而对于桌面版本为0x054或更低。
然而,这里的关键区别在于SPCAT_AUDIOIN(音频输入类别)在服务器SAPI标头和桌面SAPI标头中的命名不同,并且服务器识别器完全可能没有音频输入类别的默认标记。
插入麦克风不会改变服务器识别器对默认输入的想法,尽管它会改变桌面识别器的默认输入。
我建议使用SpEnumTokens助手迭代音频输入类别,以查看哪些输入设备可用。
相关文章:
- OpenMP卸载说'fatal error: could not find accel/nvptx-none/mkoffload'
- 使用JsonCpp将数据返回到带有pybind11的python会在python调用中产生Symbol not foun
- OpenCV Android C++ imwrite not found
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 使用单词"not"作为C ++类的名称会导致VS2019错误
- 错误"Could not find Boost"(缺少:上下文标头)
- 如何修复"error: ‘_1’ was not declared in this scope"?
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- Is !NaN not a NaN?
- 为什么我会" void value not ignored as it ought to be"?
- 解决"ld: library not found for -ltensorflow_framework.2.3.0"
- 加载与引用 .NET DLL 位于同一文件夹中的引用的 .NET DLL 时"Not found"异常
- Directx 11 - CompileFromFile() is not compiling
- 方法错误"not all control paths return a value"和方法不返回值
- Centos7 g++ "to_string is not in a member of std"
- 将系数存储在头文件的数组中("does not name a type"错误)
- QGraphicsItems not showing up QGraphicsScene
- 在调试模式下引发C++ "deque iterator not dereferencable"异常
- InitializeCriticalSectionEx Not Located In KERNEL32.Dll
- what(): basic_string::_M_construct null not valid