나는 문구 목록을 가지고 있으며 각 문구가 주어진 속도로 얼마나 오랫동안 걸리는지 알고 싶다. 그래서 나는 일정 기간 동안 골고루 분산시킬 수있다.pyttsx에서 말하기에 어구가 얼마나 걸리는지 추측 할 수 있습니까?
나는 현재 각 문구를 말하고 걸리는 시간을 기록하기 위해 started-utterance
과 finished-utterance
을 활용하고 있습니다. 물론이 단점은 응용 프로그램로드시 모든 구문을 말하거나로드를 수행하고 디스크에 결과를 저장해야한다는 것입니다. 구문 목록이 변경되면 무효화됩니다.
import pyttsx
from datetime import datetime
import time
phrases = ['long sentence', 'medium sentence', 'short sentence', 'word']
phrase_lengths = {phrase: 0 for phrase in phrases}
start_time = None
end_time = None
def onStart(name):
global start_time
start_time = datetime.now()
def onEnd(name, completed):
global start_time
global end_time
end_time = datetime.now()
print name, "took", end_time - start_time
phrase_lengths[name] = end_time - start_time
engine = pyttsx.init()
engine.connect('started-utterance', onStart)
engine.connect('finished-utterance', onEnd)
def speak(engine, rate, phrase):
engine.setProperty('rate', rate)
engine.say(p, p)
engine.runAndWait()
for phrase in phrases:
speak(engine, 120, phrase)
time.sleep(3.0)
질문에 답변이있는 경우 해결 된 것으로 표시하는 것이 좋습니까? – SashaZd