Raspberry PiでAlexaのサンプル動かしてみた

image

こんにちは、ハードウェア好きのm-yamashitaです。

Raspberry Piを入手した & Amazon echoが待ちきれないので 試しにAlexaのサンプルを動かしてみました。(せっかくなので日本語対応) 手順を説明して行きます。*Raspberry PiのOSインストールなどの初期設定は省きます。

ハードウェア構成

Raspberry Piはリンクにあるセットがおすすめです。HDMI、SDカードが付いているのですぐに環境構築できます。

HDMIでディスプレイのスピーカーで音を出力していましたが、ぷつぷつ切れて使い物にならなかったです。マイクもある程度、集音性がないとサンプルのセンサーが反応してくれません。入出力ともにある程度のスペックで整えることをお勧めします。

Raspberry Piの環境構築

まず、サンプルを動作させるために、VNC Serverをインストールします。

$ sudo apt-get install tightvncserver
$ tightvncserver
$ vi /home/pi/.config/tightvnc.desktop

設定ファイルを下記のようにします。

[Desktop Entry]
Type=Application
Name=TightVNC
Exec=vncserver :1
StartupNotify=false

AmazonDeveloperアカウントの登録

アカウントがない方は登録してください。 日本語のスキルを使いたい場合は日本のAmazonで商品が見れるアカウントを紐づける必要があります。 設定→ユーザー権限→新規追加で登録が可能です。

Alexaのデバイス登録

こちらに手順が詳しく書いてあります。

この手順で作成して出来た下記のものを、後に設定します。

  • ProductID
  • ClientID
  • ClientSecret

Alexa Avs Sample Appのインストール

Raspberry Pi上のデスクトップにとりあえずインストールします。

cd Desktop
git clone https://github.com/alexa/alexa-avs-sample-app.git

インストール設定をします。 先ほどデバイス登録した際に取得した3点を下記のファイルにそれぞれ書き込みます。

vi ~/Desktop/alexa-avs-sample-app/automated_install.sh

日本語に対応させます。

vi ~/Desktop/alexa-avs-sample-app/samples/javaclient/config.json

localeを下記のように変更

"locale":"ja-JP"

日本語がサンプルアプリの言語リストに表示出来るように設定します。(39行目)

vi ~/Desktop/alexa-avs-sample-app/samples/javaclient/src/main/java/com/amazon/alexa/avs/config/DeviceConfig.java

public class DeviceConfig {
     private static final String DEFAULT_HOST = "https://avs-alexa-na.amazon.com";
     public static final String FILE_NAME = "config.json";
     private static final List SUPPORTED_LOCALES = new ArrayList();
     static {
         SUPPORTED_LOCALES.add(Locale.US);
         SUPPORTED_LOCALES.add(Locale.UK);
         SUPPORTED_LOCALES.add(Locale.GERMANY);
+        SUPPORTED_LOCALES.add(Locale.JAPAN);
     }

インストールスクリプトを実装します。(10分〜くらい時間がかかります。)

cd ~/Desktop/alexa-avs-sample-app
. automated_install.sh

インストール中に音声出力の設定、 言語(ここではとりあえずen-USで)を聞かれるので環境通りに設定します。

Alexa Avs Sample Appの起動

3つのターミナルを開いて下記のコマンドを順番に走らせます。

cd ~/Desktop/alexa-avs-sample-app/samples/companionService && npm start
cd ~/Desktop/alexa-avs-sample-app/samples/javaclient && mvn exec:exec
cd ~/Desktop/alexa-avs-sample-app/samples/wakeWordAgent/src && ./wakeWordAgent -e sensory

詳しい画面遷移はサンプルのwikiに書いてあります。 起動後のAmazonアカウントで認証する際に、日本語のAmazonを見れるアカウントでログインするのがポイントです。 そうすれば日本語のスキルを仕様することができます。

AlexaのiOS,Androidアプリをインストールして、同じアカウントでログインすれば紐付けされています。設定で地域や住所を登録すると、”今日の天気は?”と聞くと設定した地域の天気を教えてくれます。

Raspberry Pi起動時にシェルスクリプトを

みたいなので 先ほどの3つをまとめてスクリプトにしたら良いと思います。

やってみた感想

Amazonのサンプルが物凄くシンプルかつ、簡単に設定できたのでAmazonの本気度が感じました。マニュアルも充実しててほとんど迷いませんでした。ただ音に依存するものなので、マイクとスピーカーの性能が低すぎると使い物になりませんでした。(Raspberry Piの初期設定の環境では使い物にならなかった。)

マイクとスピーカーの性能が良いものにしてしまえば、本物と同等またはそれ以上の物が作れそうです。(Windowsでも出来るみたいなので、自作PCとかで動かしたらやばそう)

日本のスキルに初音ミクやピカチューと会話するスキルがあったので試して見ましたが、意外に楽しかったです。二つともまともな会話になりませんが、一人でいる時の寂しさは解消できそうです。またJoysoundのカラオケのスキルもあったのですが、音がメインだからか物凄くしっくりきました。声だけで色々出来ることはとても便利だな実感できる体験が出来ました。

Amazon Echoが待ちきれない方、簡単に作れるのでぜひ試してみてはいかがでしょうか!