AlexaSkillを作る
注意点とかまとめておこうかな。
プログラムスキルが有る人なら本当に手軽に開発できるのでおすすめ。
とGoogleのブログで書いて良いものか。
つうかGoogleHOMEにも移植して稼げば良いのか(ひらめいた)
ふと今日は何ゴミ出すんだっけ?というのをAlexaに聞くことが出来れば朝楽だよね、というちょっとしたアプリ。
暇ができたらまとめるけど。
Alexa側のアプリとそれに結びついたクラウド側のアプリを作るだけ(ざっくり過ぎぃ)
この仕組みが結構楽ちんなのでオススメしたい理由。
ゴミ出しを例に取ると
プログラムスキルが有る人なら本当に手軽に開発できるのでおすすめ。
とGoogleのブログで書いて良いものか。
つうかGoogleHOMEにも移植して稼げば良いのか(ひらめいた)
●作ったもの
こちらの記事にしてある「ゴミ出しカレンダー」。ふと今日は何ゴミ出すんだっけ?というのをAlexaに聞くことが出来れば朝楽だよね、というちょっとしたアプリ。
アプリ自体の問題点はまた今度な。
●どうやって作るんだ
非常にざっくりと書いておくので具体的な方法は他をあたって。暇ができたらまとめるけど。
Alexa側のアプリとそれに結びついたクラウド側のアプリを作るだけ(ざっくり過ぎぃ)
1.Alexa用アプリの開発
Alexa自体がやっているのは、人が発話したものをクラウド上のアプリへ伝え、そのアプリが返した返答を喋ること。この仕組みが結構楽ちんなのでオススメしたい理由。
ゴミ出しを例に取ると
- 起動フレーズの判別(アレクサ、ゴミ出しカレンダーを起動、とか)
- 日付 or ゴミの種類の判別
- クラウドアプリから返ってきた結果の発話(今日は何ゴミを出すとか何ゴミはいつ出すとか)
が自動(セミオートとでも言うか)。
日本語での発話であればかなりの表現力があって返答もあまり難しく考えずに書けばOK。
難しい(地名とか)はひらがなで登録したけど。
日付などは元々Alexaが用意してくれている。今日と発話すれば今日の日付が渡る仕組み。めっちゃおもろいし、楽。
AWSで以下のサービスを使用中
とはいえ「ゴミ出しカレンダー」で妥協して頂いた模様。ありがたや。
ダメでしたww ブログ記事も書き換えになるやないかい…
※遂に通りました!
その名も
「ゴミ出しスケジュール「ゴミ助」三浦市横須賀市版」
「アレクサ、ごみすけで月曜は何ゴミ?」と聞けます。
めっちゃ簡単にしてもらえました。ありがたや。
難しい(地名とか)はひらがなで登録したけど。
日付などは元々Alexaが用意してくれている。今日と発話すれば今日の日付が渡る仕組み。めっちゃおもろいし、楽。
2.クラウドアプリの開発
クラウド上にアプリ開発できるサービスは数あれど、Alexaで開発するなら当然AWSですよね。AWSで以下のサービスを使用中
Lambdaはトリガーとなるリクエストのごとにコードをその場で実行してくれるサービス。
色々な言語が使えて自分の得意なのをチョイスすればいい。
俺はnodejsを使用。他にはC#、GO、Java8、Pythonが使えるらしい。
更にトリガーも最初からいくつも用意されていて、AlexaSkillKitを使えばAlexaからの呼び出しをトリガーにする設定となる。めっちゃ便利。
DynamoDBはNoSQLデータベースだ。
リレーショナルデータベースに慣れた俺には一瞬戸惑いもあったけど、分かってみれば成る程と思えるNoSQL。
とはいえ理解できてるのか言われればそんな細けえことは以下略、なのだけど。
RDB使いたい人はAmazonRDSというサービスもあるけど、nodejsと親和性の高そうな(そうでもないか)DynamoDBをチョイス。
どちらもアプリ規模的に無料枠内で使える予定。
●ちゃちゃっと開発、ちゃちゃっと公開…のはずが
まあプログラミングに慣れた人ならAWSの設定関連以外でハマることはないでしょう。
慣れてない人でもそんなにかからないと思いますけど。
AWS(+Alexa)はプログラム入門するために素晴らしく良い環境になると思いますよ。
そんなこんなで発案から3日もあれば大まかなものは出来ました。
が、これを皆様に使ってもらおうとするとAmazonでの審査が待っています。
これがまあ、俺のようなズボラPGにはなかなか敷居の高いものでw
ちゃんとテストPGも作ってやってる人ならそんなに問題ないと思うんですが、バグはともかく変なポイントがいくつか。
1.スキル名
「アレクサ、〇〇を呼び出して」
などと話しかけてスキルを使用するんですが、これ意外と面倒なので短い名前にしたんです。
すると審査で却下。
短いからバッティングしたのかと思いきや、理由は
「アレクサの標準スキルなのかカスタムスキルなのかわからないから」
カスタムスキルを呼び出したことが分かるように名前を付けてください、とのこと。
地味に辛い縛り…ちょっとした事を聞くだけなのに仰々しい名前を呼ばねばならんとか、ユーザビリティ低いw
ダメでしたww ブログ記事も書き換えになるやないかい…
※遂に通りました!
その名も
「ゴミ出しスケジュール「ゴミ助」三浦市横須賀市版」
「アレクサ、ごみすけで月曜は何ゴミ?」と聞けます。
めっちゃ簡単にしてもらえました。ありがたや。
2.説明文
スキルの説明も当然入力するのだけど
「わかりにくい」
「〇〇と入れてください」
「ちゃんと説明しましょう」
みたいな結構凹む指摘を受ける。
問われる国語力…w
その他、カスタムスロットや発話例の充実とか、そこそこプログラミング以外に面倒なところあるんだけど、それはまた、具体的になんか作るときにでもまとめようかなと。
コメント