Raspberry Piでアレクサのサンプルアプリがありますが、12月19日頃のインストールスクリプトで日本語に対応していました。ただ、現在配布されているRaspbianのStretchはJava8のインストールスクリプトが対応していないので、それに対応させる必要があります。
事前準備
事前準備としては以下のものを準備します。
- ラズパイ:(とそれを動作させるために必要なもの一式: OSはRaspbian Stretch-liteを使用します)
- ステレオジャックのスピーカー(USB給電等)
- USBマイク
アマゾンの開発者アカウント
アマゾンのAlexa開発ページにアクセスして、日本のアマゾンのアカウントでサインアップする(海外のamazonアカウントを持っている人は多くないと思いますが、日本語のスキルを使うためには日本のアマゾンに登録しているメールアドレスとパスワードを使います。developer.amazon.comですが、日本のアカウントでサインアップできます)。
手順に従って登録し、ProductID, ClientID, ClientSecurityを記録します(日本語のページでできます)。
OS: Stretch(lite)の設定
ラズパイを起動したらロケールやネットワークの設定をします。
Alexaでは、Javaクライアントで最初に端末の認証が必要となるので、GUIが必要となります。なので、Desktop GUIをliteに導入します。
- sudo apt-get update
- sudo apt-get upgrade
- sudo apt-get install raspberrypi-ui-mods fonts-vlgothic chromium-browser git (liteの場合)
- (お好みで)rc-gui lxterminal leafpad
Alexa-avs-sample-appをダウンロード
以下のコマンドでプログラムをダウンロードします。
- git clone https://github.com/alexa/alexa-avs-sample-app.git
- エディタで、automated_install.shを開き、以下の項目について、開発者ページで取得した内容を記述
ProductID
ClientID
ClientSecret
- alexa-avs-sample-appに移動
- samples/javaClient/install-java8.shを編集する。 jessieと書いてある場所を見つけて、その上に以下の記述を追加し、ifの前にelをつけてelifとする。
if [ "$VERSION" == "jessie" ]; then
UBUNTU_VERSION="trusty"
...
を
if [ "$VERSION" == "stretch" ]; then
UBUNTU_VERSION="xenial"
sudo apt-get -y install dirmngr
elif [ "$VERSION" == "jessie" ]; then
UBUNTU_VERSION="trusty"
...
に変える。アプリのトップで、以下のコマンドを入力
- bash automated_install.sh (で実行する)
Setting Localeに6)ja-JPがあるので6を入力
後はインストールが終わるのを待つ。環境に寄りますが1時間から2時間ほど。
スピーカー等の調整
amixer cset numid=3 1 # ステレオジャックの場合
amixer cset numid=3 2 # HDMIの音声出力を使う場合
amixer cset numid=1 100% # スピーカーのボリュームを最大
amixer sset Mic 16 -c 1 # マイクの感度を最大(カード番号1の場合)
起動する
USBマイクはC-Mediaのものであれば、特に設定なく使える。
- samples/companionAppで npm start
- samples/javaClientでmvn exec:exec
(初回起動時に認証ページにアクセスするよう出てくるのでブラウザからURLにアクセスして、アマゾンのアカウントで認証する)
- samples/wakeWordAgent/srcで./wakeWordAgent -e sensory もしくは、./wakeWordAgent -e kitt_aiで「アレクサ」で起動できるようにする。
動作確認
Raspberry Pi 3 Model B (JP)で確認しています。Rapberry Pi Zero Wでは、javaClientまでは動作しますが、wakeWordAgentはエラーで動作しませんでした。