Python, распознавание речи застряло на «Прослушивание ...» - PullRequest
0 голосов
/ 16 июня 2020

Код застревает при прослушивании (строка audio=r.listen(source)) и не go дальше. Никаких сообщений об ошибках или чего-либо еще.

Мой код:

import speech_recognition as sr

def takeCommand():
    '''
    It takes user's voice as input
    '''
    r=sr.Recognizer()
    with sr.Microphone() as source:
        print("Listening...")
        r.pause_threshold = 1
        audio=r.listen(source)

try:
    print("Recognizing...")
    query = r.recognize_google(audio, language="en-in")
    print(f"Recognized Command: {query}")

except Exception as e:
    print(e)
    print("I didn't recognize what you said please repeat")
    return "None"

return query


takeCommand()

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Я только что проверил ссылку , которую вы разместили в комментарии.

Вот этот код:

with mic as source:
    audio = r.listen(source)

Если этот код не работает, одна из причин может может быть, микрофон улавливает слишком много окружающего шума.

Решение может быть

with mic as source:
    r.adjust_for_ambient_noise(source)
    audio = r.listen(source)
0 голосов
/ 16 июня 2020

Я не работал с этой библиотекой; но я думаю, что r.listen(source) - это функция (метод) блокировки. Метод блокировки - это метод, который блокирует выполнение кода до тех пор, пока оно не будет выполнено (возвращено). Ваше приложение ожидает завершения r.listen(source) до sh.

Вы должны поставить перед ним print("Recognizing..."). Также, когда я читаю здесь , r.listen(source) вернет результат (fini sh), когда обнаружит тишину (возможно, после голоса). Таким образом, ваш код должен продолжить выполнение после обнаружения тишины.

...