我正在用python创建一个程序,允许你用windows语音识别来执行命令,唯一的问题是我不希望语音识别使用他们的默认命令。有没有办法用python禁用它或只是完全禁用它。我正在使用pyspeech for python。
答案 0 :(得分: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(以获得默认的重新引擎)转换为Python。
答案 1 :(得分:1)
不确定你是否还在寻找答案,但我找到了你的答案!
在第66行将代码更改为:
_recognizer = win32com.client.Dispatch("SAPI.SpInProcRecognizer")
_recognizer.AudioInputStream = win32com.client.Dispatch("SAPI.SpMMAudioIn")
在第112行将代码更改为:
_ListenerBase = win32com.client.getevents("SAPI.SpInProcRecoContext")
这样可以防止Windows命令运行,同时也不会显示出现的小部件。祝你好运!