我使用tkinter和pyttsx3模块制作了一个ChatBot,然后当我在其中进行复杂的计算时,它不停地讲了整个150位数以上的数字,然后由于冻结,我什至无法关闭tkinter窗口。请帮忙!
我尝试在超过限制但没有任何反应的情况下停止该过程!
engine = pyttsx3.init('sapi5')
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[len(voices) - 1].id)
def speak(audio):
engine.say(audio)
engine.runAndWait
speak(eval(12345**120))
我想在说话时说,如果我不想听,应该单击退出窗口将其关闭
答案 0 :(得分:0)
音频过程或任何其他漫长的过程将阻塞tkinter的主线程。您需要subprocess
或thread
的语音通话功能。
例如:
from threading import Thread
...
def speak(audio):
engine.say(audio)
engine.runAndWait
t = Thread(target=speak,args=(12345**120,)
t.start()