树莓派python3.7语音助手开发笔记(2)

树莓派python3.7语音助手开发笔记(2)

距离第一篇笔记过去了很久了,我在这里基本算是开发有成,接下来继续讲下开发过程。

首先,在树莓派上安装ubuntu19.10是不可行的,因为是arm结构,安装上去之后环境差异巨大,所以我在树莓派上安装的还是官方的带界面的树莓派系统。

接下来说下开发语音识别助手,这里我采用的是snowboy的语音激活,百度等平台的API也可以制作语音激活,但我感觉还是不如snowboy来的方便。
snowboy官网:【传送门】

在下载完训练的模型(那个.pmdl文件)之后需要安装snowboy特有的环境,而在GitHub上有官方的安装包(传送门)下载snowboy-master这个压缩包备用。

在安装snowboy之前还需要有SWIG的环境,网上很多朋友(包括我自己)在安装前没有这个环境,都被狠狠的坑了一次,首先去下载最新的SWIG安装包(传送门

树莓派python3.7语音助手开发笔记(2)_第1张图片
这个时候我们就有了snowboy的必要安装的东西了,将它拷贝到你的虚机里(或者树莓派上)

建议直接用root账户登录,这样就不用总是sudo了(我这里sudo命令执行很慢)在根目录下建一个python文件夹或者建一个SWIG文件夹,将程序与环境分开。我是都放在了一个文件夹下。
树莓派python3.7语音助手开发笔记(2)_第2张图片
因为有个zip文件,所以安装下

#apt-get install unzip

然后解压一下这两个压缩包

#unzip snowboy-master.zip
#tar zxvf swig-4.0.1.tar.gz

然后进入swig的文件夹(cd swig-4.0.1/)
#apt-get install g++//安装g++
#apt-get install libpcre3 libpcre3-dev //安装pcre
这里大家一定不要敲完指令就去喝茶了,一定要密切关注一下有没有报什么错(我当时没有注意,后来怎么都装不上,抓狂了一下午)

然后配置SWIG(这里一定要注意首先要在配置的目录创建文件夹,不然也是配置不上去

#mkdir /usr/local/swig4.0.1
#./configure --prefix=/usr/local/swig4.0.1
#make
#make install

最后两条命令执行的时间较长,这个时候可以站起来活动活动(久坐对身体不好)
等执行完了之后,检查一下有没有错误

//配置path

#nano /etc/profile

(也可以用vim,怕有人不知道怎么使用,这里用nano,Ctrl + O保存,Ctrl + X退出)

//在最后添加一行:

PATH=/usr/local/swig4.0.1/bin:$PATH

别忘了改中间目录的名字!!!

配置完了别忘了重启!!!

都没有问题的话就直接到刚刚的snowboy-master的swig下的对应文件夹目录中去(python3就进Python3,python2就进Python)。

#cd /python/snowboy-master/swig/Python3
#make

也是要最后看下有没有报错

然后snowboy的环境就算安装好了,将snowboy-master里面examples文件夹里的对应版本拷贝出来

#cd /python
#mkdir Xiaobai
#cp -r /python/snowboy-master/examples/Python3/ Xiaobai/
#cd Xiaobai
#mv Python3 snowboy

拷贝出来之后我们给他改个名字就叫snowboy,然后进入snowboy的文件夹.

#cd Xiaobai
#cd snowboy

然后把snowboy文件夹里的rescources文件夹替换rescources文件夹,snowboydetect.py和_snowboydetect.so文件用snowboy文件夹swig/Python里的snowboydetect.py和_snowboydetect.so文件替换。

#rm -r resources
#cp -r /python/snowboy-master/resources/ /python/Xiaobai/snowboy
#rm _snowboydetect.so
#cp /python/snowboy-master/swig/Python3/_snowboydetect.so /python/Xiaobai/snowboy
#rm snowboydetect.py
#cp /python/snowboy-master/swig/Python3/snowboydetect.py /python/Xiaobai/snowboy

最后的是snowboydetect.py文件别删成snowboydecoder.py了
然后python3的话还要把snowboydecoder.py文件第五行改一下,把(from . )给删掉。

#nano snowboydecoder.py
树莓派python3.7语音助手开发笔记(2)_第3张图片
树莓派python3.7语音助手开发笔记(2)_第4张图片
然后保存退出,把你的训练模型pmdl文件拷贝到这个snowboy文件夹下,这样snowboy的激活部分就做好了,python3 demo.py Xiaobai.pmdl 指令可以试验一下。

再补充一下,如果是直接使用树莓派的话,而且使用的是USB接口的播放录音设备,在播放的时候会没有声音,这是因为它会默认使用card:0(板载)声卡去播放,只有耳机孔插上耳机后才会有声音,或者如果连接HDMI的话,也可能会从HDMI去播放。

这里有两个解决方法
第一种:暴力注释板载声卡(传送门)

#nano /boot/config.txt
在这里面找到

dtparam=audio=on

把它注释掉然后重启就可以了
但有时候这种方法并不奏效,还会报错

ALSA lib confmisc.c:767:(parse_card) cannot find card '0'

那就用我的第二种方法

第二种:修改ALSA配置文件(文件位置 /usr/share/alsa/alsa.conf )

#vim /usr/share/alsa/alsa.conf

在第62、63、106、109、113行有card标注,将后面的 0 改成你想要的声卡编号(aplay -l 可以查看)
(device如果有需要也改一下,我这里是不需要改的)
树莓派python3.7语音助手开发笔记(2)_第5张图片
树莓派python3.7语音助手开发笔记(2)_第6张图片

你可能感兴趣的:(python,linux,ubuntu,人工智能)