概述
Snowboy是KITT.AI开发的人工智能软件工具包,是一个高度可定制的热门词检测引擎,能够在Raspberry Pi等类Unix平台上运行。能够让用户更为便捷的将语音控制功能添加到自己的硬件或者嵌入式设备上,在设置好唤醒词之后,用户说出相关的唤醒词(也被称为唤醒字或触发字)是一个关键字或短语,设置好唤醒词后将会不断监听并触发其他动作从而执行相关的操作。
这里只测试了在树莓派
和mac
上好使,其中树莓派使用的是respbian
系统,不过针对树莓派的ubuntu
测试也好使,下面只配置了Python
。
仓库地址
官方给出的介绍
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
安装 swig
,sox
,portaudio
和绑定了 pyaudio
的Python:
brew install swig portaudio sox
pip3 install pyaudio
如果您没有安装Homebrew,请在这里here下载。如果没有pip,可以在这里here安装。
确保您可以用麦克风录制音频:
rec t.wav
Ubuntu||Raspberry Pi等配置编译环境
首先 apt-get
安装 swig
,sox
,portaudio
和绑定了 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
,测试运行即可。
自定义唤醒词
去官官网录制即可:唤醒词录制