Python开发之路(4)— 使用 snowboy 做语音唤醒功能
Python开发之路(4)— 使用 snowboy 做语音唤醒功能
本次开发在Ubuntu16.04虚拟机系统。
一、snowboy介绍
snowboy 是一个开源的、轻量级语音唤醒引擎,可以通过它很轻松地创建属于自己的类似“hey, Siri” 的唤醒词。它的主要特性如下:
高度可定制性。可自由创建和训练属于自己的唤醒词 始终倾听。
可离线使用,无需联网,保护隐私。精确度高,低延迟 轻量可嵌入。
耗费资源非常低(单核700MHz 树莓派只占用 10% CPU)
开源跨平台。开放源代码,支持多种操作系统和硬件平台,可绑定多种编程语言
参考自:https://www.jianshu.com/p/a1c06020f5fd
二、安装依赖
安装 pulseaudio 软件,减少音频配置的步骤:
sudo apt-get install pulseaudio
安装 sox 软件测试录音与播放功能,安装完成后运行 sox -d -d
命令,对着麦克风说话,确认可以听到自己的声音。
sudo apt-get install sox
安装 SWIG(>3.0.10)
sudo apt-get install swig
安装 ATLAS:
sudo apt-get install libatlas-base-dev
然后Pyaudio的安装在之前的博客讲过:Python开发之路(1)— 使用Pyaudio进行录音和播音
三、获取源码,进行编译
直接使用git拉取即可
git clone https://github.com/Kitt-AI/snowboy.git
如果GitHub拉取不超过,可以测试使用我导入到码云的源码:
git clone https://gitee.com/william_william/snowboy.git
拉取源码成功后,进入Python3目录
cd snowboy/swig/Python3
然后使用make
命令开始编译。
Swig版本过低问题解决
:
首先,我们下载Swig 3.0.12
的源码包:https://nchc.dl.sourceforge.net/project/swig/swig/swig-3.0.12/swig-3.0.12.tar.gz
下载完成后解压:
tar -xzvf swig-3.0.12.tar.gz
然后安装需要使用的依赖工具:
sudo apt-get install g++
sudo apt-get install libpcre3 libpcre3-dev
然后进入swig源码:
cd swig-3.0.12/
配置
./configure
编译
make
安装:
sudo make install
然后将swig导入到环境变量,打开bashrc
sudo vi ~/.bashrc
添加以下两行到bashrc中
SWIG_PATH=/usr/local/share/swig/3.0.12
PATH=$PATH:$SWIG_PATH
使之生效
source ~/.bashrc
使用swig -version确认版本型号
swig -version
四、测试功能
进入官方示例目录 snowboy/examples/Python3 并运行以下命令:
python3 demo.py resources/models/snowboy.umdl
然后就会发现报错
我们打开snowboydecoder.py
文件,将第 5 行代码 from * import snowboydetect
改为 import snowboydetect
即可直接运行。
可以看到,你喊出sonwboy
的时候,会打印出成功识别的信息,并且发出"ding"的提示音。
五、生成语音模型,自定义唤醒词唤醒词
录制3 个wav 格式的的音频文件,内容即为你的唤醒词,最好使用你要运行唤醒功能的机器录制,录音参数最好设置和程序中的一样,通过查阅程序,我得到的参数为:
采样深度为16位即2个字节、声道数为1、采样率为16K、
打开snowboy 官网
,然后登录,例如,我这里使用github账号登录,登录完成点击创建,
然后输入名称,语言和备注,点击【Record my voice】
然后将你录制的三个文件上传,点击【Test the model】
测试成功后选择下载:
得到你好的模型:
然后我们新建一个项目目录,将以下文件放入:
1、下载好的 model.pmdl 模型文件
2、snowboy/swig/Python3 目录下编译好的_snowboydetect.so
库
3、snowboy/examples/Python3 目录下的demo.py
、snowboydecoder.py
、snowboydetect.py
文件以及resources
目录
然后我们尝试运行命令:
python3 demo.py nihaoxiaobai.pmdl
可以看到,当喊出你好,小白
的时候,会打印出成功识别的信息,并且发出"ding"的提示音。
Python开发之路(4)— 使用 snowboy 做语音唤醒功能相关推荐
- 树莓派 --- 使用snowboy实现语音唤醒功能
目录 Snowboy,KITT.AI开发的人工智能软件工具包,是一个开源的.轻量级语音唤醒引擎,通过它可以创建类似"hey, Siri" 之类的唤醒词. github项目地址 可惜 ...
- Python开发之路(5)— 使用HTTP获取天气情况
Python开发之路(5)- 使用HTTP获取天气情况 一.心知天气 首先,我们需要使用到的一个平台就是心知天气:https://www.seniverse.com/ 进入心知天气的网站,注册一个账号 ...
- python之使用snowboy离线语音唤醒
python之使用snowboy离线语音唤醒 介绍 snowboy 是一个开源的.轻量级语音唤醒引擎,比较好用. 训练语音模型网址: https://snowboy.hahack.com/ 环境 开发 ...
- python 开发之路 - 入门
一. python 介绍 Python是著名的"龟叔"Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言.1991年 发布Python ...
- python语音唤醒功能_百度语音识别 语音唤醒失败
半夜起来给小朋友冲奶粉,于是忽然想到了那个在机柜里落灰的树莓派.当时用百度的语音识别和合成用python实现了一些功能.但是并没有实现语音唤醒,于是要想实现语音唤醒就只能不断的轮询接口,然后发送到百度 ...
- python开发大型游戏_Python也有做大型游戏的潜力?原来我们小看了Python,无所不能...
前言 在小编以前还没怎么接触很多编程语言时,都是认为游戏(端游,手游)都是用C做出来了!不知道大家有没有这么想过,反正我是这样的.后来慢慢接触多了,才知道并不是所有的都是这个样子的! Python也有 ...
- python开发之路目录
Python 目录 基础 python入门 python数据类型.字符编码.文件处理 python函数基础 python函数进阶 python装饰器函数 python装饰器函数 python递归函数 ...
- python开发之路-第二章
第二章python基础 一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 1 2 3 if1==1: name ='wupeiqi' print nam ...
- python电路模型编程_14、python开发之路-并发编程之I/O模型
十四.并发编程之I/O模型 http://www.cnblogs.com/linhaifeng/articles/7454717.html 1.模型介绍 1.1 IO种类 (1)* blocking ...
最新文章
- AWS太过强势?VMware为自保疑与微软达成合作
- formdata怎么传数组_如何使用formData上传file数组
- Python(28)-异常
- linux raw格式改名img,4款Linux下的RAW格式图片编辑软件
- Spread for Windows Forms高级主题(6)---数据绑定管理
- ad20导出bom没有Value属性
- win10下用VM 14安装OS X 10.11
- word2013论文公式居中并且自动编号
- Java识别获取pdf中文字信息
- 如何获取mac虚拟机激活码 一步学会
- 关系抽取论文阅读笔记
- PostgreSQL更改表格的owner
- JMeter之性能监控插件PerfMon Metrics Collector
- css+html 嵌套表格做简单网页
- wx2540h配置教程_求高手解决H3C无线网络 WX3024E和无线AP设备之间的详细配置命令!...
- 图像的几何变换—平移、旋转、镜像、缩放、剪切(原理+调用函数+像素操作)
- 【Nginx】配置中 resolver 指令的使用
- 中断处理优先级与中断相应次序
- 小程序分销商城开发功能
- JS——nth-child和nth-of-type的区别以及nth-of-type下的坑