するめごはんのIT日記

主にITネタを書いていくのさ

Node-REDを使ってAlexaスキルを創る

ごきげんよう

この記事は ADVENTARの 「するめごはんのVUI・スマートスピーカー Advent Calendar 2018」 の10日目の記事です。

以前、Alexaスキルを作るツールとしてNOIDについてこのアドベントカレンダーで触れました

surumegohan.hatenablog.com

今回は同じくツールとしてNode-REDを使って挨拶スキルを作ります。

作り方

作り方と言っても、Qiitaや個人ブログ等に情報はあふれていると思います。

今回は以下の本に従ってみます。

f:id:surumegohan:20181210144941p:plain
スマートスピーカーアプリ開発入門

スマートスピーカーアプリ開発入門 3大スマートスピーカー Amazon Echo Google Home LINE Clova対応

1.まずはNode-REDのアカウントを作成

https://nodered.org/

f:id:surumegohan:20181210145035p:plain
Node-REDの画面

2.次にIBM Cloudのアカウント作成

https://www.ibm.com/cloud-computing/jp/ja/lite-account/

ライトで大丈夫です。

f:id:surumegohan:20181210145059p:plain
IBM Cloudの画面

3.IBM Cloudにログイン

ここで、アカウントIDはメールアドレスでログインできます。

f:id:surumegohan:20181210145122p:plain
ログイン画面

4.何も考えないと一部英語になる

本の通りに進めていけば問題ないですが、何も考えないでポチポチやっていくと、画面の一部が英語になります。

が、特に躓くような英単語はないと思います。

f:id:surumegohan:20181210145146p:plain
一部英語になる

5.作成できる画面

商業誌の内容をそのままは書けないのですが、以下のような画面になります。

話しかけられたら、インテントの種類を判別して起動時はLaunchRequestなのでそのまま挨拶をする。 それ以外はインテントの場合分けをswitchをかませて対応を分岐させ、応答を返したらHttpのResponseにつないであげます。

f:id:surumegohan:20181210145205p:plain
Node-REDで作成した最終的な画面

6.Alexa Consoleもほぼ通常通り

Node-REDで作成したインテント名で、挨拶のためのインテントを作成してあげます。

f:id:surumegohan:20181210145316p:plain
Alexa Console画面

ただし、エンドポイントはLambdaではないので、Node-REDで作成したURLをWebhookとして指定します。

f:id:surumegohan:20181210145340p:plain
エンドポイントを設定すること

7.後は話しかけるだけ

きちんと動きます。

f:id:surumegohan:20181210145407p:plain
テスト画面

もし、「応答に時間がかかっている」というエラーになった場合は、Node-REDの画面で、線がすべて結びきれているか確認してみましょう。 JSONの作成はできていても、レスポンスを返すようになっていない場合があります。

まとめ

Node-REDでもスキル作成はできますし、本を参考にすれば、Node-REDもAlexaも初体験だったとしても、ぜいぜい2~3時間で作成できると思います。

Amazonアカウント作成で躓く場合は別

Alexaのスキルをつくることに特化するならNOIDの方が断然楽だと思います。 ただ、Webhookとして、もっと汎用的にいろいろなことをやりたいとなると、Node-REDは選択肢の1つにはなるのではないでしょうか。

今回は以上です。