запуск функции pyttsx3 преобразования текста в речь, вызывающую закрытие приложения

Я запускаю функцию преобразования текста в речь каждый раз, когда итальянское слово вставляется в список. Иногда скрипт python дает сбой после произнесения всех слов. Иногда после произнесения всех слов все вставки в список выполняются и ничего не выходит. Поскольку слова вставляются в список через цикл, можно было бы ожидать слова, за которым следует его произношение, так как parla_italiano() вызывается для каждого слова. Но похоже, что функция удерживает другой поток Python. Я еще никогда не работал с потоками. Есть ли способ отключить эту функцию после произнесения слова и разрешить вставку слова в список? Я использую python 3.9 на windows10

def parla_italiano(phrase):
    import pyttsx3
    engine = pyttsx3.init() 
    it_voice_id = r"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_IT-IT_ELSA_11.0"
    engine.setProperty('voice', it_voice_id)
    engine.say(phrase)
    engine.runAndWait()

Это сообщение об ошибке:

Fatal Python error: PyEval_RestoreThread: the function must be called with the GIL held, but the GIL is released (the current Python thread state is NULL)
Python runtime state: initialized

0 ответов

Другие вопросы по тегам