Python 当与pygame一起使用时,如何防止pyttsx产生中断语音?
我有以下设置。pygame窗口,使用event.keyDown读取键盘输入,并在按下右箭头键时显示一些文本。除此之外,显示的文本必须由eSpeak说出。我正在使用pyttsx模块执行此操作。当有较长的文本块时,如一行或一句话,在它能说出完整的文本之前,eSpeak语音场景将被打断。 以下是我尝试过的一些事情。 试验1: 我尝试将engine.say()和engine.runAndWait()函数调用放在另一个函数中,并返回一个bullion值。我后来检查了金条值是否为真,然后继续在pygame窗口上显示文本 试验2: 调用包含engine.say()和engine.runAndWait()函数的方法后,我使用timer.sleep()函数引入了2秒的延迟 试验3: 我将engine.say()和engine.runAndWait()函数调用放在main函数中(我之前在这里调用了该方法) 这些都没有导致eSpeak完全地说更长的文本块Python 当与pygame一起使用时,如何防止pyttsx产生中断语音?,python,keyboard,pygame,text-to-speech,pyttsx,Python,Keyboard,Pygame,Text To Speech,Pyttsx,我有以下设置。pygame窗口,使用event.keyDown读取键盘输入,并在按下右箭头键时显示一些文本。除此之外,显示的文本必须由eSpeak说出。我正在使用pyttsx模块执行此操作。当有较长的文本块时,如一行或一句话,在它能说出完整的文本之前,eSpeak语音场景将被打断。 以下是我尝试过的一些事情。 试验1: 我尝试将engine.say()和engine.runAndWait()函数调用放在另一个函数中,并返回一个bullion值。我后来检查了金条值是否为真,然后继续在pygame窗
我还尝试使用pyttsx库在单独的python解释器中使用文本,效果很好。我在我的项目中使用了pyttsx 样本:
def speak(arg):
import pyttsx
engine = pyttsx.init()
rate = engine.getProperty('rate')
engine.setProperty('rate', rate-5)
engine.say(arg)
engine.say(" ")
engine.runAndWait()
speak("The quick brown fox jumped over the lazy dog.")
speak("okay,alright .")
speak("I have a sound !")
解决了我在树莓皮上遇到的问题!