【发布时间】:2022-08-05 17:21:43
【问题描述】:
当我遇到问题时,我目前正在尝试使用 Python 构建语音助手。 我正在使用 porcupine/picovoice 进行唤醒词检测,然后我调用一个函数,该函数可以在我调用它时识别出我所说的一切。
这是功能:
def recognizevoicecommand():
try:
r = sr.Recognizer()
print(\"A moment of silence, please...\")
with sr.Microphone() as source:
time.sleep(2)
r.adjust_for_ambient_noise(source)
print(\"Set minimum energy threshold to {}\".format(r.energy_threshold))
while True:
print(\"Say something!\")
with m as source:
time.sleep(2)
print(\"Now!\")
audio = r.listen(source)
print(\"Got it! Now to recognize it...\")
try:
# recognize speech using Google Speech Recognition
value = r.recognize_google(audio)
print(value)
return value
break
except sr.UnknownValueError():
print(\"OOps\")
break
except KeyboardInterrupt:
pass
如果我只是单独调用该函数,它工作得非常好,可以识别我所说的然后打印出来。
但问题是,一旦我将它与唤醒词检测器一起使用,我就会收到垃圾邮件溢出 - 阅读器阅读速度不够快后请稍等片刻...被打印出来。
这是唤醒词检测代码,它自己以及脚本都可以正常工作,问题似乎出在识别部分
porcupine = pvporcupine.create(access_key = accesskey, keywords=[\'computer\'])
recorder = PvRecorder(device_index = 0, frame_length = porcupine.frame_length)
recorder.start()
while True:
pcm = recorder.read()
result = porcupine.process(pcm)
if(result >= 0):
print(\"Keyword detected\")
print(recognizevoicecommand())
except pvporcupine.PorcupineInvalidArgumentError as e:
print(\"One or more arguments provided to Procupine is invalid!\")
raise e
except pvporcupine.PorcupineActivationError as e:
print(\"Accesskey denied.\")
raise e
except pvporcupine.PorcupineActivationLimitError as e:
print(\"Accesskey has reached it\'s temporary device limit.\")
raise e
except pvporcupine.PorcupineActivationRefusedError as e:
print(\"Accesskey refused.\")
raise e
except pvporcupine.PorcupineActivationThrottledError as e:
print(\"Accesskey has been throttled.\")
raise e
except pvporcupine.PorcupineError as e:
print(\"Failed to initialize Porcupine.\")
raise e
except KeyboardInterrupt:
print(\"Stopping\")
finally:
if porcupine is not None:
porcupine.delete()
if recorder is not None:
recorder.delete()
老实说,我不知道为什么它不起作用。希望能找到解决办法!
标签: python pyaudio microphone