Snowboy 是 KITT.AI 开发的一个高度可定制的热词检测引擎,当笔者的 jetson nano 加上话筒后,就立马尝试安装,但在安装过程中却发生了错误,所以把处理方式记录了下来以作备忘。

首先,按 Snowboy 官方文档 编译安装 swig-3.0.10 和克隆 snowboy 代码过程都很顺利

sudo apt-get install sox libpcre3 libpcre3-dev libatlas-base-dev
pip install pyaudio # 下载 swig-3.0.10,https://sourceforge.net/projects/swig/files/swig/swig-3.0.10/ tar -xvzf swig-3.0..tar.gz
cd swig-3.0./
./configure --prefix=/usr --without-clisp --without-maximum-compile-warnings
make
sudo make install
sudo install -v -m755 -d /usr/share/doc/swig-3.0.
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 exit status
Makefile:: recipe for target '_snowboydetect.so' failed
make: *** [_snowboydetect.so] Error

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= -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)

jetbot@jetbot-desktop:~/temp/github/snowboy/examples/Python3$ python3 demo.py tortoise.pmdl
Traceback (most recent call last):
File "demo.py", line , in <module>
import snowboydecoder
File "/home/jetbot/temp/github/snowboy/examples/Python3/snowboydecoder.py", line , 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,已经能成功检测热词了

jetbot@jetbot-desktop:~/temp/github/snowboy/examples/Python3$ python3 demo.py rtoise.pmdl
Listening... Press Ctrl+C to exit
INFO:snowboy:Keyword detected at time: -- ::

参考文章:

Jetson Nano Developer Kit Snowboy

jetson nano 安装 snowboy 遇到的问题及处理的更多相关文章

  1. jetson nano开发使用的基础详细分享

    前言: 最近拿到一块jetson nano 2GB版本的板子,折腾了一下,从烧录镜像.修改配件等,准备一篇开箱基础文章给大家介绍一下这块AI开发板. 作者:良知犹存 转载授权以及围观:欢迎关注微信公众 ...

  2. Jetson Nano系列教程3:GPIO

    摘要: JetsonTX1,TX2,AGXXavier和Nano开发板包含一个40引脚的GPIO头,类似于Raspberry PI中的40引脚头.这些GPO可以通过JetsonGPIOLibrary包 ...

  3. Jetson Nano 系列教程2:串口调试接口登录Jetson Nano

    连接Jetson Nano可以有多种方法,这里我们一一介绍一下.开始本章节前,请先参考上一章,烧写好镜像 直接连接 所谓直接连接,就是将Jetson Nano当做主机,连接HDMI屏幕,连接键盘和鼠标 ...

  4. Darknet YOLOv3 on Jetson Nano

    推荐比较好的博客:https://ai4sig.org/2019/06/jetson-nano-darknet-yolov3/ 用的AlexeyAB的版本,并且给出了yolov3和tiny的效果对比. ...

  5. [Jetson Nano]Jetson Nano快速入门

    NVIDIAJetsonNano开发套件是适用于制造商,学习者和开发人员的小型AI计算机.相比Jetson其他系列的开发板,官方报价只要99美金,可谓是相当有性价比.本文如何是一个快速入门的教程,主要 ...

  6. 1、Jetson Nano 远程桌面XP问题

    jeston nano上网 方法3(最简单的方法) 最简单的方法真的特简单,用USB数据线连接主板的USB接口以及手机,打开手机的USB共享即可,若要使用静态IP,可在主板上修改配置文件,接口一般为u ...

  7. Jetson TX2安装tensorflow(原创)

    Jetson TX2安装tensorflow 大致分为两步: 一.划分虚拟内存 原因:Jetson TX2自带8G内存这个内存空间在安装tensorflow编译过程中会出现内存溢出引发的安装进程奔溃 ...

  8. Jetson Nano Developer Kit

    The Jetson Nano Developer Kit is an AI computer for learning and for making. ​ 一个推理框架,用于部署模型到嵌入式设备. ...

  9. Jetson Nano系列教程1:烧写系统镜像

    下载镜像 NVIDIA官方为Jetson Nano Developer Kit (后面统称为Jetson Nano了)提供了SD卡版本的系统镜像,并且根据JetPack版本不断得在更新.所以你可以直接 ...

随机推荐

  1. HTML+CSS—背景图片、图片定位

    设置背景图片格式: background-image: url(img/ic.jpg); 注意点: 如果父容器面积大于背景图片,默认显示该图片整面平铺 设置是否需要平铺属性: background-r ...

  2. PHPExcel 导出图片

    $objDrawing = new PHPExcel_Worksheet_Drawing(); // 本地图片文件路径 $objDrawing->setPath('/www/images/img ...

  3. python练习:斐波那契数列的递归实现

    python练习:斐波那契数列的递归实现 重难点:递归的是实现 def fib(n): if n==0 or n==1: return 1 else: return fib(n-1)+fib(n-2) ...

  4. 第八届极客大挑战 Web-故道白云&Clound的错误

    web-故道白云 题目: 解题思路: 0x01 首先看到题目说html里有秘密,就看了下源代码如图, 重点在红圈那里,表示输入的变量是id,当然上一行的method=“get”同时说明是get方式获取 ...

  5. ndarray数据类型及转换

    ndarray数据类型 Ndarray的基本数据类型如下图所示,数据类型的命名采用“类型名+数字”的形式表示,数字表示数据的比特位长.在计算机中比特位bit是表示数据最小的单位,1个字节Byte的长度 ...

  6. kubernetes的Ingress资源介绍

    Ingress 的资源帮助信息介绍 [root@master ~]# kubectl explain ingress KIND: Ingress VERSION: extensions/v1beta1 ...

  7. ESLint规则整理与实际应用

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/lhb_11/article/detail ...

  8. SpringBoot学习笔记(二)——Springboot项目目录介绍

    官网生成SpringBoot项目 使用官网(https://start.spring.io/)生成一个Maven构建的的SpringBoot项目,下载下来的文件是这个样子的. 导入到IDEA中 为了查 ...

  9. 使用Gogs搭建自己的Git服务--windows

    Gogs介绍 官方网站:传送门... 使用Gogs可以搭建一个自己的私有Git服务. 有时候我们有一些有些不想公开的私人小项目或者练习项目,源码想放在GitHub.码云(一直觉得这名字有点蹭知名度)这 ...

  10. 如何解决Serv-U管理密码忘记

    如何解决Serv-U管理密码忘记 2016-06-17 15:46:48 2581次 解决方法: 点击“FTP服务器”,停止FTP服务器.进入Serv-U安装目录,默认C:Program FilesS ...