在Jetson TX2 开发板上安装wukong-robot
因为TX2容量太小,以至于编译完后删了一些包,所以后面截图都是用的博主虚拟机里的截图,请多包涵。
1、克隆仓库,首先下载wukong-robot 源码
git clone https://github.com/wzpan/wukong-robot.git
2、安装 sox ,ffmpeg 和 PyAudio:
sudo apt-get install python-pyaudio python3-pyaudio sox pulseaudio libsox-fmt-all ffmpeg
pip3 install pyaudio
3、安装依赖库
cd wukong-robot
pip3 install -r requirements.txt
4. 编译 _snowboydetect.so(重点)
需要先装SWIG
wget http://hahack-1253537070.file.myqcloud.com/misc/swig-3.0.10.tar.gz
tar xvf swig-3.0.10.tar.gz
cd swig-3.0.10
sudo apt-get -y update
sudo apt-get install -y libpcre3 libpcre3-dev
./configure --prefix=/usr --without-clisp --without-maximum-compile-warnings
make
make install
install -v -m755 -d /usr/share/doc/swig-3.0.10
sudo cp -v -R Doc/* /usr/share/doc/swig-3.0.10
sudo apt-get install -y libatlas-base-dev
如果提示找不到 python3-config 命令,你还需要安装 python3-dev:
sudo apt-get install python3-dev # 注意 Ubuntu 18.04 可能叫 python3-all-dev
平常我们的工作将snowboy编译,sudo make就可以了,但是在TX2上会报错 …/…//lib/ubuntu64/libsnowboy-detect.a:无法添加符号: 文件格式错误
erre adding symbols: File in wrong format - Ubuntu(arm64)
原因是因为架构不一样,在这里预编译的文件为x86-64下的,需进行修改
wget http://hahack-1253537070.file.myqcloud.com/misc/snowboy.tar.bz2 # 使用潘伟洲fork出来的版本以确保接口兼容
tar -xvjf snowboy.tar.bz2
我们解压snowboy 看到lib目录下有对应预编译的libsnowboy-detect.a
pwd 查看一下所在路径
cd snowboy/swig/Python3
在这里我们可以看到链接的为Ubuntu64里的libsnowboy-detect,a文件,需要修改为之前目录
lib/aarch64-ubuntu1604/libsnowboy-detect.a
这样以后应该能够make成功了,我们将编译生成的_snowboy-detect.a,拷贝到对应目录
sudo make
cp _snowboydetect.so <wukon-robot的根目录/snowboy/>
我这里是 cp _snowboydetect.so ~/wukong/wukong/snowboy
这里博主将自己编译好的_snowboydetect.so分享给大家
https://github.com/1046652786/TX2-snowboy
但是我使用过程中还遇到了一些问题 没有得到好的解决
初次使用会在~/.wukong/目录小生成config.yml文件
这个报错并不影响识别,具体为什么原因我也不清楚,尚未得到良好的解决方案,如果最开始没有成功唤醒 可以修改一下 ~/.wukong/config.yml
默认为0.4 这里调至0.55效果已经很好了
参考资料
[1] https://wukong.hahack.com/#/
[2] https://github.com/Kitt-AI/snowboy/issues/244