1

我正在使用 python 创建一个程序,它允许您使用 Windows 语音识别执行命令,唯一的问题是我不希望语​​音识别使用它们的默认命令。有没有办法使用 python 或完全禁用它来禁用它。我正在为 python 使用 pyspeech。

4

2 回答 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 回答