フォームを埋めたら”NEXT“ボタンを押して次へ。セキュリティー設定を行う。PROFILE“をクリック。セキュリティー設定のフォーム入力項目はこれだけ。プロファイルの名前を入力。Secret“の二つが生成されてます。URLs”の入力項目が現れるので、それぞれに“http://localhost:3000′′、”http://localhost:3000/authresponse”と入力して”UPDATE”。ちなみに、最後に入力したURL二つは、ラズパイでAlexaSDKをインストールした後に、認証するために必要になります。ID“などはラズパイの設定ファイルに書き込むことになります。ほい!ではAVS-SDKの必須ライブラリインストールもうすでにぐったりしている人もいるかもしれないが、ぐったりするのはこれからだから。いえ、この先、コピペで行けるから気は楽に。Easy.ということで、ここからは、ラズパイのコマンドラインを立ち上げてひたすらコピペ。本当にコピペだけでAlexaのサンプルアプリ動作まで行けてしまうんだけど、先に述べたように「忍耐力」は必要だからね。(あと、公式ドキュメントだけだとハマった部分もあったんだけど、ハマらないようにガイドします。$SOURCE_FOLDER2.Buildツール類をインストールapt-getだけでなく、ソースからmake(コンパイル)しないといけないライブラリ類もあるので。installこの辺りはまあまあ余裕。installこのあたりからいきなりコンパイル時間が長い!ぶっちゃけ、腹筋30回(インターバル30秒)×3セットやっても、全然時間が余ったので、25kgのハンドグリップをニギニギしつつ待つ。installプッシュアップバーを使った腕立て深めで10回×3セットでは時間が余りまくったので、水曜日のダウンタウンみてた。libsqlite3-devapt-getが癒し。インストールできるね。installまだまだ続くよ。ぶっちゃけ、夜から構築作業し始めたから、make放置して寝ようかと思った。installここらあたりになってくると、なんのライブラリを入れているのかよくわからない。install記憶が定かではないが、確かこの辺りでお風呂に入ったけど、出てきてもまだmake終わってなかった。installプラグインのGoodってなんやねん。installプラグインのBadってなんやねん。待ち疲れて、make放置して寝た。installインプットされた音声を録音したり再生したりするライブラリらしい。SDKでは、話しかけた音声をストリーミングで解析するのではなく、一度音声ファイルに保存して、保存したファイルを音声解析するのかな。"Sensory"これ結構重要なんだよね。Siriって、ホームボタンを押して音声入力モードにしてから話かけるわけじゃん。音声入力インターフェースって、なんらかのトリガーで音声入力モードにすることで音声認識をスタートさせるわけだけど、Siriはホームボタン長押しがトリガー。Alexaはその起動に物理的なボタンではなくてAlexaと呼びかける「音声」をトリガーにしている。実はこれって結構大変で、それを担ってくれるのがSensory。(間違ってたらごめん。ldconfigapt-getは癒し。-DCMAKE_INSTALL_PREFIX=$LOCAL_BUILD3.設定ファイルに設定を書き込む(ここどハマりポイント)viでもvimでもnanoでもなんでもいいですが、設定ファイルを編集します。設定ファイルは以下のパスに。~/BUILD/Integration/AlexaClientSDKConfig.jsonちなみに、ここは私がどハマりしたポイントです。設定ファイルの項目に何を書き込めばいいかわからない部分がいくつかあって悩んだ。(公式ドキュメントに書いていない。}まず"authDelegate"内の値。"refreshToken"は、後の認証作業で自動的に書き込まれるので今は空欄にしておいてOK。(これは公式にそう書いていたので安心。)"clientSecret"、"clientId"の二つは、上記ラズパイのデバイス登録したときに表示された値を書き込みます。Developersで登録したデータをあちこち探してもそんな値はない。ID"の値を書き込んでおく。)次に、"deviceSerialNumber"。Developersのデータを見ていても「それらしい」雰囲気のものすらない。どんな値を設定すればいいのかさっぱりわからないので、適当に”12345678”といれたら通った。(のちに、何処かのサイトでIDはなんでもいいと書いていた。)次に、"alertsCapabilityAgent"内の値。"databaseFilePath"は、データベースのファイルパスなんだけど、とりあえず任意の場所でOK。ex./home/pi/alexa/database.dbデータベースがなければ、そのパス上にDBが作成されるので、ご安心を。"alarmSoundFilePath","alarmShortSoundFilePath","timerSoundFilePath","timerShortSoundFilePath"これらの値の意味がわからない。意味がわからないので、空でいいや、と全部の値を空文字に設定してコンパイルしたら以下のようなエラーがでるし。MediaPlayer:doStopFailed:reason=gstElementGetStateFailedつまり、上記4つの値は空にはできないと思い、公式githubのissueを手当たり次第に当たっていたら、アラームとタイマー用の音声ファイルを設定しないといけないってことが判明。https://developer.amazon.com/public/solutions/alexa/alexa-voice-service/content/alexa-voice-service-ux-design-guidelinesここからタイマーとアラームの4つの音声をラズパイ上の任意の場所にダウンロード。もって、4つのファイルパスを上記の設定ファイルに書き込む。installまたこのmakeが長い。AuthServer/AuthServer.py上記コマンドで、ラズパイ内にWEBサーバーが立ち上がる。すると、ページがリダイレクトされて、Amazonの認証ページに進むので認証ボタンを押す。認証に成功すると以下のような画面が現れて、先ほどの設定ファイルに"refreshToken"が自動的に書き込まれる。$LOCAL_BUILD/modelsAlexaのコマンドが表示されAlexaがスタートした!早速、Alexaに話しかけてみる。help."私:(よし!やったー!うまくいったどー!)いやー、ラズパイちゃんにAlexaさんが載って、ちゃんとお返事してくれています!難しいことはしていないけど非常に時間がかかっただけに、Alexaさんの反応を聞けて嬉しい限り。この先、話しかけるとなぜかアプリが落ちる。now?"とか、Alexaさんと別の会話をしようとすると一気に機嫌を損ねてしまうようで。急にブチ切れて、落ちちゃう。公式のGithubにもissueが結構溜まってきてるし、Sampleアプリの不具合なのか、私の設定がどこかでミスっているのか・・・。今回は一旦この辺りにしておいて、近いうちに修正していきます。おまけ(費用のお話)昔買ったラズパイを使いまわしているので、現在の価格と相違があるかもしれませんが、予算的なことを。ちなみに、ラズパイ本体以外は、全部格安のもので揃えました。※今回はリモートディスクトップ(VNC)を使ってラズパイを操作したので、モニター等は使っていません。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。