Pyaudio识别器错误找不到路径

时间:2015-06-10 19:42:09

标签: python path system pyinstaller pyaudio

我编写了一个基本程序,它基本上使用了pyttsx,speechrecognition和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文件。我认为问题不在于麦克风。它应该是关于内部的识别器。

2 个答案:

答案 0 :(得分:1)

我认为问题在于 speech_recognition 的捆绑FLAC转换实用程序无法找到,因为 PyInstaller 不知道它是必需的。

因此,您需要在构建过程中明确要求 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>

答案 1 :(得分:0)

Yoel是正确的(但代码中的speech_recognition应该是双引号)。

我已经在this commit中添加了有关如何使用PyInstaller设置库的详细说明。

我还向PyInstaller提交了pull request以默认包含speech_recognition集成。合并后,将不再需要添加这些挂钩。