我已经编写了一个基本程序,该程序基本上使用pyttsx,语音识别和tkinter库。我有如下功能。
def dunno():
with sr.Microphone() as source:
audio = r.listen(source)
try:
print('1')
textEntry = r.recognize(audio)
print('2')
print(textEntry)
engine.say("You said: "+ textEntry)
engine.runAndWait()
except LookupError:
engine.say("Sorry I couldn't understand what you said")
engine.runAndWait()
此外,我还定义了我的识别器和麦克风,如下所示:
r = sr.Recognizer()
然后,我通过使用如下所示的命令提示符,使用pyinstaller创建了一个exe文件:
pyinstaller --onedir --onefile --name=somesing "C:\Users\ABCD\Desktop\SomeFolder\mycodefile.py"
它正在创建.exe文件,没有任何问题。另外,我还为另一个版本创建了另一个.exe文件,该文件没有语音识别功能,但是运行良好。这给出了错误输出:
1
The system cannot find the path specified
1
The system cannot find the path specified
1
The system cannot find the path specified
这里,我已经三次调用函数dunno()并发生了此错误。 python脚本非常有效,但是butexe文件不起作用。
编辑:我也尝试了wav文件。我认为问题不在于麦克风。它应该与内部的识别器有关。
我认为问题在于,由于[[PyInstaller不知道它是必需的,所以无法找到speech_recognition的捆绑式FLAC转换实用程序。
因此,您需要在构建过程中明确要求PyInstaller
将其包括在内。尝试创建一个名为hook-speech_recognition.py
的文件,其内容如下:from PyInstaller.hooks.hookutils import collect_data_files
datas = collect_data_files('speech_recognition')
构建时,将文件放置目录的路径作为--additional-hooks-dir
参数的值,如下所示:
--additional-hooks-dir=<path_to_directory_of_hook_file>
speech_recognition
应该用双引号引起来。]我在this commit中添加了有关如何使用PyInstaller设置库的详细说明。
我还向PyInstaller提交了pull request,以默认包含Speech_recognition集成。合并后,将不再需要添加这些挂钩。