nyabot’s diary

電気猫の夢を見るお話

音声認識のSnowboyをラズパイに入れる

前回はGoogle Assistantを入れた。

nyabot.hatenablog.com

引き続き以下のブログを参考にさせていただき、今回はSnowboyを導入するメモ。

【ラズパイ】Voice KitにSnowboyを入れてホットワードでSwithBotを操る【よしこちゃん】 - Oh My Enter!

実際にやってみたところ、2019年2月現在、発生するエラーや対処法も上記の記事で書かれている通りだった。ありがたみ極まる。
リンクが有効な限り、上記のブログを直接参考にされたし。

依存関係の解決

(nyabot)$ sudo apt-get install swig3.0 python-pyaudio python3-pyaudio sox  
(nyabot)$ pip install pyaudio  
(nyabot)$ sudo apt-get install libatlas-base-dev

ソース類一式をダウンロード

(nyabot)$ git clone https://github.com/Kitt-AI/snowboy.git

ホットワード検出ライブラリをビルド

(nyabot)$ cd snowboy  
(nyabot)~/snowboy $ cd swig/Python3  
(nyabot)~/snowboy/swig/Python3 $ make

失敗するので、Makefileをnanoエディタで開き、

(nyabot)~/snowboy/swig/Python3 $ nano Makefile

下記の部分を書き換える。

# SWIG := swig // コメントアウトする
SWIG := swig3.0 // この行を追加する

再びmake。

(nyabot)~/snowboy/swig/Python3 $ make

ファイル_snowboydetect.soが生成されていることを確認

(nyabot)~/snowboy/swig/Python3 $ ls
(nyabot)$ cd ~/snowboy/examples/Python3/  
(nyabot)~/snowboy/examples/Python3 $ python demo.py resources/models/snowboy.umdl

先ほどと同様に、上記でもエラーが発生するので、snowboydecoder.py を一部(一時的に)書き換える。

(nyabot)~/snowboy/examples/Python3 $ nano snowboydecoder.py
# from . import snowboydetect // コメントアウトする  
import snowboydetect // この行を追加する

再び以下のコマンドを実行。

(nyabot)~/snowboy/examples/Python3 $ python demo.py resources/models/snowboy.umdl

待ち受けに入るので、「snowboy」と呼びかけてピコーンと鳴ればOK.

音声認識をテスト

テストファイルとして「おはよう」を登録したohayo.pmdlをSnowboyで作成。
mvとかscpとかでファイルを/home/pi/snowboy/resources/modelsに移す。

(nyabot)~/snowboy/examples/Python3 $ python demo.py resources/models/ohayo.pmdl

「おはよう」「ピコーン!」OK.

つづく。