2010-12-20 33 views
2

這個問題很可能沒有答案,但我非常想在這件事上得到一些幫助。 我發現了一段代碼,用於處理Python中的Microsoft Speech API,然後去了解W3C的「Speech Recognition Grammar Specification Version 1.0」。Python Microsoft Speech API錯誤:來自CmdLoadFromFile的SPERR_NO_DRIVER

我煮它歸結爲這樣:

>>> 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.

我現在卡住了。我不知道在這種情況下,波浪驅動器是什麼,也不知道在哪裏可以找到它或如何調試等...... 有什麼想法?

回答

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?

+0

不,我不是......我看不到波驅動應該如何影響加載語法文件的能力...... – skeggse 2010-12-20 03:30:11

+0

我很抱歉在響應中花了這麼長時間,我嘗試將擴展名更改爲.xml,但繼續得到相同的錯誤。 – skeggse 2011-01-02 22:43:57

+0

我需要安裝Visual Studio才能工作嗎? – skeggse 2011-01-02 22:49:03