ユーザーのコマンドに応答する音声認識エンジンを作成しています。ユーザーの都合に合わせて音声認識を有効または無効にするボタンを作成しました。音声認識を無効にするために音声エンジンの Dispose() を使用しました。コードは次のとおりです。
private void button1_Click(object sender, RoutedEventArgs e)
{
engineOn = !engineOn;
if (engineOn)
{
speechEngine = speech.createSpeechEngine(); //speech is a class that creates and returns a new speech engine.
speechEngine.AudioLevelUpdated += new EventHandler<AudioLevelUpdatedEventArgs>(speechEngine_AudioLevelUpdated);
// use the system's default microphone
speechEngine.SetInputToDefaultAudioDevice();
speechEngine.LoadGrammar(new DictationGrammar());
// start listening
speechEngine.RecognizeAsync(RecognizeMode.Multiple);
}
else
{
SpeechClass.myEngine.Dispose();
}
}
しかし、音声オブジェクトの破棄には時間がかかります。それを非同期で行う方法は? 音声認識をオンまたはオフにする他の方法はありますか? 前もって感謝します。