首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >异常:由于对象的当前状态,操作无效。UWP应用中的语音识别器对象

异常:由于对象的当前状态,操作无效。UWP应用中的语音识别器对象
EN

Stack Overflow用户
提问于 2016-07-20 05:43:37
回答 1查看 614关注 0票数 1

我一直在ContinuousRecognitionSession.StartAsync方法上得到这个异常:“由于对象的当前状态,操作无效。”即使当SpeechRecognizer对象处于“空闲”状态时也是如此。下面是代码片段

代码语言:javascript
运行
复制
    if (SpeechRecognizer.State == SpeechRecognizerState.Idle)
    {
            await SpeechRecognizer.ContinuousRecognitionSession.StartAsync();
    }

在这里,https://msdn.microsoft.com/en-us/windows/uwp/input-and-devices/enable-continuous-dictation提到语音识别器必须处于“空闲”状态才能调用StartAsync()。这里怎么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-21 05:15:38

虽然您在尝试调用StartAsync方法时得到了此异常,但问题可能不在这里。正如您所看到的,在官方示例中,它也使用了这段代码,并且运行良好。

由于我没有您的代码的其他部分,所以很难说是什么导致了这个异常。我建议您遵循连续听写中的步骤,并参考语音识别与合成样本来实现您自己的步骤。

这里的一些要点是:

  • 如果在连续识别事件处理程序中更新应用程序的UI,则获取UI线程的dispatcher。
  • 初始化语音识别器。
  • 编译内置听写语法。Note语音识别至少需要一个约束才能定义可识别的词汇表。如果没有指定约束,则使用预定义的听写语法。见语音识别
  • 设置事件侦听器以识别事件。

导致问题的一个可能原因是初始化中缺少编译约束。在开始语音识别之前,我们需要打电话给SpeechRecognizer.CompileConstraintsAsync法

参考文件:

CompileConstraintsAsync必须始终在RecognizeAsyncRecognizeWithUIAsync之前调用,即使约束条件属性中没有指定约束。

如果初始化时遗漏了await speechRecognizer.CompileConstraintsAsync();,则在启动识别会话时将得到Operation is not valid due to the current state of the object.异常。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38473129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档