日本語Alexaをラズパイに導入する


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はエラーで動作しませんでした。