使用 SAPI5 使用文本到语音时,是否可以扩大口语之间的差距?
问题是,特别是。有些声音,单词几乎是连在一起的,这使得讲话更难理解。
我正在使用 python 和 pyTTS 模块(在 Windows 上,因为它使用 SAPI)
我试图挂钩 OnWord 事件并添加 time.sleep() 或 tts.Pause(),但显然即使所有事件都被捕获,它们仅在语音文本的末尾被处理,无论我是使用同步或异步标志。
在这个 NON WORKING 示例中,sleep() 方法仅在说出句子后执行:
tts = pyTTS.Create()
def f(x):
tts.Pause()
sleep(0.5)
tts.Resume()
tts.OnWord = f
tts.Speak(text)
编辑: - 接受的解决方案
对我来说实际的答案是
- 在自己的“说话”命令中说出每个单词(@Lennart Regebro 建议),或
用逗号替换每个空格(如@Dawson 所述),例如
text = text.replace(" ", ",")
这设置了一个合理的暂停。我没有比我上面提到的更多地研究 Pause 方法,因为'我对接受的解决方案很满意。