最終的に対話だけで完結する何かしらのスキルを作るのが目的。
軽く噛み砕いて自分なりに章ごとにまとめてみた。スマートホーム端末系はやらない予定なので細かいところまでは書かない。
https://developer.amazon.com/ja/docs/ask-overviews/build-skills-with-the-alexa-skills-kit.html
Alexa Skills Kitによるスキルの作成
- スキルの機能と種類を決める。AWSLambdaや任意のクラウドに建てたWebサービスと連携出来る。ただスマートホームスキルを使う場合はLambdaだけっぽい。
Alexaのスキルで開発できる種類
- カスタムスキル
- 細かいところまで自分で作成する種類らしい。対話だけで処理するスキルはほぼこれが該当すると思われる。
- スマートホームスキル
- 使う人に特定のフレーズを覚えさせる事なく、スマートホーム端末を制御する端末を作るならこれ使ってねとあった。自分で特別な言葉を言わせずに「Alexa リビングの照明を付けて」で対応させられるって事のようだ。温度の上下、照明の上げ下げや点灯といったイベントは勝手に判定してくれて、その後の処理から自分で作成する。
- フラッシュブリーフィングスキル
- フラッシュニュースに自分のスキル追加したいならこいつを使う。「Alexa 今日のニュースは?」で聞けるのは現状ニュースサイトのヘッドラインみたいなフラッシュニュースだけ。処理を書くというより、ニュース用のコンテンツを用意するだけっぽい。
ユーザーによるスキルとの対話
Alexaのコンテキストの対話モデルは、従来のアプリでのグラフィカルユーザーインターフェースに似ています。ボタンをクリックしてダイアログボックスからオプションを選択する代わりに、ユーザーは自分のリクエストや、質問に対する答えを音声で伝えます。
- ユーザの声(ウェイクワード) -> Alexa端末 -> Alexaサービス -> Alexa端末 -> ユーザ
- リクエストとレスポンスを全て音声で行うって考えるとしっくり来る。
- ウェイクワードの後、カスタムスキルなら独自の対話モデルへ、スマートホームスキル等はAlexaが標準で用意している対話モデルへ移行する。例えば「Alexa おれおれてんきよほうで明日の天気教えて」の「おれおれてんきよほう」の部分がカスタムスキルで設定されたフレーズに該当するならその後独自の対話モデルへって事か。
スキル開発の要件
- 共通で開発者アカウント作る。
- カスタムスキル開発の要件
- インターネットアクセス可能なエンドポイント用意してね。Lambda使うならAWSのアカウントも作ってね。
- Alexaスキルのアイコン以外で、任意の音声ファイル等が必要ならS3使ってね。そうじゃないならホストしなくていい。
- テスト用にAlexaが使える端末があればなお良し。一応ブラウザ上でテスト出来るけど、文字でリクエストするみたいなので実際に音声でテストが出来ないのと、位置情報とか一部の機能が制限されるっぽい。
- スマートホームスキルの開発の要件
- 制御する予定のクラウド対応デバイス
- AWSLambdaを使うためのAWSアカウント
- フラッシュブリーフィングスキルの開発の要件
- RSSかJSONで継続的に更新されているコンテンツフィード。自分のメディア持ってたら多分一番楽に作れるんじゃないだろうか。個人のブログでもいけそうな感じですね。
終わりに
とりあえずどんなスキルが作れて、その為に何が必要か分かった気がする。次はカスタムスキルの具体的な詳細を読んでまとめる。