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)利用規約をこちらでお読みください。

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

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

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

Amazon Developerでデバイスを作成
Amazon Developerアカウントに登録した後、Alexaデバイスとセキュリティプロファイルを作成します。設定を進める際に、以下のパラメータ(ProductID、ClientID、ClientSecret)を注意深くメモしてください。後で再度入力する必要があります。
上部メニューから「Alexa Voice Service」を選択します。
「開発者へようこそ」画面が表示されます。

最初の画面では、作成している製品について尋ねられます。
- まず、デバイスに名前を付けます。

- 次に、スペースや特殊文字を含まないProduct IDを入力します。
注意: 後で必要です。どこかに記録してください。
- 製品タイプとしてAlexa対応デバイスを選択します。

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

ドロップダウンメニューからワイヤレススピーカーを選択します。
説明ボックスに「GithubのRaspberry Piプロジェクト」と入力します。これはAVS用の情報で、他の人には表示されません。
「タッチ起動」と「ハンズフリー」のオプションの両方にチェックを入れます。

デバイスの画像をアップロードできますが、今はこのステップをスキップしましょう。
商業配布と子供向け製品の質問には「いいえ」と答えます。

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

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

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

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

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

再度「追加」をクリックします。
許可されたリターンURLにも同じことを行いますが、以下の2つのURLを入力します:
http://localhost:3000/authresponse
https://localhost:3000/authresponse- 「Finish」をクリックする前に、ページはこのように見えるはずです。入力したフィールドにURLが残っていないことを確認してください。追加した後、灰色の背景に表示されます。

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

Alexaサンプルアプリをクローン
- ターミナルを開きます。

- 次のコマンドを入力します:
cd Desktop
git clone https://github.com/alexa/alexa-avs-sample-app.gitインストールスクリプトを更新して資格情報を追加
インストールスクリプトを実行する前に、Amazonから記録した資格情報(ProductID、ClientID、ClientSecret)でスクリプトを更新します。
- ターミナルで次のコマンドを入力します:
cd ~/Desktop/alexa-avs-sample-app
nano automated_install.sh- 実行すると、この画面が表示されます。キーボードの矢印を使って移動し、ProductID、ClientID、ClientSecretのフィールドを自分の値に置き換えます。

変更は次のようになります:
ProductID="Your Device Name"
ClientID="amzn.xxxxx.xxxxxxxxx"
ClientSecret="4e8cb14xxxxxxxxxxxxxxxxxxxxxxxxxxxxx6b4f9"- スクリプトを終了するにはCtrl + Xを押します。Yを入力してEnterを押して変更を保存します。
インストールスクリプトを実行
スクリプトを実行するには、ターミナルを開き、次のコマンドを実行します。
cd ~/Desktop/alexa-avs-sample-app
. automated_install.shこのスクリプトが実行されている間、いくつかの簡単な質問に答えるよう求められます。これは、プログラムをインストールする前にAmazonで必要なすべての設定を完了していることを確認するためのものです。

インストールは約30分かかるので、スナックを取りに行きましょう。
正しくインストールされると、ターミナルウィンドウは次の画像のようになります。

3つのターミナル
Alexaアプリを実行するには、3つのステップを完了する必要があります。それぞれは別々のターミナルウィンドウで実行する必要があり、正しい順序で行う必要があります。
必要なプログラムがいくつかありましたが、持っていませんでした。進めるにつれてこれらのプログラムをインストールしました。同じ問題が発生した場合に備えて、各ステップにこのサイドノートを含めました。
ターミナル1
このウィンドウは、AVS(Alexa Voice Service)でアプリを認証するためのWebサービスを実行します。
ターミナルを開き、次のコマンドを入力します:
cd ~/Desktop/alexa-avs-sample-app/samples
cd companionService && npm start注意: npmはJavaScriptプログラミング言語のパッケージマネージャーです。コマンドを実行したときに利用できない場合は、こちらから入手できます。
スクリプトが終了すると、ウィンドウはこのように見え、Piがポート3000でリスニングしていることを示します。

このウィンドウを閉じないでください。次のステップを完了するまで開いたままにしておく必要があります。
ターミナル2
このウィンドウはAVSと通信します。
別のターミナルウィンドウに次のコマンドを入力します。
cd ~/Desktop/alexa-avs-sample-app/samples
cd javaclient && mvn exec:exec注意: mvnはApache Mavenの略です。持っていない場合は、こちらから始めてください。
クライアントを実行すると、「デバイスを登録してください」というダイアログボックスが表示されます。
「はい」をクリックします。

一部のブラウザでは、接続が安全でないという警告が表示されることがあります。「詳細」をクリックしてこれを無視します。次の画面で「localhostに進む(安全でない)」をクリックします。
次に、開発者資格情報を使用してAmazonにログインします。
次の画面では、登録しているデバイスのために以前作成したセキュリティプロファイルを使用する許可を求められます。「OK」をクリックします。

「https://localhost:3000/authresponse」で始まるURLにリダイレクトされ、次の画像のようになります。
開いているダイアログボックスに戻り、「OK」ボタンをクリックします。クライアントは、Alexaデバイスからのリクエストを受け入れることができるようになりました。
ターミナルと音声サービスダイアログボックスを開いたままにしてください。

ターミナル3
このウィンドウは、Alexaを起動するためのウェイクワードを使用してアプリケーションをインストールします。音声でAlexaを起動したくない場合は、このステップをスキップしてください。
新しいターミナルウィンドウを開き、SensoryまたはKITT.AIを使用してウェイクワードエンジンを起動するために次のコマンドのいずれかを使用します。
Sensoryウェイクワードエンジンを使用するには、次のように入力します:
cd ~/Desktop/alexa-avs-sample-app/samples
cd wakeWordAgent/src && ./wakeWordAgent -e sensoryKITT.AIのウェイクワードエンジンを使用するには、次のように入力します:
cd ~/Desktop/alexa-avs-sample-app/samples
cd wakeWordAgent/src && ./wakeWordAgent -e kitt_aiテストしてみる
ウェイクワード「Alexa」と言ってAlexaに話しかけます。コマンドを出す前にビープ音を待ってください。例えば、「Alexa」と言ってビープ音を待ってから、「今何時?」と聞いてみてください。
正しく応答すれば、動作するAlexaデバイスが完成です!
AmazonのAlexaウェブページでさらにアイデアをチェックしてください。このAlexaはEchoができるすべてのことができます!