Многопоточное распознавание и синтезирование речи python. RuntimeError: запуск l oop уже запущен - PullRequest
0 голосов
/ 25 апреля 2020
t1 = threading.Thread(target=work, daemon=True)
t2 = threading.Thread(target=show, daemon=True)
t1.start()
t2.start()

t1.join()
t2.join()

Но теперь модуль с голосовым помощником не работает нормально. Я пытался создать поток для синтеза речи. Но возникает «RuntimeError: run l oop уже запущен». Распознавание речи работает хорошо.

def talk(words):
    engine.say(words)
    engine.runAndWait()
    engine.startLoop(False)

def listener():
    speech = ''
    r = sr.Recognizer()
    m = sr.Microphone(device_index=1)
    with m as source:
        r.adjust_for_ambient_noise(source)
        r.pause_threshold = 1
        audio = r.listen(source)
        try:
            speech = r.recognize_google(audio, language="ru-RU")
        except sr.UnknownValueError:
            speech = listener()

    return speech
def work():
     while True:
        command = listener()
        command = command.lower()
        if 'hi' in command:
            greeting = "hello"
            t = threading.Thread(target=talk, args=(greetingg,), daemon=True)
            t.start()
            t.join()


Где здесь проблема и как ее исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...