1

ここに記載されているC++コードを使用しています。ただし、ここで使用される共有音声認識は、move、minimize、deleteなどの独自のコマンドを実行します。MS音声認識プログラムを呼び出さずにこれを作成する必要があります。

hr = cpEngine.CoCreateInstance(CLSID_SpSharedRecognizer);

上記のこの行は、共有インスタンスを作成します。

代わりにCLSID_SpInprocRecognizerを使用しようとしましたが、正しく取得できません。私はこれに不慣れです。これを行う方法はありますか?

4

1 に答える 1

5

私はここで同じ問題に遭遇し、答えを見つけるために多くの時間を費やしました。幸いなことに、私は次の手順に従って解決策を見つけました。

  1. 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
于 2013-12-07T01:43:47.573 に答える