Porcupine - 语音关键词唤醒引擎

文章目录

    • 一、关于 Porcupine
      • 特点
      • 用例
        • 尝试一下
      • 语言支持
      • 性能
    • 二、Demo
      • 1、Python Demo
      • 2、iOS Demo
        • BackgroundService Demo
        • ForegroundApp Demo
      • 3、网页 Demo
        • 3.1 Vanilla JavaScript 和 HTML
        • 3.2 Vue Demos
    • 三、SDK - Python


一、关于 Porcupine

Porcupine 是一个高度准确和轻量级的唤醒词引擎。它支持构建始终监听的语音应用程序。

  • github : https://github.com/Picovoice/porcupine (240916 3.7K)
  • 官网:https://picovoice.ai/
  • 作者: Picovoice (Vancouver, Canada)
  • Twitter | YouTube

特点

  • 使用在 现实世界环境中 训练的深度神经网络。
  • 紧凑、计算有效率。它非常适合物联网。
  • 跨平台
    • Arm Cortex-M、STM32、Arduino和 i.MX RT
    • 树莓派(Zero、3、4、5)
    • 安卓 和 iOS
    • Chrome、Safari、火狐和 Edge
    • Linux(x86_64)、macOS(x86_64、arm64)和Windows(x86_64)
  • 可扩展。它可以检测多个始终监听的语音命令,而不会增加运行时占用空间。
  • 自助服务。开发人员可以使用PicoVoice Console训练自定义唤醒词模型。

用例

如果您需要检测一个或几个静态(始终监听)语音命令,Porcupine是合适的产品。

  • 如果您想创建类似于Alexa或Google的语音体验,请参阅 PicoVoice平台。
  • 如果您需要理解特定领域中 复杂且自然说出的语音命令,请参阅 Rhino Speech-to-Intent engine。

尝试一下
  • 交互式网络 Demo
  • 树莓派Zero 上的Porcupine

Porcupine in Action


语言支持

  • 阿拉伯语、荷兰语、英语、波斯语、法语、德语、印地语、意大利语、日语、韩语、普通话、波兰语、葡萄牙语、俄语、西班牙语、瑞典语和越南语
  • 商业客户可根据具体情况支持其他语言。

性能

Porcupine 和另外两个广泛使用的库 PocketSphinx和 Snowboy 有比较,见在里 。与这两个性能最好的引擎相比,Porcupine精度提高了11.0倍速度提高了6.5倍(在 Raspberry Pi 3上)。


二、Demo

Demo 支持各个平台,这里简单列举几个,详见:https://github.com/Picovoice/porcupine?tab=readme-ov-file#demos


如果使用SSH,克隆存储库:

git clone --recurse-submodules git@github.com:Picovoice/porcupine.git

如果使用HTTPS,请使用以下命令克隆存储库:

git clone --recurse-submodules https://github.com/Picovoice/porcupine.git

1、Python Demo

安装 Demo 包:

sudo pip3 install pvporcupinedemo

使用连接到设备的工作麦克风在终端中运行以下操作:

porcupine_demo_mic --access_key ${ACCESS_KEY} --keywords porcupine

引擎开始实时处理来自麦克风的音频输入,并在检测到 Porcupine 时输出到终端。

有关Python Demo 的更多信息,请访问demo/python。


2、iOS Demo

BackgroundService Demo 在后台运行音频录制,当应用程序没有focus 并保持在后台运行时,可以检测唤醒词。只有当应用程序focus 时,前景应用程序 Demo 才会运行唤醒词检测。


BackgroundService Demo

要运行 Demo ,请转到demo/ios/Background Service并运行:

pod install

用你的 AccessKey替换文件ViewController. swift中的 let accessKey = "${YOUR_ACCESS_KEY_HERE}"

然后,使用Xcode打开生成的PorcupineBackgroundServiceDemo.xcworkspace并运行应用程序。


ForegroundApp Demo

要运行前台应用程序 Demo :

1)转到ForegroundApp目录。然后运行:

pod install

2)在 XCode 中打开PorcupineForegroundAppDemo.xcworkspace

3)用你的AccessKey替换文件ViewController. swift中的let accessKey = "${YOUR_ACCESS_KEY_HERE}"

4)前往 Product > Scheme,为您要 Demo 的语言 选择 scheme(例如arDemo->Arabic Demo ,deDemo-> German Demo )

5)使用模拟器或连接iOS设备,运行 Demo

该 Demo 允许您选择任何预构建的关键字进行检测。按开始并说出选定的关键字。


3、网页 Demo


3.1 Vanilla JavaScript 和 HTML

从demo/web在终端中运行以下命令:

yarn
yarn start ${LANGUAGE}

(或)

npm install
npm run start ${LANGUAGE}

在浏览器中打开 http://localhost:5000 以尝试 Demo 。


3.2 Vue Demos

From demo/vue run the following in the terminal:

yarn
yarn start ${LANGUAGE}

(or)

npm install
npm run start ${LANGUAGE}

在浏览器中打开 http://localhost:5000 以尝试 Demo 。


三、SDK - Python

支持多种 SDK,这里截取 Python 部分,更多可见:https://github.com/Picovoice/porcupine?tab=readme-ov-file#sdks


安装Python SDK:

pip3 install pvporcupine

SDK公开了一个工厂方法 来创建引擎的实例:

import pvporcupine# AccessKey obtained from Picovoice Console (https://console.picovoice.ai/)
access_key = "${ACCESS_KEY}"handle = pvporcupine.create(access_key=access_key, keywords=['picovoice', 'bumblebee'])

keywords参数是访问库 随附的默认关键字文件 的简写。可用的 默认关键字文件 可以通过以下方式检索

import pvporcupineprint(pvporcupine.KEYWORDS)

如果您希望使用非默认关键字文件,您需要确定其路径:

import pvporcupine# AccessKey obtained from Picovoice Console (https://console.picovoice.ai/)
access_key = "${ACCESS_KEY}"handle = pvporcupine.create(access_key=access_key,keyword_paths=['path/to/non/default/keyword/file'])

初始化后,可以使用handle.sample_rate 获取有效的样例 rate。

所需帧长 (输入数组中音频样本的数量)是handle.frame_length

该对象可用于监控 传入音频如下:

import pvporcupine# AccessKey obtained from Picovoice Console (https://console.picovoice.ai/)
access_key = "${ACCESS_KEY}"handle = pvporcupine.create(access_key=access_key, keywords=['porcupine'])def get_next_audio_frame():passwhile True:keyword_index = handle.process(get_next_audio_frame())if keyword_index >= 0:# Insert detection event callback herepass

最后,完成后一定要使用handle.delete()显式释放资源。


2024-09-16(一)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/425336.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【软件测试】--xswitch将请求代理到测试桩

背景 在做软件测试的过程中,经常会遇见需要后端返回特定的响应数据,这个时候就需要用到测试桩,进行mock测试。 测试工程师在本地模拟后端返回数据时,需要将前端请求数据代理到本地,本文介绍xswitch插件代理请求到flas…

基于环境音频和振动数据的人类活动识别

这篇论文的标题是《Recognition of human activities based on ambient audio and vibration data》,作者是 Marcel Koch 等人,发表在 IEEE Access 期刊上。论文提出了一种基于环境音频和振动数据的分布式多传感器系统,用于识别人类活动。以下…

Anaconda安装并配置Python环境

背景概述 Anaconda,中文大蟒蛇,是一个开源的Anaconda是专注于数据分析的Python发行版本,包含了conda、Python等190多个科学包及其依赖项。 Anaconda就是可以便捷获取包且对包能够进行管理,包括了python和很多常见的软件库和一个…

web基础之RCE

简介:RCE称为远程代码执行漏洞;是互联网的一种安全漏洞;攻击者可以直接向后台服务器远程注入操作系统命令;从而操控后台系统;也是CTF比较常考的一个方面 1、eval执行 (1)分析后端代码&#xf…

什么是API网关(API Gateway)?

1. 什么是API网关(API Gateway)? 在微服务体系结构中,客户端可能与多个前端服务进行交互。 API 网关位于客户端与服务之间。 它充当反向代理,将来自客户端的请求路由到服务。 它还可以执行各种横切任务,例…

机器学习 vs 深度学习:深入浅出解析两者的区别

在当今科技飞速发展的时代,**机器学习(Machine Learning)和深度学习(Deep Learning)**成为了人工智能(AI)领域的热门话题。无论你是技术专家、学生,还是对AI感兴趣的普通读者&#x…

Linux-mysql5.7-mysql8.0安装包下载及安装教程,二合一

一、安装包下载 1、手动下载 MySQL :: Download MySQL Community Server 2、wegt下载 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz 登录自己的liunx ,复制上面的命令下载。 二、手动安装 1、上传压缩包到…

关于less的基本使用

1、介绍及概述 1.1、解释 less 是方便开发人员书写CSS的一门预处理语言。浏览器只认识html /css /js格式的文件,所以直接引入.less文件,没有任何的效果,需要把less文件转换成css文件 1.2、概述 CSS弊端: 没有逻辑性、变量、函…

php语言基本语法

HP&#xff08;Hypertext Preprocessor&#xff09;是一种广泛使用的开源服务器端脚本语言&#xff0c;特别适合于Web开发。 它能够嵌入到HTML中&#xff0c;执行动态网页内容。 PHP的一些基本语法元素&#xff1a; 1. 基本结构 PHP代码通常嵌入到HTML中&#xff0c;以<…

【三大运营商】大数据平台体系架构【顶层规划设计】

在国内运营商&#xff08;如中国移动、中国联通、中国电信&#xff09;的大数据平台建设中&#xff0c;顶层规划设计至关重要。以下是针对三大运营商为例【如电信】的大数据平台体系架构的顶层规划设计方案&#xff0c;涵盖整体架构、关键组件、数据管理、应用场景等方面。 1. …

Python 解析 JSON 数据

1、有如下 JSON 数据&#xff0c;存放在 data.json 文件&#xff1a; [{"id":1, "name": "小王", "gender": "male", "score": 96.8}, {"id":2, "name": "小婷", "gender&qu…

[网络]https的概念及加密过程

文章目录 一. HTTPS二. https加密过程 一. HTTPS https本质上就是http的基础上增加了一个加密层, 抛开加密之后, 剩下的就是个http是一样的 s > SSL HTTPS HTTP SSL 这个过程, 涉及到密码学的几个核心概念 明文 要传输的真正意思是啥 2)密文 加密之后得到的数据 这个密文…

使用knn算法对iris数据集进行分类

程序功能 使用 scikit-learn 库中的鸢尾花数据集&#xff08;Iris dataset&#xff09;&#xff0c;并基于 KNN&#xff08;K-Nearest Neighbors&#xff0c;K近邻&#xff09;算法进行分类&#xff0c;最后评估模型的准确率。 代码 from sklearn import datasets# 加载鸢尾…

SpringBoot+vue集成sm国密加密解密

文章目录 前言认识SM2后端工具类实现引入依赖代码实现工具类&#xff1a;SM2Util 单元测试案例1&#xff1a;生成服务端公钥、私钥&#xff0c;前端js公钥、私钥案例2&#xff1a;客户端加密&#xff0c;服务端完成解密案例3&#xff1a;服务端进行加密&#xff08;可用于后面前…

Modelsim SE-64 2020.4关闭优化

一、问题起源 本人由于之前一直使用AMD的板子&#xff0c;使用vivado自带仿真器进行功能仿真&#xff0c;由于自带的页面简洁和仿真时间自己还都可以接受就没有什么modelsim联合仿真&#xff0c;又因准备FPGA大赛的国产FPGA易灵思的题目&#xff0c;使用Efinity&#xff0b;Mod…

AI助力遥感影像智能分析计算,基于高精度YOLOv5全系列参数【n/s/m/l/x】模型开发构建卫星遥感拍摄场景下地面建筑物智能化分割检测识别系统

随着科技的飞速发展&#xff0c;卫星遥感技术已成为获取地球表面信息的重要手段之一。卫星遥感图像以其覆盖范围广、数据量大、信息丰富等特点&#xff0c;在环境监测、城市规划、灾害评估等多个领域发挥着不可替代的作用。然而&#xff0c;面对海量的卫星图像数据&#xff0c;…

磁盘写入缓存区太大,如何清理C盘缓存

针对“磁盘写入缓存区太大&#xff0c;如何清理C盘缓存”的问题&#xff0c;我们可以从多个角度进行专业解答。首先&#xff0c;需要明确的是&#xff0c;“磁盘写入缓存区太大”这一表述可能涉及硬盘缓存的设置或系统缓存管理&#xff0c;但通常用户面对的问题更多是关于C盘空…

Json和Http专栏

json 理论 什么是JSON? 规则 被大括号包括的是JSON对象,被中括号包括的是JSON数组. JSON数组JSON对象 实验 构建JSON 用代码实现如下json内容: //构建JSON void WirteJson() {QJsonObject rootObject;//1.插入name字段rootObject.insert("name","china&quo…

KV260 进阶开发(PYNQ驱动开发+Pixel Pack)

目录 1. 简介 2. PixelPacker HLS 实现 2.1 PixelPacker HLS 源码 2.2 PixelPacker 功能简介 2.3 头文件介绍 2.4 启动间隔 II 2.5 Case V24 片段解释 3. PixelPacker Py 驱动 3.1 PixelPacker Py 源码 3.2 PixelPacker 类详解 3.3 property 装饰器 3.4 操作寄存器…

基于ssm的个性化影片推荐系统设计与实现

需要项目源码请联系我&#xff0c;目前有各类成品 毕设 javaweb ssh ssm springboot等等项目框架&#xff0c;源码丰富。 专业团队&#xff0c;咨询就送开题报告&#xff0c;活动限时免费&#xff0c;有需要的朋友可以来咨询。 一、摘要 随着科学技术的飞速发展&#xff0c;社…