Проблема в коде Python name 'record_and_recognize_audio' is not defined

import speech_recognition

if __name__ == "__main__":

    # инициализация инструментов распознавания и ввода речи
    recognizer = speech_recognition.Recognizer()
    microphone = speech_recognition.Microphone()

    while True:
        # старт записи речи с последующим выводом распознанной речи
        voice_input = record_and_recognize_audio()
        print(voice_input)`

def record_and_recognize_audio(*args: tuple):
    """
    Запись и распознавание аудио
    """
    with microphone:
        recognized_data = ""

        # регулирование уровня окружающего шума
        recognizer.adjust_for_ambient_noise(microphone, duration=2)

        try:
            print("Listening...")
            audio = recognizer.listen(microphone, 5, 5)

        except speech_recognition:
            print("Can you check if your microphone is on, please?")
            return`

        # использование online-распознавания через Google 
        try:
            print("Started recognition...")
            recognized_data = recognizer.recognize_google(audio, language="ru").lower()

        except speech_recognition:
            pass

        # в случае проблем с доступом в Интернет происходит выброс ошибки
        except speech_recognition:
            print("Check your Internet Connection, please")

        return recognized_data

вот мой код при его запуске пишет что 'record_and_recognize_audio' is not defined record_and_recognize_audio находится в этом куске кода:

while True:
    # старт записи речи с последующим выводом распознанной речи
    voice_input = record_and_recognize_audio()
    print(voice_input)

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

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

Вынесите блок

if __name__ == "__main__":

    # инициализация инструментов распознавания и ввода речи
    recognizer = speech_recognition.Recognizer()
    microphone = speech_recognition.Microphone()

    while True:
        # старт записи речи с последующим выводом распознанной речи
        voice_input = record_and_recognize_audio()
        print(voice_input)`

В самый низ файла под функцию.

Дело в том, что интерпретатор проходится по коду сверху вниз и еще не инициализировал эту функцию на момент вашей попытки обращения к ней.

→ Ссылка