python - engine.runandWait() 卡住
问题描述
我的脚本只是停止并在之后卡住engine.runandWait()
......如果有人知道如何让它继续,我将不胜感激!似乎答案不在脚本本身,因为我尝试了超级简单的脚本......我还尝试了卸载和重新安装portaudio
,pyaudio
并且pyttsx3
这是我的脚本:
import speech_recognition as sr
import pyttsx3
import pywhatkit
import datetime
import wikipedia
import time
import pyjokes
listener = sr.Recognizer()
engine = pyttsx3.init()
voices = engine.setProperty('voices', "french")
def talk(text):
engine = pyttsx3.init()
engine.say(text)
engine.runAndWait()
def take_command():
command = ''
try:
with sr.Microphone() as source:
print("...")
voice = listener.listen(source)
command = listener.recognize_google(voice,language = 'fr-FR')
command = command.lower()
except:
talk("Je me mets en veille")
pass
return command
def run_jeff(run):
command = take_command()
if 'youtube' in command:
command = command.replace('youtube','')
command = command.replace('ouvre','')
pywhatkit.playonyt(command)
elif "stop" in command:
talk("Je vais dodo")
run = False
elif 'bonjour' in command or 'salut' in command :
talk('Bonjour, comment allez-vous ?')
talk(info)
elif 'blague' in command :
talk(pyjokes.get_joke())
else :
talk("Pouvez-vous répétez je n'ai pas compris ?")
print(command)
run = True
while True:
run_jeff(run)
if run == False:
exit()
解决方案
在 def talk 部分,您可以删除第一行和 while True 语句,删除 if run == False,并在 take 命令部分添加一个 elif 语句,在命令中说 elif 'thank you':exit(你的助手)。试试看
推荐阅读
- c# - 我的布尔变量在 OnTriggerStay() 中始终为 False
- sql - Postgres在事务中组合两个写查询
- python - 当通过 raise_for_status 和 python-requests 引发 HTTPError 时如何包含响应
- java - 尝试将 SMS 插入收件箱,没有任何反应
- javascript - Javascript蛇游戏错误
- responsive - Ionic 4 and ngx-charts - 离子滑道内离子网格的响应性问题
- python - 在我的 Compute Engine 虚拟机中,每次登录时都必须重新安装 Python 模块
- rest - 链接两个对象的 PATCH 的 URL 格式
- css - 我不知道为什么我的“最大宽度:470px”媒体查询不起作用
- android - Android:每次重启后如何重新启用无障碍服务?