本文介绍了如何在加载Tkinter窗口后让TTS(Pyttsx3)说话的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我正在做一个项目,其中有许多按钮和窗口使用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命令应该在窗口加载之后执行。我应该如何操作?

推荐答案

我遇到了完全相同的问题,我尝试了所有方法,包括线程但这种方法Root.After(2000,发言)肯定会奏效的。该数字以毫秒为单位。

这篇关于如何在加载Tkinter窗口后让TTS(Pyttsx3)说话的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-15 05:26