c# - 微软语音识别编程。我怎么能在每次收到一个词时关闭语音识别引擎

标签 c# speech-recognition

我正在使用微软的语音识别进行编程。我运行了一个示例,它运行良好。但是如果我打开语音识别,程序就会一直在里面。我想每次引擎在识别单词时停止。这可能吗?

我的代码有点像这样:

_trainer = new SpeechRecognitionEngine();
_trainer.LoadGrammar(new Grammar(new GrammarBuilder(word))); // load a word
_trainer.SpeechRecognized += _trainer_SpeechRecognized;
_trainer.SpeechRecognitionRejected += _trainer_SpeechRecognitionRejected;
_trainer.SetInputToDefaultAudioDevice(); // set the input to the default audio device
_trainer.RecognizeAsync(RecognizeMode.Single);

感谢您的帮助。

我试图在最后调用 _trainer.Dispose(),但引擎根本不工作,让我休息一下。

最佳答案

添加RecognizeCompleted事件到SpeechRecognitionEngine

_trainer.RecognizeCompleted += _trainer_RecognizeCompleted;

_trainer_RecognizeCompleted 添加

_trainer.RecognizeAsyncStop();

手动取消SpeechRecognitionEngine

_trainer.RecognizeAsyncCancel();

要再次启动 SpeechRecognitionEngine,请再次调用 RecognizeAsync

_trainer.RecognizeAsync(RecognizeMode.Single);

查看 MSDN 示例

1-) SpeechRecognitionEngine.RecognizeAsync Method (RecognizeMode) (System.Speech.Recognition) 2-) RecognizeMode Enumeration (System.Speech.Recognition)

关于c# - 微软语音识别编程。我怎么能在每次收到一个词时关闭语音识别引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24946174/

相关文章:

c# - Webservice动态调用+获取原始数据

c# - 当需要多个处理程序时,选择最具体的处理程序

c# - 无弹窗语音识别初始化

android - 如何将音频文件作为输入而不是录制的语音传递给 Google 搜索语音?

c# - 在 nuget 包中显示评论

c# - 在 “using” block 中是关闭的 OracleConnection

c# - React 组件中的枚举数到字符串

python - 用于语音到文本的 Python 语音处理库

ios - 如何在 iOS Speech API 上检测语音开始

objective-c - 适用于 Mac 而非 iOS 的良好语音识别引擎?