surga Lab

開発したい!!

GoogleAIYにAlexaを乗せてみる

Raspberry Pi Advent Calendar 2017 - Qiita参加記事になります。

GoogleAIYとAlexaとラズパイと

以前買ったGoogleAIY、

blog.hisurga.com

手持ちのラズパイで自由度無限大のスマートスピーカーを開発できるのは素晴らしいです。見た目もいいですし。

でももっと贅沢言えば、Google Assistant以外でも遊んでみたい。

というか正直、Alexaと遊びたい。未だに招待メールこないし。


てことでGoogleAIYにAlexaを乗せてみました。

必要なもの

  • Raspberry Pi3
  • GoogleAIYセット

=とりあえずGoogleAIYが動けばいいってこと。

Step1 GoogleAIYのセットアップ

AmazonのGitHubには素のRaspbianを入れろとなっていますが、今回はGoogleAIY用OS(といっても結局Raspbianだと思います)を入れてください。

GoogleAIYのマニュアルに従うだけです。

Step2 Amazon Develoerに登録

Alexa開発を行うにはデベロッパー登録が必要です。すでに持っている方は飛ばしで。

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

日本語対応していますので特別問題はないと思います。

Step3 プロファイルの作成

ダッシュボード上部のタブクリック→Alexa Voice Service "始める"をクリック

f:id:hisurga:20171213224325p:plain

Welcome画面で"開始する"へ

製品情報の登録

遊びでも製品は製品だ!

製品名:適当
製品ID:適当
アプリやデバイス:端末
コンパニオンアプリ:はい
カテゴリー:その他(Rapsberry Pi Project on GitHub) //多分なんでもいけるはず

f:id:hisurga:20171213224403p:plain

概要:適当
やり取り:タッチ, ハンズフリー
画像アップロード:スキップ

f:id:hisurga:20171213224445p:plain

商品としての配信:いいえ
子供向け:いいえ

f:id:hisurga:20171213224458p:plain

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

"プロフィール新規作成"でプロファイルを作成します。
プロファイルの名前、概要については適当に"Sample Security Profile"とかでいいんじゃないでしょうか。

f:id:hisurga:20171213224542p:plain

作成するとセキュリティプロファイルIDとかいろいろでてきますので、

"許可された出荷地"

http://localhost:3000
https://localhost:3000

"許可された返品 URL"

http://localhost:3000/authresponse
https://localhost:3000/authresponse

f:id:hisurga:20171213224612p:plain

本当Amazonって感じの機械翻訳にそれぞれ上記URLを追加、同意して完了です。

f:id:hisurga:20171213224703p:plain

プロファイルを有効にするために、https://developer.amazon.com/lwa/sp/overview.htmlで選択有効しておきます。

f:id:hisurga:20171213224637p:plain

プライバシーポリシーURLは適当にhttp://ex.comとかでいいです。

これでClient IDClient Secretを参照できます。

Step4 Sampleアプリをclone

github.com

raspberry piの操作です。

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

続いて Product ID Client ID Client Secret を自分のものに更新します。
emacsが入っていなかったら事前に sudo apt-get install emacs で入手しておきましょう。

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

記入場所はファイルの最上部ですのでわかりやすいと思います。

手元のパソコンでやりたい場合はsshで。

blog.hisurga.com

Step5 インストール用スクリプトを走らせる

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

基本はYES

which locale
1) en-USを選択
3.5mm jack or HDMI
2)HDMIを選択

これ多分GoogleAIY用OSだとデフォルトがAIYのスピーカーになってるんだと思います。
なのでHDMIと設定しても問題なくAIYのスピーカーから音声が流れました。

want to enable "Alexa" Wake Word Detection
YES(めっちゃ長い)

Step6 デモ準備

ターミナルを3つ開きましょう。

Terminal1

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

Listening on port 3000となればオッケーです。

Terminal2

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

しばらくして以下のようなメッセージが出たらYes.

Please register your device by visiting the following URL in a web browser and following the instructions: https://localhost:3000/provision/hogehoge. Would you like to open the URL automatically in your default browser?

たぶんプライバシーエラーが出ると思うので、
Advanced→Proceed to localhost(unsafe)をクリックです。

するとAmazonのログイン画面が出るので、Developer用アカウントでログイン。

Okay押したら "セキュリティプロファイルを渡すよ" と表示されるので信じてOkay.

device tokens readyとなれば成功なので、ブラウザから離れてLogin to RegisterウインドウのOKをクリック。

この時点でとりあえずAlexaは試せると思います。

マイクのアイコンをクリックして話しかけると、、、しゃべるぞ。

Terminal3

kitt_aisensoryとかいうサードパーティー製エンジンを利用して

Alexa!!!

って呼びかけたら反応してくれるようにするらしいんですが、GitHubのコマンドそのままを打っても上手くいかなそうなので少し調べる必要がありそうです。多分原因はマイクがUSB入力決め打ちになっているとかだと思うんですが、、、

後日更新(予定)

ようこそ...『Alexaの世界へ』へ...

(kitt_aiを除いて)特に苦労することなく導入できました。GoogleAIY用OSといっても標準OSとそんなに変わらないので、結局AlexaSDKの手順書通りでいいってことですね。

つまりGoogleAIYを買っておけば、いい感じの見た目でGoogleHomeもAlexaも楽しめますよってこと。英語だけど。

  • なんとなくAlexaのほうが好きだ。でも招待メールはまだこない。

  • 自作で自由度上げたい。

  • GoogleAIYを買ってしまった。

Google AIY Voice Kit - 日本語補足説明書付き

Google AIY Voice Kit - 日本語補足説明書付き

そんなあなたへ、どうです?

余談

GoogleAIYのスピーカーまじ音でかいです。

ラズパイ側のマスターの音量下げても、alsamixerの音量下げても全然変わらないです。なぜだ。