はじめに
ラズパイでAlexaを動かす記事は探せばたくさん見つかります。
また、こちらの公式ガイドも(英語ですが)手順に従えば簡単に動かすことができます。
しかし、ガイドに従うとVoice Wakeup Detectionのライブラリとしてデフォルトで
Sensoryが使用されますが、このSensory、、まともに検知してくれません。
(10回中1回検知できるかどうかでした)
そこで、Voice Wakeup DetectionにSnowboy
を使う手順を残しておきます。
Snowboyを使う手順をブログやQiitaで紹介されているも記事もいくつかありましたが、
https://github.com/alexa/alexa-avs-sample-app (注. 現在はリンク切れ)
このリンク先のサンプルアプリを前提としたものや、少し古いバージョンを対象にしている
記事しか見つからなかったので、誰かの参考のために残しておきます。
(2019年3月時点の情報です)
基本は、公式のクイックスタートガイド通りでOKなので、
ちょっと端折って記載します ^^;
環境
Raspberry Pi 3B+
NOOBS v3.0.0
※なお、この記事の手順はクリーンインストールから動作確認済みです。
手順
1. 必要なファイル準備
mkdir ~/sdk-folder
cd sdk-folder
〜〜ここでガイドのSetup 3. まで進めます〜〜
この時点で下記4ファイルが存在している状態だと思います。
~/sdk-folder/setup.sh
~/sdk-folder/genConfig.sh
~/sdk-folder/pi.sh
~/sdk-folder/config.json
2. snowboyに必要なパッケージを入れる
sudo apt install swig
sudo apt install libatlas-base-dev
3. pi.shを書き換える
下記diff結果を参考に書き換える。
--- pi.sh.org 2019-03-12 04:00:14.881061488 +0900
+++ pi.sh 2019-03-10 22:05:56.082621078 +0900
@@ -20,12 +20,12 @@
SOUND_CONFIG="$HOME/.asoundrc"
START_SCRIPT="$INSTALL_BASE/startsample.sh"
-CMAKE_PLATFORM_SPECIFIC=(-DSENSORY_KEY_WORD_DETECTOR=ON \
+CMAKE_PLATFORM_SPECIFIC=(-DKITTAI_KEY_WORD_DETECTOR=ON \
-DGSTREAMER_MEDIA_PLAYER=ON -DPORTAUDIO=ON \
-DPORTAUDIO_LIB_PATH="$THIRD_PARTY_PATH/portaudio/lib/.libs/libportaudio.$LIB_SUFFIX" \
-DPORTAUDIO_INCLUDE_DIR="$THIRD_PARTY_PATH/portaudio/include" \
- -DSENSORY_KEY_WORD_DETECTOR_LIB_PATH=$THIRD_PARTY_PATH/alexa-rpi/lib/libsnsr.a \
- -DSENSORY_KEY_WORD_DETECTOR_INCLUDE_DIR=$THIRD_PARTY_PATH/alexa-rpi/include)
+ -DKITTAI_KEY_WORD_DETECTOR_LIB_PATH=$THIRD_PARTY_PATH/snowboy/lib/rpi/libsnowboy-detect.a \
+ -DKITTAI_KEY_WORD_DETECTOR_INCLUDE_DIR=$THIRD_PARTY_PATH/snowboy/include)
GSTREAMER_AUDIO_SINK="alsasink"
@@ -64,18 +64,20 @@
build_kwd_engine() {
#get sensory and build
echo
- echo "==============> CLONING AND BUILDING SENSORY =============="
+ echo "==============> CLONING AND BUILDING SNOWBOY =============="
echo
cd $THIRD_PARTY_PATH
- git clone git://github.com/Sensory/alexa-rpi.git
- bash ./alexa-rpi/bin/license.sh
+ git clone git://github.com/Kitt-AI/snowboy.git
+ cd snowboy
+ python ./setup.py build
}
generate_start_script() {
cat << EOF > "$START_SCRIPT"
cd "$BUILD_PATH/SampleApp/src"
- ./SampleApp "$OUTPUT_CONFIG_FILE" "$THIRD_PARTY_PATH/alexa-rpi/models" DEBUG9
+ ./SampleApp "$OUTPUT_CONFIG_FILE" "$THIRD_PARTY_PATH/snowboy/resources" DEBUG9
EOF
}
4. setup.shを実行
ガイドのSetup 4. を実施
例
sudo bash setup.sh config.json -s 12345
5. alexa.umdlをコピーして所定のパスに配置
cd ~/sdk-folder/third-party/snowboy/resources/
sudo cp alexa/alexa_02092017.umdl alexa.umdl
6. サンプルアプリ実行
sudo bash startsample.sh
あとはガイドにしたがってAuthorizeを済ませれば、ちゃんとウェイクワードに
反応してくれるAlexaが動きます!