Python - TypeError: listen () отсутствует 1 обязательный позиционный аргумент: 'self' - PullRequest
1 голос
/ 20 апреля 2019

Я работал над ИИ в PyCharm, но, похоже, я столкнулся с ошибкой в ​​speech_recognition, пытающейся вызвать метод, чтобы попытаться получить аудиовход:

/Users/waynedeng/Desktop/AI/venv/bin/python 
/Users/waynedeng/Desktop/AI/dawg_2.0.py
Listening...
Traceback (most recent call last):
  File "/Users/waynedeng/Desktop/AI/dawg_2.0.py", line 37, in <module>
    input = read_input()
  File "/Users/waynedeng/Desktop/AI/dawg_2.0.py", line 20, in read_input
    audio = speech.listen(source=source, timeout=10, phrase_time_limit=5)
TypeError: listen() missing 1 required positional argument: 'self'

Process finished with exit code 1

Я пытался погуглить мою ошибку, но ни одно из решений не помогло моей ситуации. Вот мой код:

import speech_recognition as sr
import os
from playsound import playsound
import webbrowser
import random

speech = sr.Recognizer
speech.energy_threshold = 4000

greeting_dictionary = {'sup' : 'whats good','ay' : 'wassup'}

def play_sound(mp3_list):
    mp3 = random.choice(mp3_list)
    play_sound(mp3)

def read_input():
    voice_text = ''
    print('Listening...')
    with sr.Microphone() as source:
        audio = speech.listen(source=source, timeout=10, phrase_time_limit=5) #The error is here
    try:
        voice_text = speech.recognize_google(audio)
    except sr.UnknownValueError:
        pass
    except sr.RequestError as e:
        print('Network error')
    except sr.WaitTimeoutError:
        pass
    return voice_text

if __name__ == '__main__':

    playsound('mp3/dawg/greet.mp3')

    while True:

        input = read_input()

        print('You: '.format(input))

        if 'hello' in input:
            continue
        elif 'open' in input:
            os.system('explorer ~/Desktop {}'.format(input.replace('Open ', '')))
        elif 'bye' in input:
            exit()

Я пытался устранить ошибку в течение недели, но не могу исправить эту ошибку

1 Ответ

2 голосов
/ 20 апреля 2019

Вместо этого

speech = sr.Recognizer

попробуйте это

speech = sr.Recognizer()
...