Вот наименьший код, который все еще показывает проблему:
python
Код: Выделить всё
import pyttsx3
engine = pyttsx3.init()
def speak(text):
engine.say(text)
engine.runAndWait()
speak("hello there, this is a test sentence.")
speak("second test sentence to check playback.")
Вещи, которые я уже пробовал:
- добавление пустого engine.say("") перед первым реальным произнесением
- небольшое засыпание после инициализации
- переключение голоса (зира, Дэвид, Хейзел)
- дополнение текста пробелами или фиктивными словами
- убедитесь, что за каждым сказать() следует runAndWait()
Вопрос
Есть ли надежный способ запретить pyttsx3 обрезать начало речи? могу ли я заставить движок полностью «разогреться» перед тем, как говорить, или подключиться к событию, чтобы воспроизведение начиналось только после того, как буфер будет готов?
Подробнее здесь: https://stackoverflow.com/questions/798 ... ds-letters
Мобильная версия