Программа меня слышит, а диктора из сайта - НЕТ. Что можно сделать чтобы заставить ее слышать?

У меня есть сайт, где диктор (англичанин) произносит английские слова. Мне надо чтобы моей программе, вслед за произнесением диктора, автоматически печаталось это слово. Вот моя программа:

import speech_recognition as sr

mic = sr.Microphone(device_index=0)

while True:
    r = sr.Recognizer()
    with mic as source:
        print('Говорите:') 
        r.adjust_for_ambient_noise(source)
        audio = r.listen(source)
    try:
        text = r.recognize_google(audio, language='en-US')
        print('Вы сказали:', text)
    except sr.UnknownValueError:
        print('Непонятно!!!')
    except sr.RequestError:
        print('Также непонятно!!!')

Только дело в том, что программа не слышит диктора. Когда говорю я, она меня слышит и печатает то, что я сказал, а когда говорит диктор, на все его слова программа печатает: «Непонятно!!!».

Другими словами, программа НЕ слышит в микрофон то, что произносится на самом компьютере (ноутбуке).

Как заставить ее слышать?


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

Автор решения: VitoR InA

Вы можете попробовать перебрать все доступные микрофоны. Возможно в системе выбран не тот микрофон, который нужен.

import speech_recognition as sr

while True:
    available_indexes = [str(microfone) for microfone in sr.Microphone.list_working_microphones().keys()]
    print(f"Доступные индексы микрофонов: {', '.join(available_indexes)}")
    index = int(input("Введите нужный индекс микрофона: "))
    mic = sr.Microphone(device_index=index)

    r = sr.Recognizer()
    with mic as source:
        print("Говорите:") 
        r.adjust_for_ambient_noise(source)
        audio = r.listen(source)

    try:
        text = r.recognize_google(audio, language='en-US')
        print(f"Вы сказали: {text}")
    except sr.UnknownValueError or sr.RequestError:
        print('Непонятно!')
→ Ссылка