python - 无法从python中的函数成功获取返回
问题描述
我正在尝试从以下函数返回一个值(口语音频已成功转录):
def takeCommand():
model = Model("model")
rec = KaldiRecognizer(model, 16000)
p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=8000)
stream.start_stream()
while True:
data = stream.read(4000, exception_on_overflow=False)
if len(data) == 0:
break
if rec.AcceptWaveform(data):
x=json.loads(rec.Result())
print(x["text"])
statement = print(x["text"])
return statement
else:
#print(rec.PartialResult())
pass
#print(rec.FinalResult())
我可以成功看到正在转录的文本
打印(x [“文本”])
但是,return 给了我一个 NoneType 错误,如下所示:
Traceback (most recent call last):
File "jarvis_vosk.py", line 116, in <module>
if "thank you" in statement or "ok bye" in statement or "stop" in statement:
TypeError: argument of type 'NoneType' is not iterable
所以函数 takeCommand() 是空的,我不明白为什么没有传递返回值?
非常感谢您的帮助!
解决方案
这是问题所在:
statement = print(x["text"])
return statement
你可以试试这个:)
statement = x["text"]
return statement
要不就
return x["text"]
推荐阅读
- python - Keras 序列模型 非线性回归模型 错误预测
- java - dynamoDB 映射器扫描()中的错误:java.lang.NullPointerException:null
- java - 如何在 Java MCQ 应用程序中增加每个正确问题的分数
- arrays - 如何将 API 请求数组保存到 Laravel 中的数据库
- python - 如果我使用 Heroku 来托管我的 d.py 机器人,它可以在 mongodb 中写入并保存到我的数据库吗?
- azure - 如何在 Azure Openshift 集群 4.4 中提供自定义域名
- java - 索引 10 超出长度 10 的范围
- mysql - 在动态 MySql 中使用 GROUP_CONCAT
- c# - 什么时候应该在 C# 接口中使用属性?
- python - 我正在扩展页眉和页脚,但是当我在页脚中传递数据时,它只在主页上可见,在其他页面上不可见