树莓派和Mac上搭建snowboy唤醒词引擎

概述

Snowboy是KITT.AI开发的人工智能软件工具包,是一个高度可定制的热门词检测引擎,能够在Raspberry Pi等类Unix平台上运行。能够让用户更为便捷的将语音控制功能添加到自己的硬件或者嵌入式设备上,在设置好唤醒词之后,用户说出相关的唤醒词(也被称为唤醒字或触发字)是一个关键字或短语,设置好唤醒词后将会不断监听并触发其他动作从而执行相关的操作。
这里只测试了在树莓派mac上好使,其中树莓派使用的是respbian系统,不过针对树莓派的ubuntu测试也好使,下面只配置了Python

仓库地址

snowboy

官方给出的介绍

Snowboy是一款可定制的唤醒词检测引擎,可为您创建像 "OK Google" 或 "Alexa" 这样的唤醒词。Snowboy基于神经网络,具有以下特性:

  • 高度可定制:您可以自由定义自己的唤醒词 -
    比如说“open sesame”,“garage door open”或 “hello dreamhouse”等等。

  • 总是在监听 但保护您的个人隐私:Snowboy不使用互联网,不会将您的声音传输到云端。

  • 轻量级和嵌入式的:它可以轻松在Raspberry Pi上运行,甚至在最弱的Pi(单核700MHz ARMv6)上,Snowboy占用的CPU也少于10%。

  • Apache授权!

目前Snowboy支持(查看lib文件夹):

  • 所有版本的Raspberry Pi(Raspbian基于Debian Jessie 8.0)
  • 64位Mac OS X
  • 64位Ubuntu 14.04
  • iOS
  • Android
  • ARM64(aarch64,Ubuntu 16.04)

Snowboy底层库由C++写成,通过swig被封装成能在多种操作系统和语言上使用的软件库。我们欢迎新语言的封装,请随时发送你们的Pull Request!

目前我们已经现实封装的有:

  • C/C++
  • Java / Android
  • Go(thanks to @brentnd and @deadprogram)
  • Node(thanks to @evancohen和@ nekuz0r)
  • Perl(thanks to @iboguslavsky)
  • Python2/Python3
  • iOS / Swift3(thanks to @grimlockrocks)
  • iOS / Object-C(thanks to @patrickjquinn)

编译安装

SWIG

SWIG是个帮助使用C或者C++编写的软件能与其它各种高级编程语言进行嵌入联接的开发工具。SWIG能应用于各种不同类型的语言包括常用脚本编译语言例如Perl, PHP, Python, Tcl, Ruby and PHP。下面针对不同的平台给出了swig的安装教程。

Mac OS X配置编译环境

brew 安装 swigsoxportaudio 和绑定了 pyaudio的Python:

brew install swig portaudio sox
pip3 install pyaudio

如果您没有安装Homebrew,请在这里here下载。如果没有pip,可以在这里here安装。

确保您可以用麦克风录制音频:

rec t.wav

Ubuntu||Raspberry Pi等配置编译环境

首先 apt-get 安装 swigsoxportaudio和绑定了 pyaudio 的 Python:

sudo apt-get install swig3.0 python-pyaudio python3-pyaudio sox
pip3 install pyaudio

安装swig

wget http://downloads.sourceforge.net/swig/swig-3.0.10.tar.gz
sudo apt-get install 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 &&
cp -v -R Doc/* /usr/share/doc/swig-3.0.10

然后安装 atlas 矩阵计算库:

sudo apt-get install libatlas-base-dev

确保您可以用麦克风录制音频:

rec t.wav

编译

这里只编译了Python,其他编程语言类似,进入到对应的文件夹即可。

cd swig/Python
make

SWIG将生成一个_snowboydetect.so文件和一个简单(但难以阅读)的python 封装snowboydetect.py。另外提供了一个更容易读懂的python封装snowboydecoder.py。

测试运行

官方仓库里提供了四个简单的Python版本的demo,测试运行即可。

自定义唤醒词

去官官网录制即可:唤醒词录制

你可能感兴趣的:(树莓派和Mac上搭建snowboy唤醒词引擎)