首页 > 编程问答 >Picovoice Porcupine 自定义唤醒词不起作用,文件路径问题

Picovoice Porcupine 自定义唤醒词不起作用,文件路径问题

时间:2024-07-21 02:15:15浏览次数:7  
标签:python

我在 picovoice 网站上训练了自定义唤醒词并下载了 ZIP 文件。然后我将其解压并复制文件路径。这是我的代码:

import struct
import pyaudio
import pvporcupine
porcupine=None
paud=None
audio_stream=None
try:
    porcupine=pvporcupine.create(access_key="blahblah", keywords=["C:\\Users\\maste\\Downloads\\Jarvis_en_windows_v3_0_0.ppn"])
    paud=pyaudio.PyAudio()
    audio_stream=paud.open(rate=porcupine.sample_rate,channels=1,format=pyaudio.paInt16,input=True,frames_per_buffer=porcupine.frame_length)
    while True:
        keyword=audio_stream.read(porcupine.frame_length)
        keyword=struct.unpack_from("h"*porcupine.frame_length,keyword)
        keyword_index=porcupine.process(keyword)
        if keyword_index>=0:
            print("hotword detected")

finally:
    if porcupine is not None:
        porcupine.delete()
    if audio_stream is not None:
        audio_stream.close()
    if paud is not None:
        paud.terminate()

但是我收到此错误:

ValueError: One or more keywords are not available by default. Available default keywords are:\njarvis, hey barista, bumblebee, americano, ok google, terminator, blueberry, hey siri, grasshopper, alexa, porcupine, hey google, computer, pico clock, picovoice, grapefruit

我做错了什么?它与内置唤醒词配合得很好。我猜我的文件路径格式有问题。


遇到的错误与文件路径无关。Picovoice Porcupine 引擎在错误消息中明确指出的自定义唤醒词 Jarvis 不可用。

问题在于尝试在仅支持默认唤醒词的 Picovoice Porcupine 引擎的免费层中使用自定义唤醒词。自定义唤醒词训练和使用是付费功能。

可以执行以下操作之一来解决此问题:

  1. 使用默认唤醒词: pvporcupine.create() 函数中移除 keywords 参数,或使用受支持的默认唤醒词列表中的一个,例如“jarvis”或“bumblebee”。

python porcupine = pvporcupine.create(access_key="blahblah")

python porcupine = pvporcupine.create(access_key="blahblah", keywords=["bumblebee"])

  1. 订阅 Picovoice: 如果需要使用自定义唤醒词,则需要订阅 Picovoice。订阅后,将获得一个允许使用自定义 .ppn 模型文件的访问密钥。

python porcupine = pvporcupine.create(access_key="your_picovoice_access_key", keywords=["C:\\Users\\maste\\Downloads\\Jarvis_en_windows_v3_0_0.ppn"])

确保替换 your_picovoice_access_key 为的实际访问密钥。

完成上述更改之一后,的代码应能正常运行,并能使用默认或自定义唤醒词检测唤醒词。

标签:python
From: 78773550

相关文章

  • 裁剪时间变量 Python Matplotlib Xarray
    我不确定这是否是一个愚蠢的问题,但我想按时间变量剪辑.nc文件。我在xarray中打开了数据集,但以下ds.sel行(之前已运行)仅返回错误。ds=xr.open_dataset('/Users/mia/Desktop/RMP/data/tracking/mcs_tracks_2015_11.nc')selected_days=ds.sel(time=slice('2015-11-22',......
  • 用于匹配两个数据列表中的项目的高效数据结构 - python
    我有两个列表,其中一个列表填充ID,另一个列表填充进程名称。多个进程名称可以共享一个ID。我希望能够创建一个可以使用特定ID的数据结构,然后返回与该ID关联的进程列表。我还希望能够使用特定的进程名称并返回与其连接的ID列表。我知道我可以为此创建一个字典,但是I......
  • 有人可以解决我的代码中的问题吗?而且我无法在我的电脑上安装 nsetools。如何在 python
    从nsetools导入Nseimportpandasaspdnse=Nse()all_stock_codes=nse.get_stock_codes()companies_with_low_pe=[]对于all_stock_codes中的代码:如果代码=='符号':继续尝试:stock_quote=nse.get_quote(代码)pe_ratio=stock_quote.get('priceT......
  • 将 python 脚本的 stdin 重定向到 fifo 会导致 RuntimeError: input():lost sys.stdin
    我有这个python脚本,它的作用是充当服务器,它从重定向到fifo的stdin读取命令:test.py:whileTrue:try:line=input()exceptEOFError:breakprint(f'Received:{line}')在bash中运行命令:mkfifotestfifotest.py<testfifo......
  • Python/Flask mysql 游标:为什么它不起作用?
    fromflaskimportFlaskfromflask_mysqldbimportMySQLapp=Flask(__name__)app.config['MYSQL_HOST']='localhost'app.config['MYSQL_USER']='root'app.config['MYSQL_PASSWORD']='password'a......
  • Python pandas to_csv 导致 OSError: [Errno 22] 参数无效
    我的代码如下:importpandasaspdimportnumpyasnpdf=pd.read_csv("path/to/my/infile.csv")df=df.sort_values(['distance','time'])df.to_csv("path/to/my/outfile.csv")此代码成功从infile.csv(一个3GBcsv文件)读取数据,对其进行排......
  • 从 python 中的字符串列表中提取 def 定义函数的标签
    我想使用Python中的正常def过程创建函数,并将标签分配给从字符串列表中提取的命名空间。如何实现这一点?这个问题的动机:我正在创建一个与sympy兼容的python函数库,供数学家用于符号计算实验。许多函数需要初始化具有相关标签的多个对象的系统,这些标签分别由用户提供的字......
  • 在 Raspberry Pi 4 上使用 Python 从具有 SPI 连接的 MT6816 磁性编码器读取
    我对这个领域完全陌生,并不真正知道自己在做什么并且需要帮助。我正在尝试使用MT681614位磁性编码器通过RaspberryPi的SPI连接读取绝对角度。我有以下问题:在硬件方面,是否只是简单地连接必要的连接(3.3V、MOSI、MISO、SCK、GND、CE01)?对于编码......
  • PythonW 不运行脚本。严重地
    因此,使用Windows10和Python3.6。我创建了一个.py脚本,它可以使用命令pythonmyscript.py在命令提示符下正常运行,但是当我制作该脚本的精确副本并为其赋予扩展名.pyw,并尝试使用pythonw运行它时命令pythonwmyscript.pyw,什么也没有发生......
  • 如何使用Python和Selenium模拟产品购买以获取库存信息
    我正在开发一项网络抓取服务,主要针对时尚行业。我的目标是提供有关产品的全面数据,包括库存水平。为了实现这一目标,我需要模拟购买以确定每种尺寸的产品的最大可用数量。我一直在使用Python和Selenium进行网络抓取部分,但在准确模拟购买方面面临着挑战检索股票信息的过程。......