Python 微软语音 API 错误 : SPERR_NO_DRIVER from CmdLoadFromFile

标签 python api speech microsoft-speech-api

这个问题很可能没有答案,但我非常希望在这个问题上得到一些帮助。 找了一段用 Python 处理微软语音 API 的代码,然后去了解了 W3C 的“Speech Recognition Grammar Specification Version 1.0”。

我把它归结为:

>>> import win32com.client
>>> listener = win32com.client.Dispatch("SAPI.SpSharedRecognizer")
>>> context = listener.CreateRecoContext()
>>> grammar = context.CreateGrammar()
>>> grammar.DictationSetState(0)
>>> grammar.CmdLoadFromFile("C:\\grammar.grxml")
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    grammar.CmdLoadFromFile("C:\\grammar.grxml")
  File "C:\Python26\lib\site-packages\win32com\gen_py\C866CA3A-32F7-11D2-9602-00C04F8EE628x0x5x4.py", line 2372, in CmdLoadFromFile
    , LoadOption)
com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147201021), None)

据我所知,上述错误代码对应于“SPERR_NO_DRIVER”,与“There is no wave driver installed.”有关

我现在卡住了。我不知道在这种情况下,wave driver 是什么,也不知道在哪里可以找到它或如何调试它等...... 有什么想法吗?

最佳答案

.wav 数据是最基本的声音数据类型 - 波形的原始采样,“声音有多大”每秒 8000 到 44000 次。

波形驱动程序可让您的计算机从麦克风获取此原始数据或将其发送到扬声器。

如果您的计算机有声卡,则应该已经安装了声卡。您是否在没有声音硬件的计算机上进行开发?

编辑:在进一步查看文档后,我认为您错误地识别了错误; -2147201021 是 0x80045003,这是 SPERR_UNSUPPORTED_FORMAT(参见 http://msdn.microsoft.com/en-us/library/ms717306%28VS.85%29.aspx)

您确定您的 Speech API 版本支持 grxml 文件吗?看着http://msdn.microsoft.com/en-us/library/ee125091%28v=VS.85%29.aspx它可能需要 .xml 或 .cfg - 尝试将扩展名从 .grxml 更改为 .xml?

关于Python 微软语音 API 错误 : SPERR_NO_DRIVER from CmdLoadFromFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4485911/

相关文章:

python - 字典与Python

python - 并行化 Numpy 向量操作

api - mautic - 我想通过 api 在 mautic 中添加联系人

c++ - 是否有任何适用于 C++ Windows 开发人员的免费可移植(意思是 <100mb)IDE,其编译器能够进行代码提示并经过测试可与 Win32 API 一起使用?

java - Google Cloud Speech API 是否会保存我的录音?

.net - 微软语音识别 : Alternate results with confidence score?

ios - 文本转语音 API 不适用于 iOS

python - 使用 Tensorflow contrib keras 时导入语句

python - 不同配置格式的优缺点?

iphone - Google MAP Api http 请求