Raspberry PiでAmazon Echoを作る方法

多くの人々が、日常のタスクを助けるために自宅やオフィスでアシスタントソフトウェアを使用しています。購入できるモデルは多くありますが、自分自身で作成できることをご存知でしたか?Amazon Developerを使用すると、Alexaソフトウェアを利用してRaspberry Piで自分だけのAmazon Echoを作成できます。

材料

このプロジェクトには、以下のものが必要です:

  • Raspberry Pi 3またはPi 2 Model BとMicro-USB電源ケーブル
  • Micro SDカード(最小8 GB) – オペレーティングシステムがインストールされていない場合、NOOBS(New Out of the Box Software)という使いやすいオペレーティングシステムがあります。NOOBSを入手する最も簡単な方法は、NOOBSがプリロードされたSDカードを購入することです。
  • USB 2.0ミニマイク
  • 外部スピーカーと3.5mmオーディオケーブル
  • USBキーボードとマウス、外部HDMIモニター
  • インターネット接続(EthernetまたはWiFi)
  • Pi 2がワイヤレスでインターネットに接続するには、WiFiワイヤレスアダプターが必要です。Pi 3にはWiFiが内蔵されています。

また読む: Amazon Echoをパーソナライズするための5つの必須ヒントとコツ

Amazon Developerアカウントに登録

Amazon Developerアカウントが必要な場合は、彼らのページで無料のアカウントを作成してください。AVS(Alexa Voice Service)利用規約をこちらでお読みください。

raspberrypi-echo-amazon-developer-account

プロフィール情報を入力してください。

raspberrypi-echo-register-profile-info

アプリ配布契約を読み、同意してください。

raspberrypi-echo-register-app-distribution-agree

アプリを収益化するかどうかを選択してください。

raspberrypi-echo-register-payments

Amazon Developerでデバイスを作成

Amazon Developerアカウントに登録した後、Alexaデバイスとセキュリティプロファイルを作成します。設定を進める際に、以下のパラメータ(ProductID、ClientID、ClientSecret)を注意深くメモしてください。後で再度入力する必要があります。

上部メニューから「Alexa Voice Service」を選択します。

「開発者へようこそ」画面が表示されます。

raspberrypi-echo-developer-welcome

最初の画面では、作成している製品について尋ねられます。

  1. まず、デバイスに名前を付けます。

raspberrypi-echo-product-name

  1. 次に、スペースや特殊文字を含まないProduct IDを入力します。

注意: 後で必要です。どこかに記録してください。

  1. 製品タイプとしてAlexa対応デバイスを選択します。

raspberrypi-echo-product-type

  1. Alexaにはコンパニオンアプリが必要です。この質問には「はい」と答えてください。

raspberrypi-echo-companion-app

  1. ドロップダウンメニューからワイヤレススピーカーを選択します。

  2. 説明ボックスに「GithubのRaspberry Piプロジェクト」と入力します。これはAVS用の情報で、他の人には表示されません。

  3. 「タッチ起動」と「ハンズフリー」のオプションの両方にチェックを入れます。

raspberrypi-echo-product-options

  1. デバイスの画像をアップロードできますが、今はこのステップをスキップしましょう。

  2. 商業配布と子供向け製品の質問には「いいえ」と答えます。

raspberrypi-echo-product-options-2

  1. 「次へ」をクリックします。

セキュリティプロファイルを作成

このページでは、新しいLWA(Login with Amazon)セキュリティプロファイルを作成して、ユーザーデータとこのプロジェクトのセキュリティ資格情報を特定します。

  1. 「新しいプロファイルを作成」をクリックします。

raspberrypi-echo-lwa-security-profile2

  1. プロファイルの名前を作成します。「Alexaセキュリティプロファイル」などにすることができます。

raspberrypi-echo-security-profile-name

  1. プロファイルの説明を入力します。「Alexaセキュリティプロファイルの説明」を選択できます。

raspberrypi-echo-security-description

  1. 「次へ」をクリックします。

  2. AmazonがClient IDとClient Secretを生成します。これらは後で必要な他の2つの値です。近くに保管してください。

raspberrypi-echo-id-and-secret1

  1. 許可されたオリジンと許可されたリターンURLを入力します。このプロジェクトのためにhttpとhttpsのルートを設定しているので、「Allowed Origins」フィールドに以下を入力します — 「http://localhost:3000」。

  2. 「追加」をクリックします。

  3. 最初に入力したのと同じボックスに「https://localhost:3000」と入力します。

raspberrypi-echo-allowed-origins-2

  1. 再度「追加」をクリックします。

  2. 許可されたリターンURLにも同じことを行いますが、以下の2つのURLを入力します:

http://localhost:3000/authresponse  
https://localhost:3000/authresponse
  1. 「Finish」をクリックする前に、ページはこのように見えるはずです。入力したフィールドにURLが残っていないことを確認してください。追加した後、灰色の背景に表示されます。

raspberrypi-echo-all-origins

  1. 「Finish」をクリックすると、この画面が表示されます。プロジェクトが作成され、インストールの準備が整いました。

raspberrypi-echo-product-screen

Alexaサンプルアプリをクローン

  1. ターミナルを開きます。

raspberrypi-echo-open-terminal2

  1. 次のコマンドを入力します:
cd Desktop  
git clone https://github.com/alexa/alexa-avs-sample-app.git

インストールスクリプトを更新して資格情報を追加

インストールスクリプトを実行する前に、Amazonから記録した資格情報(ProductID、ClientID、ClientSecret)でスクリプトを更新します。

  1. ターミナルで次のコマンドを入力します:
cd ~/Desktop/alexa-avs-sample-app  
nano automated_install.sh
  1. 実行すると、この画面が表示されます。キーボードの矢印を使って移動し、ProductID、ClientID、ClientSecretのフィールドを自分の値に置き換えます。

raspberrypi-echo-insert-device-data

変更は次のようになります:

ProductID="Your Device Name"  
ClientID="amzn.xxxxx.xxxxxxxxx"  
ClientSecret="4e8cb14xxxxxxxxxxxxxxxxxxxxxxxxxxxxx6b4f9"
  1. スクリプトを終了するにはCtrl + Xを押します。Yを入力してEnterを押して変更を保存します。

インストールスクリプトを実行

スクリプトを実行するには、ターミナルを開き、次のコマンドを実行します。

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

このスクリプトが実行されている間、いくつかの簡単な質問に答えるよう求められます。これは、プログラムをインストールする前にAmazonで必要なすべての設定を完了していることを確認するためのものです。

raspberrypi-echo-setup-questions

インストールは約30分かかるので、スナックを取りに行きましょう。

正しくインストールされると、ターミナルウィンドウは次の画像のようになります。

raspberrypi-echo-end-install2

3つのターミナル

Alexaアプリを実行するには、3つのステップを完了する必要があります。それぞれは別々のターミナルウィンドウで実行する必要があり、正しい順序で行う必要があります。

必要なプログラムがいくつかありましたが、持っていませんでした。進めるにつれてこれらのプログラムをインストールしました。同じ問題が発生した場合に備えて、各ステップにこのサイドノートを含めました。

ターミナル1

このウィンドウは、AVS(Alexa Voice Service)でアプリを認証するためのWebサービスを実行します。

ターミナルを開き、次のコマンドを入力します:

cd ~/Desktop/alexa-avs-sample-app/samples  
cd companionService && npm start

注意: npmはJavaScriptプログラミング言語のパッケージマネージャーです。コマンドを実行したときに利用できない場合は、こちらから入手できます。

スクリプトが終了すると、ウィンドウはこのように見え、Piがポート3000でリスニングしていることを示します。

raspberrypi-echo-port-3000

このウィンドウを閉じないでください。次のステップを完了するまで開いたままにしておく必要があります。

ターミナル2

このウィンドウはAVSと通信します。

別のターミナルウィンドウに次のコマンドを入力します。

cd ~/Desktop/alexa-avs-sample-app/samples  
cd javaclient && mvn exec:exec

注意: mvnはApache Mavenの略です。持っていない場合は、こちらから始めてください。

クライアントを実行すると、「デバイスを登録してください」というダイアログボックスが表示されます。

「はい」をクリックします。

raspberrypi-echo-open-site

一部のブラウザでは、接続が安全でないという警告が表示されることがあります。「詳細」をクリックしてこれを無視します。次の画面で「localhostに進む(安全でない)」をクリックします。

次に、開発者資格情報を使用してAmazonにログインします。

次の画面では、登録しているデバイスのために以前作成したセキュリティプロファイルを使用する許可を求められます。「OK」をクリックします。

raspberrypi-echo-use-security-profile

https://localhost:3000/authresponse」で始まるURLにリダイレクトされ、次の画像のようになります。

開いているダイアログボックスに戻り、「OK」ボタンをクリックします。クライアントは、Alexaデバイスからのリクエストを受け入れることができるようになりました。

ターミナルと音声サービスダイアログボックスを開いたままにしてください。

raspberrypi-echo-voice-service-box

ターミナル3

このウィンドウは、Alexaを起動するためのウェイクワードを使用してアプリケーションをインストールします。音声でAlexaを起動したくない場合は、このステップをスキップしてください。

新しいターミナルウィンドウを開き、SensoryまたはKITT.AIを使用してウェイクワードエンジンを起動するために次のコマンドのいずれかを使用します。

Sensoryウェイクワードエンジンを使用するには、次のように入力します:

cd ~/Desktop/alexa-avs-sample-app/samples  
cd wakeWordAgent/src && ./wakeWordAgent -e sensory

KITT.AIのウェイクワードエンジンを使用するには、次のように入力します:

cd ~/Desktop/alexa-avs-sample-app/samples  
cd wakeWordAgent/src && ./wakeWordAgent -e kitt_ai

テストしてみる

ウェイクワード「Alexa」と言ってAlexaに話しかけます。コマンドを出す前にビープ音を待ってください。例えば、「Alexa」と言ってビープ音を待ってから、「今何時?」と聞いてみてください。

正しく応答すれば、動作するAlexaデバイスが完成です!

AmazonのAlexaウェブページでさらにアイデアをチェックしてください。このAlexaはEchoができるすべてのことができます!