ubuntu下部署snowboy

本文详细介绍了如何在Python 3.7环境下部署Snowboy,包括安装依赖库如Python 3.7、swig、pyaudio和libffi,以及解决常见问题。通过教程,读者能掌握自定义唤醒词和测试使用的方法。
摘要由CSDN通过智能技术生成

部署过程

Snowboy介绍:SnowboyKITT.AI开发的人工智能软件工具包。通过Snowboy软件,开发人员可以在一些硬件设备上添加语音热词探测功能,虽然现在该团队已经对snowboy停止维护了,但其效果已经足够。

1.配置环境

1.1安装python3.7

安装原因: snowboy要求python版本在3.7以上。

下载源码:进入Python Source Releases | Python.org,下载python3.7。

进入终端用apt工具安装一些以后会用到的依赖库:

apt-get install libffi-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libatlas-base-dev pulseaudio sox    

其中snowboy需要libatlas-base-dev的库才能工作;

sox用于测试麦克风,安装完成后,运行 sox -d -d 命令,对着麦克风说话,确认麦克风有用。

解压后进入文件夹,检查Modules的Setup.dist,将下面三行取消注销(前提是已经安装openssl在/usr/local/ssl中,上面的apt已经安装了openssl),如果没有修改python3.7的pip工具将不能正常使用:

 

编译并安装:

./configure --prefix=/你想安装的路径

make

make install

安装完成后,安装目录下会有bin、include、lib等文件夹,但有时可能会出现版本交替使用导致的错误,所以将/usr/bin/和/usr/local/bin下的可执行python(原来版本的python文件)备份,把新的python指向该python,如果这一步没做好,后续用pip安装会容易出现问题。

mv /usr/bin/python /usr/bin/python_old

mv /usr/local/bin/python /usr/local/bin/python_old

ln -s /…/python/bin/python3  /usr/bin/python

ln -s /…/python/bin/python3 /usr/local/bin/python

sudo apt-get install python3-dev #安装python扩展开发包

1.2安装swig和其库依赖

安装swig依赖:

sudo apt-get install libpcre3 libpcre3-dev   #安装pcre(swig依赖)

swig源码安装:

下载源码(snowboy要求版本大于3.0.10),直接apt-get的版本可能会小于3.0.10:

Download SWIG

tar -xzvf swig.tar.gz   #解压下载的源码

解压后进入文件夹,然后执行:

./configure   #配置,如果想选择路径加--prefix=/….

Make   #编译

Make install      #安装

1.3安装pyaudio,手动安装源码

pyaudio需要portaudio,先下载portaudio,源码地址:PortAudio - an Open-Source Cross-Platform Audio API

tar -zxvf pa_xxxx.tar.gz    #解压下载的源码包

cd poraudio     #进入文件夹

./configure     #配置

make    #编译

make install    #安装

下载pyaudio的源码:https://www.lfd.uci.edu/~gohlke/pythonlibs/

tar -zxvf Pyaudioxx.tar.gz     #解压源码包

cd Pyaudioxx

python setup.py install   #安装pyaudio,注意:要确定这里的python指向是上面安装的python3.7,可以先输入python看看python版本是否为python3.7。

1.4安装libffi-dev

下载libffi-dev的源码来编译,下载libffi-3.3版本的:ftp://sourceware.org/pub/libffi/

解压安装:

tar -zxvf libffi-3.3.tar.gz    #解压

cd libffi

./configure  #默认配置

make & make install   #安装

2. 安装snowboy

下载snowboy源码并安装:

获取源代码:https://github.com/seasalt-ai/snowboy

进入snowboy目录下的swig/Python3编译出snowboydetect动态库:

cd snowboy/swig/Python3

make

ps如果make失败,报错缺少pyaudio模型或_ctypes模型,就是上面的pyaudio和libffi的安装出错了,或者没有安装在python3.7上(指pyaudio),或者没有安装在默认的库路径里(libffi库),仔细检查之前的安装步骤就可以解决了。

3.测试和使用

3.1测试使用snowboy

官方源代码使用 Python3 测试有报错,需修改 snowboy/examples/Python3 目录下的 snowboydecoder.py 文件,将第5行代码的from * import snowboydetect改为import snowboydetect。

进入官方示例目录 snowboy/examples/Python3 并运行:

python3 demo.py resources/models/snowboy.umdl

snowboy.umdl 文件即语音识别模型

然后对着麦克风清晰地讲出“snowboy”,如果可以听到“滴”的声音,则安装配置成功。

3.2自定义唤醒词

登录网站https://snowboy.hahack.com/,录制三段语音,得到.umpl文件,把该文件传输进ubuntu,然后把python3 demo.py resources/models/snowboy.umdl中的snowboy.umdl换成得到的.umpl文件路径即可替换识别词。

总结

1.问题与解决

问题1:在编译snowboydetec动态库时,报错缺少pyaudio模型,但是我有用pip install pyaudio,pip安装的pyaudio并没有安装在python3.7中;

解决:后面才发现当时的pip不是管理python3.7的,而是电脑以前的python版本,但因为后面我重新用源码安装pyaudio,问题就解决了。

问题2:在运行python demo.py snowboy.umdl时,有时会报错IOError: [Errno -9996] Invalid output device (no default output device);

解决:还未解决,我又重新布置环境后就没有这个问题了。

问题3:运行python demo.py snowboy.umdl时,出现Cannot connect to server socket err = No such file or directory……;

解决:apt-get install -y jackd2并重启,该问题不影响snowboy正常使用。

2.snowboy部署总结

1、了解到了snowboy的简单使用与一些环境配置的基本操作。

2、在上网搜寻类似snowboy的安装步骤时,最好先去查看官网的安装说明,一些个人博客可能会因为与自身环境配置不一样而导致配置环境失败而安装失败;

3、要小心下载高版本的库或软件,许多高版本往往使用的次数更少,bug更多,也会经常出现兼容问题。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值