【问题标题】:How to make tts (pyttsx3) speak something after loading the Tkinter window如何在加载 Tkinter 窗口后让 tts (pyttsx3) 说话
【发布时间】:2020-12-26 11:06:39
【问题描述】:

所以我正在制作一个使用 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 命令应该在加载窗口后执行。我该怎么做?

【问题讨论】:

  • speak()之前致电hello_world.update()
  • 谢谢你,这就是我要找的。​​span>

标签: python-3.x tkinter text-to-speech pyttsx3


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2023-02-26
    • 2019-08-23
    • 1970-01-01
    • 2017-01-05
    • 1970-01-01
    • 2020-11-15
    • 2021-06-27
    • 2021-09-17
    • 1970-01-01
    相关资源
    最近更新 更多