有没有可能推断出一个短语在pyttsx中要花多长时间?

2024-04-19 19:12:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个短语列表,我想知道每个短语在给定的速率下,动态地需要多长时间,这样我就可以在一段时间内均匀地分布它们。你知道吗

我目前正在利用started-utterancefinished-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)

Tags: nameimport列表datetimeratetimedefglobal
1条回答
网友
1楼 · 发布于 2024-04-19 19:12:54

API文档中没有具体的内容可以直接回答您。不过,这里有一个测试应该是有效的。你知道吗

Pyttsx允许您以每分钟单词数为单位设置引擎的语音速率。此外,您可以轻松地编写一个简短的Python脚本来查看一个单词/短语包含多少音节。你知道吗

我建议您设置语音速率,然后查看一个固定数量的音节是否需要相同的时间,而不管给引擎的短语是什么。一旦你这样做了,你就可以“估计”一个特定的短语可能需要多长时间才能说出,如果你知道它有多少个音节。你知道吗

相关问题 更多 >