Snowboy 是 KITT.AI 开发的一个高度可定制的热词检测引擎,当笔者的 jetson nano 加上话筒后,就立马尝试安装,但在安装过程中却发生了错误,所以把处理方式记录了下来以作备忘。
首先,按 Snowboy 官方文档 编译安装 swig-3.0.10 和克隆 snowboy 代码过程都很顺利
sudo apt-get install sox libpcre3 libpcre3-dev libatlas-base-dev && sudo pip install pyaudio # 下载 swig-3.0.10,https://sourceforge.net/projects/swig/files/swig/swig-3.0.10/ tar -xvzf swig-3.0.10.tar.gz cd swig-3.0.10/ ./configure --prefix=/usr --without-clisp --without-maximum-compile-warnings make sudo make install sudo install -v -m755 -d /usr/share/doc/swig-3.0.10 sudo cp -v -R Doc/* /usr/share/doc/swig-3.0.10 git clone https://github.com/Kitt-AI/snowboy
但在编译 snowboy 代码的 swig/Python3 时发生错误
cd swig/Python3 sudo make
出错信息
../..//lib/ubuntu64/libsnowboy-detect.a: error adding symbols: File in wrong format collect2: error: ld returned 1 exit status Makefile:73: recipe for target ‘_snowboydetect.so‘ failed make: *** [_snowboydetect.so] Error 1
google 后,发现原来 Makefile 那里少了对 ARM 的判断,需要加上下面图片红框的判断:
nano Makefile
判断的文本:
ifneq (,$(findstring aarch64,$(shell uname -m))) SNOWBOYDETECTLIBFILE = $(TOPDIR)/lib/aarch64-ubuntu1604/libsnowboy-detect.a endif
然后再编译
sudo make
可以看到编译成功了
g++ -I../../ -O3 -fPIC -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++0x -shared snowboy-detect-swig.o ../..//lib/aarch64-ubuntu1604/libsnowboy-detect.a -L/usr/lib/python3.6/config-3.6m-aarch64-linux-gnu -L/usr/lib -lpython3.6m -lpthread -ldl -lutil -lm -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions -lm -ldl -lf77blas -lcblas -llapack -latlas -o _snowboydetect.so
再将在 snowboy.kitt.ai 上生成的热词放在 examples/Python3 下尝试运行,又发生了一个错误(笔者的热词文件为 tortoise.pmdl)
[email protected]:~/temp/github/snowboy/examples/Python3$ python3 demo.py tortoise.pmdl Traceback (most recent call last): File "demo.py", line 1, in <module> import snowboydecoder File "/home/jetbot/temp/github/snowboy/examples/Python3/snowboydecoder.py", line 5, in <module> from . import snowboydetect ImportError: attempted relative import with no known parent package
这时需要修改 snowboydecoder.py
nano snowboydecoder.py
把
from . import snowboydetect
替换为
import snowboydetect
最后,再运行一下 demo.py,已经能成功检测热词了
[email protected]:~/temp/github/snowboy/examples/Python3$ python3 demo.py rtoise.pmdl Listening... Press Ctrl+C to exit INFO:snowboy:Keyword 1 detected at time: 2020-02-23 09:38:07
参考文章:
Jetson Nano Developer Kit Snowboy
原文地址:https://www.cnblogs.com/lly277365/p/12348583.html
时间: 2024-11-10 14:57:36