Skip to content
Snowboy API for AIY Voice Kit
Branch: master
Clone or download
Pull request Compare This branch is 7 commits ahead, 2 commits behind senyoltw:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
mod delete jarvis.umdl because it doesn't work Jan 25, 2019
.gitignore add snowboy.so May 28, 2018
LICENSE
README.md
README_ja.md
assistant_grpc_demo.service
assistant_grpc_demo_snowboy.py
assistant_library_with_snowboy_demo.py

README.md

custom-hotword-for-aiy-voicekit

Snowboy API for AIY Voice Kit.
Replace your AIY Voice Kit hotword [OK. Google] to [alexa],[jarvis]...etc
You can easily replace your program.
See. diff AIY Voice Kit Press button and own hotword program

Before How to install

Buy The AIY Voice Kit and complete the tutorial.
custom-hotword-for-aiy-voicekit use lowlevel api AIY Voice Kit.

https://aiyprojects.withgoogle.com/voice/

Are you work your voice kit this program?

src/examples/voice/assistant_grpc_demo.py

If the demo has worked,next step.

How to install

cd /home/pi/
# libatlas-base-dev need snowboy module.
sudo apt install libatlas-base-dev
git clone https://github.com/mongonta0716/custom-hotword-for-aiy-voicekit

# copy snowboy module and sample program.
cp -ipr custom-hotword-for-aiy-voicekit/mod ~/AIY-projects-python/src/
cp -ip custom-hotword-for-aiy-voicekit/assistant_grpc_demo_snowboy.py ~/AIY-projects-python/src/examples/voice/

How to use

AIY-projects-shell.sh
chmod a+x src/examples/voice/assistant_grpc_demo_snowboy.py
src/examples/voice/assistant_grpc_demo_snowboy.py --model=src/mod/resources/alexa/alexa_02092017.umdl

Say "alexa" and talk your google assistant!

sample log

INFO:root:Speak own hotword and speak
DEBUG:snowboy:detecting...
INFO:snowboy:detect started.
INFO:snowboy:Keyword 1 detected at time: 2019-01-22 18:56:48
INFO:snowboy:detect stopped.
DEBUG:snowboy:detect voice break
DEBUG:snowboy:finished.
INFO:root:Conversation started!
INFO:aiy.assistant.grpc:Recording started.
INFO:aiy.assistant.grpc:You said: "what".
INFO:aiy.assistant.grpc:You said: "what time".
INFO:aiy.assistant.grpc:You said: "what  time".
INFO:aiy.assistant.grpc:You said: "what  time is".
INFO:aiy.assistant.grpc:You said: "what  time is it".
INFO:aiy.assistant.grpc:You said: "what time  is it".
INFO:aiy.assistant.grpc:You said: "what time  is it now".
INFO:aiy.assistant.grpc:You said: "what time is  it now".
INFO:aiy.assistant.grpc:You said: "what time is it  now".
INFO:aiy.assistant.grpc:You said: "what time is it  now".
INFO:aiy.assistant.grpc:You said: "what time is it now".
INFO:aiy.assistant.grpc:End of audio request detected.
INFO:aiy.assistant.grpc:You said: "what time is it now".
INFO:aiy.assistant.grpc:Recording stopped.
DEBUG:aiy.assistant.grpc:Updating conversation state.
INFO:aiy.assistant.grpc:Assistant said: "The time is 6:56."
INFO:aiy.assistant.grpc:Not expecting follow-on query from user.
INFO:aiy.assistant.grpc:Playing started.
INFO:aiy.assistant.grpc:Playing stopped.
INFO:root:Speak own hotword and speak
DEBUG:snowboy:detecting...
INFO:snowboy:detect started.

Make your own hotword

Make your own hotword this site.
and download your voice kit [hotword].pmdl
(how to make your hotword by snowboy, google it ^^!)

https://snowboy.kitt.ai/

and run program argument your hotword

AIY-projects-shell.sh
src/examples/voice/assistant_grpc_demo_snowboy.py --model=[hotword].pmdl

diff original program(AIY Voice Kit Press button), snowboy wakeword program

$ diff -u src/examples/voice/assistant_grpc_demo.py src/examples/voice/assistant_grpc_demo_snowboy.py
--- src/examples/voice/assistant_grpc_demo.py   2018-11-16 17:42:45.417861708 +0900
+++ src/examples/voice/assistant_grpc_demo_snowboy.py   2019-01-23 17:34:31.759182512 +0900
@@ -24,6 +24,8 @@
 from aiy.assistant.grpc import AssistantServiceClientWithLed
 from aiy.board import Board

+import mod.snowboydecoder as snowboydecoder
+
 def volume(string):
     value = int(string)
     if value < 0 or value > 100:
@@ -41,15 +43,17 @@
     parser = argparse.ArgumentParser(description='Assistant service example.')
     parser.add_argument('--language', default=locale_language())
     parser.add_argument('--volume', type=volume, default=100)
+    parser.add_argument('--model', default='src/mod/resources/alexa/alexa_02092017.umdl')
     args = parser.parse_args()

+    detector = snowboydecoder.HotwordDetector(args.model, sensitivity=0.5)
     with Board() as board:
         assistant = AssistantServiceClientWithLed(board=board,
                                                   volume_percentage=args.volume,
                                                   language_code=args.language)
         while True:
-            logging.info('Press button to start conversation...')
-            board.button.wait_for_press()
+            logging.info('Speak own hotword and speak')
+            detector.start()
             logging.info('Conversation started!')
             assistant.conversation()
You can’t perform that action at this time.