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