(58)【調査した分野】(Int.Cl.,DB名)
前記クライアントコンピュータと前記クエリ応答デバイスとの間の接続は、Bluetooth通信規格に従って確立されることを特徴とする請求項1に記載のコンピュータシステム。
【発明を実施するための形態】
【0016】
以下、添付図面を参照して、本発明に係るクエリ応答システムを詳細に説明する。本実施形態に係るクエリ応答システムは、ユーザからのクエリに対する応答を介して特定のアプリケーションサービスを提供する。
図1は、本発明の一実施形態に係るクエリ応答システムを構成するコンピュータシステム全体の構成の例を示す図である。以下で説明する実施形態では、本発明に係るクエリ応答システムがユーザからの発話(つまり、音声入力)に対して音声の形式で応答を返却する(つまり、音声出力)処理を実行する例として説明する。
【0017】
クエリ応答システムは、サーバコンピュータ1、クエリ応答デバイス2、およびクライアントコンピュータ3を備える。サーバコンピュータ1と、クエリ応答デバイス2およびクライアントコンピュータ3とは、ネットワーク4(インターネットなどの公衆ネットワーク)を介して接続され、その接続方式は、有線または無線のいずれかであってもよい。クエリ応答デバイス2とクライアントコンピュータ3とは、Bluetooth(登録商標)などの近距離無線通信規格に従った接続方式で接続される。
【0018】
サーバコンピュータ1は、ユーザにアプリケーションサービスを提供するサーバコンピュータデバイスである。サーバコンピュータ1は、ユーザからのクエリ応答デバイス2を通じたクエリ(発話)に応答して、実装するアプリケーションサービスに対応するアプリケーションプログラムを実行し、発話に応じた応答電文を生成する。応答電文は、クエリ応答デバイス2に送信される。
【0019】
サーバコンピュータ1は、単一のデバイスで実装されてもよく、または複数のデバイスで実装されてもよい。また、サーバコンピュータ1は、それぞれが異なるサービスを実装する複数のデバイスで実装されてもよい。この場合、クエリ応答デバイス2がユーザからの発話を認識して(例えば、発話における特定のキーワードに基づいて)、発話に対応するアプリケーションサービスを実装するサーバコンピュータ1を選択することになる。
【0020】
クエリ応答デバイス2は、ユーザからの発話に応答して音声で応答する学習機能付きのスピーカデバイスである。クエリ応答デバイス2は、クライアントコンピュータ3が一定の範囲内にあることを検出することによって、クライアントコンピュータ3と接続する(Bluetooth接続を介して)。そして、ユーザの発話がされるとその音声を認識し、サーバコンピュータ1に、発話に対応するクエリ電文を送信し、クエリ電文に対応する応答電文を受信して音声に変換して音声出力する。つまり、クエリ応答デバイス2は、ユーザからの発話に対応する応答を返却するサーバコンピュータ1を選択し、サーバコンピュータ1からの応答を音声出力する仲介デバイスとして機能する。クエリ応答デバイス2も、単一のデバイスで実装されてもよく、または複数のデバイスで実装されてもよい。
【0021】
クライアントコンピュータ3は、ユーザの認証に使用されるコンピュータデバイスである。クライアントコンピュータ3は、クエリ応答デバイス2との接続を確立すると、サーバコンピュータ1に接続情報を送信する。クライアントコンピュータ3とクエリ応答デバイス2との間での接続をサーバコンピュータ1が確認することによって、ユーザの認証が行われる。本実施形態では、クライアントコンピュータ3は、スマートフォンを含む携帯電話を想定しているが、そのような機器に限定されず、近距離無線通信機能(特に、Bluetooth接続機能)を有するコンピュータデバイスであれば、特に機器は限定されない。例えば、ユーザが衣服などに身に着けるウェアラブルデバイス(スマートウォッチおよびスマートグラス)などであってもよい。
【0022】
次に、
図2を参照して、本発明の一実施形態に係るクエリ応答システムを構成するコンピュータシステムの詳細な構成の例を説明する。
図2に示すように、サーバコンピュータ1は、制御装置11、メモリ12、記憶装置13、および通信装置14を含み、それらの構成要素がバスを介して相互に結合されている。
【0023】
制御装置11は、プロセッサなどで実装され、中央処理装置(CPU)、グラフィックプロセシングユニット(GPU)、および/または1つもしくは複数のプロセッサコアを含んでもよい。サーバコンピュータ1は、DBMS(Database Management System)を実装し、制御装置11は、OS(Operating System)を実装する各プログラム、アプリケーションサービスを実装する各アプリケーションプログラム、およびDBMSが実装する各プログラムを実行する。メモリ12は、揮発性記憶領域として機能し、例えば、ランダムアクセスメモリ(RAM)、ダイナミックRAM、またはキャッシュメモリを含んでもよい。制御装置11は、上述したプログラムをメモリ12に読み出して実行する。
【0024】
記憶装置13は、サーバコンピュータ1に内蔵された記憶装置であり、例えば、ハードディスクドライブ、ソリッドステートドライブ、光ディスク、およびフラッシュドライブを含んでもよい。記憶装置13は、上述したプログラム、および後述する供給先データテーブルなどのデータベーステーブル13aを記憶する。通信装置14は、例えば、ネットワークインタフェースカード(例えば、LANカード)などで実装され、ネットワーク4を介してクエリ応答デバイス2およびクライアントコンピュータ3との間でデータを送受信する。
【0025】
クエリ応答デバイス2は、制御装置21、メモリ22、記憶装置23、通信装置24、入力ドライバ25、マイクロフォン26、出力ドライバ27、およびスピーカ28を含み、それらの構成要素がバスを介して相互に結合されている。
【0026】
制御装置21は、サーバコンピュータ1と同様にCPUなどで実装される。制御装置21は、OSを実装するプログラム、音声信号をデジタルデータに符号化し、デジタルデータを音声信号に復号するコーデックを実装したプログラム(コーデックプログラム)、および学習機能を実装するプログラム(学習プログラム)などをメモリ22に読み出して実行する。なお、学習機能は、ニューラルネットワークモデルなどの既知の技術を使用して実装されてもよい。
【0027】
記憶装置23は、サーバコンピュータ1と同様に、ハードディスクドライブなどを含む内蔵された記憶装置であり、ニューラルネットワークモデルなどに従って蓄積した学習データを記憶する。通信装置24は、無線LANカードおよびBluetoothアダプタなどを含む。通信装置24は、サーバコンピュータ1との間でネットワーク4を介してデータを送受信し、クライアントコンピュータ3との間でBluetooth接続を介してデータを送受信する。
【0028】
マイクロフォン(入力装置)26は、入力ドライバ25を介して、ユーザによる発話を受信する。受信した発話は、制御装置21(コーデック)によって符号化されてクエリ電文に変換される。スピーカ(出力装置)28は、サーバコンピュータ1から受信した応答電文から変換された音声信号を音声出力する。応答電文は、制御装置21(コーデック)によって復号されて、出力ドライバ27を介してスピーカ28に送信される。
【0029】
クライアントコンピュータ3は、図示しない通信装置および制御装置を有する。通信装置は、サーバコンピュータ1との間でネットワーク4を介してデータを送受信し、クライアントコンピュータ3との間でBluetooth接続を介してデータを送受信する。制御装置は、OSおよびサーバコンピュータ1が実行するアプリケーションプログラムに対応するクライアントアプリケーションプログラムを実行する。なお、クライアントアプリケーションプログラムは、サーバコンピュータ1から事前にダウンロードされている。
【0030】
次に、
図3を参照して、本発明の一実施形態に係るユーザデータテーブル300のデータ構造の例を説明する。本実施形態では、サーバコンピュータ1が提供するアプリケーションサービスがインターネットバンキングサービスであるものとして説明する。そのことを前提に、ユーザからの発話が自身の口座の残高に関する問い合わせに関するものであり、それに対する応答が残高に関するものである。ユーザデータテーブル300は、サーバコンピュータ1の記憶装置13に記憶されたデータベーステーブル13aのうち、残高に関する問い合わせに対するユーザの認証に使用されるデータテーブルである。
【0031】
図3に示すように、ユーザデータテーブル300は、データ項目「ユーザID」、「クライアントコンピュータ通知ID」、「利用デバイス名」、および「有効フラグ」を含む。各データレコードは、ユーザごとに生成される。ユーザIDは、サーバコンピュータ1が実装するアプリケーションサービス(以下、「アプリケーションサービス」)においてユーザごとに一意な識別子が設定される。クライアントコンピュータ通知IDは、サーバコンピュータ1がクライアントコンピュータに、後述する接続確認要求電文を送信するための送信先を識別するIDである。利用デバイス名は、対象のユーザが使用するクエリ応答デバイス2の名称(例えば、型式番号など)が設定される。つまり、対象のユーザと使用するクエリ応答デバイス2とが関連付けて記憶される。有効フラグは、残高に関する問い合わせに対して応答するサービスが有効であるか否かを示す値が設定され、例えば、「1:有効」または「2:無効」である。
【0032】
ユーザデータテーブル300における対象のユーザのデータレコードは、例えば、対象のユーザが、アプリケーションサービスに登録するときに生成(追加)される。ユーザがアプリケーションサービスに登録する際に、一意なユーザIDが割り当てられ、所定の認証(パスワードなど)でログインする。このときに割り当てられるユーザIDが、ユーザデータテーブル300の対象のデータレコードに設定される。
【0033】
また、後述する接続確認を行うための接続確認要求電文は、例えば、サーバコンピュータ1が実装するOSのプッシュ通知サービスを利用して送信される。プッシュ通知サービスは、例えば、クライアントコンピュータ3がiOS(登録商標)を実装している場合「APN(Apple Push Notification Service)」を利用し、Android(登録商標)を実装している場合「GCM(Google Cloud Messaging)」を利用する。よって、ユーザが上記プッシュ通知サービスに登録する際に割り当てられたIDが、ユーザデータテーブル300の対象のデータレコードに設定される(クライアントコンピュータ通知ID)。
【0034】
なお、上述したプッシュ通知サービスは例示的なものにすぎず、上記例に限定されない。サーバコンピュータ1がクライアントコンピュータ3に接続確認要求電文を送信することができる任意の方式が利用されてもよい。
【0035】
Bluetooth接続では、2つのデバイス(Bluetooth接続対応デバイス)との間でペアリングを行う必要がある。2つのデバイス間が通信可能な範囲内にあると、相互に他方のデバイスの存在を検出し、対象のデバイス名を認識する。その後、いずれかのデバイスでPINコードを入力すると、ペアリングが完了し、双方の機器にペアリング情報が記憶される(他方の機器のデバイス名など)する。クライアントコンピュータ3とクエリ応答デバイス2との間では事前にペアリングを行い、そのクエリ応答デバイス2のデバイス名がユーザデータテーブル300の利用デバイス名に設定される(つまり、クライアントコンピュータ3とクエリ応答デバイス2とのペアリング情報がユーザデータテーブル300に登録される)。
【0036】
Bluetooth接続では、2つのデバイスがIEEE(Institute of Electrical and Electronics Engineers)802.15.1で規定された2.4GHz帯の電波を放出し、数メートルから数10メートルの範囲で通信を行う。つまり、クライアントコンピュータ3とクエリ応答デバイス2との間の通信は、双方が数メートルから数10メートルの範囲内にあるときにのみ有効となる。
【0037】
次に、
図4を参照して、本発明の一実施形態に係る口座データテーブル400のデータ構造の例を説明する。口座データテーブル400は、上述したサービスを実装するために必要な、サーバコンピュータ1の記憶装置13に記憶されたデータベーステーブル13aのうち、ユーザごとの口座情報を記憶したデータテーブルである。
【0038】
図4に示すように、口座データテーブル400は、データ項目「ユーザID」、「口座番号」、「金融機関コード」、「支店コード」、「口座種別」、「名義人」、「残高」、および「限度額」を含む。各データレコードは、上述したインターネットバンキングサービスを利用するユーザごとに生成される。つまり、本実施形態に係るアプリケーションサービスを利用するユーザごとに、
図3で説明したユーザデータテーブル300のデータレコードと対で生成される。限度額は、後述する残高に関する問い合わせに対して応答を制限する場合に所定の値が設定される。
【0039】
<第1の実施形態>
次に、
図5を参照して、本発明の第1の実施形態に係るクエリ応答システムが実行する処理を説明する。この処理では、ユーザAがクエリ応答システムに自身の残高を問い合わせる発話をし、それに対して残高に関する応答が音声で返却される。ユーザAの口座情報は、口座データテーブル400に登録されているものとする。
【0040】
また、クライアントコンピュータ3とクエリ応答デバイス2との間の通信は、Bluetooth接続により通信が行われ、双方の間で既にペアリングが行われ、ユーザAのユーザID、利用デバイス名、およびクライアントコンピュータ通知IDがユーザデータテーブル300に登録されているものとする。このような状態で、クライアントコンピュータ3が音声対応デバイスとBluetooth接続が可能な範囲に入ると、自動的に接続状態となる。
【0041】
図5で説明する処理におけるサーバコンピュータ1によって実行される処理は、サーバコンピュータ1の制御装置11がアプリケーションプログラムを実行することによって実装される。また、クエリ応答デバイス2によって実行される処理は、クエリ応答デバイス2の制御装置21がコーデックプログラムおよび学習プログラムなどを実行することによって実装される。さらに、クライアントコンピュータ3によって実行される処理は、クライアントコンピュータ3の制御装置がクライアントアプリケーションプログラムを実行することによって実装される。
【0042】
まず、ステップS501では、クエリ応答デバイス2の通信装置24は、クライアントコンピュータ3の存在を検出する(または、クライアントコンピュータ3がクエリ応答デバイス2の存在を検出する)。この検出の処理は、クライアントコンピュータ3が放出する電波をクエリ応答デバイス2が検出することによって実行される。ステップS501でクエリ応答デバイス2がクライアントコンピュータ3の存在を検出すると、両者間での接続が確立し、クライアントコンピュータ3は、クエリ応答デバイス2のデバイス名を認識することができる。
【0043】
次に、ユーザAは、クエリ応答デバイス2に対し、例えば、「口座の残高を教えてください」と発話する(ステップS502)。次に、クエリ応答デバイス2のマイクロフォン26が、ステップS502における発話を受信し音声信号に変換すると、制御装置21に送信する。制御装置21は、音声信号をデジタルデータに変換し、デジタルデータに含まれるキーワードを分析する(つまり、ユーザAの発話を分析する)(ステップS503)。キーワードの分析は、デジタルデータに変換された発話におけるキーワードを抽出することによって実行される。キーワード抽出は、例えば、TF−IDF(Term Frequency-Inverse Document Frequency)およびSVM(Support Vector Machine)などの既知の特徴語抽出アルゴリズムを使用して実行される。
【0044】
この分析の結果、ニューラルネットワークなどの学習データに従って、分析したキーワードに対応するアプリケーションサービスを特定する(ステップS504)。本実施形態では、例えば、学習データには、「残高」などのキーワードとインターネットバンキングサービスとが関連付けられたデータが記憶されている。ユーザからの発話にキーワード「残高」が含まれる場合に、制御装置21は、インターネットバンキングサービスを提供するサーバコンピュータ1を特定する。
【0045】
次に、制御装置21は、クエリ電文を生成し、通信装置24がステップS504で特定したサーバコンピュータ1に送信する(ステップS505)。クエリ電文は、少なくともステップS501で取得したクライアントコンピュータ3のユーザAによる要求の種別を示す情報を含む。要求の種別は、所定のキーワードと関連付けて学習データに記憶されており、例えば、キーワード「残高」と、残高に関する問い合わせ要求とが関連付けられている。
【0046】
次に、サーバコンピュータ1の通信装置14が、ステップS505で送信されたクエリ電文を受信すると、制御装置11は、ユーザデータテーブル300から対象のデータレコードを取得する(ステップS506)。そして、制御装置11は、クライアントコンピュータ3とクエリ応答デバイス2との間で接続が確立されているかを確認するための接続確認要求電文を生成する。そして、通信装置14は、ステップS506で取得したユーザデータレコードに含まれるクライアントコンピュータ通知IDを宛先(つまり、クライアントコンピュータ3)として接続確認要求電文を送信する(ステップS507)。この接続確認要求電文は、上述したプッシュ通知サービスなどを利用して送信される。
【0047】
次に、クライアントコンピュータ3がステップS507で送信された接続確認要求電文を受信すると、接続確認応答電文を生成し、サーバコンピュータ1に送信する(ステップS508)。接続確認応答電文は、少なくともステップS501で取得したクエリ応答デバイス2のデバイス名を含む。
【0048】
ステップS508でクライアントコンピュータ3が接続確認要求電文を受信した時点で、クライアントコンピュータ3上では、クライアントアプリケーションプログラムが実行されている必要がある。クライアントアプリケーションプログラムが実行されていない場合、クライアントコンピュータ3のOSがクライアントアプリケーションプログラムを起動してもよい。クライアントアプリケーションプログラムを起動する際は、接続確認要求電文のポート番号を参照することによって、対象のアプリケーションを特定することができる(ポート番号は、サーバコンピュータ1のアプリケーションプログラムに割り当てられたポート番号と関連付けられる)。
【0049】
次に、サーバコンピュータ1の通信装置14が、ステップS508で送信された接続確認応答電文を受信すると、制御装置11は、接続確認応答電文に含まれるデバイス名(第1の識別子)が、ステップS506で取得したユーザデータテーブルに含まれる利用デバイス名(第2の識別子)と一致するかを判定する(ステップS509)。この処理の際に、ユーザデータレコードに含まれる利用デバイス名が接続確認応答電文に含まれるデバイス名と一致する場合、クライアントコンピュータ3と対象のデバイス名に対応するクエリ応答デバイス2との間で接続が確立されていることを確認することができる。つまり、ユーザAからの発話が、対象のクエリ応答デバイス2と接続されたクライアントコンピュータ3を有するユーザであることを確認することができ、ひいてはユーザAの本人確認を行うことができる。
【0050】
なお、ステップS509の処理において、クエリ応答デバイス2とクライアントコンピュータ3との間の接続が確認できなかった場合、サーバコンピュータ1が対象のユーザに接続を促す旨の通知を行ってもよい。具体的には、サーバコンピュータ1の通信装置14が、予め定められたメッセージをクエリ応答デバイス2および/またはクライアントコンピュータ3に送信する。クエリ応答デバイス2および/またはクライアントコンピュータ3は、送信されたメッセージを音声または視覚的表示などの所定の形式で出力する。
【0051】
次に、制御装置11は、ステップS505で送信されたクエリ電文に含まれる要求の種別に従って処理を実行する。本実施形態では、要求の種別が残高に関する問い合わせ要求であるので、制御装置11は、ステップS506で取得したデータレコードに含まれるユーザIDに基づいて、口座データテーブル400から対象のデータレコードを取得する(ステップS510)。データレコードを取得すると、制御装置11は、取得したデータレコードに基づいて、クエリ応答電文を生成し、通信装置14がクエリ応答デバイス2に送信する(ステップS511)。クエリ応答電文は、少なくともステップS510で取得したデータレコードに含まれる残高を含む。
【0052】
次に、クエリ応答デバイス2の通信装置24が、ステップS511で送信されたクエリ応答電文を受信すると、制御装置21は、クエリ応答電文を音声信号に変換する(ステップS512)。変換された音声信号は、出力ドライバ27を介してスピーカ28を通じて音声出力される(ステップS513)。例えば、音声出力は、「残高は1,029,389円です。」などである。
【0053】
ステップS509でデバイス名が一致しなかった場合、つまりユーザAの本人確認ができず、その旨を通知するメッセージを通知する場合は通知してから所定の時間が経過した後、ステップS510の処理は実行されずにエラー応答が返却される。この場合、ステップS511では、本人確認ができなかったことを示すエラー応答電文が生成され、ステップS512およびステップS513の処理を通じてその旨が音声出力される。例えば、音声出力は、「本人確認ができなかったのでお答えできません。」などである。
【0054】
上述したエラー応答は、ステップS510で取得した口座データテーブル400のデータレコードに含まれる残高が限度額を上回る場合にも適用されてもよい。これによって、一定の額を上回る残高をユーザが有している場合に、問い合わせに対する回答を制限することができる。
【0055】
サーバコンピュータ1は、ステップS505の処理以降のいずれか(つまり、ユーザAから残高に関する問い合わせがあった後のいずれか)で、ユーザAから残高に関する問い合わせがあったことを示す通知をクライアントコンピュータ3に送信してもよい(例えば、電子メールの形式で)。この処理によって、第三者による残高に関する問い合わせに関する発話の試みが行われたことをユーザAが確認することができる。
【0056】
また、ステップS509の処理以降のいずれか(つまり、ユーザAの本人確認に成功した後のいずれか)で、ユーザAから残高に関する問い合わせに対し応答したことを示す通知をクライアントコンピュータ3に送信してもよい。さらに、ステップS509の処理において本人確認に失敗した場合、その処理以降のいずれかで、ユーザAから残高に関する問い合わせに対し本人確認ができなかったことを示す通知をクライアントコンピュータ3に送信してもよい。いずれの処理によっても、第三者による残高に関する問い合わせに対する本人確認が成功/失敗したことをユーザAが確認することができる。
【0057】
なお、ユーザAは、クライアントコンピュータ3の操作を介して上述した残高に関する問い合わせの機能を無効化することができる。この無効化のために、クライアントコンピュータ3の操作を介してユーザデータテーブル300の対象のデータレコードに含まれる有効フラグが「2:無効」に更新される。この処理によって、制御装置11は、上述したステップS508の処理以降において有効フラグに設定された値を設定することによって、クエリ応答デバイス2にエラー応答を返却することができる。
【0058】
以上のように、本発明に第1の実施形態に係るクエリ応答システムを説明した。本実施形態に係るクエリ応答システムによると、PINコードなどの発話も入力も必要とせずにユーザ認証を行うことができ、残高などの秘密情報の交換においてセキュリティを確保することができる。また、クライアントコンピュータ3とクエリ応答デバイス2との間でのBluetooth接続を介して応答が返却されるので、少なくともクライアントコンピュータ3がクエリ応答デバイス2から一定の範囲内にない応答が返却されない。よって、例えば、第三者のコンピュータデバイスがネットワークを介した遠隔操作などによって残高を盗聴するような行為を防止することができる。
【0059】
また、クライアントコンピュータ3とクエリ応答デバイス2との間でのBluetooth接続が条件となることから、一方のデバイスが盗難などにあっても、双方のデバイスが揃わない限り、第三者による盗聴を防止することができる。
【0060】
さらに、クライアントコンピュータ3をロック機能付きのコンピュータデバイスで実装することによってさらにセキュリティを高めることができる。一方で、クライアントコンピュータ3をウェアラブルデバイスで実装する場合、ユーザによる操作を必要とせずに本発明に係るクエリ応答システムを利用することができる。ウェアラブルデバイスでは、ユーザがデバイスを装着している場合はロックが解除されている状態であるので(内部センサがユーザとデバイスとの密着状態を検出することによって)、ユーザがロックを解除する操作を必要としないからである。
【0061】
なお、第1の実施形態では、クライアントコンピュータ3とクエリ応答デバイス2との間の接続がBluetooth通信規格に従って確立されるものとして説明したが、そのような形式に限定されない。Bluetoothと同様のペアリングに相当する手順を行ういずれかの通信方式を採用してもよい。この場合、最初のデバイス間接続時に双方で他方のデバイスを識別する情報を保持し、その後の通信は、双方のデバイスが所定の範囲内にあるときに秘密鍵によって通信が暗号化されることになる。以下の第2の実施形態でも同様である。
【0062】
また、Bluetooth以外の通信方式を利用する場合でも、本実施形態に係るクエリ応答システムを一定の範囲内での使用に制限することによってセキュリティを確保するために、近距離無線接続の通信方式を利用することが望ましい。例えば、ZigBeeや赤外線を利用した近距離無線通信などである。
【0063】
<第2の実施形態>
次に、
図6および
図7を参照して、本発明の第2の実施形態に係るクエリ応答システムが実行する処理を説明する。
図6は、ユーザからの発話におけるキーワードに基づいて識別される識別対象が複数あり、それぞれの識別対象が対応するキーワードに基づいて識別されることを示す。つまり、発話に含まれる1つまたは複数のキーワードに基づいて、アプリケーションサービスおよびユーザなどの複数の異なる識別対象が判定される。
【0064】
本実施形態では、識別対象は、ユーザに提供するアプリケーションサービスを含み、つまり、ユーザからの発話における第1のキーワードに基づいてアプリケーションサービスが識別される(本実施形態では、インターネットバンキングサービス)。また、識別対象は、ユーザによる要求の種別を含み、ユーザからの発話における第2のキーワードに基づいて要求の種別が識別される(本実施形態では、残高に関する問い合わせ)。さらに、識別対象は、問い合わせたユーザを含み、つまり、ユーザからの発話における第3のキーワードに基づいて問い合わせたユーザが識別(認証)される。
【0065】
図6に示す例では、ユーザからの発話が「スミス、○○銀行の口座残高を教えて。」であるものとする。そして、この発話におけるキーワード「○○銀行」は第1のキーワードであり、本実施形態におけるインターネットバンキングサービスと関連付けられる。つまり、クエリ応答デバイス2は、ユーザからの発話に「○○銀行」が含まれると判定したことに応じて、対象のインターネットバンキングサービスを提供するサーバコンピュータ1を選択する。上記第1のキーワードとアプリケーションサービスとの関連付け(第1の対応関係)は、学習データに記憶される。
【0066】
発話におけるキーワード「残高」は第2のキーワードであり、本実施形態における残高に関する問い合わせの処理要求と関連付けられる。つまり、クエリ応答デバイス2は、ユーザからの発話に「残高」が含まれると判定したことに応じて、残高に関する問い合わせ要求であることを示す情報を含むクエリ電文を生成する。上記第2のキーワードと処理要求との関連付け(第2の対応関係)は、学習データに記憶される。
【0067】
発話におけるキーワード「スミス」は第3のキーワードであり、本実施形態における問い合わせたユーザと関連付けられる。このキーワードは、クエリ応答デバイス2から送信されるクエリ電文に含まれ、サーバコンピュータ1においてこのキーワードに基づいてユーザの認証が行われる。
【0068】
次に、
図7を参照して、本発明の第2の実施形態に係るクエリ応答システムが実行する処理を説明する。第2の実施形態は、第1の実施形態と処理が重複する部分を有するので、異なる部分のみを説明する。
図7におけるステップの処理のうち、以下の表1に示すステップの処理は、
図5で説明したステップの処理に対応するので、説明を省略する。
【0070】
ステップS702では、ユーザAは、クエリ応答デバイス2に対し、例えば、「スミス、○○銀行の口座残高を教えて。」と発話する。ステップS704では、クエリ応答デバイス2の制御装置21は、ステップS703で分析されたキーワードから、学習データに記憶された第1の対応関係に従って、対応するアプリケーションサービスを特定する。つまり、第1のキーワードである「○○銀行」がユーザAからの発話に含まれていると判定したことに応じて、インターネットバンキングサービスを提供するサーバコンピュータ1を特定する。
【0071】
ステップS705では、制御装置21は、ステップS703で分析されたキーワードから、学習データに記憶された第2の対応関係に従って、ユーザAからの要求の種別を決定する。そして、その要求の種別を示す情報、ステップS703で分析されたキーワードを含むクエリ要求を生成する。クエリ電文は、通信装置24によってサーバコンピュータ1に送信される。
【0072】
ステップS706では、サーバコンピュータ1の制御装置11がユーザデータテーブル300から対象のデータレコードを取得することになるが、
図8を参照して、第2の実施形態におけるユーザデータテーブル800のデータ構造の例を説明する。
【0073】
図8に示すように、第2の実施形態に係るユーザデータテーブル800は、
図3で説明したユーザデータテーブルに含まれるデータ項目に加え、認証キーワードを含む。認証キーワードは、ユーザによって任意のキーワードの値が設定される。
【0074】
図7の説明に戻り、ステップS709では、ステップS706で取得したデータレコードに含まれるデバイス名に加え、認証キーワードに設定されたキーワードが、ステップS705で送信されたクエリ電文に含まれるかを判定する。つまり、ユーザAからの発話が予め設定したキーワードを含んでいるかが判定される。この処理によって、予め所定のキーワードを設定し、そのキーワードを発話に含ませることによって、ユーザAの認証を行うことができる。
【0075】
なお、本実施形態では、第3のキーワードの一致判定をサーバコンピュータ1において実行しているが、そのような形式に限定されない。例えば、クエリ応答デバイス2において、ユーザからの対話に設定した認証キーワードが含まれるかを判定してもよい。この場合、クエリ応答デバイス2の学習データに、クライアントコンピュータ3から取得したBDアドレスなどのデバイス識別子とキーワードとの対応関係が記憶され、ユーザからの対話に含まれるキーワードが学習データに従って判定される。
【0076】
以上のように、本発明に第2の実施形態に係るクエリ応答システムを説明した。本実施形態に係るクエリ応答システムによると、さらにセキュリティが確保された方式で秘密情報を交換することができる。また、第1の実施形態で説明した方式と同様に、ユーザによる操作を必要としないでユーザ認証を行うことができる。
【0077】
<その他の実施形態>
上述した構成に加え、クライアントコンピュータ3が予め定められた位置の範囲内にあるかを判定することによって、ユーザからの発話に対する応答を制限してもよい。この場合の処理の具体例を以下に示す。
【0078】
前提として、
図5で説明したステップS507(第2の実施形態では、ステップS707)でクライアントコンピュータ3から送信される接続確認応答電文に、クライアントコンピュータ3の位置情報を含める。この場合、クライアントコンピュータ3は、GPS受信機を備える必要があり、GPS受信機が衛星から受信したGPS信号に基づいて位置情報が生成される。
【0079】
また、上述したユーザデータテーブル300(第2の実施形態では、ユーザデータテーブル800)に、予め定められた範囲を示す位置情報を記憶する。そして、サーバコンピュータ1において、クライアントコンピュータ3から送信される接続確認応答電文に含まれる位置情報が、ユーザデータテーブル300の対象のデータレコードに含まれる位置情報の範囲内にあるかを判定する。
【0080】
本実施形態に係るクエリ応答システムによると、ユーザが指定した範囲内においてのみ、発話に対する応答が音声出力されない。このことは、例えば、クエリ応答デバイス2およびクライアントコンピュータ3のいずれもが盗難などにあった場合でも、指定した位置でのみの利用に制限されることから、第三者が残高を盗聴するような行為を防止することができる。
【0081】
また、上記実施形態では、クエリ応答デバイス2が、ユーザから発話(つまり、音声)によるクエリに応答して音声の形式で応答を返却する例を説明したが、そのような実施形態に限定されない。例えば、ユーザからのクエリは、音声以外の任意の媒体でのユーザからの入力が含まれてもよい。また、返却される応答も、音声以外の任意の媒体での応答の出力が含まれてもよい。いずれの場合も、クエリ応答デバイス2は、音声以外の媒体での入力を受け付け、応答を出力するマルチメディア応答デバイスとして実装されることになる。
【0082】
ユーザからの入力は、例えば、クエリ応答デバイス2に備えられた物理ボタンの押下、タッチスクリーンへの接触操作(タッチおよびスライドなど)、クエリ応答デバイス2全体に対する触覚的操作、ならびにクエリ応答デバイス2への視覚的入力などの任意の媒体での入力を含んでもよい。
【0083】
クエリ応答デバイス2全体に対する触覚的操作は、例えば、ユーザがクエリ応答デバイス2を所定の方向に傾ける操作、および/または移動させる操作などを含んでもよい。いずれの操作も、クエリ応答デバイス2がデバイスの傾きおよび移動の角速度および加速度などを検出することによって判定される。デバイスの傾きおよび移動のいずれについても、所定の方向、所定の距離および/または所定の速度の組み合せとクエリの内容とが関連付けられて、クエリ応答デバイス2がクエリを判定してもよい。例えば、ユーザがクエリ応答デバイス2を右45度に傾ける操作は、口座の残高を問い合わせるクエリに対応する。
【0084】
クエリ応答デバイス2への視覚的入力は、例えば、ユーザまたはユーザの一部(顔など)がクエリ応答デバイス2の所定の範囲に近づく動作、ならびに所定の色および輝度をクエリ応答デバイス2にかざす動作などを含んでもよい。いずれの動作もクエリ応答デバイスユーザのデバイスに対する近接度および光などを検出することによって判定される。それらの動作のいずれについても、所定の近接度、色および輝度またはそれらのいずれかの組み合わせとクエリの内容とが関連付けられて、クエリ応答デバイス2がクエリを判定してもよい。例えば、ユーザが黒い服を身に着けてクエリ応答デバイス2の50センチ以内に近づく動作は、口座の残高を問い合わせるクエリに対応する。
【0085】
上記いずれの場合も、クエリ応答デバイス2は、入力装置としてタッチスクリーンおよびカメラなどを備え、検出素子として近接センサ、加速度センサ、角速度センサ、および光学センサなどを備える。
【0086】
応答の出力は、例えば、クエリ応答デバイス2のディスプレイ上の視覚的表示などの任意の媒体での出力を含んでもよい。この場合、クエリ応答デバイス2は、出力装置としてディスプレイなどを備える。
【0087】
上述したクエリ入力は、クエリ応答デバイス2の代わりにクライアントデバイス3によって受け付けられてもよい。例えば、クライアントコンピュータ3が傾き操作などを検出すると、その操作に対応する値(角速度など)をクエリ応答デバイス2に送信し、クエリ応答デバイス2が操作に対応するクエリ内容を判定してもよい。また、クライアントコンピュータ3がクエリ内容を判定してもよい。
【0088】
応答出力も同様に、クエリ応答デバイス2の代わりにクライアントデバイス3によって出力されてもよい。例えば、クエリ応答デバイス2が応答を生成すると、その応答をクライアントコンピュータ3に送信し、ディスプレイなどに表示してもよい。
【0089】
さらに、上記実施形態では、単一のクエリ応答デバイス2と単一のクライアントコンピュータ3とのペアリング情報をサーバコンピュータ1に登録する例を説明したが、そのペアリング情報は、複数のペアを関連付けて登録されてもよい。例えば、N個のクライアントコンピュータ3がM個のクエリ応答デバイス2と関連付けられてユーザデータテーブル300または800に登録されてもよい。
【0090】
2つのクライアントコンピュータ3のそれぞれがクエリ応答デバイス2とペアリングされる例を説明する。この例では、2つのクライアントコンピュータ3双方のクライアントコンピュータ通知IDが、ユーザIDおよび利用デバイス名と関連付けてユーザデータテーブル300または800に登録される。認証処理では、サーバコンピュータ1から2つのクライアントコンピュータ3の双方に接続確認要求電文が送信され、双方がクエリ応答デバイス2と接続しているかを確認する。
【0091】
このような構成とすることによって、例えば、2つのクライアントコンピュータ3およびクエリ応答デバイス2のうちのいずれかのデバイスが盗難などにあっても、3つのデバイスが揃わない限り、第三者による盗聴を防止することができる。ひいては、セキュリティをさらに強固にすることができる。
【0092】
上記実施形態で説明した構成はいずれも例示的なものにすぎず、そのような構成に限定されるものではない。例えば、本実施形態では、サーバコンピュータ1とクエリ応答デバイス2とが連携することによって発話に対する応答を出力しているが、スピーカを実装した単独のコンピュータデバイスによって上記処理を実装してもよい。また、上記説明したサーバコンピュータ1によって実行される処理のうちの一部が、本発明の基本的な概念を逸脱することなく、クエリ応答デバイス2で実行されてもよく、逆もまたそうである。
【0093】
また、上記説明したクエリ応答デバイス(つまり、スピーカおよびマイクを実装したデバイス)は、AIスピーカとして実装されるものとして説明したが、クエリ応答デバイスは、学習機能を必ずしも有する必要はない。学習機能を有さないでクエリ応答デバイスを実装する場合、予め定められたキーワードと要求処理などを関連付けた対応関係を記憶し、その対応関係に従って処理が実行されることになる。
【0094】
上記説明したユーザデータテーブル300などのデータ構造は、例示的なものにすぎず、その他の必要なデータ項目が含まれてもよく、また本発明の基本的な概念から逸脱することなく代替的なデータテーブルが使用されてもよい。また、上記実施形態で説明した処理の順序は、必ずしも説明した順序で実行される必要がなく、任意の順序で実行されてもよい。さらに、本発明の基本的な概念から逸脱することなく、追加のステップが新たに加えられてもよく、説明したステップが省略されてもよい。