(58)【調査した分野】(Int.Cl.,DB名)
対話処理のシナリオのデータを実行する情報処理装置と、前記シナリオのデータの要素となるデータを蓄積するサーバとが通信可能に構成された情報処理システムであって、
前記情報処理装置は、
実行対象となる前記シナリオのデータの要素が、前記シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合要素であるか否かを判定する要素判定手段と、
前記要素判定手段によって前記シナリオのデータの要素が前記未整合要素であると判定された場合に、前記未整合要素において入出力される情報を補間するための前記シナリオのデータの要素である補間要素のデータを前記サーバから取得するデータ取得手段と、
実行対象となる前記シナリオのデータにおける前記未整合要素に、前記データ取得手段によって取得された前記補間要素のデータを追加して、実行対象となる前記シナリオのデータを実行するデータ実行手段と、
を備えることを特徴とする情報処理システム。
前記データ取得手段は、前記未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の差を補間する対話内容が定義された1つまたは複数の前記補間要素のデータを取得することを特徴とする請求項1に記載の情報処理システム。
前記データ取得手段は、前記未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の範囲を拡大することにより、前記未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の整合性を高める処理を実行することを特徴とする請求項1または2に記載の情報処理システム。
前記データ取得手段は、前記未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報を類似する情報に変更することにより、前記未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の整合性を高める処理を実行することを特徴とする請求項1から3のいずれか1項に記載の情報処理システム。
前記データ取得手段は、前記対話処理における対話内容に基づいて、前記未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報との差を減少させるための情報を追加することを特徴とする請求項1から4のいずれか1項に記載の情報処理システム。
前記データ取得手段は、対話者個人のプロファイルに基づいて、前記補間要素のデータを取得することを特徴とする請求項1から5のいずれか1項に記載の情報処理システム。
前記データ取得手段は、複数の対話者のプロファイルに基づいて、前記補間要素のデータを取得することを特徴とする請求項1から6のいずれか1項に記載の情報処理システム。
実行対象となる対話処理のシナリオのデータの要素が、前記シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合要素であるか否かを判定する要素判定手段と、
前記要素判定手段によって前記シナリオのデータの要素が前記未整合要素であると判定された場合に、前記未整合要素において入出力される情報を補間するための前記シナリオのデータの要素である補間要素のデータをサーバから取得するデータ取得手段と、
実行対象となる前記シナリオのデータにおける前記未整合要素に、前記データ取得手段によって取得された前記補間要素のデータを追加して、実行対象となる前記シナリオのデータを実行するデータ実行手段と、
を備えることを特徴とする情報処理装置。
対話処理のシナリオのデータを実行する情報処理装置と、前記シナリオのデータの要素となるデータを蓄積するサーバとが通信可能に構成された情報処理システムにおけるサーバであって、
実行対象となる前記シナリオのデータに含まれる、前記シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の差に基づいて、前記未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素との差を補間する対話内容が定義された補間要素のデータを検索するデータ検索手段と、
前記データ検索手段によって検索された前記シナリオのデータの要素を前記情報処理装置に提供するデータ提供手段と、
を備えることを特徴とするサーバ。
対話処理のシナリオのデータを実行する情報処理装置と、前記シナリオのデータの要素となるデータを蓄積するサーバとが通信可能に構成された情報処理システムにおけるサーバが実行する情報処理方法であって、
実行対象となる前記シナリオのデータに含まれる、前記シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の差に基づいて、前記未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素との差を補間する対話内容が定義された補間要素のデータを検索するデータ検索ステップと、
前記データ検索ステップにおいて検索された前記シナリオのデータの要素を前記情報処理装置に提供するデータ提供手段と、
を含むことを特徴とする情報処理方法。
対話処理のシナリオのデータを実行する情報処理装置と、前記シナリオのデータの要素となるデータを蓄積するサーバとが通信可能に構成された情報処理システムにおけるサーバを構成するコンピュータに、
実行対象となる前記シナリオのデータに含まれる、前記シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の差に基づいて、前記未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素との差を補間する対話内容が定義された補間要素のデータを検索するデータ検索機能と、
前記データ検索機能によって検索された前記シナリオのデータの要素を前記情報処理装置に提供するデータ提供機能と、
を実現させることを特徴とするプログラム。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について、図面を用いて説明する。
[構成]
[システム構成]
図1は、本発明に係る対話シナリオ処理システム1のシステム構成を示す図である。
対話シナリオ処理システム1は、本発明に係る情報処理システムの一実施形態として構成されるものであり、コンピュータ上に生成されたキャラクタが人間と対話する際のシナリオ(対話処理のシナリオ)の実行に際し、対話の流れにおいて隣接して配置された対話シナリオ間のインプットとアウトプットとが厳密に整合していない場合であっても、これらインプットとアウトプットとの不整合を他の対話シナリオ等により補間することで、対話シナリオのデータをより柔軟に適応させて実行可能なシステムである。なお、シナリオのインプット及びアウトプットとは、シナリオの実行において順次受け渡される各種情報を表すパラメータである。
【0010】
本実施形態において、対話シナリオ処理システム1では、キャラクタの一連の対話のフローを表すシナリオのデータが、シーンのデータを構成単位として構築される。シーンとは、対話のフローを構成する要素であり、各シーンは、対話における対話者の発話や操作あるいはシーンの遷移等に基づいて発生する各種イベントによって構成される。また、イベントが発生すると、そのイベントの内容が定義(ビジュアルプログラム)されたアクションが実行される。
【0011】
また、対話シナリオ処理システム1において、シナリオのデータが構築される場合、ユーザに対して、後述するように、フロービルダーを含むGUI(Graphical User Interface)が提供される。本実施形態において、フロービルダーでは、シーンを表すアイコンを配列することで、一連の対話のフローを表すシナリオを構築することができる。
【0012】
また、シナリオのデータ及びシーンのデータには、シナリオ及びシーンを利用するために必要なパラメータセット、及び、パラメータ値の条件(値、あるいは、値の範囲)を指定することができる。そして、対話シナリオ処理システム1は、対話処理における各種パラメータを管理し、シナリオのデータまたはシーンのデータが実行されることに対応して、各種パラメータ値を更新する。
【0013】
なお、シナリオのデータ及びシーンのデータに対して指定されるパラメータの種類としては、例えば、タグ、タスク、位置情報、時間、使用回数、センサ情報及び使用履歴等を定義することが可能である。具体的には、タグとして、タイトル、用途、分野(スポーツ、アーティスト、食べ物等)が指定できる。また、タスクとして、検索、計算、あいさつ、ボケる等の実行内容が指定できる。また、位置情報として、所定位置(現在位置または特定の位置等)周辺の情報表示等が指定でき、時間として、朝、昼、夜(即ち、時間帯で対話内容の選択可否が決まる)等が指定できる。また、使用回数として、所定期間あたりの使用回数(一度使用された場合は3ヶ月使用しない等)が指定でき、センサ情報として、加速度センサの検出値等が指定できる。また、使用履歴として、ユーザ毎のシナリオのデータ及びシーンのデータの使用履歴(過去に使用されたか否か等)を指定できる。
【0014】
図1に示すように、対話シナリオ処理システム1は、複数の端末装置10と、サーバ20とを含んで構成され、複数の端末装置10とサーバ20とは、ネットワーク30を介して互いに通信可能に構成されている。
【0015】
端末装置10は、クリエータ等のユーザによって使用され、後述するシナリオ作成処理を実行することにより、シナリオのデータを構築するためのGUI(以下、「シナリオ作成GUI」と称する。)を提供する。
また、端末装置10は、シナリオ作成GUIにおいて、シナリオを構成するための部品データをサーバ20から取得し、ユーザが選択可能な形態で提供する。さらに、端末装置10は、シナリオ作成GUIにおいて作成されたシナリオのデータをサーバ20にアップロードする。サーバ20にアップロードされたシナリオのデータは、他のシナリオのデータを作成する際に、部品データとして再利用することが可能となっている。
【0016】
本実施形態において、シナリオのデータには、後続のシーンのデータのインプットに対し、アウトプットが整合していない先行するシーン(以下、「未整合シーン」と称する。)のデータを含めることが許容されている。なお、未整合シーンは、例えば、シナリオ作成者が意図することなくシーン間のインプットとアウトプットとの不整合が生じて発生する場合や、シナリオ作成者が対話の流れの概略のみを構成し、シーン間のインプットとアウトプットとの整合を意図的に看過して発生する場合等が想定される。
【0017】
また、端末装置10は、コンピュータとの対話者等のユーザによって使用され、後述するシナリオ実行処理を実行することにより、シナリオのデータを実行する。ここで、未整合シーンが含まれるシナリオのデータにおいては、シナリオに含まれるシーンを単に実行した場合、未整合シーンが実行された時点で、後続のシーンに移行することができなくなる。そのため、本実施形態においては、未整合シーンが含まれると判定された場合、端末装置10は、未整合シーンと、未整合シーンに後続するシーンとの間に補間のためのシーン(以下、「補間シーン」と称する。)を追加し、シーン間の不整合の解消を図る。この結果、未整合シーン及び補間シーンを含めてシーン間のインプット及びアウトプットが整合された状態となり、端末装置10は、シナリオのデータを実行することが可能となる。
これにより、対話シナリオをより柔軟に適応させてコンピュータとの対話を実行することが可能となる。
【0018】
サーバ20は、複数の部品データを格納した部品データベース(部品DB)と、複数のシナリオのデータを格納したシナリオデータベース(シナリオDB)とを備えている。そして、サーバ20は、後述するシナリオ作成支援処理を実行することにより、端末装置10においてシナリオ作成GUIがユーザに提供される際に、部品DBに格納されている部品データ及びシナリオDBに格納されているシナリオのデータを端末装置10に適宜提供する。また、サーバ20は、後述するシナリオ実行支援処理を実行することにより、端末装置10において対話処理のシナリオが実行される際に、未整合シーンを補間するための条件(以下、「補間条件」と称する。)に適合する部品データまたはシナリオのデータを検索し、端末装置10に適宜提供する。補間条件としては、例えば、後続のシーンのデータのインプットに対し、先行する未整合シーンのアウトプットでは不足する情報(例えば、「時間」や「場所」等の情報)を取得可能であることを定義することができる。
【0019】
[ハードウェア構成]
次に、対話シナリオ処理システム1の端末装置10及びサーバ20のハードウェア構成について説明する。
端末装置10及びサーバ20は、情報処理装置によって構成され、例えば端末装置10はPC(Personal Computer)、サーバ20はサーバコンピュータによって構成することができる。
【0020】
図2は、端末装置10及びサーバ20を構成する情報処理装置800のハードウェア構成を示す図である。
図2に示すように、情報処理装置800は、CPU(Central Processing Unit)811と、ROM(Read Only Memory)812と、RAM(Random Access Memory)813と、バス814と、入力部815と、出力部816と、記憶部817と、通信部818と、ドライブ819と、を備えている。
【0021】
CPU811は、ROM812に記録されているプログラム、または、記憶部817からRAM813にロードされたプログラムに従って各種の処理を実行する。
RAM813には、CPU811が各種の処理を実行する上において必要なデータ等も適宜記憶される。
【0022】
CPU811、ROM812及びRAM813は、バス814を介して相互に接続されている。バス814には、入力部815、出力部816、記憶部817、通信部818及びドライブ819が接続されている。
【0023】
入力部815は、各種ボタン等で構成され、指示操作に応じて各種情報を入力する。
出力部816は、ディスプレイやスピーカ等で構成され、画像や音声を出力する。
記憶部817は、ハードディスクあるいはDRAM(Dynamic Random Access Memory)等で構成され、各サーバで管理される各種データを記憶する。
通信部818は、ネットワークを介して他の装置との間で行う通信を制御する。
【0024】
ドライブ819には、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリ等よりなる、リムーバブルメディア821が適宜装着される。ドライブ819によってリムーバブルメディア821から読み出されたプログラムは、必要に応じて記憶部817にインストールされる。
なお、上記ハードウェア構成は、情報処理装置800の基本的構成であり、端末装置10あるいはサーバ20を構成する場合、適宜、付加的なハードウェアを備えることができる。例えば、端末装置10を構成する場合、デジタル画像を撮像する撮像部を備えること等が可能である。
【0025】
[機能的構成]
次に、端末装置10及びサーバ20の機能構成について説明する。
図3は、端末装置10の機能構成を示すブロック図である。
図3に示すように、端末装置10のCPU811がシナリオ作成処理及びシナリオ実行処理を実行することにより、CPU811において、GUI形成部111と、GUI入力受付部112と、データ生成部113と、データ実行部114と、シナリオデータ登録部115と、シナリオデータ取得部116と、シーン判定部117と、検索要求部118と、が機能する。また、端末装置10の記憶部817には、シナリオデータ記憶部121と、履歴データ記憶部122と、が形成される。
【0026】
シナリオデータ記憶部121には、シナリオ作成GUIにおいて作成されたシナリオのデータ及び実行対象となるシナリオのデータが記憶される。
履歴データ記憶部122には、端末装置10において実行された対話処理の履歴のデータが記憶される。
GUI形成部111は、シナリオ作成処理の実行開始と共に、表示画面上にシナリオ作成GUIを形成する。また、GUI形成部111は、シナリオ実行処理の実行開始と共に、キャラクタの画像を表示し、対話シナリオのデータに従ってキャラクタの動きを制御する。
【0027】
図4は、シナリオ作成GUIの一例を示す模式図である。
図4に示すように、シナリオ作成GUIには、フロービルダー部131が含まれている。
フロービルダー部131は、シナリオ全体のフローを構成するためのGUIである。フロービルダー部131において、ユーザは、シナリオを構成するシーンを表すアイコンを配列することで、目的とする対話の流れの枠組みを有するシナリオを構成することができる。即ち、ユーザは、シナリオをシーンの状態遷移として定義することができる。本実施形態において、フロービルダー部131では、シナリオを構成する各種属性のシーンを定義することができる。
【0028】
なお、本実施形態においては、通常のシーンとして、対話シナリオ処理システム1において予め用意されている特定の内容を表すシーンのデータ(部品データ)を選択可能となっている。例えば、シナリオの作成時に、高い頻度で組み込まれる内容のシーンのデータを部品データとして予め用意しておくことができる。具体的には、キャラクタが挨拶するシーンのデータ等を部品データとして用意しておくことができる。また、上述のように、本実施形態においては、サーバ20にアップロードされたシナリオのデータも、部品データとして再利用することが可能となっている。
【0029】
図3に戻り、GUI入力受付部112は、シナリオ作成GUIの各部に対するユーザの入力を受け付け、受け付けた入力内容をGUI形成部111、データ生成部113、データ実行部114、あるいは、シナリオデータ登録部115に出力する。例えば、GUI入力受付部112は、フロービルダー部131におけるシーンを表すアイコンの選択を受け付ける。さらに、GUI入力受付部112は、選択されたアイコンの種類に応じた入力内容の入力を受け付ける。
【0030】
データ生成部113は、シナリオ作成GUIに対するユーザの入力に応じて、シナリオの作成に関する各種のデータを生成する。例えば、データ生成部113は、フロービルダー部131においてシーンを表すアイコンが選択された場合、作成中のシナリオのデータに、選択されたアイコンに対応する種類のシーンのデータを追加する。また、データ生成部113は、ユーザの入力に応じて、作成中のシナリオのデータに追加する部品データまたはシナリオのデータの要求(作成用データの要求)をサーバ20に送信し、作成用データの要求に対応してサーバ20から提供された部品データまたはシナリオのデータを、作成中のシナリオのデータに追加する。
【0031】
データ実行部114は、シナリオ作成GUIにおいて作成されたシナリオのデータ、または、シナリオデータ取得部116によって取得された実行対象のシナリオのデータを実行し、キャラクタによる人間との対話を進行する。本実施形態において、シーンのデータがシナリオのデータに追加される場合、シナリオにおいて隣接するシーン間のインプット及びアウトプットを厳密に整合させることは要求されない。即ち、シーンのデータにおいて、先行するシナリオのデータのアウトプットと、引き続くシナリオのデータのインプットが整合していない場合でも、後述する検索要求部118によって、適切なシーンが補間され、シーン間の不整合の解消が図られる。即ち、実行対象のシナリオのデータに未整合シーンが含まれている場合、データ実行部114は、検索要求部118から入力された部品データまたはシナリオのデータを補間シーンとして未整合シーンに追加する。そして、データ実行部114は、未整合シーン及び補間シーンを含めてシーン間のインプット及びアウトプットが整合された状態のシナリオのデータを実行する。
【0032】
なお、データ実行部114は、ユーザの指定に応じて、シナリオ作成GUIにおいて作成されているシナリオのデータの一部(例えば、シナリオの冒頭のシーンのデータから未整合シーンのデータまで等)を実行することも可能である。
これにより、ユーザは、作成中のシナリオのデータが実行された場合のシミュレーションを行いながら、シナリオのデータを作成することができる。
【0033】
シナリオデータ登録部115は、ユーザの指示に応じて、シナリオ作成GUIにおいて作成されたシナリオのデータをサーバ20に送信し、シナリオDBに登録する。シナリオDBに登録されたシナリオのデータは、他のユーザがシナリオ作成GUIにおいてシナリオのデータを作成する際に、部品データとして再利用可能となる。
【0034】
シナリオデータ取得部116は、ユーザによって実行が指示されたシナリオのデータ(実行対象のシナリオのデータ)を取得する。例えば、シナリオデータ取得部116は、サーバ20のシナリオDB221から、ユーザによって選択されたシナリオのデータを取得する。そして、シナリオデータ取得部116は、取得したシナリオのデータをシナリオデータ記憶部121に記憶する。
【0035】
シーン判定部117は、実行対象のシナリオのデータに未整合シーンが含まれているか否かの判定を行う。実行対象のシナリオのデータに未整合シーンが含まれていると判定した場合、シーン判定部117は、未整合シーンを補間するための補間条件を示す情報を検索要求部118に出力する。
【0036】
検索要求部118は、シーン判定部117によって、実行対象のシナリオのデータに未整合シーンが含まれていると判定された場合に、シーン判定部117から入力された未整合シーンを補間するための補間条件を示す情報に基づいて、未整合シーンの補間に適合する部品データまたはシナリオのデータの要求(補間用データの要求)をサーバ20に送信する。そして、検索要求部118は、補間用データの要求に応答してサーバ20から提供された部品データまたはシナリオのデータを、データ実行部114に出力する。なお、検索要求部118は、シーン判定部117から未整合シーンを補間するための補間条件を示す情報が入力された場合、補間条件のうち、現在までの対話内容あるいは他の情報(端末の位置情報等)において、既に取得されている情報(「時間」や「場所」等の不足する情報を直接的または間接的に表す情報等)を未整合シーンのアウトプットに追加することで、補間条件を更新する。そして、検索要求部118は、更新後の補間条件を示す情報に基づいて、補間用データの要求をサーバ20に送信する。
【0037】
次に、サーバ20の機能構成について説明する。
図5は、サーバ20の機能構成を示すブロック図である。
図5に示すように、サーバ20のCPU811がシナリオ作成支援処理及びシナリオ実行支援処理を実行することにより、CPU811において、シナリオ登録受付部211と、作成用データ要求取得部212と、作成用提供データ取得部213と、作成用データ提供部214と、補間用データ要求取得部215と、補間用データ検索部216と、補間用データ提供部217と、が機能する。また、サーバ20の記憶部817には、シナリオDB221と、部品DB222と、ユーザプロファイル記憶部223と、が形成される。
【0038】
シナリオDB221には、キャラクタと人間との種々の対話内容を表すシナリオのデータが記憶されている。部品DB222には、特定の内容を表す種々の部品データが記憶されている。
ここで、シナリオDB221に記憶されたシナリオのデータ及び部品DB222に記憶された部品データには、インプット及びアウトプットを表すデータが併せて記憶されている。そのため、端末装置10から補間用データの要求を取得した場合、サーバ20においては、補間条件に示される情報(即ち、先行する未整合シーンのアウトプットでは不足する情報)を取得できるシナリオのデータまたは部品データを検索することができる。
【0039】
なお、本実施形態において、シナリオDB221に記憶されたシナリオのデータ及び部品DB222に記憶された部品データに、シナリオ及びシーンを利用するために必要なパラメータセット、及び、パラメータ値の条件(値、あるいは、値の範囲)を設定することが可能である。そして、シナリオのデータ及び部品データが検索される場合、これらのパラメータセット及びパラメータ値の条件をキーとして、シナリオのデータ及び部品データをスコア化し、補間条件に適合するシナリオのデータ及び部品データの中から、スコアが高いものを検索結果として選択することができる。
【0040】
ユーザプロファイル記憶部223は、複数の端末装置10において対話処理を行ったユーザそれぞれの個人プロファイル(ユーザプロファイル)が記憶されている。ユーザプロファイルには、例えば、年齢、性別、職業、趣味、嗜好性、行動パターンあるいは性格等が含まれ、これらの情報は、対話者個人に特有の対話を行う場合等に、適宜用いることができる。
【0041】
シナリオ登録受付部211は、端末装置10においてシナリオ作成GUIによって作成され、シナリオDBに登録するために送信されたシナリオのデータを受信し、シナリオDB221に登録する。
【0042】
作成用データ要求取得部212は、シナリオ作成GUIでシナリオのデータに追加される部品データまたはシナリオのデータの要求(作成用データの要求)を端末装置10から取得する。
【0043】
作成用提供データ取得部213は、作成用データ要求取得部212によって取得された作成用データの要求に示される部品データまたはシナリオのデータを部品DB222またはシナリオDB221から取得する。
【0044】
作成用データ提供部214は、作成用提供データ取得部213によって取得された部品データあるいはシナリオのデータを、作成用データの要求を行った端末装置10に提供する。
補間用データ要求取得部215は、実行対象のシナリオのデータの実行時に、未整合シーンに挿入される部品データまたはシナリオのデータの要求(補間用データの要求)を端末装置10から取得する。なお、補間用データの要求には、未整合シーンを補間するための補間条件が含まれている。
【0045】
補間用データ検索部216は、補間用データ要求取得部215によって取得された補間用データの要求に示される補間条件に基づいて、先行する未整合シーンのアウトプットでは不足する情報を取得できる部品データまたはシナリオのデータを部品DB222またはシナリオDB221から検索する。このとき、補間用データ検索部216は、パラメータセット及びパラメータ値の条件をキーとして、シナリオのデータ及び部品データをスコア化し、補間条件に適合するシナリオのデータ及び部品データの中から、スコアが高いものを検索結果として選択することができる。このときのスコアの算出方法は、汎用の検索エンジンに用いられるものを採用することや、部品データまたはシナリオのデータを検索するために用意されたものを採用することが可能である。
【0046】
補間用データ提供部217は、補間用データ検索部216によって検索されたシナリオのデータまたはシーンのデータを、補間用データの要求を行った端末装置10に提供する。本実施形態において、補間用データ提供部217は、例えば、補間用データ検索部216によって検索されたシナリオのデータまたはシーンのデータのうち、スコアが最も高く、補間条件に適合するものを端末装置10に提供することができる。ただし、補間用データ提供部217が、補間用データ検索部216によって検索されたシナリオのデータまたはシーンのデータのうち、補間条件に適合するものであって、スコアが上位である複数のものを端末装置10に提供することとしてもよい。
【0047】
[動作]
次に、対話シナリオ処理システム1の動作を説明する。初めに、端末装置10の動作について説明する。
【0048】
[シナリオ作成処理]
図6は、端末装置10が実行するシナリオ作成処理の流れを示すフローチャートである。
シナリオ作成処理は、端末装置10において、シナリオ作成処理の実行を指示する操作が行われることに対応して開始される。
ステップS1において、GUI形成部111は、表示画面上にシナリオ作成GUI(
図4参照)を形成する。
【0049】
ステップS2において、GUI形成部111は、GUI入力受付部112を介してシナリオ作成GUIへの入力が行われたか否かの判定を行う。
GUI入力受付部112を介してシナリオ作成GUIへのシーンの入力(シーンを表すアイコンの選択)が行われた場合、ステップS2においてYESと判定されて、処理はステップS3に移行する。一方、GUI入力受付部112を介してシナリオ作成GUIへの入力が行われていない場合、ステップS2においてNOと判定されて、処理はステップS10に移行する。
【0050】
ステップS3において、データ生成部113は、入力されたシーンをシナリオのデータに追加する。なお、このとき追加されるシーンは、ユーザによって直接定義されたものや、作成用データの要求をサーバ20に送信することによりサーバ20から取得したものが含まれる。
【0051】
ステップS4において、GUI形成部111は、シナリオ作成GUIへの入力が作成中のシナリオの実行を指示する操作であるか否かの判定を行う。なお、ステップS8においては、作成中のシナリオの一部(1シーンのみ等)または全体の実行の指示が受け付けられる。
シナリオ作成GUIへの入力が作成中のシナリオの実行を指示する操作である場合、ステップS4においてYESと判定されて、処理はステップS5に移行する。一方、シナリオ作成GUIへの入力が作成中のシナリオの実行を指示する操作でない場合、ステップS4においてNOと判定されて、処理はステップS10に移行する。
ステップS5において、データ実行部114は、ステップS4において実行が指示されたシナリオ(一部または全体)の実行を開始する。
【0052】
ステップS6において、シーン判定部117は、実行対象のシナリオのデータに未整合シーンが含まれているか否かの判定を行う。
実行対象のシナリオのデータに未整合シーンが含まれている場合、ステップS6においてYESと判定されて、処理はステップS7に移行する。一方、実行対象のシナリオのデータに未整合シーンが含まれていない場合、ステップS6においてNOと判定されて、処理はステップS8に移行する。
【0053】
ステップS7において、未整合シーンに対する補間シーンを取得するための補間処理(
図7参照)が実行される。なお、ステップS7において補間処理が実行される場合、シーン判定部117から検索要求部118に出力された未整合シーンを補間するための補間条件を示す情報が参照される。
ステップS8において、データ実行部114は、次のシーンの対話処理を実行する。
ステップS9において、データ実行部114は、実行対象のシナリオの実行が完了したか否かの判定を行う。
実行対象のシナリオの実行が完了していない場合、ステップS9においてNOと判定されて、処理はステップS6に移行する。一方、実行対象のシナリオの実行が完了した場合、ステップS9においてYESと判定されて、処理はステップS10に移行する。
【0054】
ステップS10において、GUI形成部111は、シナリオ作成GUIへの入力がシナリオのデータをサーバ20のシナリオDBに登録する指示のための操作であるか否かの判定を行う。
シナリオ作成GUIへの入力がシナリオのデータをサーバ20のシナリオDBに登録する指示のための操作である場合、ステップS10においてYESと判定されて、処理はステップS11に移行する。一方、シナリオ作成GUIへの入力がシナリオのデータをサーバ20のシナリオDBに登録する指示のための操作でない場合、ステップS10においてNOと判定されて、処理はステップS12に移行する。
ステップS11において、シナリオデータ登録部115は、シナリオのデータをシナリオDBに登録するためにサーバ20に送信する。
【0055】
ステップS12において、GUI形成部111は、シナリオ作成GUIの終了を指示する操作が行われたか否かの判定を行う。
シナリオ作成GUIの終了を指示する操作が行われた場合、ステップS12においてYESと判定されて、シナリオ作成処理は終了となる。一方、シナリオ作成GUIの終了を指示する操作が行われていない場合、ステップS12においてNOと判定されて、処理はステップS2に移行する。
【0056】
次に、端末装置10が実行する補間処理について説明する。
[補間処理]
図7は、端末装置10が実行する補間処理の流れを示すフローチャートである。
補間処理は、シナリオ作成処理またはシナリオ実行処理において呼び出されることにより開始される。
【0057】
ステップS21において、シナリオデータ取得部116は、補間処理の対象となる未整合シーンのデータを取得する。
ステップS22において、検索要求部118は、シーン判定部117から入力された未整合シーンを補間するための補間条件を示す情報に基づいて、未整合シーンの補間に適合する部品データまたはシナリオのデータの要求(補間用データの要求)をサーバ20に送信し、サーバ20からの応答に基づいて、補間条件に適合する補間用データが存在するか否かの判定を行う。
補間条件に適合する補間用データが存在しない場合、ステップS22においてNOと判定されて、処理はステップS23に移行する。一方、補間条件に適合する補間用データが存在する場合、ステップS22においてYESと判定されて、処理はステップS25に移行する。
【0058】
ステップS23において、検索要求部118は、補間条件のうち、現在までの対話内容において、既に取得されている情報を未整合シーンのアウトプットに追加できるか否かの判定を行う。
補間条件のうち、現在までの対話内容において、既に取得されている情報を未整合シーンのアウトプットに追加できない場合、ステップS23においてNOと判定されて、処理は呼び出し元の処理に戻る。一方、補間条件のうち、現在までの対話内容において、既に取得されている情報を未整合シーンのアウトプットに追加できる場合、ステップS23においてYESと判定されて、処理はステップS24に移行する。
【0059】
ステップS24において、検索要求部118は、補間条件のうち、現在までの対話内容において、既に取得されている情報を未整合シーンのアウトプットに追加し、補間条件を更新する。
ステップS24の後、処理はステップS22に移行する。
ステップS25において、検索要求部118は、サーバ20から提供された補間シーン(以下、「補間シーンA」と称する。)のデータを取得する。
【0060】
ステップS26において、シーン判定部117は、ステップS25で取得された補間シーンAのアウトプットがステップS21で取得された未整合シーンに続くシーンのインプットに整合するか否かの判定を行う。
ステップS25で取得された補間シーンAのアウトプットがステップS21で取得された未整合シーンに続くシーンのインプットに整合する場合、ステップS26においてYESと判定されて、処理はステップS27に移行する。一方、ステップS25で取得された補間シーンAのアウトプットがステップS21で取得された未整合シーンに続くシーンのインプットに整合しない場合、ステップS26においてNOと判定されて、処理はステップS28に移行する。
【0061】
ステップS27において、検索要求部118は、ステップS25で取得された補間シーンAをステップS21で取得された未整合シーンの補間シーンとして確定し、補間シーンAのデータをデータ実行部114に出力する。ステップS27の後、処理は呼び出し元の処理に戻る。
【0062】
ステップS28において、検索要求部118は、ステップS25で取得された補間シーンAの補間に適合する部品データまたはシナリオのデータの要求(補間用データの要求)をサーバ20に送信し、サーバ20からの応答に基づいて、ステップS25で取得された補間シーンAのアウトプットにインプットが整合する補間シーンのデータが存在するか否かの判定を行う。即ち、ステップS28においては、未整合シーンを1つの補間シーンで補間できない場合に、補間シーンをさらに補間することで、未整合シーンを補間できるか否かが判定される。
ステップS25で取得された補間シーンのアウトプットにインプットが整合する補間シーンのデータが存在しない場合、ステップS28においてNOと判定されて、処理はステップS34に移行する。一方、ステップS25で取得された補間シーンのアウトプットにインプットが整合する補間シーンのデータが存在する場合、ステップS28においてYESと判定されて、処理はステップS29に移行する。
【0063】
ステップS29において、検索要求部118は、サーバ20から提供された補間シーン(以下、「補間シーンB」と称する。)のデータを取得する。
ステップS30において、検索要求部118は、ステップS25で取得された補間シーンに続く補間シーンとして、ステップS29で取得された補間シーンBを設定する。
【0064】
ステップS31において、シーン判定部117は、ステップS30で取得された補間シーンBのアウトプットがステップS21で取得された未整合シーンに続くシーンのインプットに整合するか否かの判定を行う。
ステップS30で取得された補間シーンBのアウトプットがステップS21で取得された未整合シーンに続くシーンのインプットに整合する場合、ステップS31においてYESと判定されて、処理はステップS32に移行する。一方、ステップS30で取得された補間シーンBのアウトプットがステップS21で取得された未整合シーンに続くシーンのインプットに整合しない場合、ステップS31においてNOと判定されて、処理はステップS33に移行する。
【0065】
ステップS32において、検索要求部118は、ステップS25で取得された補間シーンAに続く補間シーンを、ステップS29で取得された補間シーンBに確定し、補間シーンA及び補間シーンBのデータをデータ実行部114に出力する。
ステップS32の後、処理は呼び出し元の処理に戻る。
【0066】
ステップS33において、検索要求部118は、ステップS25で取得された補間シーンAの補間に適合する部品データまたはシナリオのデータの要求(補間用データの要求)をサーバ20に送信し、サーバ20からの応答に基づいて、ステップS25で取得された補間シーンAのアウトプットにインプットが整合する他の補間シーンBのデータが存在するか否かの判定を行う。即ち、ステップS28においては、ステップS29で取得された補間シーンB以外に、ステップS25で取得された補間シーンAのアウトプットにインプットが整合する補間シーンBが存在するか否かが判定される。
【0067】
ステップS25で取得された補間シーンAのアウトプットにインプットが整合する他の補間シーンBのデータが存在する場合、ステップS33においてYESと判定されて、処理はステップS29に移行する。一方、ステップS25で取得された補間シーンAのアウトプットにインプットが整合する他の補間シーンBのデータが存在しない場合、ステップS33においてNOと判定されて、処理はステップS34に移行する。
【0068】
ステップS34において、検索要求部118は、シーン判定部117から入力された未整合シーンを補間するための補間条件を示す情報に基づいて、未整合シーンの補間に適合する部品データまたはシナリオのデータの要求(補間用データの要求)をサーバ20に送信し、サーバ20からの応答に基づいて、補間条件に適合する他の補間用データAが存在するか否かの判定を行う。即ち、ステップS34においては、ステップS25で取得された補間シーンA以外に、ステップS21で取得された未整合シーンのアウトプットにインプットが整合する補間シーンAが存在するか否かが判定される。
補間条件に適合する他の補間用データAが存在する場合、ステップS34においてYESと判定されて、処理はステップS25に移行する。一方、補間条件に適合する他の補間用データAが存在しない場合、ステップS34においてNOと判定されて、処理は呼び出し元の処理に戻る。
【0069】
次に、端末装置10が実行するシナリオ実行処理について説明する。
[シナリオ実行処理]
図8は、端末装置10が実行するシナリオ実行処理の流れを示すフローチャートである。
シナリオ実行処理は、端末装置10において、シナリオ実行処理の実行を指示する操作が行われることに対応して開始される。
ステップS41において、シナリオデータ取得部116は、実行対象のシナリオのデータにおける開始シーンのデータを取得する。
【0070】
ステップS42において、データ実行部114は、開始シーンに定義されている対話処理を実行する。
ステップS43において、シナリオデータ取得部116は、実行対象のシナリオのデータにおける次のシーンのデータを取得する。
ステップS44において、シーン判定部117は、次のシーンが未整合シーンであるか否かの判定を行う。
次のシーンが未整合シーンでない場合、ステップS44においてNOと判定されて、処理はステップS45に移行する。一方、次のシーンが未整合シーンである場合、ステップS44においてYESと判定されて、処理はステップS47に移行する。
【0071】
ステップS45において、シーン判定部117は、次のシーンが実行対象のシナリオのデータにおける終了シーンであるか否かの判定を行う。
次のシーンが実行対象のシナリオのデータにおける終了シーンでない場合、ステップS45においてNOと判定されて、処理はステップS46に移行する。一方、次のシーンが実行対象のシナリオのデータにおける終了シーンである場合、ステップS45においてYESと判定されて、シナリオ実行処理は終了となる。
【0072】
ステップS46において、データ実行部114は、次のシーンに定義されている対話処理を実行する。
ステップS47において、データ実行部114は、補間処理(
図7参照)を実行する。
ステップS48において、データ実行部114は、未整合シーン及び補間シーンに定義されている対話処理を実行する。なお、補間処理の結果、適切な補間シーンが補間されず、未整合シーンのアウトプットと後続のシーンのインプットとの整合が取れていない場合、シナリオ実行処理は中断される。
ステップS48の後、処理はステップS43に移行する。
【0073】
次に、サーバ20の動作について説明する。
[シナリオ作成支援処理]
図9は、サーバ20が実行するシナリオ作成支援処理の流れを示すフローチャートである。
シナリオ作成支援処理は、サーバ20において、シナリオ作成処理の実行を指示する操作が行われることに対応して開始される。
【0074】
ステップS101において、作成用データ要求取得部212は、シナリオ作成GUIで選択される部品データを要求するための作成用データの要求を、端末装置10から取得したか否かの判定を行う。
シナリオ作成GUIで選択される部品データを要求するための作成用データの要求を、端末装置10から取得した場合、ステップS101においてYESと判定されて、処理はステップS102に移行する。一方、シナリオ作成GUIで選択される部品データを要求するための作成用データの要求を、端末装置10から取得していない場合、ステップS101においてNOと判定されて、処理はステップS104に移行する。
【0075】
ステップS102において、作成用提供データ取得部213は、作成用データ要求取得部212によって取得されたデータ要求に示される部品データを部品DB222から取得する。このとき、作成用提供データ取得部213は、作成用データの要求が部品データとしてのシナリオデータを要求するものである場合、作成用データの要求に示されるシナリオデータをシナリオDB221から取得する。
【0076】
ステップS103において、作成用データ提供部214は、作成用提供データ取得部213によって取得された部品データあるいはシナリオのデータを、作成用データの要求を行った端末装置10に提供する。
ステップS104において、シナリオ登録受付部211は、シナリオDBに登録するためのシナリオのデータを受信したか否かの判定を行う。
シナリオDBに登録するためにシナリオのデータを受信した場合、ステップS104においてYESと判定されて、処理はステップS105に移行する。一方、シナリオDBに登録するためにシナリオのデータを受信していない場合、ステップS104においてNOと判定されて、シナリオ作成支援処理が繰り返される。
【0077】
ステップS105において、シナリオ登録受付部211は、受信したシナリオのデータをシナリオDB221に登録する。なお、本実施形態におけるシナリオのデータには、未整合シーンを含むことが可能である。
ステップS105の後、シナリオ作成支援処理が繰り返される。
【0078】
次に、サーバ20が実行するシナリオ実行支援処理について説明する。
[シナリオ実行支援処理]
図10は、サーバ20が実行するシナリオ実行支援処理の流れを説明するフローチャートである。
シナリオ実行支援処理は、サーバ20において、シナリオ実行支援処理の実行を指示する操作が行われることに対応して開始される。
【0079】
ステップS201において、補間用データ要求取得部215は、未整合シーンの補間に適合する部品データまたはシナリオのデータの要求(補間用データの要求)を端末装置10から取得したか否かの判定を行う。
未整合シーンの補間に適合する部品データまたはシナリオのデータの要求(補間用データの要求)を端末装置10から取得した場合、ステップS201においてYESと判定されて、処理はステップS202に移行する。一方、未整合シーンの補間に適合する部品データまたはシナリオのデータの要求(補間用データの要求)を端末装置10から取得していない場合、ステップS201においてNOと判定されて、シナリオ実行支援処理が繰り返される。
【0080】
ステップS202において、補間用データ検索部216は、補間用データ要求取得部215によって取得された補間用データの要求に示される未整合シーンを補間するための補間条件に基づいて、先行する未整合シーンのアウトプットでは不足する情報を取得できる部品データまたはシナリオのデータを部品DB222またはシナリオDB221から検索する。このとき、補間用データ検索部216は、パラメータセット及びパラメータ値の条件をキーとして、対話処理の現在の状況を示すパラメータ、及び、補間条件に適合するシナリオのデータまたはシーンのデータをスコア化する。
【0081】
ステップS203において、補間用データ提供部217は、補間条件に適合するシナリオのデータまたはシーンのデータのうち、スコアが最も高いものを取得する。
ステップS204において、補間用データ提供部217は、取得したスコアが最も高いシナリオのデータまたはシーンのデータを、補間用データの要求を行った端末装置10に提供する。なお、同一の補間条件について補間用データの要求が複数回行われた場合、補間用データ提供部217は、補間条件に適合するシナリオのデータまたはシーンのデータのうち、スコアが高いものから順に取得する。これにより、端末装置10で実行される補間処理において、補間用データの要求が複数回行われた場合に、補間条件に適合するシナリオのデータまたはシーンのデータをスコアの高いものから順に提供することが可能となる。
ステップS204の後、シナリオ実行支援処理が繰り返される。
【0082】
このように、本実施形態における対話シナリオ処理システム1では、コンピュータ上に生成されたキャラクタが人間と対話する際のシナリオ(対話処理のシナリオ)の実行に際し、未整合シーンを補間するための補間条件に適合する部品データまたはシナリオのデータをサーバ20から取得して実行する。
これにより、後続のシーンのデータのインプットに対し、アウトプットが整合していない先行するシーンが存在する場合であっても、インプットとアウトプットとの不整合を補間可能な部品データまたはシナリオのデータをサーバ20から取得することにより、対話シナリオをより柔軟に適応させてコンピュータとの対話を実行することが可能となる。
【0083】
[シナリオの具体例]
次に、上述のような処理により、対話シナリオ処理システム1において作成されるシナリオの具体例について説明する。
図11は、本実施形態において実行される対話処理のシナリオの一例を示す模式図である。
図11において、実行対象のシナリオのデータにおける開始シーンSC1が対話者の発話を受け付けるシーンである場合に、対話者が午前7:00に「お腹が空いた」と発話したとする。そして、開始シーンSC1の次のシーンSC2は、時間の値によって、何が食べたいかの問い合わせを行うシナリオであるとする。この場合、シーンSC2のアウトプットは「食べたいもの(食べ物)」である。ここで、シーンSC2に続くシーンSC3は、場所をインプットとし、地図の表示をアウトプットとするシーンであるものとする。
【0084】
すると、シーンSC2は、そのアウトプット「食べたいもの(食べ物)」が後続のシーンSC3の入力「場所」と整合しないことから、未整合シーンとなる。このとき、本実施形態に係る対話シナリオ処理システム1では、シーンSC2のアウトプット「食べたいもの(食べ物)」とインプットが適合し、かつ、アウトプットがシーンSC3のインプット「場所」と整合することを補間条件として、補間シーンが検索される。
そして、「食べ物」からお店の「場所」の情報を提供するシナリオSC2aが存在したとすると、シナリオSC2aのアウトプットは「場所」であることから、補間条件と適合するものとなる。
すると、対話シナリオ処理システム1では、未整合シーンであるシナリオSC2の次に補間シーンであるシナリオSC2aを追加して補間することにより、シナリオSC3に遷移可能な状態が構成される。
これにより、対話シナリオをより柔軟に適応させてコンピュータとの対話を実行することが可能となる。
【0085】
[補間条件の具体例]
上述のように、補間条件のうち、現在までの対話内容あるいは他の情報(端末の位置情報等)において、既に取得されている情報(「時間」や「場所」等の不足する情報を直接的または間接的に表す情報等)を未整合シーンのアウトプットに追加することで、補間条件を更新することができる。即ち、未整合シーンと未整合シーンに続くシーンとのインプット及びアウトプットの差が減少するように、既に取得されている情報を未整合シーンのアウトプットに追加することができる。
例えば、未整合シーンよりも前の対話内容において、「渋谷で遊ぶ」という目的が検出されているときに、未整合シーンのアウトプットが「時間」のみであり、未整合シーンに続くシーンのインプットが「場所」、「時間」及び「食べ物」である場合、初期の補間条件として、「場所」及び「食べ物」をインプットとするシーンであることが設定される。
ここで、本実施形態に係る対話シナリオ処理システム1では、未整合シーンよりも前の対話内容で検出された「渋谷で遊ぶ」という目的から、未整合シーンのアウトプットに対し、「場所」の情報として「渋谷」を追加する。
すると、補間条件の内容は、「場所」及び「食べ物」をインプットとするシーンであることから、「食べ物」をインプットとするシーンであることに更新される。
これにより、取得される補間シーンの数を増加させることができ、より適切な補間シーンを選択することが可能となる。
【0086】
[変形例1]
上述の実施形態では、対話の流れにおいて隣接して配置された対話シナリオ間のインプットとアウトプットとが整合するか否かによって、未整合シーンであるか否か、あるいは、補間条件に適合するか否か等を判定するものとした。
これに対し、対話の流れにおいて隣接して配置された対話シナリオ間のインプットとアウトプットとの整合性を判定する場合に、インプットまたはアウトプットの情報を拡大することにより、整合性の判定基準を緩和することとしてもよい。
例えば、未整合シーンに続くシーンのインプットにおいて、「レストラン」が要求されているときに、未整合シーンのアウトプットが「喫茶店」である場合、検索要求部118において、「レストラン」及び「喫茶店」を「飲食店」等の上位概念を表す情報に変更(即ち、情報の範囲を拡大)することにより、インプットとアウトプットとが整合している状態に修正することとしてもよい。また、上位概念を表す情報に変更することの他、検索要求部118において、「喫茶店」を「レストラン」に変更する等、意味あるいはカテゴリ等が類似する情報に変更することにより、インプットとアウトプットとが整合している状態に修正することとしてもよい。なお、これら上位概念を表す情報への変更及び類似する情報への変更は、一方のみ、または、両方を行うことができる。
【0087】
このような処理をインプット及びアウトプットの一部または全部に行った場合、整合していないインプット及びアウトプットの一部または全部が整合することとなり、検索要求部118は、その結果に基づいて補間条件を更新し、必要な場合には、サーバ20に補間用データの要求を送信する。
これにより、未整合シーンを解消させる手段が増加し、対話シナリオをより柔軟に適応させてコンピュータとの対話を実行することが可能となる。
【0088】
[変形例2]
上述の実施形態において、パラメータセット及びパラメータ値の条件をキーとして、シナリオのデータ及び部品データをスコア化し、補間条件に適合するシナリオのデータ及び部品データの中から、スコアが高いものを検索結果として選択する例について説明したが、これに限られない。
即ち、未整合シーンの補間条件が充足されれば、他の条件に基づいて、部品データまたはシナリオのデータを絞り込むこととしてもよい。例えば、検索要求部118による補間用シナリオのデータの要求に応じて、サーバ20に記憶されたユーザの個人プロファイル(ユーザプロファイル)を参照して、部品データまたはシナリオデータを検索することとしてもよい。
【0089】
さらに、検索要求部118による補間用シナリオのデータの要求に応じて、対話を行っているユーザのユーザプロファイルに限らず、複数のユーザにおけるユーザプロファイルの統計を参照して、部品データまたはシナリオデータを検索することとしてもよい。
なお、対話を行っているユーザのユーザプロファイル及び複数のユーザにおけるユーザプロファイルの統計を共に反映させて、部品データまたはシナリオデータを検索することとしてもよい。この場合、対話を行っているユーザのユーザプロファイル及び複数のユーザにおけるユーザプロファイルの統計を重み付けして統合し、統合されたユーザプロファイルを参照して、部品データまたはシナリオデータを検索することが可能である。
【0090】
[変形例3]
上述の実施形態において、シナリオのデータに、具体的なシーンの指定ではなく、シーンを選択するための条件(以下、「シーン選択条件」と称する。)が設定された抽象シーンのデータを含めることを許容してもよい。シーン選択条件は、例えば、抽象シーンに挿入されるシーン等に求められるパラメータの条件として設定することができる。例えば、シーン選択条件として「時間」が設定された抽象シーンの場合、その抽象シーンに挿入されるシーンとしては、「時間」のパラメータあるいは「時間」に関連するパラメータが指定されたシーンのみが選択可能となる。
【0091】
この場合、端末装置10において、シーン判定部117が抽象シーンを検出すると、検索要求部118が、対話実行時の状況に適合する部品データまたはシナリオのデータ(シーン選択条件に適合し、対話処理の現在の状況(対話の流れ等)に適合するシーンまたはシナリオのデータ)をサーバ20からリアルタイムに取得して、データ実行部114は、抽象シーンに埋め込む形で対話処理を実行する。即ち、シナリオのデータに抽象シーンのデータが含まれている場合、端末装置10は、対話処理の現在の状況に適合し、かつ、抽象シーンに設定されたシーン選択条件に適合する部品データまたはシナリオのデータをサーバ20に要求することにより、動的にシーンを選択して、シナリオのデータに基づく対話処理を実行する。
これにより、対話処理のシナリオのバリエーションを容易に増加させることが可能となる。
なお、上述の実施形態における未整合シーンが本変形例における抽象シーンであることも許容され、この場合、シナリオの作成者は、対話シナリオをより柔軟に適応させてコンピュータとの対話を実行することが可能となると共に、対話処理のシナリオのバリエーションを容易に増加させることが可能となる。
【0092】
以上のように構成される対話シナリオ処理システム1は、端末装置10と、サーバ20とを含む。端末装置10は、シーン判定部117と、検索要求部118と、データ実行部114と、を備える。
シーン判定部117は、実行対象となるシナリオのデータの要素(例えば、部品データまたはシナリオのデータ等)が、シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合要素(例えば、未整合シーン)であるか否かを判定する。
検索要求部118は、シーン判定部117によってシナリオのデータの要素が未整合要素であると判定された場合に、未整合要素において入出力される情報を補間するためのシナリオのデータの要素である補間要素のデータをサーバ20から取得する。
データ実行部114は、実行対象となるシナリオのデータにおける未整合要素に、検索要求部118によって取得された補間要素のデータを追加して、実行対象となるシナリオのデータを実行する。
これにより、シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合シーンが存在する場合であっても、入出力される情報を補間可能な補間要素のデータをサーバ20から取得して、実行対象となるシナリオのデータを実行することができる。
したがって、対話シナリオをより柔軟に適応させてコンピュータとの対話を実行することが可能となる。
【0093】
検索要求部118は、未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の差を補間する対話内容が定義された1つまたは複数の補間要素のデータを取得する。
これにより、未整合要素が存在する場合であっても、入出力される情報の差を適切に補間して、実行対象となるシナリオのデータを実行することができる。
【0094】
検索要求部118は、未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の範囲を拡大することにより、未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の整合性を高める処理を実行する。
これにより、未整合要素を解消させる手段が増加し、対話シナリオをより柔軟に適応させてコンピュータとの対話を実行することが可能となる。
【0095】
検索要求部118は、未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報を類似する情報に変更することにより、未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の整合性を高める処理を実行する。
これにより、未整合要素を解消させる手段が増加し、対話シナリオをより柔軟に適応させてコンピュータとの対話を実行することが可能となる。
【0096】
検索要求部118は、対話処理における対話内容に基づいて、未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報との差を減少させるための情報を追加する。
これにより、取得される補間要素の数を増加させることができ、より適切な補間要素を選択することが可能となる。
【0097】
検索要求部118は、対話者個人のプロファイルに基づいて、補間要素のデータを取得する。
これにより、対話者個人の特徴に適合したシナリオのデータを取得して実行することができる。
【0098】
検索要求部118は、複数の対話者のプロファイルに基づいて、補間要素のデータを取得する。
これにより、複数のユーザの傾向に適合したシナリオのデータを取得して実行することができる。
【0099】
サーバ20は、補間用データ検索部216を備える。補間用データ検索部216は、未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の差に基づいて、未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素との差を補間する対話内容が定義された補間要素のデータを検索する。
これにより、未整合要素が存在する場合であっても、入出力される情報の差を適切に補間可能な補間要素のデータを提供することが可能となる。
【0100】
サーバ20は、補間用データ検索部216と、補間用データ提供部217と、を備える。
補間用データ検索部216は、実行対象となる前記シナリオのデータに含まれる、シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の差に基づいて、未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素との差を補間する対話内容が定義された補間要素のデータを検索する。
補間用データ提供部217は、補間用データ検索部216によって検索された前記シナリオのデータの要素を前記情報処理装置に提供する。
これにより、シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合シーンが存在する場合であっても、入出力される情報を補間可能な補間要素のデータをサーバ20から提供して、端末装置10において、実行対象となるシナリオのデータを実行することができる。
したがって、対話シナリオをより柔軟に適応させてコンピュータとの対話を実行することが可能となる。
【0101】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
例えば、上述の実施形態において、後続のシーンのデータのインプットに対し、アウトプットが整合していない先行するシーンを未整合シーンとして定義したが、これに限られない。即ち、先行するシーンのデータのアウトプットに対し、インプットが整合していない後続のシーンを未整合シーンとして定義することとしてもよい。
また、上述の実施形態において、サーバ20の構成は一例として示したものであり、対話シナリオ処理システム1全体として、サーバ20の機能が備えられていれば、サーバ20の機能を複数のサーバに分割して実装したり、端末装置10にサーバ20の機能の一部を実装したりすることができる。
【0102】
また、上述の実施形態に記載された例を適宜組み合わせて、本発明を実施することが可能である。
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
換言すると、
図3及び
図5の機能的構成は例示に過ぎず、特に限定されない。即ち、上述した一連の処理を全体として実行できる機能が対話シナリオ処理システム1に備えられていれば足り、この機能を実現するためにどのような機能ブロックを用いるのかは特に
図3及び
図5の例に限定されない。
また、1つの機能ブロックは、ハードウェア単体で構成してもよいし、ソフトウェア単体で構成してもよいし、それらの組み合わせで構成してもよい。
【0103】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えば汎用のパーソナルコンピュータであってもよい。
【0104】
このようなプログラムを含む記録媒体は、ユーザにプログラムを提供するために装置本体とは別に配布される
図2のリムーバブルメディア821により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される記録媒体等で構成される。リムーバブルメディア821は、例えば、磁気ディスク(フロッピディスクを含む)、光ディスク、または光磁気ディスク等により構成される。光ディスクは、例えば、CD−ROM(Compact Disk−Read Only Memory),DVD(Digital Versatile Disk),Blu−ray(登録商標) Disc(ブルーレイディスク)等により構成される。光磁気ディスクは、MD(Mini−Disk)等により構成される。また、装置本体に予め組み込まれた状態でユーザに提供される記録媒体は、例えば、プログラムが記録されている
図2のROM812や、
図2の記憶部817に含まれるDRAM等で構成される。
【0105】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムの用語は、複数の装置や複数の手段等より構成される全体的な装置を意味するものとする。