如何解决为什么说话后我的代码卡住了?
我尝试在python3上创建语音助手
这是我的功能说(使用pyttsx):
def speak(what):
print("Gosha: " + what)
speak_engine.say( what )
speak_engine.runAndWait()
speak_engine.stop()
在主体上可以正常工作,但是在 execute_cmd 函数中,在说函数之后,我的代码卡住了。 execute_cmd 的一部分:
def execute_cmd(cmd,voice):
global finished
finished = False
#import debug
if cmd == 'ctime':
now = datetime.datetime.now()
hours = str(now.hour)
minutes = str(now.minute)
if (now.minute < 10): minutes = '0' + minutes
speak("Now " + hours + ":" + minutes)
finished = True
完成永远不会正确
这发生在函数中的任何地方
请帮助我
(对不起,我来自俄罗斯)
UPD:我调试了代码并注意到,我的代码卡在 speak_engine.runAndWait()
上我知道,很多人都有相同的问题,但是他们的解决方案并没有帮助我
解决方法
我不确定我是否理解您的问题。代码被“卡住”是什么意思?因为您说过finished
变量永远不会是False
,所以我假设代码一直运行并且不会卡住。我最好的猜测是您的代码根本不会发出声音。
如果是这样,我可以想象是由于先前的循环仍处于活动状态。因此,也许尝试将以下内容添加到您的talk()函数中:
ef speak(what):
print("Gosha: " + what)
try:
speak_engine.endLoop()
except Exception as e:
pass
speak_engine.say( what )
speak_engine.runAndWait()
speak_engine.stop()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。