【发布时间】:2019-07-10 22:42:03
【问题描述】:
我制作了一个简单的语音识别程序,并尝试在 Pyinstaller 的帮助下制作 exe,现在当我在我的机器上运行该 exe 时,它可以正常工作并从麦克风打印识别的音频但是当我在另一个上运行它时当我在 *win10 Lenovo IdeaPad 330 * 上运行它时,程序运行但不打印识别的音频并继续循环,即使我已在 Windows 上允许使用麦克风并且程序使用时任务栏中的mic小图标也弹出来。 现在总结是在我的机器上制作的exe在其他机器上不起作用,为什么? 而且我认为一个线程可能会重复,因为我的问题与模块特别相关 有什么解决办法吗?
这里是代码
import speech_recognition
recognizer = speech_recognition.Recognizer()
def listen():
with speech_recognition.Microphone() as source:
print('i m hearing !')
recognizer.adjust_for_ambient_noise(source)
try:
audio = recognizer.listen(
source=source, timeout=5, phrase_time_limit=4)
except speech_recognition.WaitTimeoutError:
pass
try:
print(recognizer.recognize_google(audio))
return recognizer.recognize_google(audio)
except speech_recognition.UnknownValueError:
pass
except Exception as e:
print(e)
if __name__ == '__main__':
while True:
user=str(listen())
if user in ['exit','close','goodbye']:
print('okay goodbye!')
exit()
【问题讨论】:
-
“继续循环”是什么意思?您正在捕获您的异常,但不会在其中打印任何内容。用一些打印语句替换
pass,并将输出放在这里。 -
嘿,我在添加打印异常后检查了exe,所以在提到的机器上错误是
local variable 'audio' referenced before assignment。现在我认为当没有麦克风时会发生这种错误,不是吗?但根据我提到的机器配置,exe 使用 mic 。那么可能的解决方案是什么?和@M.R.请在你的机器上用pyinstaller检查这个程序exe,这可能会澄清。
标签: python speech-recognition pyinstaller