首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >豪猪的唤醒词检测

豪猪的唤醒词检测
EN

Stack Overflow用户
提问于 2021-01-15 03:32:19
回答 1查看 517关注 0票数 0

我正在尝试在python中实现豪猪唤醒,并遵循了here的说明

我有以下代码:

代码语言:javascript
复制
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

但我收到以下错误:

代码语言:javascript
复制
❯ 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()
EN

回答 1

Stack Overflow用户

发布于 2021-01-15 04:55:22

这可能并不完美(不完美),但它展示了我如何在Windows10机器上运行Ubuntu20.04的WSL2上用python创建了一个个人语音助手。语音助手响应唤醒字(Jarvis或计算机),然后执行命令。与这篇文章相关的是豪猪是如何被调用的:

代码语言:javascript
复制
#!/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")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65725739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档