Raspberry Piで自作Amazon Echoを作ろう~ラズパイの準備~

ついにAmazon Echo国内販売の発表が来ましたね。

GoogleやLINEなども参入し始めているスマートスピーカー市場ですが、
Echoの国内販売は年内だそうです。
やや乗り遅れ気味ですが、折角なので一足早くAlexaをラズパイから触って見たり、
Skillの作成を試してみようと思います。

 

目次

Raspberry Pi
必要なもの
SDカードにOSをインストール
AVS
Amazon Developerアカウントの作成
デバイスの登録
avsサンプルアプリの導入
avsサンプルアプリの起動

 

Raspberry Pi

今回Echoの代わりに使うラズパイですが、低価格の小型コンピューターです。
SDカードにOSをインストールし、電源を繋げるだけで立派なPCとして使用できます。

 

 

NASに出来たり、音楽プレーヤーに出来たり使い方は様々ですが、
今回はAlexaと連携する疑似Echoとして使います。

 

必要なもの

Raspberry Pi 3
MicroSDカード
・メモリカードリーダー
HDMIケーブル
・USBキーボード
・USBマイク
・USBスピーカー
・USB電源(2.4A推奨)

 

SDカードにOSをインストール

ラズパイでは専用のDebianベースのOS「Raspbian」を使用出来ます。
今回は上記のOSを使うので、別PCから用意したMicroSDカードにRaspbianをインストールしましょう。
※カードによってラズパイと相性悪い物もあるようなので、購入する場合はちょっと調べた方がよさそうです。

・下記公式サイトにアクセスし、NOOBSをダウンロードします。

https://www.raspberrypi.org/downloads/noobs/

NOOBS LITEは軽い代わりにインターネット経由でのインストールとなります。
今回は通常のNOOBSでインストールを行います。

・ダウンロードしたNOOBSを解凍し、フォーマットされてあるMicroSDにコピー

書いてある通り、フォーマットは忘れずに。
コピーし終わったMicroSDの中身はこんな感じになっています。

 

 

・ラズパイの起動

コピーが終わったら、いよいよ起動です。
MicroSDカードをラズパイに差し込み、電源、HDMI、USBキーボード等をつなげてみましょう。

 

 

上記の画面が映りましたらRaspbianを選択し、Installしましょう。

 

 

インストールが完了したらupdateやupgradeを済ませておきましょう。
また、HDMIやらキーボードやら接続が面倒な場合はVNC等を導入した方が今後楽かもしれません。

 

AVS

ラズパイが動くようになりましたら次はAVSを入れ、Alexaと会話出来る様にします。

ラズパイに導入するAVS(Alexa Voice Service)は音声認識を行い、それをクラウド上のAlexaに渡す役割を持っています。
こちらをラズパイに導入するだけでラズパイがEchoと同様な役割を果たせるようになります。

では進めていきましょう。

 

Amazon Developerアカウントの作成

Alexaにデバイスを追加するには上記アカウントが必要となりますので作成しましょう。

https://developer.amazon.com/home.html

 

バイスの登録

Amazon Developerアカウントを使い、開発者ポータルにログインを行いましたら、デバイスの登録を行いましょう。

次は下記のサイトを参考にデバイスの登録をします。
https://github.com/alexa/alexa-avs-sample-app/wiki/Create-Security-Profile

ざっくり流れを説明しますと……
バイス情報の登録→セキュリティープロファイルの作成→セキュリティープロファイルの有効化
という感じです。

ラズパイはセキュリティープロファイルを使い、Alexaに認証します。

上記手順中にメモる必要があるのは以下の三点
・ProductID
・ClientID
・ClientSecret

 

avsサンプルアプリの導入

登録が終わったら早速avsサンプルアプリを入れましょう。

以下よりラズパイでの操作です。

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

automated_install.shに上記でメモった三点を記入出来る所があるので編集します

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

 

 

実行します

. automated_install.sh

色々聞かれますが、localeを1(en-US)にし、Audio Outputを3.5mm jackならHDMIなら2
他はyesを指定し、インストールしましょう

 

avsサンプルアプリの起動

インストールが終わったらいよいよ起動です。

三つターミナルを開き、以下三つを起動させます。

①AVSに認証を行うウェブサービスを立ち上げます
cd ~/alexa-avs-sample-app/samples/companionService
npm start

②AVSとやり取りを行うアプリの起動
cd ~/alexa-avs-sample-app/samples/javaclient
mvn exec:exec

ダイアログボックスが開くのでYesを選択し、ブラウザにdeveloper accountでログイン

③Alexaと呼びかけると、聞き取りを開始するwakewordengineの起動
cd ~/alexa-avs-sample-app/samples/wakeWordAgent/src
./wakeWordAgent -e sensory

これにてセットアップが完了しました。

 

繋げたマイクに"Alexa"と喋りかけるとポーン!と音が鳴り、何か聞けば反応が帰ってくるはずです。
試しに"What time is it in Japan?"と聞くとちゃんと日本の現在の時間を教えてくれました。

後は公式サイトから好きなSkillを有効化することによって、Echoの様に使えます。

無事ラズパイからAlexaが使える事を確認出来たので、次回はSkillを作ってみようと思います。

 

 

 

アプリケーション開発バナー