Alexa(amazon Echo)のIRKitスキルを作る(2)
先ずは勉強しましょ
2. スキル開発のトレーニング
準備ができたら早速開発に取り掛かりたいところですが、その前に基本的な概念や開発の流れを理解し、開発者コンソール、AWSコンソールの操作に慣れる必要があります。幸いな事に日本語で読めるトレーニングコースが用意されていました。既に第1回から第5回まで公開されており、第6回は近日公開予定だそうです。
Alexaスキル開発トレーニングは<https://developer.amazon.com/ja/alexa-skills-kit/training/building-a-skill>から直接でも良いし、amazon開発者ポータルから
「amazon Alexa」をクリックして、Alexa Skills Kitの「Alexaスキルの開発を始める」→「学ぶ」→「トレーニングコース」と進んでも行けます。
先ずはとにかく「第1回 初めてのスキル開発」を書いてあるとおりにやってみましょう。「ステップ1. アカウントの作成」は既に済ましてありますので、その部分は飛ばして構いません。「ステップ2. スキルの作成」から順番にやって行きます。
第1回ではプログラミングする部分(AWS Lambda)は既に作成済みの物を使いますし、それ以外の部分もコピペです。とにかく書いてあるとおりにやっていくと、「MyFactSkill」という名前のスキルが出来上がり、すぐに自分のEcho Dotで使えるようになります。
最初はサッパリわけが分からないうちに出来てしまったという感じだと思いますが、第1回では基本的な作成の流れと開発環境の操作に慣れれば充分だと思います。あと、Alexaスキルに特有の概念や用語(以下)についても徐々に憶えて行けば良いと思います。
とにかく「第3回 音声ユーザーインターフェースの設計」までは目を通しておくと良いと思います。第4回から内容が難しくなり、自分は挫けました(^^;)が、第3回まででかなりの物が作れるようになるでしょう。
- スキル名
- Alexaアプリに表示されるスキルの名前。今回、IRKitを使うスキルを作りたいと思ったら「IRKit」、「IRKitスキル」なんて感じ。
- 呼び出し名
- Echo Dotに向かって話しかけるとき、ウェイクワード(デフォルトでは「アレクサ」)に続けて言うスキルの呼び出し名(そのまんまや)。
あまり長くなく、認識しやすい言葉の方が良い。例えば、IRKitなんてのは避けた方が良い(「アレクサ、アイアールキットを開いて」と話しかけても滅多なことでは正しく認識されない)。シンプルに「リモコン」等の方が認識されやすい。(詳細はこちら)
- インテント(intent)
- 直訳すると意志とか目的。Alexaスキルでは「させたい事(リクエスト)」を示すコマンド(アクション)名を、半角の英数字、記号を使って表記したものって感じかな。例えば、エアコンに対して何かさせたいと思ったら"Ac_Control"とか。
「アレクサ、リモコンでエアコンを点けて」と話しかけた場合、「エアコン」という言葉に反応して"Ac_Control"インテントが呼び出される。
- インテントスキーマ(Intent schema)
- スキルで処理できるインテント、スロットをJSON形式で宣言(定義)したもの。(詳細はこちら)
- スロット(slot)
- インテントに渡す引数。{ }で括った半角の英数字、記号を使って表記する(例:{Switch})。Echo Dotに向かって話しかけるとき、数とか日時とか様々な種類の語彙を付加情報として指示したい場合に用いる。
例えば「アレクサ、リモコンでエアコンを点けて」と話しかけた場合には、「点け」の部分がスロット{Switch}としてインテントに渡されるようになる。
- スロットタイプ
- スロットの型で、数や日時など、いくつか定義済みの型がある。定義済みの型を持ったスロットの事をビルトインスロット、または標準スロットと呼び、以下のスロットタイプが標準で定義されている。
- "AMAZON.DATE"
- "AMAZON.DURATION"
- "AMAZON.FOUR_DIGIT_NUMBER"
- "AMAZON.NUMBER"
- "AMAZON.TIME"
(詳細はこちら)
正直これらの型は使える場面が少ないので、多くの場合は型を自分で定義する「カスタムスロットタイプ」を使うことになる。カスタムスロットタイプは、スロットに入って欲しい語彙を列挙したものになり、例えばエアコンの電源をオンにしたい場合、「オン | 点け | 入れ」など電源オンを意味する語彙を並べる。
- サンプル発話
- Echo Dotに話しかけそうなフレーズ例を書き並べることで、インテントとフレーズを結びつける。例えば、エアコンの電源をオンにしたい場合、
Ac_Control エアコン を {Switch}
Ac_Control エアコン を {Switch} て
Ac_Control エアコン を {Switch} る
Ac_Control エアコン を {Switch} して
Ac_Control エアコン を {Switch} に して
|
と書いておき、「アレクサ、リモコンでエアコンを点けて」と話しかけると {Switch} に「点け」が入った状態でAc_Controlインテントが呼び出される。
[続く]
|