技適通ってなくてもAlexaを使う方法 Raspberry Pi編

「あれくさー!」と話しかけてみたいけど、 海外のAmazonで販売されているEcho(Echo, Dot, Tap)を個人輸入するのはちょっとアレだし・・・。と思っていたら、Echo の中の人Alexa Voice Service が Echo 以外のデバイスやPCでも動かせるようになったというので、早速Raspberry Piに入れてみました。

準備・用意するもの

Amazon開発者ポータルのアカウント

Amazon開発者ポータル でアカウントが必要です。AmazonアプリストアにAndroid向けアプリを公開している場合など、すでにアカウント開設済みの場合は、既存のものが使えます。無償で開設できますので、持ってない場合は、サインアップしておきます。

Raspberry Pi

Raspberry Pi 3かRaspberry Pi 2 Model Bがいいみたいです。ここでは Raspberry Pi3 を使って試してみました。Raspberry Pi本体を動作させるために必要な一式(電源、SDカード、HDMIケーブル)以外に、マイクとスピーカーが必要です。Raspberry Piには音声入出力がついてないので、USBマイクと3.5mmのAudio Jackでつながる外部スピーカーを用意します。

IMG_4289

Raspberry Pi はRaspbian (Jessie)をインストールしました。NOOBS使ってデフォルトの状態でJessieをインストールしてます。

Raspbian のインストール時はHDMIで繋いだモニターを使っても、Alexa完成後はヘッドレスで使用したい場合は、SSHの他にVNCのインストール・設定が必要です(Terminal を3つ開かなくては行けないし、ブラウザを開いて認証する必要があるので)。Tightvncserverのインストールについてはこの辺を参考に。

Alexa Voice Service への登録

Alexa Voice Service をインストールするデバイスを予め登録する必要があります。Amazon開発者ポータルに入って、Alexa Voice Service へ行き、今回インストールするRaspberry Piを登録します。

メニューから ALEXA へ行き、Alexa Voice Service をクリック。

amazon-developer-portal-alexa

右上 Register a Product のドロップダウンから Device をクリック。

create-new-device

Create a new Device Type でこれからインストールするRaspberry Pi用のDevice Typeを作成します。Device Type ID、Display Name が必要項目。Device Type IDは半角英数とアンダースコアのみ。Display Name は日本語が使えないみたいです。

create-new-device2

Nextをクリックし、次の Security Profile 作成へ。Security Profile のセレクトボックスから”Create a new profile” を選び、Security Profile Name、Security Profile Description を適当に埋め Next をクリック。

create-new-device-security-profile

Client ID、Client Secret が生成されます。Device Type ID と合わせて後で必要になるので、テキストファイルにこの3つをコピペしておきます。タブから Web Settings をクリック 。

create-new-device-security-profile2

Allowed Origin, Allowed Return URLs へそれぞれ、

https://localhost:3000

https://localhost:3000/authresponse

を入力して完了。

websettings

Alexa Voice Service のインストール

Raspberry Pi の Terminal を開き、Alexa AVS Sample Appをクローンします。

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

ダウンロードしたばかりの alexa-avs-sample-app ディレクトリへ入り、automated_install.sh ファイルをnanoやviエディタで開きま、下記の3つの変数を自分の環境に合わせてアップデートします。

automated-install.sh
<!–


ProductID="Device Type InfoセクションのDevice Type ID"
ClientID="Security ProfileセクションのClient ID"
ClientSecret="Security ProfileセクションのClient Secret"

–>
これでやっとAVSのインストール開始です。


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

インストールスクリプトが始まり、ターミナルに表示される質問にいくつか答えて、インストール完了です。Localeを選ぶところがありますが、1) en-USを選びます。思ったより時間がかかりました。コーヒーでも買いに行ってればよかった。

Alexa Voice Service の起動

automated_install.sh が滞りなく終了すればインストールは完了です。早速Alexa Voice Serviceを起動してみます。

Raspberry Piでターミナルウィンドウを3つ開きます。

  • 1つ目のウィンドウ

cd ~/alexa-avs-sample-app/samples

cd companionService && npm start

  • 2つ目のウィンドウ

cd ~/alexa-avs-sample-app/samples

cd javaclient && mvn exec:exec

この“`mvn exec:exec“`を実行するとポップアップが表示されるので、Yes/はいをクリックしてブラウザを開きます。ブラウザは Amazon開発者ポータルの認証ページを開きますので、IDとパスワードを入れて、認証を完了します。

javaclient

ブラウザの画面にはDevice Token Ready と表示され、ポップアップのダイアログの表示も変わます。OKをクリックするとAlexaが使えるJavaのアプリが立ち上がってます。このJavaのアプリ、中央の”Listen”ボタンを押すと、Alexaが入力待ちの状態になりますので、話しかけることができます。ブラウザを開いてもセキュリティアラートが出てしまう場合はこちらを。

  • 3つ目のウィンドウ

cd ~/alexa-avs-sample-app/samples

cd wakeWordAgent/src && ./wakeWordAgent -e sensory

もしくは


cd ~/alexa-avs-sample-app/samples

cd wakeWordAgent/src && ./wakeWordAgent -e kitt_ai

のどちらかを実行します。これはJavaアプリのボタンを押さなくても、Wake Up Wordで音声認識を開始することができるようにするためです。ボタンを押して実行させるだけでいい場合には不要です。今回試した環境ではなぜかSensoryが動いてくれず、KITT.ai を使いました。

Alexa と話しかけてみる

“あれくさー” と話しかけ、Wake Up Wordとして認識されると短いビープ音がなりますので、そのあと命令を話しかけてみてください。

Enable Sleep Sounds でSleep Soundsスキルをインストールして、是非 Swiss Massage に挑戦してみてください。

技術基準適合証明等を受けた機器の検索


Appendix

Alexa Voice Service Github リポジトリ

Amazon Alexa Sample App

Step-by-Step Guide for Raspberry Pi

Raspberry Pi インストール&設定

Raspberry Pi 3インストール→無線LAN→日本語入出力→Macから操作(SSH・VNCサーバ・AFP)

Raspberry Pi 3 インストールの巻(1)

Raspberry Pi 3でRaspbian Jessieをセットアップする方法

Raspberry Piの設定【VNCサーバ(tightVNC)の設定】

RASPBERRY PI で TIGHTVNC サーバ

[メモ] Raspberry Pi : VNCサーバ設定(自動起動)

 

Tightvncserver のインストール

Tightvncserverで起動。初回はパスワードの設定など

ブラウザのプライバシーエラー

mvn exec:exec で開くJavaアプリからAmazon 開発者ポータルで認証が行われるはずですが、ブラウザによってはセキュリティ警告が出てくる場合があります。

プライバシー_エラー

そんな時は、詳細設定 をクリックして、

プライバシー_エラー2

 localhost にアクセスする をクリックして、先に進みましょう。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s