我有一个语音激活程序抛出的唯一错误。它的System.InvalidOperationException
我尝试了很多方法,我无法弄清楚为什么它没有被纠正。我recieving的System.InvalidOperationException
我使用System.Speech。我有一个计时器,并在计时器中,我已启用它并将其从True切换为False并将False切换为True。它也没有解决这个问题。
我宣布我的课
SpeechRecognitionEngine startlistening = new SpeechRecognitionEngine();
我指定我的活动
startlistening.SetInputToDefaultAudioDevice();
startlistening.LoadGrammarAsync(new Grammar(new GrammarBuilder(new Choices("alexis"))));
startlistening.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(startlistening_SpeechRecognized);
,然后我把命令
case "quit listening":
Alexis.SpeakAsync("I will await further commands ");
_recognizer.RecognizeAsyncCancel();
startlistening.RecognizeAsync(RecognizeMode.Multiple);
break;
的话,我已经把我的定时器
private void tmrSpeech_Tick(object sender, EventArgs e)
{
if (recTimeOut == 10)
{
_recognizer.RecognizeAsyncCancel();
}
else if (recTimeOut == 11)
{
startlistening.RecognizeAsync(RecognizeMode.Multiple);
tmrSpeech.Stop();
recTimeOut = 0;
}
recTimeOut += 1;
}
我已经宣布了启动监听
void startlistening_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
string speech = e.Result.Text;
switch (speech)
{
case "alexis":
startlistening.RecognizeAsyncCancel();
Alexis.SpeakAsync("I am back online");
_recognizer.RecognizeAsync(RecognizeMode.Multiple);
break;
}
}
我很茫然的结构。我有所有的参考设置,以及定时器设置在
Enabled False
Interval 10000
GenerateMember True
Modifiers Private
有没有我丢失的东西。当我告诉程序退出侦听时,它使用AsyncCancel,然后如果说亚历克西斯那么程序响应没有错误。但是,如果我说Quit Listening并等待超过10秒钟,它将抛出异常。我已经尝试了我所知道的一切。有任何想法吗?我使用Visual Studio 2013群落及其WinForms和.NET 4.5框架
什么异常说呢? – SLaks
包含例外的全文,该消息将包含重要细节 –
以及哪行代码导致异常... –