@RD1706D

Как завершить выполнение функции в SpeechRecognition (Python)?

Имеется простая функция для распознавания речи:
def speech_to_text():

    r = sr.Recognizer()

    with sr.Microphone() as source:
    	r.pause_threshold = 1
    	r.adjust_for_ambient_noise(source, duration=1)
    	audio = r.listen(source)

    text = r.recognize_google(audio, language="ru-RU").lower()
    print("Вы сказали: " + text)

    return text


Данная функция выполняется в потоке, который активируется при нажатии кнопки через функцию:
def start():
    speech = Thread(target=speech_to_text)
    while True:
        if speech.is_alive() == False:
            speech.start()
        if thread_stop == True: return


Принцип работы данной функции проверять активен ли поток, если нет запускать заново, работает отлично за исключением одного 'но', если переменная thread_stop равна True функция start прекращает выполнение, однако поток все равно продолжает выполнение, если находиться на r.listen(source), возможно ли вместе с функцией завершить все дочерние функции и потоки?
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы