※このブログは、Ben Grossman のブログをToshimi Hatanakaが日本向けに翻訳し加筆修正したものです。
スマートホームスキルとカスタムスキルのモデルを1つのスキルに統合するマルチ機能スキル(MCS)の提供を開始しました。これにより、スマートホームデバイスの開発者は、スマートホームとカスタムモデルの両方の機能を兼ね備えたスキルを公開し、運用できるようになり、スキルの保守管理が簡素化され、よりシームレスなユーザー体験を実現することができます。
MCSを使用すると、スマートホームスキルのビルトイン発話に独自のカスタム対話モデルを追加して、デバイスのほぼ全ての機能をサポートすることができるため、従来のようにスマートホームとカスタムスキルを分けて開発する必要がなくなります。すなわち、ユーザーも2つのスキルを個別に有効化して呼び出す必要がなくなります。
例えば、スマートホームモデルに内蔵されている「<デバイス名>をオンにして」や「<デバイス名>をオフにして」という発話に加えて、「アレクサ、ルンバでキッチンを掃除して」や「アレクサ、<スキルの呼び出し名>で、何ができるか教えて」といったカスタム発話を、すべて同じスキル内でサポートすることができます。
また、すでに公開済みのスキルがあれば、MCSとして一から作り直す必要はありません。スマートホームやカスタムスキルのモデルを追加して更新するだけでOKです。
マルチ機能スキルにより、開発者のバックエンドの管理が簡素化されます。MCSでは、スマートホームスキルとカスタムスキルの両方の機能を有効にするひとつのスキルを公開して管理できるようになるため、カスタムスキルとスマートホームスキルを個別に設定して管理する必要がなくなり、デバイスをよりシームレスに、より多くの機能をサポートできるようにすることができます。
従来、スマートホームデバイスの開発者は、あらかじめ定義されたビルトインのスマートホーム機能のセットを利用するためにスマートホームスキルを作成するか、スマートホームAPIに含まれない機能もサポートするためにカスタムスキルを作成するかのどちらか、もしくは両方を別々に作成するかを選択する必要がありました。
どちらか一方のスキルモデルを選択すると、制御するデバイスの種類が制限されたり、デバイスのすべての機能に対応できなくなるかもしれません。カスタムスキルとスマートホームスキルを別々に作成することもできますが、2つのスキルをメンテナンスしたり、ユーザーに複数のスキルを有効にするよう要求したりと、なにかと煩雑になりがちです。例えば、スマートルーターをお持ちのユーザーは、スマートホームネットワーキングAPI(日本未対応)を使用して、「アレクサ、インターネットアクセスをオフにして」のように、Alexaがインターネットアクセスを制御できるようにすることができます。しかし、AlexaネットワークAPIは、インターネットの接続速度を測定するスピードテスト機能の呼び出しをサポートしていません。この場合開発者は、ユーザーが「アレクサ、インターネットの接続速度をテストして」と言えるようにするために、カスタムスキルを別に作成して運用する必要があります。MCSを使えば、開発者は1つのスキルでこれらの機能をサポートすることができるようになり、従来の課題を解決できるようになります。
開発プロセスが簡素化されても、ユーザー体験は損なわれません。MCSを使用することで、ユーザーはAlexaに接続されたデバイスが持つすべての機能にアクセスできるようになるため、もう一つのスキルを探したり、それらを有効にしたりする必要がなくなります。MCSでは、ユーザーが異なるスキル名を覚えなければならないという使い勝手の悪さを解消し、追加されたスマートホームのすべての機能に1つの呼び出し名でアクセスできるようになります。例えば、ダイソンはマルチ機能スキルを作成することで、ユーザーがAlexaに接続されたデバイスとより自然に会話できるようになりました。ユーザーは、「アレクサ、風量を5にして」や「アレクサ、首振りをオフにして」といったコマンドでダイソンのファンをコントロールしたり、毎日の定型アクションの中でナイトモードや静音モードを設定したりすることができます。これらの機能は従来の単一のスキルでは利用できませんでした。
同様に、米国でMCSに対応したTP-Linkルーターを使用しているユーザーは、1つのスキルでこれまで利用できなかったデバイスの機能にアクセスできるようになりました。
プリセットされたスマートホームAPIのコマンドを使用して、「アレクサ、トミーのiPadのインターネット接続を停止して」のようなコマンドを言うことで、ユーザーは家庭内に接続されたデバイスの一部または全てのインターネット接続を制御することができます。さらにTP-Linkは、「アレクサ、TP-Linkを開いてゲーミングモードを有効にして」などのように、カスタムモデルを使った独自の音声コマンドも提供しています。MCSでは、ユーザーは複数のスキルを有効にすることなく、1つのスキルでデバイスがサポートする全ての機能を利用できるようになりました。
Alexa開発者コンソール、スキル管理API(SMAPI)、またはASK コマンドラインインターフェース(ASK CLI)のいずれかを使用して、ベースとなるスキルにスマートホーム、もしくはカスタムのいずれかのモデルを追加し、スキルのロジックを修正し、いずれのモデルからのリクエストにも対応できるようにすることで、マルチ機能スキルが完成します。Alexa開発者コンソールを使用して既存のスキルを更新することもできますし、公開中のスキルの開発バージョンを使ってMCSを実装して、公開申請する前に新しく追加した機能をテストすることもできます。スキルを公開申請していない限り、追加したモデルを削除して元の状態に戻すこともできます。
スマートホームとカスタムスキルの両方の機能を持つ新しいMCSは、以下の手順で作成することができます。
1. 「新しいスキルを作成する」の指示に従って、まずは新しいスキルを作成します。
2. 左のパネルから「モデル」をクリックします。
3. この例では、カスタムスキルにスマートホームモデルを追加します。既存のカスタムスキルにスマートホームモデルを追加するには、新しいスキルがスマートホームスキル開発の前提条件を満たしている必要があることに注意してください。
5. これで、選択したロケール(en_US)に2つのモデルを持つマルチ機能スキルになりました。ロケールごとに2つのモデルを追加する必要があることに注意してください。
モデルをスキルに追加したら、通常のスキルと同様に、カスタムやスマートホームのリクエストを処理する適切なロジックをスキルに追加する必要があります。例えば、スマートホームモデルを使用しているスキルが既にあり、そこにカスタムモデルを追加した場合、カスタム対話モデルから入力されたリクエストを処理するハンドラーロジックを追加する必要があります。これにはマニュアルで実装するか、Alexa Skills Kit SDK (Node.js, Java, Python) を使って実装することもできます。具体的には、入力されたリクエストをチェックして、それがカスタムモデルのインテントなのか、スマートホームコマンドのリクエストなのかを適切に判断して処理を実行し、レスポンスを返すようにしなければなりません。
カスタムスキルをMCSにアップグレードする際、デバイスエンドポイントに対する状態および変更レポートのサポートを追加することができます。スキルは、Alexaゲートウェイへのイベント送信とアクセス権限を設定してAlexaへのユーザー認証を実現するためのガイドラインに従う必要があります。既存のユーザーへの状態と変更レポートを有効にするために、Alexaはスキルに対して各ユーザーのAcceptGrantディレクティブを送信するサイレントプロセスを自動的に実行します。このプロセスは、アップグレードの日から1週間以内に実行され、その後、Amazonから結果のメールが届きます。
複数の言語(またはロケール)のサポートを計画している場合、MCSには言語ごとにインスタンスを作成する必要があります。例えば、カナダと米国の両方で英語をサポートする場合、MCSには言語ごとにカスタムモデルとスマートホームモデルが必要です。また、カスタムモデルでは基本的なAmazonビルトインインテントを処理できるようにする必要があります。
既存のスマートホームスキルにカスタムモデルを追加してMCSにアップグレードした場合、ユーザーに、追加された新しいカスタム機能とその使い方を知ってもらう必要があります。スキルの説明ページや製品のウェブサイト、その他のメディアを通じて、デバイスが新たにサポートした発話コマンドの例を掲載し、新しく追加された音声体験をお知らせしましょう。
マルチ機能スキルの詳細については、以下の技術文書を参照してください。(英語)