使用QT C 应用程序中的Windows.Media.speechRevention名称空间



我正在尝试使用windows.media.speechrecognition namespace开发语音到文本输入,如下所述:https://msdn.microsoft.com/en-en-us/library/windows.media.speechrecognition.aspx

现在,我正在QT工作,显然没有Windows名称空间之类的东西:

using namespace Windows::Media::SpeechRecognition;
int main(int argc, char *argv[])
{
    SpeechRecognizer speechRecognizer = new SpeechRecognizer();
    //...
    return 0;
}

导致

C2653:" Windows"无类或名称空间

好吧,所以我认为我可能必须包括一些东西或在我的专业文件中添加一个库,但是我找不到关于什么以及在哪里得到的东西。

如果问题出现:我正在使用此问题,因为我需要语音输入才能接受仅接受英语以外的语言。

您需要包括Windows.Media.SpeechRecognition.h标头。从桌面应用程序中,名称空间实际上是ABI::Windows::Media::SpeechRecognition。您还需要使用WRL来调用它。您可以这样创建SpeechRecognizer对象:

#include <roapi.h>
#include <Windows.Media.SpeechRecognition.h>
#include <wrl.h>
using namespace ABI::Windows::Media::SpeechRecognition;
using namespace Microsoft::WRL;
using namespace Microsoft::WRL::Wrappers;
int main()
{
    HRESULT hr = RoInitialize(RO_INIT_MULTITHREADED);
    if (FAILED(hr))
        return hr;
    ComPtr<IInspectable> instance;
    ComPtr<ISpeechRecognizer> recognizer;
    hr = RoActivateInstance(HStringReference(L"Windows.Media.SpeechRecognition.SpeechRecognizer").Get(), &instance);
    if (FAILED(hr))
        return hr;
    hr = instance.As(&recognizer);
    if (FAILED(hr))
         return hr;
    // do stuff with recognizer
    RoUninitialize();
}

您还需要与RuntimeObject.lib链接才能找到RoInitializeRoActivateInstance

之类的功能

相关内容

  • 没有找到相关文章

最新更新