Как не вываливаться из цикла после ответа

Други, как сделать что бы цикл не завершался после инпута с микрофона? (голосовой помощник) Сказал что либо... получил ответ. хочется что бы скрипт дальше слушал микрофон, а не завершался по True. выход хочу выполнить отдельно через elif с break

import speech_recognition as sr
import pyttsx3
import random

mic = sr.Microphone(device_index=2)
r = sr.Recognizer()

ansver_list = ['тест', 'тест1', 'тест2']


def speek(words):
    engine = pyttsx3.init()
    voices = engine.getProperty('voices')
    engine.setProperty('voice', voices[3].id)
    engine.say(words)
    engine.runAndWait()

with mic as source:
    print(speek(words='тест3'))
    audio = r.listen(source=mic)
    query = r.recognize_google(audio_data=audio, language='ru-RU').lower()

hello = ['тест', 'тест', 'тест']
odds1 = ['тест', 'тест', 'тест', 'тест']


if query in hello:
    print(speek(words=random.choice(ansver_list)))

elif query in odds1:
    print(speek(words='тест'))

elif query == 'тест':
    print(speek(words='тест'))

else:
    print(speek(words='тест'))

Ответы (1 шт):

Автор решения: Итан

разобрался. спасибо. и да, всё же while True

→ Ссылка