2017-07-11 10 views
0

私はWindows::Media::SpeechRecognitionをWindows10上で動作させようとしていますが、Hello World Appの動作に問題があります。ここでWindows音声認識Hello World not working

は私がやったことです:

void App::Init() 
{ 
    speechRecognizer = ref new Windows::Media::SpeechRecognition::SpeechRecognizer(Windows::Media::SpeechRecognition::SpeechRecognizer::SystemSpeechLanguage); 

    Platform::Collections::Vector<String^>^ speech_command_list = ref new Platform::Collections::Vector<String^>(); 
    speech_command_list->Append(StringReference(L"pause")); 
    speech_command_list->Append(StringReference(L"play")); 
    speech_command_list->Append(StringReference(L"download")); 
    speech_command_list->Append(StringReference(L"test")); 

    SpeechRecognitionListConstraint^ speech_constraint = ref new SpeechRecognitionListConstraint(speech_command_list); 

    speechRecognizer->Constraints->Append(speech_constraint); 

    create_task(speechRecognizer->CompileConstraintsAsync()).then([this](SpeechRecognitionCompilationResult^ compilationResult) 
    { 
     if (compilationResult->Status == SpeechRecognitionResultStatus::Success) 
     { 

      speechRecognizer->ContinuousRecognitionSession->ResultGenerated += ref new TypedEventHandler<SpeechContinuousRecognitionSession^, SpeechContinuousRecognitionResultGeneratedEventArgs^>(this, &App::OnSpeechRecognized); 
      speechRecognizer->HypothesisGenerated += ref new TypedEventHandler<Windows::Media::SpeechRecognition::SpeechRecognizer^, SpeechRecognitionHypothesisGeneratedEventArgs^>(this, &App::OnHypothesisGenerated); 
      speechRecognizer->StateChanged += ref new TypedEventHandler<Windows::Media::SpeechRecognition::SpeechRecognizer^, SpeechRecognizerStateChangedEventArgs^>(this, &App::OnStateChanged); 
      speechRecognizer->RecognitionQualityDegrading += ref new TypedEventHandler<Windows::Media::SpeechRecognition::SpeechRecognizer^, SpeechRecognitionQualityDegradingEventArgs^>(this, &App::OnQualityIssue); 

      TimeSpan endSilenceTime; 
      endSilenceTime.Duration = 12000000L; 
      speechRecognizer->Timeouts->EndSilenceTimeout = endSilenceTime; // (1.2 seconds in nanoseconds) 

      speechRecognizer->ContinuousRecognitionSession->StartAsync(); 
     } 
     else 
     { 
      // Handle errors here. 
     } 
    }); 
} 

  • 私はOnLaunched()方法でVS2017

  • を新しいUWP空白のAppを作成し、私は音声認識を初期化するために、私のInit()メソッドを呼び出します

  • コードは、音声制約のコンパイルが成功したため、コンパイルして起動します。新しい状態値を持つコールバックで一度として

Idleそして、それはこれだけです。私のマイクに話すとき、私はもうコールバックを受け取らない。

私のマイクは正しく接続されています。これはWindowsのデフォルトのマイクで、機能しています。

答えて

1

私のアプリケーションに何が間違っているかを見つけました。誰かが同じ問題を抱えている場合のために私はここに答えを掲示します。

このタイプのUWPアプリケーションには、アプリケーションのいくつかの設定を保持するPackage.appxmanifestというファイルが組み込まれています。

このマニフェストファイルには、「インターネット(クライアント)」機能と「マイク」機能を有効にする必要がある「機能」セクションがあります。

再コンパイル後、すべて正常に機能していました。