Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当与pygame一起使用时,如何防止pyttsx产生中断语音?_Python_Keyboard_Pygame_Text To Speech_Pyttsx - Fatal编程技术网

Python 当与pygame一起使用时,如何防止pyttsx产生中断语音?

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窗

我有以下设置。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完全地说更长的文本块


我还尝试使用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 !")

解决了我在树莓皮上遇到的问题!