音声対話モデルについて



音声対話モデルについて

すべてのAlexaスキルには音声対話モデルがあり、ユーザーがAlexaに話しかけて希望する操作をスキルに実行させるための単語やフレーズが定義されます。Alexaは、2つの種類の対話モデルをサポートしています。

  • プリビルドの音声対話モデル – Alexaがスキルの種類に応じた発話セットを定義します。
  • カスタム音声対話モデル – ユーザーがスキルと対話するため使うフレーズや発話を、開発者が定義します。

これらの音声対話モデルは、Alexa Skills Kit(ASK)で利用できます。ASKの詳細については、Alexa Skills Kitとは?を参照してください。

プリビルド音声対話モデル

プリビルド音声対話モデルでは、ユーザーがスキルとの対話に使用できる発話のセットがあらかじめ定義されています。たとえば、ユーザーは「照明をつけて」「テレビを消して」と言うだけでクラウドコネクテッドデバイスを制御できます。 スキルは、「つけて」や「消して」のリクエストを受け入れ、リクエストを完了したら応答を返します。

ASKでは、スマートホームや音楽など、さまざまな種類のスキルで使えるプリビルド音声対話モデルを用意しています。プリビルド音声対話モデルを使用するスキルの種類の一覧については、スキルの種類の一覧を参照してください。

プリビルド音声対話モデルを使用する

プリビルド音声対話モデルを選択した場合、ASKがインテントと呼ばれる発話やリクエストを定義します。スキルのコードを記述するだけで定義済みのインテントに応答できます。プリビルド音声対話モデルを使うスキルを開発するには、次の項目をデザインします。

  • Alexaがスキルの識別に使用する名前(該当する場合)。ユーザーが、呼び出し名と呼ばれるこの名前を言うと、スキルとの対話が始まります。

  • あらかじめ定義されたインテントを実行するスキルロジック。

プリビルド音声対話モデルの例

実装する機能によって、使用するプリビルド音声対話モデルが決まります。次のセクションでは、2種類のプリビルド音声対話モデルの発話を紹介します。

スマートホームスキルの対話モデル

次の例は、照明をオンにする場合の定義済み対話です。スマートホームスキルには、呼び出し名は不要です。

ユーザー: アレクサ、玄関の電気をつけて。
Alexa: わかりました。

スマートホームスキルのプリビルド音声対話モデルに基づいて、Alexaは次の情報を認識します。

  • スマートホームのプリビルド音声対話モデルに含まれる「つける」という単語
  • 「玄関の電気」というフレーズが、ユーザーがAlexaアプリで設定し命名した特定のデバイス、あるいはデバイスグループを示すこと。

Alexaは、スマートホームモデルのデバイスディレクティブと呼ばれるTurnOnリクエストを、「玄関の電気」として識別されるデバイスを制御するスキルに送信します。このスキルは、インターネット経由でデバイスと通信することにより、指定された照明を点灯した後、そのリクエストが成功したかどうかを示す応答を返します。応答に基づいて、Alexaは、サウンドか音声でスキルリクエストが成功したことをユーザーに知らせます。

音楽およびラジオスキルの対話モデル

以下は、楽曲を再生するための定義済み対話の例です。

ユーザー: アレクサ、マイラジオプレイヤーでレディーガガのポーカーフェイスを再生して。
Alexa: わかりました。レディーガガのポーカーフェイスを再生します

音楽、ラジオ、ポッドキャストスキルのプリビルド音声対話モデルに基づいて、Alexaは次の情報を認識します。

  • 「マイラジオプレイヤー」が、呼び出すスキルを識別する呼び出し名であること。
  • 音楽、ラジオ、ポッドキャストのプリビルド音声対話モデルに含まれる「再生」という単語。
  • 「ポーカーフェイス」と「レディーガガ」というフレーズが曲名とアーティストを示すこと。

Alexaは、マイラジオプレイヤースキルに対するGetPlayableContentリクエストを作成します。スキルは、レディーガガの『ポーカーフェイス』のオーディオコンテンツを返します。

カスタム音声対話モデル

カスタム音声対話モデルを使うと、ユーザーエクスペリエンスをきめ細かく制御できます。すべてカスタムの音声エクスペリエンスを提供するためにスキルが実行できるあらゆるアクションについて、単語とフレーズのセットをデザインします。カスタムスキルでは、スキルのデザインやコードを柔軟かつきめ細かく制御できます。カスタムスキルでは、音声、視覚、タッチの対話を組み合わせることができます。Alexa Skills Kitには、音声対話モデルをデザインする際に従うべきベストプラクティスをまとめたAlexaデザインガイドと、共通アクションのビルトインインテントライブラリが含まれています。

カスタム音声対話をデザインする

カスタム音声対話をデザインする場合、次の項目を定義します。

  • スキルで処理できるインテント。インテントは、旅行プランの作成など、スキルを使ってユーザーが実行できるアクションを表します。各インテントは、特定のスキル機能を呼び出します。インテントには、スロットと呼ばれる引数を1つ以上含めることができます。これらのスロットには、スキルがユーザーのリクエストを実行するのに必要な可変の値が入ります。

  • インテントを呼び出す際にユーザーが使用する発話。たとえば、ユーザーは「ハワイへの旅行を計画して」などと言うことができます。 発話とインテントのマッピングにより、スキルの音声対話モデルを形成します。モデルでは、スキルに同じリクエストをするのにユーザーが使うかもしれない言い回しを多数定義しておく必要があるため、発話とインテントが多対一でマッピングされる可能性があります。

  • Alexaがスキルの識別に使用する名前。ユーザーは呼び出し名を使って、スキルとの対話を開始します。

  • (任意)画面付きAlexa搭載デバイス用の視覚要素とタッチによる対話

  • カスタムインテントを実行するためのスキルロジック。

カスタム音声対話モデルの例

以下のセクションでは、カスタム音声対話モデル、ユーザーとAlexaの対話、スキルへの後続リクエストの例を紹介します。

旅行プランを作成するカスタムスキルの対話

旅行プラン作成スキルのカスタム音声対話モデルは、次のように定義できます。

  • スキルを識別する呼び出し名の「トリッププラン」。
  • toCitytravelDateactivityの各スロットを持つNewTripインテント。
  • AMAZON.US.CITYを使って定義したtoCityスロットの値。
  • AMAZON.DATEを使って定義したtravelDateスロットの値。
  • activityスロットの値。ツーリング、キャンプ、ハイキングなどの値を含みます。
  • NewTripインテントにマッピングされた「旅行プランを作って」や「へ行きたい」などのフレーズ。

ユーザーとトリッププランスキルの会話は次のようになります。

ユーザー: アレクサ、トリッププランで金曜日に石見銀山へ行く旅行プランを作って。
トリッププラン: 石見銀山、いいですね。 何をしたいですか?
ユーザー: ツーリング。
トリッププラン: 了解です。 金曜日出発で石見銀山にツーリングですね。お楽しみください!

Alexaは、カスタム対話モデルとユーザーとの対話に基づいて、次の情報を認識します。

  • 「トリッププラン」というフレーズが呼び出すスキルを示すこと。
  • 「旅行プランを作って」というフレーズがNewTripインテントに対応すること。
  • 「石見銀山」という単語がtoCityスロットに入っていること。
  • 「金曜日」という単語がtravelDateスロットに入っていること。
  • 「ツーリング」という単語がactivityスロットに入っていること。

Alexaは、newTripインテントと収集したスロット値を使って、トリッププランスキルへのIntentRequestを作成します。スキルは、リクエストを処理し、確認の応答をします。

カスタムゲームスキルの対話

ゲームスキルのカスタム音声対話モデルは次のように定義します。

  • スキルを識別する呼び出し名の「クイックトリビア」。
  • categoryスロットを持つPlayGameインテント。
  • categoryスロットの値。映画、地理、食べ物などが含まれます。
  • AMAZON.YesIntentビルトインインテントにマッピングされる「はい」というフレーズ。

このユーザー対話では、スキルが会話を進めます。

ユーザー: アレクサ、クイックトリビアを開いて。
Quick Trivia: クイックトリビアへようこそ。 準備はいいですか?
ユーザー: はい。
Quick Trivia: では、挑戦したいカテゴリーを選んでください。カテゴリーを言うか、画面から選ぶことができます。
ユーザー: 映画。
Quick Trivia: …の監督は誰ですか?

Alexaは、カスタム対話モデルとユーザーとの対話に基づいて、次の情報を認識します。

  • 「クイックトリビア」が呼び出すスキルの名前であること。
  • 「カテゴリー」が、スキルがゲームをプレイするのに必要なスロットであること。
  • 「映画」という単語がcategoryスロットに入っていること。

ユーザーが特定のインテントを指定せずにクイックトリビアを呼び出すと、AlexaはスキルにLaunchRequestを送信します。スキルは、ユーザーにカテゴリーを指定するようにプロンプトを出すための音声をAlexaに返します。次に、Alexaは、StartGameインテントとcategoryスロットに収集したスロット値を使ってIntentRequestを作成します。スキルは、Alexaが音声で応答するか、画面付きAlexa搭載デバイスに表示する質問と想定される回答をAlexaに返します。同様にゲームの対話が続きます。