0

Я использую wolframalpha и wit.ai вместе, и я пытаюсь построить, что wolframalpha извлекает данные из wit.ai аудио вместо текстового терминала.Ошибка StopIteration в python

Мой код:

#!/usr/bin/python 
import speech_recognition as sr 
import wolframalpha 
import sys 

r = sr.Recognizer() 
with sr.Microphone() as source: 
    print("Say something!") 
    audio = r.listen(source) 


WIT_AI_KEY = "NQYEITRO5GL2Q2MZFIJE4UHWVNQEUROW" 
try: 
    print("Wit.ai thinks you said " + r.recognize_wit(audio, key=WIT_AI_KEY)) 
except sr.UnknownValueError: 
    print("Wit.ai could not understand audio") 
except sr.RequestError as e: 
    print("Could not request results from Wit.ai service; {0}".format(e)) 


client = wolframalpha.Client('PR5756-H3EP749GGH') 
print(r.recognize_wit(audio, key=WIT_AI_KEY)) 
res = client.query(r.recognize_wit(audio, key=WIT_AI_KEY)) 
print(next(res.results).text) 

Я столкнулся эту ошибку:

MacBook-Air:Documents exepaul$ python ak.py 
2016-02-22 23:05:04.429 Python[3003:122880] 23:05:04.428 WARNING: 140: This application, or a library it uses, is using the deprecated Carbon Component Manager for hosting Audio Units. Support for this will be removed in a future release. Also, this makes the host incompatible with version 3 audio units. Please transition to the API's in AudioComponent.h. 
Say something! 
Wit.ai thinks you said seven 
seven 
Traceback (most recent call last): 
    File "ak.py", line 24, in <module> 
    print(next(res.results).text) 
StopIteration 

Как я могу дать данные WolframAlpha апи?

+1

Если вы не знаете, что 'next()' может поднять 'StopIteration' в Python; вы должны изучить основы Python: вполне вероятно, что у вас есть другие вопиющие пробелы. См. Https://www.python.org/about/gettingstarted/ – jfs

+0

. Это работает? 'печать (res.results [0] .text)' – agentp

ответ

2

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

try: 
    print(next(res.results).text) 
except StopIteration: 
    print("No more suggesstions.") 
Смежные вопросы