Microsoft.Speech SpeechRecognitionEngine.setInputToDefaultAudioDevice() 方法抛出 System.InvalidOperation

Posted

技术标签:

【中文标题】Microsoft.Speech SpeechRecognitionEngine.setInputToDefaultAudioDevice() 方法抛出 System.InvalidOperationException【英文标题】:Microsoft.Speech SpeechRecognitionEngine.setInputToDefaultAudioDevice() method throwing System.InvalidOperationException 【发布时间】:2015-10-24 13:12:14 【问题描述】:

我正在使用 Microsoft.Speech(不是 System.Speech!),我正在尝试将音频流的输入设置为我的麦克风,这是默认音频设备,但它抛出了异常:

System.InvalidOperationException' 发生在 Microsoft.Speech.dll 但 未在用户代码中处理`

附加信息:找不到请求的数据项,例如 数据键或值。

这只是一个测试,理想情况下我想将音频流设置到我的扬声器,但如果我可以让它工作,我可以使用虚拟音频设备软件插入麦克风流。如果有人也可以直接将音频流设置到扬声器,那就完美了。

感谢您的帮助!

【问题讨论】:

谁对我的问题投了反对票,请问为什么?因为我花了 6 个小时寻找这个问题的答案,最后我在这里提问,结果被否决了。 之前已经问过同样的问题***.com/questions/32961817/… 根据网络中的信息,当您没有可用的麦克风时会发生此异常。您需要检查您是否可以实际录制音频。 @NikolayShmyrev 如果我使用 System.Speech 命名空间,它工作正常,但如果我使用 Microsoft.Speech,它会抛出异常,所以我知道我的录音设备工作正常。这个问题没有答案 【参考方案1】:

根据网上有限的信息,情况如下。 Microsoft.Speech 识别器是服务器识别器,如 VXML 服务器,它可能不支持所有音频设备和所有输入速率。例如,您的音频驱动程序可能不支持低质量录制。所以 Microsoft.Speech 可能不接受你的音频设备。

您需要改用 System.Speech API,它是为桌面 API 设计的,应该可以工作。

【讨论】:

以上是关于Microsoft.Speech SpeechRecognitionEngine.setInputToDefaultAudioDevice() 方法抛出 System.InvalidOperation的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft.Speech SpeechRecognitionEngine.setInputToDefaultAudioDevice() 方法抛出 System.InvalidOperation

加载 Microsoft Speech SDK v11 时出错

Microsoft Speech Platform 语音转文本

Microsoft Speech 产品/平台之间的差异

无法加载外部 ruleref Microsoft Speech Grammar

Microsoft Speech SDK开发包 使用