我正在尝试在python中实现豪猪唤醒,并遵循了here的说明
我有以下代码:
import pvporcupine
### Porcupine wakeword
handle = pvporcupine.create(keywords=['computer', 'jarvis'])
def get_next_audio_frame():
pass
while True:
keyword_index = handle.process(get_next_audio_frame())
if keyword_index >= 0:
# Insert detection event callback here
print('Yes sir?')
pass但我收到以下错误:
❯ python3 porcupine.py Traceback (most recent call last): File "porcupine.py", line 10, in <module>
keyword_index = handle.process(get_next_audio_frame()) File "/home/rupstar/Computer/lib/python3.8/site-packages/pvporcupine/porcupine.py", line 129, in process
if len(pcm) != self.frame_length: TypeError: object of type 'NoneType' has no len()发布于 2021-01-15 04:55:22
这可能并不完美(不完美),但它展示了我如何在Windows10机器上运行Ubuntu20.04的WSL2上用python创建了一个个人语音助手。语音助手响应唤醒字(Jarvis或计算机),然后执行命令。与这篇文章相关的是豪猪是如何被调用的:
#!/usr/bin/env python3
#Porcupine wakeword includes
import struct
import pyaudio
import pvporcupine
porcupine = None
pa = None
audio_stream = None
try:
porcupine = pvporcupine.create(keywords=["computer", "jarvis"])
pa = pyaudio.PyAudio()
audio_stream = pa.open(
rate=porcupine.sample_rate,
channels=1,
format=pyaudio.paInt16,
input=True,
frames_per_buffer=porcupine.frame_length)
while True:
pcm = audio_stream.read(porcupine.frame_length)
pcm = struct.unpack_from("h" * porcupine.frame_length, pcm)
keyword_index = porcupine.process(pcm)
if keyword_index >= 0:
print("Hotword Detected")
speak("Computer online")https://stackoverflow.com/questions/65725739
复制相似问题