我有一个短语列表,我想知道每个短语在给定的速率下,动态地需要多长时间,这样我就可以在一段时间内均匀地分布它们。你知道吗
我目前正在利用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)
API文档中没有具体的内容可以直接回答您。不过,这里有一个测试应该是有效的。你知道吗
Pyttsx允许您以每分钟单词数为单位设置引擎的语音速率。此外,您可以轻松地编写一个简短的Python脚本来查看一个单词/短语包含多少音节。你知道吗
我建议您设置语音速率,然后查看一个固定数量的音节是否需要相同的时间,而不管给引擎的短语是什么。一旦你这样做了,你就可以“估计”一个特定的短语可能需要多长时间才能说出,如果你知道它有多少个音节。你知道吗
相关问题 更多 >
编程相关推荐