Ist es möglich, den Abstand zwischen den gesprochenen Wörtern bei der Verwendung von Text-to-Speech mit SAPI5 zu vergrößern?
Das Problem ist, dass vor allem bei einigen Stimmen die Wörter fast miteinander verbunden sind, was das Verstehen erschwert.
Ich verwende Python und das pyTTS-Modul (unter Windows, da es SAPI verwendet)
Ich habe versucht, an das OnWord-Ereignis anzuknüpfen und ein time.sleep() oder tts.Pause() hinzuzufügen, aber anscheinend werden alle Ereignisse nur am Ende des gesprochenen Textes verarbeitet, unabhängig davon, ob ich die sync- oder async-Flagge verwende, obwohl sie abgefangen werden.
In diesem NON WORKING Beispiel wird die sleep()-Methode erst ausgeführt, nachdem der Satz gesprochen wurde:
tts = pyTTS.Create()
def f(x):
tts.Pause()
sleep(0.5)
tts.Resume()
tts.OnWord = f
tts.Speak(text)
Bearbeiten: -- akzeptierte Lösungen
Die tatsächlichen Antworten lauteten für mich entweder
- jedes Wort in einem eigenen "speak"-Befehl sagen (vorgeschlagen von @Lennart Regebro), oder
-
Ersetzen jedes Leerzeichens durch ein Komma (wie von @Dawson erwähnt), z. B.
text = text.replace(" ", ",")
die eine angemessene Pause einlegt. Ich habe die Pause-Methode nicht weiter untersucht, als ich oben erwähnt habe, da ich mit den akzeptierten Lösungen zufrieden bin.