簡體   English   中英

與pygame一起使用時如何防止pyttsx產生斷斷續續的語音?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM