Picovoice离线语音识别在Linux系统的部署
前言:Picovoice平台在国内的应用案例很少,国内也没有官网,国外主站https://picovoice.ai/。本文基于Ubuntu系统部署Picovoice平台,我也尝试过在树莓派上部署,相当成功和简便,就是线上平台的操作需要花点时间去理解操作。相信大家阅读过本文后会更加容易理解。附上官方教程站点:https://picovoice.ai/docs/
一、简介
Picovoice 离线语音识别主要由两个语音识别引擎组成。
豪猪引擎Porcupine Wake Word Engine(部署唤醒词)
犀牛引擎Rhino Speech-to-Intent Engine(部署语音指令,提取关键信息)
这个两个引擎的组合就可以实现唤醒和辨别指令的功能,比如说:
“Hey, siri. open the light.”
"Hey, siri. "是属于豪猪引擎部分,"open the light."属于犀牛引擎部分。
"light"相当于一个变量,我们可以在犀牛引擎中定义多个不同的变量,一样通过"open the $value."的方式来执行不同的指令,进而控制不同的对象。
Picovoice 可以部署在多平台上,本文章直接介绍Linux系统上的部署过程。
其他平台的部署方式,详情请参考官方的指导:https://picovoice.ai/docs/
二、部署Picovoice
picovoice基于python3,想要部署picovoice,首先要部署好pip3(pip3是安装python3库的命令)
sudo apt-get install python3-pip
然后更新升级pip3
python3 -m pip install --upgrade pip
然后安装一些依赖文件
sudo apt-get install build-essential python-dev python3-setuptools portaudio19-dev libffi-dev
利用pip3安装所要依赖的python3库Cython
pip3 install Cython
升级Cython库
pip3 install --upgrade Cython
安装picovoicedemo
sudo pip3 install picovoicedemo
三、训练唤醒词和指令
在Picovoice Console平台里(https://console.picovoice.ai/)
进入豪猪引擎训练自定义唤醒词,最后获得.ppn文件。
点击生成时,会提示你选择所应用的平台,如果你在虚拟机Linux系统上面那就选Linux(x86_64)平台,如果是树莓派/TinkerBoard上面,就用Raspberry Pi平台
唤醒词的训练生成时间较长(大概20分钟),耐心等待,完成后会发邮件通知。
一些特殊平台的自定义唤醒词服务要收费,如果你嫌训练耗费的时间长,或者不想花钱,你可以去Github下载一些现成的训练文件我们可以从Github下载一些现成的训练文件:https://github.com/Picovoice
进入犀牛引擎训练自定义语音指令,最后得到.rhn文件
创建好项目后,点击项目进入到犀牛引擎内容设置界面:
举个例子,我做个语音助手,可以帮我开灯、开风扇。我就这样子设置:
在light槽里面定义两个灯的状态关键词:on,off
也在fan槽里面定义两个风扇的状态关键词:on,off
设置好后地点击训练生成,可以看到犀牛引擎对于全平台都是免费的。
把.ppn文件和.rhn文件搬到Linux文件系统内,然后以绝对路径的形式(推荐),作为picovoice_demo_mic命令的传入参数,然后终端就会进入到监听状态。
安装picovoicedemo后,在终端就可以执行picovoice_demo_mic命令,
picovoice_demo_mic --keyword_path /xxx/xxx/.ppn --context_path /xxx/xxx/.rhn
四、测试Picovoice
我用我训练的一个唤醒词“darren”,和在上文中训练的对话项目“test”进行测试。
五、语音识别调用终端命令
有同学会问,识别是识别出来了,但是如何实现响应操作呢?
很简单!picovoice是基于python实现的,只需要找到picovoice_demo_mic命令的实现源码文件,件并加以修改即可。
首先要找到picovoice_demo_mic命令的实现源码文件,你可以尝试全局搜索
sudo find / -name “picovoice_demo_mic*”
就发现/usr/local/lib/python3.8/dist-packages/picovoicedemo/picovoice_demo_mic.py,我们查看一下
举个例子,例如:
至此,你就可以利用Picovoice调用终端实现更多的功能。
Picovoice离线语音识别在Linux系统的部署相关推荐
- 如何在Linux系统上部署接口测试环境
作为一名软件测试人员,部署测试环境是我们日常工作的一部分,今天就简单整理下接口测试环境部署的步骤,希望能够帮助到大家. 今天为大家整理的接口测试环境部署涉及到Tomcat,JDK和数据库.目前能够提供 ...
- linux的dns怎么配置正向区域文件,linux系统下部署DNS正向解析
DNS服务概述: DNS(Domain Name System)域名系统,能够提供域名与IP地址的解析服务. 正向解析 正向解析是指域名到IP 地址的解析过程. 部署DNS正向解析 DNS服务的三个配 ...
- Linux系统之部署Rsyslog 日志服务器
Linux系统之部署Rsyslog 日志服务器 一.检查服务器系统版本 二.在master节点上配置 1.修改/etc/rsyslog.conf 2.开启日志服务 3.查看日志服务状态 4.关闭防火墙 ...
- Linux系统之部署iWebShop电子商城网站
Linux系统之部署iWebShop电子商城网站 一.iWebShop介绍 二.检查本地环境 1.检查系统版本 2.检查系统内核版本 三.部署apache环境 1.检查本地yum仓库 2.安装apac ...
- Linux系统之部署Samba服务
Linux系统之部署Samba服务 一.Samba服务介绍 1.Samba服务简介 2.NFS和CIFS简介 3.Smaba服务相关包 4.samba监听端口 4.samba相关工具及命令 二.环境规 ...
- Linux系统之部署Gitblit服务器
Linux系统之部署Gitblit服务器 一.Gitblit介绍 1.Gitblit简介 2.Gitblit官网 二.检查本地系统环境 1.检查系统版本 2.检查系统内核版本 3.检查JDK版本 三. ...
- Linux系统之部署ZFile在线网盘服务
Linux系统之部署ZFile在线网盘服务 一.ZFile介绍 1.ZFile简介 2.ZFile特点 二.本地环境介绍 1.本次实践说明 2.本地环境规划 三.安装环境依赖 1.安装java 2.检 ...
- suse linux系统误删除文件恢复,Linux系统下部署文件恢复神器extundelete恢复误删的文件...
Linux系统下部署文件恢复神器extundelete恢复误删的文件 最近看到群里提到如何恢复LINUX下ext4误删的文件,之前听说过ext3分区恢复工具ext3grep,恢复ext4刚是用extu ...
- Linux系统之部署Linux管理面板1Panel
Linux系统之部署Linux管理面板1Panel 一.1Panel介绍 1.1Panel简介 2.1Panel特点 二.本地环境规划 1.本此实践目的 2.本地环境规划 三.检查本地环境 1.检查操 ...
最新文章
- 万年历的设计c语言,万年历设计报告
- 刘夏真的简历中国科学院计算机所,专家人才库数据----中国科学院计算技术研究所...
- play 打包 模块_全新的Play模块资料库
- php checkbox批量提交,jquery获取多个checkbox的值异步提交给php
- 操作 mysql 不生成日志_利用Python操作MySQL数据库,以后不懂这些是要被鄙视的!...
- MyCat的安装及基本使用(MySQL分库分表)
- sql like 通配符_《SQL必知必会》学习笔记
- Unity3D之NGUI基础6:UIButton按钮
- android 引用 project以及下拉刷新开源类库Android-PullToRefresh 的使用
- jni c java_使用JNI在C中调用java代码
- 通用技术和信息技术合格考知识点_通用技术学考复习_重要知识点汇总
- EA使用小技巧-控制图面拷贝时的边框
- python写Bicubic方法,跑数据集Set5和Set14,保存PSNR和SSIM的值
- 非计软专业的学生也能看懂的面向对象编程(《面向对象编程是怎样工作的》平野章/著 读书笔记)
- 使用exceljs导出部门-职位联动下拉框的excel
- 如何用二分查找法查找有序数组
- 剑指 Offer 11. 旋转数组的最小数字
- linux操作系统原理_Linux后台开发C++学习路线技能加点,已拿鹅厂offer
- vscode html tab键补全插件_打造舒适的 VS Code 开发环境
- 查询学生各科前三名的学生成绩
热门文章
- [世界概览]那些被印度人毁掉或者差一点毁掉的公司(翻译)
- 网易云音乐params和encSecKey生成原理
- Tita绩效宝:绩效管理评语范例
- cuda矩阵相乘_CUDA计算矩阵相乘
- 我的世界手机版开服务器领地系统,我的世界手机版领地指令大全 领地指令怎么用...
- 最大化 LoRa 长距离,您应该知道的完整秘籍
- 对计算机网络看法500字,500字信息技术学习评价
- Discuz!X3.4全新安装详细图文教程
- [Activeden] slick full website template with cms and 2 skins 中文版
- 衡水中学的《凉凉》 警醒自己