首页 > 解决方案 > Python - TypeError:listen()缺少1个必需的位置参数:'self'

问题描述

我一直在 PyCharm 中研究 AI,但我似乎遇到了 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()

我已经尝试解决该错误一周,但我似乎无法修复此错误

标签: pythonpython-3.xpycharmspeech-recognitionpyttsx

解决方案


而不是这个

speech = sr.Recognizer

试试这个

speech = sr.Recognizer()

推荐阅读