我正在使用 python 创建一个程序,它允许您使用 Windows 语音识别执行命令,唯一的问题是我不希望语音识别使用它们的默认命令。有没有办法使用 python 或完全禁用它来禁用它。我正在为 python 使用 pyspeech。
问问题
853 次
2 回答
2
好吧,你需要的是一个进程内识别引擎,而 PySpeech 使用了一个共享识别引擎。所以你需要稍微修改一下 PySpeech。改变
_recognizer = win32com.client.Dispatch("SAPI.SpSharedRecognizer")
至
_recognizer = win32com.client.Dispatch("SAPI.SpInprocRecognizer")
在 startlistening(phraselist, callback) 中,您需要附加一个音频流(通过 _recognizer.SetInput )和一个识别引擎(通过_recognizer.SetRecognizer)。不幸的是,我对 Python 不够熟悉,无法将 SAPI 助手SpGetDefaultTokenFromCategoryId(用于获取默认音频流)和SpGetDefaultSharedRecognizerToken(用于获取默认 reco 引擎)转换为 Python。
于 2013-06-06T07:54:34.987 回答
1
不确定您是否仍在寻找答案,但我为您找到了!
在第 66 行将代码更改为:
_recognizer = win32com.client.Dispatch("SAPI.SpInProcRecognizer")
_recognizer.AudioInputStream = win32com.client.Dispatch("SAPI.SpMMAudioIn")
并在第 112 行将代码更改为:
_ListenerBase = win32com.client.getevents("SAPI.SpInProcRecoContext")
这应该可以防止 Windows 命令运行,同时也不会显示出现的小部件。祝你好运!
于 2014-05-29T03:35:11.690 回答