0

所以我正在制作一个使用 Tkinter 有许多按钮和窗口的项目,我使用 pyttsx3 模块实现了 tts。考虑以下示例:

import pyttsx3
from Tkinter import *

#configure text-to-speech
engine = pyttsx3.init()

def speak(text):
    engine.setProperty("rate", 150)
    engine.say(text)
    engine.runAndWait()

root = Tk()

def submit():
    top = Toplevel(root)
    hello_world = Label(top, text = "Hello World")
    hello_world.pack()
    speak("Hello World")

click_me = Button(root, text = "Click Me", command = submit)
click_me.pack()

root.mainloop()

单击按钮时,tts 命令将首先运行,窗口将冻结,直到 pyttsx3 完成讲话,然后仅加载窗口。当有很多文字要说时,这个问题会变得更糟。

我想要的是 tts 命令应该在加载窗口后执行。我该怎么做?

4

1 回答 1

0

我遇到了完全相同的问题,我尝试了包括线程在内的所有方法但是方法 Root.after(2000, speak) 肯定会起作用。该数字以毫秒为单位。

于 2021-11-30T04:15:33.990 回答