対話モデルの作り方
対話モデルの概要
ここで、対話モデルが何のためにあるのかを簡単に説明します。詳細は次回以降、設定を行いながら解説します。
Webアプリだと、GUIによって、ユーザーが求めていることを分かりやすく操作してもらうことができます。例えば、以下の画像のような、指定した駅への経路を教えてくれるWebアプリを開発する場合には、テキストフィールドや日付、時間を選択するためのUIを用意すれば、ユーザーがどこからどこに行きたいか、何時に出発したいかがすぐに分かります。
これに対しスマートスピーカーは、基本的に声によるインプットになるため、文字列からユーザーの意図や対象を明確に取得する作業が必要になります。
例えば、上記の経路を教えてくれるWebアプリで入力していることと同じことをユーザーが要求している場合でも
- 1時間後の新宿から渋谷までの経路を教えて
- 16:00発の新宿から渋谷への行きかた
- 今から1時間後に新宿駅から渋谷駅までどうやっていくか調べて
- あと1時間経ってから新宿を出発して渋谷へ行く方法が知りたい
- …
というような無数のパターンが想定され、それがそのままサービスに渡ってしまうとそこから文字列比較等でユーザーの要求を取得するのは困難です。
対話モデルを適切に設定することで、上記のいずれの発話がされた時でも、サービスには、以下のような処理に必要な情報のみが抜き出され、サービスへ渡されるようになります。
- 意図:経路を調べたい
-
対象
- 出発駅:渋谷
- 目的地:新宿
- 時間:16:00
これにより、アプリ等のGUIと同様に、必要な処理の実装にフォーカスすることができるようになります。
対話モデルの設定
次に、対話モデルの設定画面の使い方を解説します。ナビゲーションバーの「スキル設定 > 基本設定」をクリックし、作成したスキルの対話モデルの修正をクリックしてください。
対話モデルの設定画面が開きました。対話モデルでは、前述の意図を「インテント」、対象を「スロット」と呼びます。
今回は簡単なサンプルのため、ユーザーからのインプットを分析し、挨拶だと認識する対話モデルを設定してみましょう。
設定画面の左ペイン、カスタムインテントの横の「+」をクリックし、「GreetingsIntent」という名前のインテントを作成します。
インテントが作成されました。ではサンプル発話を追加していきましょう。サンプル発話は、このインテントとして認識させたいインプットのサンプルです。「こんにちは」「こんちは」「おはよう」「おはようございます」の4つを追加し、「保存」をクリックします。
左上の「ビルド」をクリックします。数分待つとビルドが完了し、このスキルの対話モデルが更新されます。
実機でのデバッグ準備
次に、Clovaデバイスでスキルを実行できる状態かどうかを確認しましょう。「ビルド」の少し下の「テスト」「発話履歴」とクリックし、発話履歴をONにします。
その状態でClovaデバイスをスタンバイ状態にし、何か適当に話しかけてください。Clovaデバイスに紐付いているアカウントと同じアカウントでログインできていれば、話しかけた内容が表示されます。
話しかけた内容が表示されない場合は、スキルの実行をすることができません。Clovaデバイスへ紐付いているアカウントとClova Developer Centerにログインしたアカウントが同一か確認してください。
無事に発話履歴が表示される方は「テスト」をクリックし、「こんにちは」とタイプし「テスト」をクリックしてみましょう。
発話からインテントが正常に取得できていることが分かります。「応答がありません」の部分は、まだサーバーの設定を行っていないのが原因なので問題ありません。
次に、「こんばんは」とタイプしテストしてみましょう。
「こんばんは」という発話はサンプル発話として登録していませんが、GreetingsIntentとして認識されました。このように、考えられる全ての発話をカバーせずとも、サンプル発話を与えるだけでさまざまな発話から意図を適切に抽出することができます。
対話モデルの設定画面に関しては他にもできることがたくさんあるのですが、詳細は次回以降に解説します。
