[英]How to prevent pyttsx from producing broken speech when used with pygame?
我有以下設置。 一個 pygame 窗口,它使用 event.keyDown 讀取鍵盤輸入並在按下右箭頭鍵時顯示一些文本。 除此之外,顯示的文本必須由 eSpeak 朗讀。 我正在使用 pyttsx 模塊執行此操作。 當有更長的文本塊時,例如一行或一個句子,eSpeak 語音場景在它可以說出完整文本之前就被打破。 這是我嘗試過的一些事情。 試驗 1:我嘗試將 engine.say() 和 engine.runAndWait() 函數調用放在不同的函數中並返回一個金條值。 后來我檢查了金條值是否為 True,然后繼續在 pygame 窗口上顯示文本。
試驗 2:在調用具有 engine.say() 和 engine.runAndWait() 函數的方法后,我使用 timer.sleep() 函數引入了 2 秒的延遲。
試驗 3:我將 engine.say() 和 engine.runAndWait() 函數調用放置在主函數中(我之前調用該方法的地方)。
這些都沒有導致 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 !")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.