У объекта нет ошибки атрибута при использовании библиотеки pyttsx3 - PullRequest
1 голос
/ 12 июня 2019

Я написал демонстрационный проект для бота распознавания голоса. Но я сталкиваюсь с некоторой ошибкой, которая показывает, что объект не имеет атрибута. Я приложил код ниже

def speak(audio):
    print('Computer: ' + audio)
    engine.say(audio)
     engine.runAndWait()

функция myCommand:

def myCommand():

r = sr.Recognizer()                                                                                   
with sr.Microphone() as source:                                                                       
    print("Listening...")
    r.pause_threshold =  1
    audio = r.listen(source)
try:
    query = r.recognize_google(audio, language='en-in')
    print('User: ' + query + '\n')

except sr.UnknownValueError:
    speak('Sorry sir! I didn\'t get that! Try typing the command!')
    query = str(input('Command: '))

    return query

Основная функция:

if __name__ == '__main__':

while True:

    query = myCommand()
    print(query)
    query = query.lower()
    print(query)

    if 'open youtube' in query:
        speak('okay')
        webbrowser.open('www.youtube.com')

    elif 'open google' in query:
        speak('okay')
        webbrowser.open('www.google.co.in')          

    else:
        query = query
        speak('Searching...')
        try:
            try:
                res = client.query(query)
                results = next(res.results).text
                speak('WOLFRAM-ALPHA says - ')
                speak('Got it.')
                speak(results)

            except:
                results = wikipedia.summary(query, sentences=2)
                speak('Got it.')
                speak('WIKIPEDIA says - ')
                speak(results)

        except:
            webbrowser.open('www.google.com')

    speak('please give me Next Command! Sir!')

query = query.lower () AttributeError: объект 'NoneType' не имеет атрибута 'lower'

1 Ответ

0 голосов
/ 12 июня 2019

Проблема, которую я вижу здесь, состоит просто в отступе в коде.

with sr.Microphone() as source:                                                                       
   print("Listening...")
   r.pause_threshold =  1
   audio = r.listen(source)
try:
query = r.recognize_google(audio, language='en-in')
print('User: ' + query + '\n')

except sr.UnknownValueError:
  speak('Sorry sir! I didn\'t get that! Try typing the command!')
  query = str(input('Command: '))

return query

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

...