簡體   English   中英

Python 文本轉語音在一個單獨的線程中

[英]Python text-to-speech in a separate thread

我有一個 Python 程序,我想讓語音報告某些事件,但我不想在語音說話時暫停程序的主循環。 我以為我可以通過在單獨的線程中運行 pyttsx3 來實現這一點(如下所示),但它不起作用。 整個程序在語音朗讀時暫停。 是否有任何解決方法或更好的解決方案?

import pyttsx3
from threading import Thread
from time import sleep

def text_to_speech(engine, txt):
    print(f"Speaking: {txt}")
    engine.say(txt)
    engine.runAndWait()

engine = pyttsx3.init()

for n in range(1,21):
    sleep(.1)
    if n % 5 == 0:
        txt = f'{n} is divisible by 5.'
        Thread(target=text_to_speech(engine, txt)).start()
    else:
        print(n)

在這篇文章中找到的最佳答案有助於解決這個問題: 在游戲循環中運行 pyttsx3

它運作良好,但到目前為止,我還沒有弄清楚如何打斷講話,所以它並不完美。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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