首页 > 其他分享 >编译snowboy 笔记

编译snowboy 笔记

时间:2023-01-22 21:44:50浏览次数:41  
标签:detect lib -- libsnowboy 笔记 编译 snowboy TOPDIR

1.安装依赖

sudo apt-get install pulseaudio sox python3-pyaudio swig libatlas-base-dev python3-dev

2.获取源代码

git clone https://github.com/Kitt-AI/snowboy.git

3.编译

PS:官方源代码使用 Python3 测试有报错,经测试需修改

目录下的 snowboydecoder.py 文件。
将第 5 行代码 from * import snowboydetect 改为 import snowboydetect 即可直接运行。


备注:网上很多教程是make之后再修改,这种情况是不成功的,因为make后会生成配置文件,你这时候改了不起效果,因此先修改,在执行下一步的make。

编译 Python3 绑定:

cd snowboy/swig/Python3 && make

4.测试
进入官方示例目录 snowboy/examples/Python3 并运行以下命令:

$ python3 demo.py resources/models/snowboy.umdl

5. 常见错误

  5.1  …/…/lib/ubuntu64/libsnowboy-detect.a:error adding symbols: File in wrong format

  此错误是Makefile中没有使用正确版本的libsnowboy-detect.a

  在snowboy/lib下一共有

  aarch64-ubuntu1604/    --对应arm64 ubuntu1604,经验证ubuntu1804也可以使用
  android/                         --对应android系统
  ios/                                 --对应ios系统
  node/
  osx/                                 --对应macos
  rpi/                                   --对应树莓派32位arm
  ubuntu64/                        --对应PC Ubuntu64

  其它系统,查询电脑类型就可以知道用上面哪个了

uname -m

  因此按下面修改该目录下的Makefile就可以解决这个问题了

查看代码
 SNOWBOYDETECTLIBFILE = $(TOPDIR)/lib/ubuntu64/libsnowboy-detect.a
ifneq (,$(findstring arm,$(shell uname -m)))
  SNOWBOYDETECTLIBFILE = $(TOPDIR)/lib/rpi/libsnowboy-detect.a
  ifeq ($(findstring fc,$(shell uname -r)), fc) 
    #fedora25-armv7这个没看到
    SNOWBOYDETECTLIBFILE = $(TOPDIR)/lib/fedora25-armv7/libsnowboy-detect.a
    LDLIBS := -L/usr/lib/atlas -lm -ldl -lsatlas
  endif
endif
 
#以下修改内容请根据系统选择,这里环境为ubuntu1804
ifneq (,$(findstring aarch64,$(shell uname -m)))
  SNOWBOYDETECTLIBFILE = $(TOPDIR)/lib/aarch64-ubuntu1604/libsnowboy-detect.a
endif
 
或者前面全部注释,用下面这句
SNOWBOYDETECTLIBFILE = $(TOPDIR)/lib/aarch64-ubuntu1604/libsnowboy-detect.a

标签:detect,lib,--,libsnowboy,笔记,编译,snowboy,TOPDIR
From: https://www.cnblogs.com/xianzhewujie/p/17064693.html

相关文章

  • 《RPC实战与核心原理》学习笔记Day5
    06|RPC实战:剖析gRPC源码,动手实现一个完整的RPC我们通过动态代理技术,屏蔽RPC调用的细节,从而让使用者能够面向接口编程。什么是gRPC?gRPC是由Google开发并且开源的一款......
  • s3c2440 gcc交叉编译工具链制作
    前言:因为准备学习lwip,之前在stm32上移植跟着教程走得差不多了,但是用的keil。所以想在一个新平台移植一下巩固巩固,正好有2440的板子,也学一下gcc-make这样的开发流程,配套的......
  • AC 自动机学习笔记
    前置知识:KMP,trie。一.自动机这里的自动机都指有限状态自动机(DFA)。一个DFA可以理解为一张有向图,由有限的状态(点),字母表,转移函数(边),开始状态与终止状态(起点,终点)组成。AC......
  • 学习笔记——SpringMVC拦截器的两种装配方式;SpringMVC拦截器工作原理;SpringMVC中的异
    2023-01-22 一、SpringMVC拦截器的两种装配方式1、全局装配(放置在springmvc.xml中)<!--装配拦截器--><!--全局装配--><mvc:interceptors><ref......
  • 数据结构笔记(一)
    程序=数据结构+算法数据结构(C语言版)(第2版)https://weread.qq.com/web/reader/b57320b071db572cb578fb5数据结构与算法基础(青岛大学-王卓)https://www.bilibili.com/video......
  • Elasticsearch 核心技术与实战 学习笔记
    分片的设定对于生产环境中分片的设定,需要提前做好容量规划分片数设置过小导致后续无法增加节点实现水品扩展单个分片的数据量太大,导致数据重新分配耗时分片数设......
  • 数论笔记
    ·质数素数定理:设\(x\geq1\),以\(\pi(x)\)表示不超过\(x\)的素数的个数。当\(x\rightarrow\infty\)时,\(\pi(x)\to\dfrac{x}{\ln(x)}\)质数筛法1.埃式......
  • 读函数式编程思维笔记03_权责让渡
    1. 观点1.1. 抽象隐藏了繁杂的细节,只是有时候会连同重要的考虑因素一起隐藏掉1.2. 理解掌握的抽象层次永远要比日常使用的抽象层次更深一层1.3. 交出控制权的观点:......
  • JavaScript学习笔记—数组
    1.描述数组也是一种复合数据类型,在数组中可以存储多个不同类型的数据数组中存储的是有序的数据,数组中的每个数据都有一个唯一的索引,可以通过索引来操作获取数据数组中......
  • ABB 800XA学习笔记35:AC 800M硬件结构16
    这一片学习笔记我在新浪博客发表过,地址是ABB800XA学习笔记35:A800M硬件16_来自金沙江的小鱼_新浪博客(sina.com.cn)在这里我再记录一遍,以免丢失继续学习,AC800M硬件快学习......