1

でWindows.Media.Speechrecognition名前空間を使用:今すぐhttps://msdn.microsoft.com/en-us/library/windows.media.speechrecognition.aspx私はここで説明するように音声テキスト入力Windows.Media.SpeechRecognition名前空間とを開発しようとしているのQt C++アプリケーション

、私は「Qtの中で働いてMと明らかに、Windowsの名前空間のようなものはありません: "Windowsの" 無クラスまたは名前空間

C2653で

using namespace Windows::Media::SpeechRecognition; 

int main(int argc, char *argv[]) 
{ 
    SpeechRecognizer speechRecognizer = new SpeechRecognizer(); 

    //... 

    return 0; 
} 

結果

さて、私は何かを組み込むか、私のプロファイルにライブラリを追加する必要があるかもしれないと思ったが、何をどこで取得するかについて何も見つけることができない。

質問が出た場合:英語以外の言語を受け入れるには音声入力が必要なので、これを使用しています。

答えて

3

Windows.Media.SpeechRecognition.hヘッダーを含める必要があります。デスクトップアプリケーションの場合、名前空間は実際にはABI::Windows::Media::SpeechRecognitionです。 WRLを使用して呼び出す必要があります。あなたはこのようSpeechRecognizerオブジェクトを作成することができます:あなたはまた、それがRoInitializeまたはRoActivateInstanceのような機能を探してRuntimeObject.libとリンクする必要があります

#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(); 
} 

関連する問題