2

这个问题很可能没有答案,但我非常希望能在这件事上得到一些帮助。我找到了一段用 Python 处理微软 Speech 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”,与“没有安装波形驱动程序”有关。

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

4

1 回答 1

0

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

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

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

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

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

于 2010-12-20T03:04:25.290 回答