#python #python-3.x #function #return-value
#питон #python-3.x #функция #возвращаемое значение
Вопрос:
Я пытаюсь вернуть значение (произносимый звук успешно расшифрован) из следующей функции:
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 выдает мне нетипичную ошибку следующим образом:
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() пуста, и я не могу понять, почему возвращаемое значение не передается дальше?
Ваша помощь очень ценится!!
Ответ №1:
Вот в чем проблема:
statement = print(x["text"])
return statement
Вы можете попробовать это 🙂
statement = x["text"]
return statement
Или просто
return x["text"]
Ответ №2:
Решил это … мне просто нужно было изменить
оператор = print(x[«текст»])
учитывать, что оператор является строкой …. а не просто печатать его:
оператор = str(x[«text»])