私はここで同じ問題に遭遇し、答えを見つけるために多くの時間を費やしました。幸いなことに、私は次の手順に従って解決策を見つけました。
- MS音声認識プログラムを削除したい場合は、インプロセス認識機能を使用してください
hr = cpRecognizer.CoCreateInstance(CLSID_SpInprocRecognizer);
2.インプロセスレコグナイザーにはデフォルトの入力ソースまたは認識エンジンが設定されていないため、インプロセスレコグナイザーがリッスンするように設定する必要があります。
CComPtr<ISpObjectToken> cpObjectToken;
CComPtr<ISpAudio> cpAudio;
// Get the default audio input token.
hr = SpGetDefaultTokenFromCategoryId(SPCAT_AUDIOIN, &cpObjectToken);
// Set the audio input to our token.
hr = cpRecognizer->SetInput(cpObjectToken, TRUE);
// Set up the inproc recognizer audio input with an audio input object.
// Create the default audio input object.
hr = SpCreateDefaultObjectFromCategoryId(SPCAT_AUDIOIN, &cpAudio);
// Set the audio input to our object.
hr = cpRecognizer->SetInput(cpAudio, TRUE);
3.使用する特定の音声認識エンジンを指定します。指定しない場合は、デフォルトのものを使用します。呼び出されない場合でも、デフォルトのものが使用されます(この行をお勧めしますが、引き続き正常に機能します)。
hr = cpRecognizer->SetRecognizer(NULL);
それでおしまい!これは、デフォルトの米国英語認識エンジンを開き、私のコマンドを非常にすばやく取得します。
参照:
http://stackoverflow.com/questions/18448394/inproc-speech-recognition-engine-in-python
http://msdn.microsoft.com/en-us/library/ms718864%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/ms718866%28v=vs.85%29.aspx