- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在同时使用 wolframalpha
和 wit.ai
我正在尝试构建 wolframalpha
从 wit.ai 获取数据
音频而不是终端文本。
我的代码是:
#!/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 api?
最佳答案
StopIteration
在生成器耗尽且没有更多值时引发,获得一个完全没问题。但是你需要自己处理:
try:
print(next(res.results).text)
except StopIteration:
print("No more suggesstions.")
关于python - python中的StopIteration错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35560290/
我正在编写从 azure DevOps 下载大型审计日志 csv 文件并根据给定条件过滤数据的脚本。这适用于小 csv 文件,但对于具有大数据的文件,它会失败 字段 = 下一个(读者) 停止迭代 有人
这是我的代码 class A: pass def f(): yield A() def g(): it = f() next(it).a = next(it, None
以下是 Jean 对我的问题的回答:Python converting strings in a list to numbers ,运行下面的最小代码时出现 StopIteration 异常。 pri
我正在 Python 中实现一个迭代器,它包装另一个迭代器,并在传递迭代器的输出之前对其输出进行后处理。下面是一个简单的示例,它采用一个返回字符串的迭代器,并在每个字符串前面添加 FILTERED B
看看这个,问题的症结在最下面: >>> scan = iter('FHUR203459') >>> while True: print(next(scan)) F H U R 2 0
我想编写一个生成器,它可以接受来自产量的有限数量的输入,然后优雅地处理更多输入。捕获 StopIteration 的最佳方法是什么? 我尝试使用内部生成器与外部生成器进行包装,使用 try- exce
为什么这段代码抛出“StopIteration”: stub_generator = (x for x in range(5)) stub_dict = {} stub_dict[next(stub_
我有一个生成器,我想确认它已经结束(在程序的某个点。我在 python 2.7 中使用 unittest # it is a generator whould have only one item i
为什么多次调用耗尽的生成器时,StopIteration 每次都会引发,而不是仅在第一次尝试时引发?后续调用不是没有意义,并表明调用方代码中可能存在错误吗? def gen_func(): y
当迭代器耗尽时,最后一次从迭代器返回某些东西的好方法是什么。我正在使用一个标志,但这相当丑陋: class Example(): def __iter__(self): sel
我想从一个 csv 文件中读取最多 20 行: rows = [csvreader.next() for i in range(20)] 如果文件有 20 行或更多行则工作正常,否则会失败并出现 St
灵感来自 my own answer ,我什至不明白它是如何工作的,请考虑以下内容: def has22(nums): it = iter(nums) return any(x ==
我有一个 generator检查列表中某个条件的对象。这个程序适用于我的所有情况。 但我只想澄清一些关键点。 在我的程序中每当generator yield值 'No'或 'Done'控制迭代停止并调
我需要捕获 next(it) 抛出的异常,因此在这种情况下我无法使用常规的 for 循环。所以我写了这段代码: it = iter(xrange(5)) while True: try:
我的作业代码遇到了一些问题,我应该浏览一个文本文件并找到四月份的生日并打印它们。文本文件如下所示: 鲍勃,6 月 10 日 乔,4 月 12 日 苏,7 月 22 日 我应该检查一下并打印出四月份的姓
我正在使用 yield from,但我不知道 while 对 yield 的影响。如果我将 yield from 放入 while 循环中,效果很好,但是当我同时取消循环时,会发生异常。 final_
我想遍历两个不同大小的列表,但速度不同(我只找到了并行迭代的答案)。例如,考虑两个包含相同类型元素的排序列表,我想根据它们只在一个列表或两个列表中的事实对元素执行某些操作,使用两个列表的公共(publ
我正在编写一个从文件接收输入的程序,每一行都可能包含“ATG”或“GTG”,我很确定我所做的一切都是我想做的。这是我第一次在 python 中使用生成器,在研究了这个问题之后,我仍然不知道为什么我会停
我有一个函数可以使用生成器计算毕达哥拉斯三元组。但是,当我调用 next(myfunc()) 时,它会抛出此错误: Traceback (most recent call last): File
如果我有多个可迭代对象作为参数,有没有办法让代码在列表之一引发 StopIteration 之后继续运行? 我不能使用任何切片、len() 或任何 itertools。 这是我迄今为止尝试过的方法,我
我是一名优秀的程序员,十分优秀!