asynchronous - 语音识别引擎未关闭 - 无效操作异常

标签 asynchronous f# speech-recognition

决定连接一个简单的语音编写应用程序作为学习语音识别 + F# 的测试平台。为了允许启动或停止语音识别,我连接了以下方法:

 let Activate () = 
     sp.RecognizeAsync(RecognizeMode.Multiple)

 let Deactivate () = 
     sp.RecognizeAsyncCancel()
     sp.RecognizeAsyncStop()

我可以使用默认语法词典很好地启动引擎。当我调用 deactivate 方法时,问题就出现了。我经常遇到以下异常:

 An unhandled exception of type 'System.InvalidOperationException' occurred in System.Speech.dll

 Additional information: Cannot perform this operation while the recognizer is doing recognition.

最佳答案

参见here .

您的代码似乎存在两个问题:

  1. 您应该调用 RecognizeAsyncCancelRecognizeAsyncStop,但不能同时调用两者。它们执行相同的操作,只是 RecognizeAysncCancel 会截断输入,而 RecognizeAsyncStop 则不会。我猜测连续调用它们会导致您看到的错误。

  2. RecognizeAsyncCancelRecognizeAsyncStop 都有完成时的回调。在最终操作完成之前,您不应该对引擎执行任何其他操作。请参阅链接以了解如何执行此操作的示例。

关于asynchronous - 语音识别引擎未关闭 - 无效操作异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17937305/

相关文章:

asp.net - 如何防止asp :Timer from sending tick before response is generated?

c - `open`和 `close`如何异步串口?

javascript - 异步方法总是返回未定义

f# - 通过F#中的条件公式创建循环序列

f# - 通过模式匹配比较 F# 区分的联合实例

android - 语音识别应用程序未返回 Android 中的确切单词

JavaScript - webkitSpeechRecognition,听不完

javascript - 在 if 语句中使用 child_process.exec 的返回值?

F# 在 Async.Catch 上继续

cmd - HTK 此处问题