7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Raspberry piのスマートスピーカー化 (Amazon Alexaの公式インストールシェルが利用できないのでソースからインストールしてみた)

Last updated at Posted at 2021-10-27

#本記事の内容

  • Raspberry Piをスマートスピーカーとして利用してみたかったので、Amazon Alexaの導入にチャレンジしました。本記事はその試行錯誤をまとめたものです。

公式提供されているインストールスクリプトを用いて、楽々インストールするつもりでしたが、Alexa開発者ページの公式ドキュメントに記載(2021/10/25時点)の通り、ツールが正しく動作しない状況の様です。

赤字枠で囲った箇所にある記載の通りで、ワード検知に用いられるSensoryが使えなくなった影響だそう。
Set Up the AVS Device SDK on Raspberry Pi with a Script
00.png

なので、公式サイトの案内"Set Up the AVS Device SDK on Raspberry Pi from Source"に沿ってソースからコンパイルとインストールを実施してみました。
公式ドキュメントの通りやってもうまくいかないことはよくありますよね。
先人の皆様の経験をいろいろと参考にさせて頂き、トライ&エラーを繰り返すことでインストールを完了できました。
この記事がこれから実施する方たちの役に立てばと思います。

#実施環境

  • Windows 10
  • TeraTarm Version 4.9.4
  • Raspberry Pi 2 Model B
  • PLANEX 無線LAN子機 GW-USNANO2A ※Raspberry Pi 2はWi-Fi通信モジュールがないため、無線LAN子機をUSBに接続しWi-Fi通信を行う。
  • 家庭内の無線LANネットワーク環境にて実施
  • 音声認識マイク
    -- MM-MC23
  • マイクをUSBに接続する変換機
    -- AU-MMSA
  • スピーカ
    -- SP-PBLV2-BK
  • Python 3.9.7
  • Alexa Voice Service (AVS) Device SDK 1.24.0
  • Snowboy 1.3.0

alexa_01.jpg

#手順の流れ
1.AWSアカウントの作成・AWS Developerアカウントの作成
2.Alexa製品の登録
3.Raspberry piでのAlexaのインストール
 3.1 TeraTarmでsshログインする
 3.2 パッケージリストの更新
 3.3 インストール用のディレクトリの作成
 3.4 必要なライブラリーのインストール
 3.5 インストールを快適にすすめるためにswap領域の拡張 (任意)
 3.6 avs-sdkのインストール
 3.7 音声操作のためのライブラリーをインストールする
 3.8 HTTP通信のためのcurlをインストールする
 3.9 ウェイクワード用のライブラリーであるsnowboyをインストールする
 3.10 Amazon Alexaのサンプルアプリのインストール
 3.11 Amazon Alexaのサンプルアプリの設定ファイルの配置 (config.json)
 3.11 Amazon Alexaのサンプルアプリの設定ファイルの編集 (AlexaClientSDKConfig.json)
 3.12 オーディオ関係の設定ファイルの編集
 3.13 Alexaサンプルアプリの起動と認証
 3.14 言語・通知音・タイムゾーン設定
 3.15 Alexa サンプルアプリの動作確認

1. AWSアカウントの作成・AWS Developerアカウントの作成

こちらのサイト"失敗しないAlexa開発者アカウントの作り方"を参考にして、AWSアカウントの作成と、AWS Developerアカウントの作成を実施する。

2. Alexa製品の登録

こちらのAmazonの開発者ポータルにアクセスし、先程作成したAWS Developerアカウントの認証情報を入力しログインする。
02.png

ダッシュボードに表示されているAlexa Voice Serviceをクリックする
03.png

製品をクリックする
04.png

新しい商品を追加をクリックする
06.png

製品情報の入力画面が表示されるので情報を入力し、次へをクリックする。

08-2.png
09.png
10.png

プロフィールを新規作成するをクリックする。
11.png

情報を入力し、次へをクリックする。
13-2.png

他のデバイスやプラットフォームのタブをクリックする。
14.png

"クライアントID名","クライアントID"を入力し、ダウンロードをクリックする。
17.png
※ここで取得したconfig.jsonファイルは、後ほどの"3.11 Amazon Alexaのサンプルアプリの設定ファイルの配置 (config.json)"で利用します。

規約同意のチェックを行い、完了するをクリックする。
18-2.png

OKをクリックする。
19.png

これにてこれからラズパイにインストールするAlexaの情報が登録された。

作成したセキュアプロファイルを有効にするためにこちらのLogin With Amazonコンソールサイトにアクセスする。

Select a Security Profileのプルダウンから先程作成したセキュリティプロファイルを選択する。
21.png

確認するをクリックする。
22.png

プライバシー利用規約同意書URLの情報を入力する。
23.png
例として、https://example.com/privacy.htmlとしている。プロダクション利用の場合は正しいURLが必要となる。

保存をクリックする。
24.png

セキュリティプロファイルが正常に保存されたメッセージが表示された。
25.png

AWSのコンソールにおけるAlexaの登録操作はこれで完了です。

3. Raspberry piでのAlexaのインストール

ここからはRaspberry piにAlexaをインストールしていく。
基本的には公式ガイド"Set Up the AVS Device SDK on Raspberry Pi from Source"に沿って進めるが、途中でトライ&エラーで得たノウハウも手順に加えています。

3.1 TeraTarmでsshログインする

WindowsにてTeraTarmを起動して、ラズパイにSSH接続する。

3.2 パッケージリストの更新

パッケージリストを最新化する。

sudo apt-get update

3.3 インストール用のディレクトリの作成

公式ドキュメントに記載のある通りにディレクトリを作成する。

cd /home/pi/;pwd
mkdir sdk-folder
ls -ld sdk-folder

cd sdk-folder;pwd
ls -l
mkdir sdk-build sdk-source third-party sdk-install db
ls -l

3.4 必要なライブラリーのインストール

公式ドキュメントに記載のあったライブラリーをインストールする。

sudo apt-get -y install \
 git gcc cmake build-essential libsqlite3-dev libcurl4-openssl-dev libfaad-dev \
 libssl-dev libsoup2.4-dev libgcrypt20-dev libgstreamer-plugins-bad1.0-dev \
 gstreamer1.0-plugins-good libasound2-dev doxygen

3.5 インストールを快適にすすめるためにswap領域の拡張 (任意)

Raspberry Pi 2Bはメモリが1Gでswapも初期設定100Mしかないので、
少しでもインストールが進むようにswap領域を大きくする。

swapを拡大しないままでインストールした場合は、
後半に出てくるmake SampleAppのコマンド実行時の93%辺りで以下のエラーが発生することが多かった。

[ 93%] Building CXX object ApplicationUtilities/DefaultClient/src/CMakeFiles/DefaultClient.dir/DefaultClientComponen	t.cpp.o
                ^[[C^[[D        c++: fatal error: 強制終了 signal terminated program cc1plus
compilation terminated.
make[3]: *** [ApplicationUtilities/DefaultClient/src/CMakeFiles/DefaultClient.dir/build.make:89: ApplicationUtilitie	s/DefaultClient/src/CMakeFiles/DefaultClient.dir/DefaultClientComponent.cpp.o] エラー 1
make[2]: *** [CMakeFiles/Makefile2:14769: ApplicationUtilities/DefaultClient/src/CMakeFiles/DefaultClient.dir/all] 	エラー 2
make[1]: *** [CMakeFiles/Makefile2:14616: SampleApp/src/CMakeFiles/SampleApp.dir/rule] エラー 2
make: *** [Makefile:3698: SampleApp] エラー 2
pi@raspberrypi:~/sdk-folder/sdk-build $

現在のswap領域の容量をfreeコマンドで確認する。

pi@raspberrypi:~/sdk-folder/sdk-build $ free -h
              total        used        free      shared  buff/cache   available
Mem:          871Mi        72Mi       715Mi       7.0Mi        83Mi       741Mi
Swap:          99Mi        96Mi       3.0Mi
pi@raspberrypi:~/sdk-folder/sdk-build $

swapを止める。

sudo dphys-swapfile swapoff

swapが止まり、領域が0になったことを確認する。

pi@raspberrypi:~/sdk-folder/sdk-build $ free -h
              total        used        free      shared  buff/cache   available
Mem:          871Mi       148Mi       631Mi        12Mi        92Mi       660Mi
Swap:            0B          0B          0B
pi@raspberrypi:~/sdk-folder/sdk-build $

swapファイルのバックアップを取り、変更後には差分を確認する。

cp -p /etc/dphys-swapfile /home/pi/dphys-swapfile
sudo vi /etc/dphys-swapfile

※dphys-swapfileファイル内のCONF_SWAPSIZEの項目を変更する

変更前後の差分が以下。swapとして2048MB割り当てた。

pi@raspberrypi:~/sdk-folder $ diff /etc/dphys-swapfile /home/pi/dphys-swapfile
16c16
< CONF_SWAPSIZE=2048
---
> CONF_SWAPSIZE=100

swapを有効化し再起動する。

sudo dphys-swapfile swapon
sudo reboot

再起動後に、ラズパイにログインし、swap領域が2G割り当てられていることを確認する。

pi@raspberrypi:~ $free -h
              total        used        free      shared  buff/cache   available
Mem:          871Mi       145Mi       486Mi       6.0Mi       240Mi       667Mi
Swap:         2.0Gi          0B       2.0Gi

★注意:インストールが完了したら、必要に応じてswapサイズを元に戻すこと。

3.6 avs-sdkのインストール

最新のavs-sdk 1.25.0だと音声認識ライブラリであるsnowboyとの連携が上手くいかなかったので、
最新版からひとつ前のブランチの1.24.0をインストールすることにする。

cd /home/pi/sdk-folder/sdk-source
git clone --single-branch git://github.com/alexa/avs-device-sdk.git -b v1.24.0
ls -ld avs-device-sdk

3.7 音声操作のためのライブラリーをインストールする

alexaが音声操作に必要なportaudioというライブラリーをインストールする。

cd /home/pi/sdk-folder/third-party
wget -c http://www.portaudio.com/archives/pa_stable_v190600_20161030.tgz
ls -l pa_stable_v190600_20161030.tgz
tar zxvf pa_stable_v190600_20161030.tgz
cd portaudio
./configure --without-jack
make

3.8 HTTP通信のためのcurlをインストールする

with-nghttp2の有効化には必要なパッケージをインストールする

sudo apt-get -y install libnghttp2-dev

curlをインストールする。configureの結果として、HTTP2が有効(enable)となっていることが大事。

cd /home/pi/sdk-folder/third-party
wget https://github.com/curl/curl/releases/download/curl-7_67_0/curl-7.67.0.tar.gz
ls -l curl-7.67.0.tar.gz
tar zxvf curl-7.67.0.tar.gz
cd curl-7.67.0
./configure --with-nghttp2 --prefix=/home/pi/sdk-folder/third-party/curl-7.67.0 --with-libssl

(出力結果 途中略)

 HTTP2:            enabled (nghttp2)  ★★HTTP2がenableとなっていて、有効になっているのを確認する
 HTTP3:            disabled (--with-ngtcp2, --with-quiche)

(出力結果 途中略)

make

3.9 ウェイクワード用のライブラリーであるsnowboyをインストールする

snowboyの前提ライブラリーのインストール

sudo apt-get install -y gstreamer1.0-tools gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly

sudo apt-get -y install swig3.0 python-pyaudio python3-pyaudio sox python-pip libatlas-base-dev portaudio19-dev
pip install pyaudio

snowboyのgitリポジトリからのダウンロード

cd /home/pi/sdk-folder/third-party
git clone https://github.com/Kitt-AI/snowboy.git

設定ファイルの編集を行うためにバックアップファイルを取得する。

ls -ld snowboy
cd /home/pi/sdk-folder/third-party/snowboy/swig/Python3

cp -p Makefile /home/pi/Makefile
ls -l /home/pi/Makefile

Makefileは、ひとつ下の差分の結果のように「swig」の記載が「swig3.0」となるように編集する。

vi Makefile

編集後と編集前の差分結果

pi@raspberrypi:~/sdk-folder/third-party/snowboy/swig/Python3 $ diff Makefile /home/pi/Makefile
5c5
< SWIG := swig3.0
---
> SWIG := swig

設定ファイルの編集を行うためにバックアップファイルを取得する。

cd ~/sdk-folder/third-party/snowboy/examples/Python3
cp -p snowboydecoder.py /home/pi/snowboydecoder.py
ls -l /home/pi/snowboydecoder.py

snowboydecoder.pyは、ひとつ下の差分の結果のように「from . import snowboydetect」の記載が「import snowboydetect」となるよう編集する。

vi snowboydecoder.py

編集後と編集前の差分結果

※snowboydecoder.pyは、以下のように「from . import snowboydetect」の記載を「import snowboydetect」と編集する。誤記?
pi@raspberrypi:~/sdk-folder/third-party/snowboy/examples/Python3 $ diff snowboydecoder.py /home/pi/snowboydecoder.py
5c5
< import snowboydetect
---
> from . import snowboydetect

snowboyをmakeする

cd ~/sdk-folder/third-party/snowboy/swig/Python3
make

snowboyの動作確認を行う

cd ~/sdk-folder/third-party/snowboy/examples/Python3
python demo.py resources/models/snowboy.umdl

マイクに向かってsnowboyと呼び掛けてみる。
音が鳴り以下のログが出力されれば、動作確認OKです。

pi@raspberrypi:~/sdk-folder/third-party/snowboy/examples/Python3 $ python demo.py resources/models/snowboy.umdl
Listening... Press Ctrl+C to exit
INFO:snowboy:Keyword 1 detected at time: 2021-10-21 09:13:54
INFO:snowboy:Keyword 1 detected at time: 2021-10-21 09:13:58

アレクサ用のウェイクワードファイルの配置

cp -p ~/sdk-folder/third-party/snowboy/resources/alexa/alexa-avs-sample-app/alexa.umdl ~/sdk-folder/third-party/snow	boy/resources
ls -l ~/sdk-folder/third-party/snowboy/resources/alexa.umdl

3.10 Amazon Alexaのサンプルアプリのインストール

ビルド用設定ファイルを編集する前に、バックアップを取得。

cd /home/pi/sdk-folder/sdk-source/avs-device-sdk/cmakeBuild/cmake/
cp -p BuildOptions.cmake /home/pi/BuildOptions.cmake
ls -l /home/pi/BuildOptions.cmake

設定ファイルの編集。

sed -E -i "s:CXX_PLATFORM_DEPENDENT_FLAGS_MINSIZEREL\s+\"(.*)\":CXX_PLATFORM_DEPENDENT_FLAGS_MINSIZEREL \"\1 -D_GLIB	CXX_USE_CXX11_ABI=0 -pg\":" BuildOptions.cmake
diff /home/pi/sdk-folder/sdk-source/avs-device-sdk/cmakeBuild/cmake/BuildOptions.cmake /home/pi/BuildOptions.cmake
※置換対象の文字列が期待通り変更されていることを確認する。

ここで編集する内容は、avs-kittai.patchの中から実施が必要だと判断した物を抽出しています。
avs-kittai.ptachは、snowboyから提供されているパッチです。こちらのsnowboyのREADMEの"Kittai KWD Engine"の章に記載があります。

元々、Set Up the AVS Device SDK on Raspberry Pi with a Scriptの手順で登場するインストールシェルは、音声認識ライブラリーとしてSensoryを使う前提で作られていますが、
avs-kittai.patchを適用することで、インストールする音声認識ライブラリーをsnowboyに変更することができます。
今回はインストールシェルを使わず手動インストールするので、avs-kittaiパッチが実施している内容から必要と考えた箇所のみ手順に組み込むようにしています。

avs-sdkをコンパイルする

cd /home/pi/sdk-folder/sdk-build
cmake /home/pi/sdk-folder/sdk-source/avs-device-sdk \
 -DGSTREAMER_MEDIA_PLAYER=ON \
 -DPORTAUDIO=ON \
 -DPORTAUDIO_LIB_PATH=/home/pi/sdk-folder/third-party/portaudio/lib/.libs/libportaudio.a \
 -DPORTAUDIO_INCLUDE_DIR=/home/pi/sdk-folder/third-party/portaudio/include \
 -DCURL_INCLUDE_DIR=/home/pi/sdk-folder/third-party/curl-7.67.0/include/curl \
 -DCURL_LIBRARY=/home/pi/sdk-folder/third-party/curl-7.67.0/lib/.libs/libcurl.so \
 -DKITTAI_KEY_WORD_DETECTOR=ON \
 -DKITTAI_KEY_WORD_DETECTOR_LIB_PATH=/home/pi/sdk-folder/third-party/snowboy/lib/rpi/libsnowboy-detect.a \
 -DKITTAI_KEY_WORD_DETECTOR_INCLUDE_DIR=/home/pi/sdk-folder/third-party/snowboy/include

それぞれのオプションの意味は、こちらのAVS Device SDK CMake Parameters - Amazon Developerのサイトで確認できます。

Alexaサンプルアプリをmakeする

make SampleApp 

3.11 Amazon Alexaのサンプルアプリの設定ファイルの配置 (config.json)

config.jsonを/home/pi/sdk-folder/sdk-source/avs-device-sdk/tools/Installディレクトリに置く。

TeratarmにてラズパイにSSH接続し、ファイル > SSH SCPとメニューを辿る。
01.png

Fromにアップロードする対象のファイルを指定し、Toにアップロード後格納するディレクトリを指定する。ここでは、/home/piとする。"Send"をクリックする。
02.png

ラズパイの/home/pi直下に転送できたことを確認し、正しい場所にファイルを配置する。

ls -l /home/pi/config.json
cp -p /home/pi/config.json /home/pi/sdk-folder/sdk-source/avs-device-sdk/tools/Install
ls -l /home/pi/sdk-folder/sdk-source/avs-device-sdk/tools/Install/config.json

3.11 Amazon Alexaのサンプルアプリの設定ファイルの編集 (AlexaClientSDKConfig.json)

genConfig.shを用いてAlexaClientSDKConfig.jsonの設定ファイルにパラメータを書き込む。

cd /home/pi/sdk-folder/sdk-source/avs-device-sdk/tools/Install
bash genConfig.sh config.json 12345 \
 /home/pi/sdk-folder/db \
 /home/pi/sdk-folder/sdk-source/avs-device-sdk \
 /home/pi/sdk-folder/sdk-build/Integration/AlexaClientSDKConfig.json \
 -DSDK_CONFIG_MANUFACTURER_NAME="raspberrypi" \
 -DSDK_CONFIG_DEVICE_DESCRIPTION="raspberrypi"

こちらのパラメータ名に関しても公式ドキュメント "Set Up the AVS Device SDK on Raspberry Pi from Source"の"Step 5: Set up your configuration file"あたりに説明があります。

設定ファイルに対してオーディオ関連の設定を追記する

vi /home/pi/sdk-folder/sdk-build/Integration/AlexaClientSDKConfig.json

以下を追記すること。"cblAuthDelegate"のブロックの上に挿入する。

     "gstreamerMediaPlayer":{
         "audioSink":"alsasink"
     },

以下が変更後のファイルのイメージ

(~途中省略~)

/// to learn more about configuration options and default behaviours.
{
     "gstreamerMediaPlayer":{
         "audioSink":"alsasink"
     },
    "cblAuthDelegate":{
        "databaseFilePath":"/home/pi/sdk-folder/db/cblAuthDelegate.db"
    },
    "deviceInfo":{

(~途中省略~)

3.12 オーディオ関係の設定ファイルの編集

.asoundrcファイルを作成する必要があるため、ここからはラズパイのHW環境について確認を行う。
以下のコマンドでラズパイに認識されているオーディオ関連のHWを確認する。

pi@raspberrypi:~ $ cat /proc/asound/pcm
00-00: bcm2835 HDMI 1 : bcm2835 HDMI 1 : playback 4
01-00: bcm2835 Headphones : bcm2835 Headphones : playback 4
02-00: USB Audio : USB Audio : playback 1 : capture 1

録音で利用するUSBマイクのカード番号とデバイス番号を確認する。

pi@raspberrypi:~ $ arecord -l
**** ハードウェアデバイス CAPTURE のリスト ****
カード 2: Device [USB Audio Device], デバイス 0: USB Audio [USB Audio]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0

カード番号が2、デバイス番号が0であった。

ヘッドホン端子で音を再生したいので、ヘッドホンスピーカーのカード番号とデバイス番号を確認する。

pi@raspberrypi:~ $ aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: b1 [bcm2835 HDMI 1], デバイス 0: bcm2835 HDMI 1 [bcm2835 HDMI 1]
  サブデバイス: 4/4
  サブデバイス #0: subdevice #0
  サブデバイス #1: subdevice #1
  サブデバイス #2: subdevice #2
  サブデバイス #3: subdevice #3
カード 1: Headphones [bcm2835 Headphones], デバイス 0: bcm2835 Headphones [bcm2835 Headph
  サブデバイス: 4/4
  サブデバイス #0: subdevice #0
  サブデバイス #1: subdevice #1
  サブデバイス #2: subdevice #2
  サブデバイス #3: subdevice #3
カード 2: Device [USB Audio Device], デバイス 0: USB Audio [USB Audio]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0

カード番号が1、デバイス番号が0であった。

設定ファイルを作成する。

sudo vi ~/.asoundrc
=========================
pcm.!default {
   type asym
    playback.pcm {
      type plug
      slave.pcm "hw:1,0" #← スピーカーの"hw:カード番号,デバイス番号"で設定する
    }
    capture.pcm {
      type plug
      slave.pcm "hw:2,0" #← マイクの"hw:カード番号,デバイス番号"で設定する
    }
 }
=========================

録音のテストを実施する。

cd /home/pi
arecord rectest.wav
※マイクに向かってしゃべり音を録音する。録音の停止は、「Ctrl + C」を入力する。

再生のテストを実施する。録音した音声が再生されればOKです。

aplay rectest.wav

3.13 Alexaサンプルアプリの起動と認証

サンプルアプリを起動して、Alexaアプリの初回認証を行う。

cd /home/pi/sdk-folder/sdk-build
PA_ALSA_PLUGHW=1 ./SampleApp/src/SampleApp ./Integration/AlexaClientSDKConfig.json ../third-party/snowboy/resources 	DEBUG9

問題なければ以下の様なログが出力されるはずなので、URLと認証コード(enter the code)をメモする。

pi@raspberrypi:~/sdk-folder/sdk-build $ PA_ALSA_PLUGHW=1 ./SampleApp/src/SampleApp ./Integration/AlexaClientSDKConfig.json DEBUG9
configFile ./Integration/AlexaClientSDKConfig.json
##################################
#       NOT YET AUTHORIZED       #
##################################

################################################################################################
#       To authorize, browse to: 'https://amazon.com/us/code' and enter the code: FDANYG       #
################################################################################################

#################################################
#       Checking for authorization (1)...       #
#################################################

#################################################
#       Checking for authorization (2)...       #
#################################################

~ 途中省略 認証のチェックが繰り返される~

認証にはラズパイのコンソールにてブラウザ認証が必要なので、VNC設定をしていなければこちらの記事"CUI運用しているラズパイでVNC接続できるようにする"を参考にして、VNCログインを行ってください。
ラズパイのブラウザでメモしたURLにアクセスし、開発者アカウントのメールアドレスとパスワードを入れて認証を行います。

認証コードを入力して、認証を行う。
42.png

このようなページが出るので、下の方へスクロールして、CONTINUEをクリックする。
43.png
44.png

許可をクリックする。
45.png

認証が完了したメッセージが表示された。これで認証は完了。
46.png

コンソールのログに以下のメッセージが表示されているはず。

###########################
#       Authorized!       #
###########################

3.14 言語・通知音・タイムゾーン設定

3.14.1 言語・通知音の設定

cd /home/pi/sdk-folder/sdk-build
PA_ALSA_PLUGHW=1 ./SampleApp/src/SampleApp ./Integration/AlexaClientSDKConfig.json ../third-party/snowboy/resources INFO

以下の様に変更を行った。ログはDEBUG9だと大量に出ているので、必要箇所のみ抜粋しています。

                  #    #     #  #####      #####  ######  #    #              
                 # #   #     # #     #    #     # #     # #   #               
                #   #  #     # #          #       #     # #  #                
               #     # #     #  #####      #####  #     # ###                 
               #######  #   #        #          # #     # #  #                
               #     #   # #   #     #    #     # #     # #   #               
               #     #    #     #####      #####  ######  #    #              
                                                                              
       #####                                           #                      
      #     #   ##   #    # #####  #      ######      # #   #####  #####      
      #        #  #  ##  ## #    # #      #          #   #  #    # #    #     
       #####  #    # # ## # #    # #      #####     #     # #    # #    #     
            # ###### #    # #####  #      #         ####### #####  #####      
      #     # #    # #    # #      #      #         #     # #      #          
       #####  #    # #    # #      ###### ######    #     # #      #          

       SDK Version 1.24.0


+----------------------------------------------------------------------------+
|                                  Options:                                  |
| Wake word:                                                                 |
|       Simply say Alexa and begin your query.                               |
| Tap to talk:                                                               |
|       Press 't' and Enter followed by your query (no need for the 'Alexa').|
| Hold to talk:                                                              |
|       Press 'h' followed by Enter to simulate holding a button.            |
|       Then say your query (no need for the 'Alexa').                       |
|       Press 'h' followed by Enter to simulate releasing a button.          |
| Stop an interaction:                                                       |
|       Press 's' and Enter to stop an ongoing interaction.                  |
| Privacy mode (microphone off):                                             |
|       Press 'm' and Enter to turn on and off the microphone.               |
| Playback Controls:                                                         |
|       Press '1' for a 'PLAY' button press.                                 |
|       Press '2' for a 'PAUSE' button press.                                |
|       Press '3' for a 'NEXT' button press.                                 |
|       Press '4' for a 'PREVIOUS' button press.                             |
| Settings:                                                                  |
|       Press 'c' followed by Enter at any time to see the settings screen.  |
| Speaker Control:                                                           |
|       Press 'p' followed by Enter at any time to adjust speaker settings.  |
| Firmware Version:                                                          |
|       Press 'f' followed by Enter at any time to report a different        |
|       firmware version.                                                    |
| Info:                                                                      |
|       Press 'i' followed by Enter at any time to see the help screen.      |
| Reset device:                                                              |
|       Press 'k' followed by Enter at any time to reset your device. This   |
|       will erase any data stored in the device and you will have to        |
|       re-register your device.                                             |
|       This option will also exit the application.                          |
| Reauthorize device:                                                        |
|       Press 'z' followed by Enter at any time to re-authorize your device. |
|       This will erase any data stored in the device and initiate           |
|       re-authorization.                                                    |
| Device Setup Complete:                                                     |
|       Press 'v' followed by Enter at any time to indicate that device      |
|       setup is complete.                                                   |
|                                                                            |
| Quit:                                                                      |
|       Press 'q' followed by Enter at any time to quit the application.     |
+----------------------------------------------------------------------------+

########################################
#       Alexa is currently idle!       #
########################################

c ★設定(Settings)である、cを入力する
+----------------------------------------------------------------------------+
|                          Setting Options:                                  |
|  Press '1' followed by Enter to see language options.                      |
|  Press '2' followed by Enter to see Do Not Disturb options.                |
|  Press '3' followed by Enter to see wake word confirmation options.        |
|  Press '4' followed by Enter to see speech confirmation options.           |
|  Press '5' followed by Enter to see time zone options.                     |
|  Press '6' followed by Enter to see the network options.                   |
|  Press '7' followed by Enter to see the Alarm Volume Ramp options.         |
|  Press 'q' followed by Enter to exit Settings Options.                     |
+----------------------------------------------------------------------------+

1 ★言語設定(language options)である、1を入力する
+----------------------------------------------------------------------------+
|                          Language Options:                                  
|
| Press '1' followed by Enter to change the locale to de-DE
| Press '2' followed by Enter to change the locale to en-AU
| Press '3' followed by Enter to change the locale to en-CA
| Press '4' followed by Enter to change the locale to en-GB
| Press '5' followed by Enter to change the locale to en-IN
| Press '6' followed by Enter to change the locale to en-US
| Press '7' followed by Enter to change the locale to es-ES
| Press '8' followed by Enter to change the locale to es-MX
| Press '9' followed by Enter to change the locale to es-US
| Press '10' followed by Enter to change the locale to fr-CA
| Press '11' followed by Enter to change the locale to fr-FR
| Press '12' followed by Enter to change the locale to hi-IN
| Press '13' followed by Enter to change the locale to it-IT
| Press '14' followed by Enter to change the locale to ja-JP
| Press '15' followed by Enter to change the locale to pt-BR
| Press '16' followed by Enter to change the locale combinations to ["en-CA","fr-CA"]
| Press '17' followed by Enter to change the locale combinations to ["en-IN","hi-IN"]
| Press '18' followed by Enter to change the locale combinations to ["en-US","es-US"]
| Press '19' followed by Enter to change the locale combinations to ["es-US","en-US"]
| Press '20' followed by Enter to change the locale combinations to ["fr-CA","en-CA"]
| Press '21' followed by Enter to change the locale combinations to ["hi-IN","en-IN"]
| Press '0' followed by Enter to quit.
+----------------------------------------------------------------------------+

14 ★日本語設定である、14を入力する

###################################
#       Locale is ["en-US"]       #
###################################

###################################
#       Locale is ["ja-JP"]       #
###################################

日本語である「ja-JP」となった。

次にalexaと呼び掛けた際に、反応するように通知音の設定を行います。

c ★設定(Setting)である、cを入力する
+----------------------------------------------------------------------------+
|                          Setting Options:                                  |
|  Press '1' followed by Enter to see language options.                      |
|  Press '2' followed by Enter to see Do Not Disturb options.                |
|  Press '3' followed by Enter to see wake word confirmation options.        |
|  Press '4' followed by Enter to see speech confirmation options.           |
|  Press '5' followed by Enter to see time zone options.                     |
|  Press '6' followed by Enter to see the network options.                   |
|  Press '7' followed by Enter to see the Alarm Volume Ramp options.         |
|  Press 'q' followed by Enter to exit Settings Options.                     |
+----------------------------------------------------------------------------+

3 ★通知音設定(wake word confirmation options)である、3を入力する
+----------------------------------------------------------------------------+
|                 Wake Word Confirmation Configuration:                      |
|                                                                            |
| Press 'E' followed by Enter to enable this configuration.                  |
| Press 'D' followed by Enter to disable this configuration.                 |
| Press 'q' followed by Enter to quit this configuration menu.               |
+----------------------------------------------------------------------------+

E ★有効(enable)である、Eを入力する
##############################################
#       WakeWordConfirmation is "NONE"       #
##############################################

##############################################
#       WakeWordConfirmation is "TONE"       #
##############################################

"TONE"となり、通知音が設定された。

同じ手順で、Alexaが話すときの通知音設定(speech confirmation options)である、4も同様に有効化します。

3.14.2 Timezoneの設定

Alexaの管理コンソールのログイン画面から認証情報を入力しログインを実施する。
この管理コンソールを開く際は、ローカルのPC画面で良く、ラズパイのブラウザーから行う必要はないです。
60.png

設定をクリックする。
61.png

デバイスメニューの〇〇's ラズパイの登録名をクリックする。
62.png

デバイスのタイムゾーンからアジア > 日本標準時 (東京)をクリックし、タイムゾーンを日本に変更する。
63.png

3.15 Alexa サンプルアプリの動作確認

cd /home/pi/sdk-folder/sdk-build
PA_ALSA_PLUGHW=1 ./SampleApp/src/SampleApp ./Integration/AlexaClientSDKConfig.json ../third-party/snowboy/resources INFO

マイクに向かって、アレクサと呼び掛けて、音がしたら「今何時?」と聞いてみましょう。
返答があればインストール完了です。

手順は以上です。

これでalexaのサンプルアプリが利用できるようになりました。
amazonからの購入品ではないため、音楽の再生やラジオの再生はできないようでした。

参考文献

本記事の作成に当たり、以下の情報を参考にさせて頂きました。

7
8
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?