百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
S

snowboy

> 编程语言
开源

未来的版本将通过此处的分支版本维护模型训练模块: https://GitHub.com/seasalt-ai/snowboy

3.4K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

未来的版本将通过此处的分支版本维护模型训练模块: https://GitHub.com/seasalt-ai/snowboy

Dear KITT.AI users,

We are writing this update to let you know that we plan to shut down all KITT.AI products (Snowboy, NLU and Chatflow) by Dec. 31st, 2020.

we launched our first product Snowboy in 2016, and then NLU and Chatflow later that year. Since then, we have served more than 85,000 developers, worldwide, accross all our products. It has been 4 extraordinary years in our life, and we appreciate the opportunity to be able to serve the community.

The field of artificial intelligence is moving rapidly. As much as we like our products, we still see that they are getting outdated and are becoming difficult to maintain. All official websites/APIs for our products will be taken down by Dec. 31st, 2020. Our github repositories will remain open, but only community support will be available from this point beyond.

Thank you all, and goodbye!

The KITT.AI Team
Mar. 18th, 2020

Snowboy Hotword Detection

by KITT.AI.

Home Page

Full Documentation and FAQ

Discussion Group (or send email to [email protected])

Commercial application FAQ

Version: 1.3.0 (2/19/2018)

Alexa support

Snowboy now brings hands-free experience to the Alexa AVS sample app on Raspberry Pi! See more info below regarding the performance and how you can use other hotword models. The following instructions currently support AVS sdk Version 1.12.1.

Performance

The performance of hotword detection usually depends on the actual environment, e.g., is it used with a quality microphone, is it used on the street, in a kitchen, or is there any background noise, etc. So we feel it is best for the users to evaluate it in their real environment. For the evaluation purpose, we have prepared an Android app which can be installed and run out of box: SnowboyAlexaDemo.apk (please uninstall any previous versions first if you have installed this app before).

Kittai KWD Engine

  • Set up Alexa AVS sample app following the official AVS instructions

  • Apply patch to replace the Sensory KWD engine with Kittai engine

# Copy the patch file to the root directory of Alexa AVS sample app. Please replace $ALEXA_AVS_SAMPLE_APP_PATH with the actual path where you
# cloned the Alexa AVS sample app repository, and replace $SNOWBOY_ROOT_PATH with the actual path where you clone the Snowboy repository
cd $ALEXA_AVS_SAMPLE_APP_PATH
cp $SNOWBOY_PATH/resource/alexa/alexa-avs-sample-app/avs-kittai.patch ./

# Apply the patch, this will modify the scripts setup.sh and pi.sh
patch < avs-kittai.patch
  • Re-compile the avs-device-sdk and sample app
sudo bash setup.sh config.json
  • Run the sample app
sudo bash startsample.sh

Here is a demo video for how to use Snowboy hotword engine in Alexa Voice Service.

Personal model

  • Create your personal hotword model through our website or hotword API

  • Put your personal model in snowboy/resources

# Please put YOUR_PERSONAL_MODEL.pmdl in $ALEXA_AVS_SAMPLE_APP_PATH/third-party/snowboy/resources,
# and $ALEXA_AVS_SAMPLE_APP_PATH with the actual path where you put the Alexa AVS sample app repository.

cp YOUR_PERSONAL_MODEL.pmdl $ALEXA_AVS_SAMPLE_APP_PATH/third-party/snowboy/resources/
  • Replace the model name 'alexa.umdl' with your personal model name, update KITT_AI_SENSITIVITY, set KITT_AI_APPLY_FRONT_END_PROCESSING to false in the Alexa AVS sample app code and re-compile
# Modify $ALEXA_AVS_SAMPLE_APP_PATH/avs-device-sdk/blob/master/KWD/KWDProvider/src/KeywordDetectorProvider.cpp:
#     Replace the model name 'alexa.umdl' with your personal model name 'YOUR_PERSONAL_MODEL.pmdl' at line 52
#     Update `KITT_AI_SENSITIVITY` at line 26
#     Set `KITT_AI_APPLY_FRONT_END_PROCESSING` to `false` at line 32
sudo bash setup.sh config.json
  • Run the wake word agent with engine set to kitt_ai!

Here is a demo video for how to use a personal model in Alexa Voice Service.

Universal model

  • Put your personal model in snowboy/resources
# Please put YOUR_UNIVERSAL_MODEL.umdl in $ALEXA_AVS_SAMPLE_APP_PATH/third-party/snowboy/resources,
# and $ALEXA_AVS_SAMPLE_APP_PATH with the actual path where you put the Alexa AVS sample app repository.

cp YOUR_UNIVERSAL_MODEL.umdl $ALEXA_AVS_SAMPLE_APP_PATH/third-party/snowboy/resources/
  • Replace the model name 'alexa.umdl' with your universal model name, update KITT_AI_SENSITIVITY in the Alexa AVS sample app code and re-compile
# Modify $ALEXA_AVS_SAMPLE_APP_PATH/avs-device-sdk/blob/master/KWD/KWDProvider/src/KeywordDetectorProvider.cpp:
#     Replace the model name 'alexa.umdl' with your universal model name 'YOUR_UNIVERSAL_MODEL.umdl' at line 52
#     Update `KITT_AI_SENSITIVITY` at line 26
sudo bash setup.sh config.json
  • Run the wake word agent with engine set to kitt_ai!

Hotword as a Service

Snowboy now offers Hotword as a Service through the https://snowboy.kitt.ai/api/v1/train/ endpoint. Check out the Full Documentation and example Python/Bash script (other language contributions are very welcome).

As a quick start, POST to https://snowboy.kitt.ai/api/v1/train:

{
    "name": "a word",
    "language": "en",
    "age_group": "10_19",
    "gender": "F",
    "microphone": "mic type",
    "token": "<your auth token>",
    "voice_samples": [
        {wave: "<base64 encoded wave data>"},
        {wave: "<base64 encoded wave data>"},
        {wave: "<base64 encoded wave data>"}
    ]
}

then you'll get a trained personal model in return!

Introduction

Snowboy is a customizable hotword detection engine for you to create your own hotword like "OK Google" or "Alexa". It is powered by deep neural networks and has the following properties:

  • highly customizable: you can freely define your own magic phrase here – let it be “open sesame”, “garage door open”, or “hello dreamhouse”, you name it.

  • always listening but protects your privacy: Snowboy does not use Internet and does not stream your voice to the cloud.

  • light-weight and embedded: it even runs on a Raspberry Pi and consumes less than 10% CPU on the weakest Pi (single-core 700MHz ARMv6).

  • Apache licensed!

Currently Snowboy supports (look into the lib folder):

  • all versions of Raspberry Pi (with Raspbian based on Debian Jessie 8.0)
  • 64bit Mac OS X
  • 64bit Ubuntu 14.04
  • iOS
  • Android
  • ARM64 (aarch64, Ubuntu 16.04)

It ships in the form of a C++ library with language-dependent wrappers generated by SWIG. We welcome wrappers for new languages -- feel free to send a pull request!

Currently we have built wrappers for:

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

If you want support on other hardware/OS, please send your request to [email protected]

Note: Snowboy does not support Windows yet. Please build Snowboy on *nix platforms.

Pricing for Snowboy models

Hackers: free

  • Personal use
  • Community support

Business: please contact us at [email protected]

  • Personal use
  • Commercial license
  • Technical support

Pretrained universal models

We provide pretrained universal models for testing purpose. When you test those models, bear in mind that they may not be optimized for your specific device or environment.

Here is the list of the models, and the parameters that you have to use for them:

  • resources/alexa/alexa-avs-sample-app/alexa.umdl: Universal model for the hotword "Alexa" optimized for Alexa AVS sample app. Set SetSensitivity to 0.6, and set ApplyFrontend to true. This is so far the best "Alexa" model we released publicly, when ApplyFrontend is set to true.
  • resources/models/snowboy.umdl: Universal model for the hotword "Snowboy". Set SetSensitivity to 0.5 and ApplyFrontend to false.
  • resources/models/jarvis.umdl: Universal model for the hotword "Jarvis" (https://snowboy.kitt.ai/hotword/29). It has two different models for the hotword Jarvis, so you have to use two sensitivites. Set sensitivities to "0.8,0.80" and ApplyFrontend to true.
  • resources/models/smart_mirror.umdl: Universal model for the hotword "Smart Mirror" (https://snowboy.kitt.ai/hotword/47). Set sensitivity to Sensitivity to 0.5, and ApplyFrontend to false.
  • resources/models/subex.umdl: Universal model for the hotword "Subex" (https://snowboy.kitt.ai/hotword/22014). Set sensitivity to Sensitivity to 0.5, and ApplyFrontend to true.
  • resources/models/neoya.umdl: Universal model for the hotword "Neo ya" (https://snowboy.kitt.ai/hotword/22171). It has two different models for the hotword "Neo ya", so you have to use two sensitivites. Set sensitivities to "0.7,0.7", and ApplyFrontend to true.
  • resources/models/hey_extreme.umdl: Universal model for the hotword "Hey Extreme" (https://snowboy.kitt.ai/hotword/15428). Set sensitivity to Sensitivity to 0.6, and ApplyFrontend to true.
  • resources/models/computer.umdl: Universal model for the hotword "Computer" (https://snowboy.kitt.ai/hotword/46). Set sensitivity to Sensitivity to 0.6, and ApplyFrontend to true.
  • resources/models/view_glass.umdl: Universal model for the hotword "View Glass" (https://snowboy.kitt.ai/hotword/7868). Set Sensitivity to 0.7, and ApplyFrontend to true.

Precompiled node module

Snowboy is available in the form of a native node module precompiled for: 64 bit Ubuntu, MacOS X, and the Raspberry Pi (Raspbian 8.0+). For quick installation run:

npm install --save snowboy

For sample usage see the examples/Node folder. You may have to install dependencies like fs, wav or node-record-lpcm16 depending on which script you use.

Precompiled Binaries with Python Demo

  • 64 bit Ubuntu 14.04
  • MacOS X
  • Raspberry Pi with Raspbian 8.0, all versions (1/2/3/Zero)

If you want to compile a version against your own environment/language, read on.

Dependencies

To run the demo you will likely need the following, depending on which demo you use and what platform you are working with:

  • SoX (audio conversion)
  • PortAudio or PyAudio (audio capturing)
  • SWIG 3.0.10 or above (compiling Snowboy for different languages/platforms)
  • ATLAS or OpenBLAS (matrix computation)

You can also find the exact commands you need to install the dependencies on Mac OS X, Ubuntu or Raspberry Pi below.

Mac OS X

brew install swig, sox, portaudio and its Python binding pyaudio:

brew install swig portaudio sox
pip install pyaudio

If you don't have Homebrew installed, pleas

GitHub Issues· 323 开放

在 GitHub 查看全部
  • #723

    Inquiry for .umdl file creation

    更新于 2025年10月7日
  • #722

    Unable to find .so files for OS-level hotword detection in Flutter using Snowboy

    更新于 2025年10月5日
  • #708

    snowboy不支持 rsicv 架构

    更新于 2025年5月22日
  • #721

    error: can't copy 'swig/Python/_snowboydetect.so': doesn't exist or not a regular file

    更新于 2025年3月31日
  • #720

    Providing a patch for more Android targets (x86, x86_64)

    更新于 2024年8月26日
  • #588

    "Hey Friday" hotword model 794/500

    更新于 2024年8月6日
  • #719

    在linux上显示python无法找到snowboy和snowboydetect模块怎么解决

    更新于 2024年7月12日
  • #691

    Makefile:73: recipe for target '_snowboydetect.so' failed

    更新于 2024年6月13日
  • #718

    编译库到一半停止了

    更新于 2024年5月9日
  • #713

    makefile有问题

    更新于 2024年4月22日

核心特点

  • •Set up Alexa AVS sample app following the official AVS instructions
  • •Apply patch to replace the Sensory KWD engine with Kittai engine
  • •Re-compile the avs-device-sdk and sample app
  • •Run the sample app
  • •Create your personal hotword model through our website or hotword API
  • •Put your personal model in snowboy/resources
  • •Run the wake word agent with engine set to kitt_ai!
  • •Put your personal model in snowboy/resources
  • •Replace the model name 'alexa.umdl' with your universal model name, update KITT_AI_SENSITIVITY in the Alexa AVS sample app code and re-compile
  • •Run the wake word agent with engine set to kitt_ai!

> 标签

C++

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言