(本開示に至った経緯)
前述したように、従来のクライアント・サーバ型の認識システムでは、ユーザが発話した音声の認識結果である認識文字列から操作対象の機器の動作を特定する対話処理を機器側で行われるため、機器の計算能力およびメモリ容量等の制限によって、対話処理で扱える操作コマンドの数および発話パターン(言い回し)の数が限定されるという課題があった。
そこで、音声認識処理と同様に、クラウドサーバ上で対話処理を行うことにより、対話処理においても、大規模な語彙数(操作コマンドの数および発話パターンの数等)を処理できるようにする方法が提案されている。
しかし、クラウドサーバ上で音声認識が行われる場合と同様に、クラウドサーバ上で対話処理が行われる場合、ネットワークの通信環境が悪いとき、または複数の機器からサーバにアクセスが集中したときには、サーバからの応答速度は、機器内で処理する場合に比べ、かなり遅くなるという問題がある。
よって、上記問題を解決する方法としては、対話処理できる語彙数は少ないが、迅速な応答が求められるタスクに対しては、機器内で対話処理を行い、一方、応答速度が遅くても、対話処理可能な語彙数が大規模であることが要求されるタスクに対しては、クラウドサーバ上で対話処理の一部または全てを行うクライアント・サーバ型の対話処理システムが考えられる。また、このようなシステムは、サーバからの応答時間を短くするために、通常、認識文字列を機器とサーバの対話処理にほぼ同時に入力し、対話処理の最終的な結果を得るまでの時間を短くする。
ところで、特許文献1に示されているように、最近の音声認識機器およびシステムでは、音声認識の結果である認識文字列に対し、複数の異なるタスクを処理する対話処理が行われることが多い。例えば、特許文献1の対話処理では、まず、認識文字列が、操作対象機器の操作コマンド(機能)か、アプリケーションかどうかを判定し、操作コマンドである場合には、対応する機器操作を実行する。そして、そうでない場合には、アプリマーケットで、認識文字列を検索キーワードとしたアプリ検索を行い、その結果をユーザに提示する。つまり、特許文献1では、機器操作タスクとアプリ検索タスクの2つの異なるタスクを処理する対話処理が行われている。
なお、特許文献1では、機器内だけで、上記複数の異なるタスクに対する対話処理が行われている。前述したように、大規模な語彙数を対話処理するためには、クライアント・サーバ型のシステムを利用することが望ましい。
しかしながら、機器側とサーバ側の双方で、複数のタスクに対して同時に対話処理が行われる場合、機器側の対話処理の結果とサーバから得られる対話処理の結果のうち、どちらの結果を優先的に実行するかを決定する必要がある。単純に、先に有効な結果を得られた方を実行するという方法もあるが、機器側とサーバ側の対話処理の各タスクの優先度が異なる場合には、一概に、その方法が良いとは限らない。
例えば、優先度が異なる3つのタスクがあり、機器側で、優先度が1番目のタスクと3番目のタスクに対する2つの対話処理が連続して行われ、サーバ側では、優先度が2番目の対話処理が行われるようにシステムが構築されるとする。この場合、優先度が高い順番に対話処理の結果が実行されることが望まれるが、ユーザの発話内容またはネットワーク環境等により、サーバ側の対話処理よりも、機器側の2つの対話処理のほうが短時間に終わる場合がある。つまり、優先度3番目のタスクが機器側で先に実行されてしまい、サーバ側の優先度2番目のタスクが実行されないという問題が生じる。
以下、上記問題を、具体的に、機器をテレビとして説明する。ここで、優先度1番目のタスクをテレビのチャンネル選局または音量調整等のテレビの基本操作とし、また、優先度2番目のタスクをテレビとネットワーク接続されている外部機器の操作、例えば、エアコンまたは照明等の機器操作とする。また、優先度3番目のタスクを、テレビに関する情報検索、例えば、番組名または出演者名による番組情報検索とする。このとき、システムとしては、テレビ側で、優先度1番目のテレビの基本操作及び、優先度3番目のテレビに関する情報検索に関する対話処理が行われ、サーバ側で、優先度2番目の外部機器操作に関する対話処理が行われるとする。なお、サーバ側で、外部機器操作の対話処理を行う理由は、様々な機器の多様な操作コマンドに対して処理できるようにするためである。
上記システムにおいて、例えば、ユーザが、「エアコンをつけて」と発話したとする。正しく音声認識されたなら、次に、認識文字列「エアコンをつけて」は、機器側及び、サーバ側の対話処理に同時に入力される。機器側では、まず、テレビの基本操作タスクの対話処理が行われ、認識文字列が、テレビの基本操作コマンドかどうかが確認される。認識文字列「エアコンをつけて」は、テレビの基本操作コマンドに含まれないので、次に、テレビに関する情報検索タスクの対話処理が行われる。つまり、認識文字列「エアコンをつけて」を検索キーワードとした情報検索(例えば、番組表検索またはインターネット検索等)が行われる。
一方、サーバ側では、外部機器の操作タスクの対話処理が行われ、認識文字列が、テレビに接続されている外部機器の操作コマンドかどうかが確認される。認識文字列「エアコンをつけて」は、エアコンの操作コマンドと一致するので、サーバから機器に対し、エアコンの電源をつける操作を行うための情報が送信される。
このとき、システム全体としては、優先度2番目の外部機器の操作タスクであるエアコンの電源操作が、優先度3番目のテレビに関する情報検索タスクより、先に実行されるべきである。しかし、前述したように、ネットワーク環境等により、サーバ側の外部機器の操作タスクの対話処理よりも、機器側の2つの対話処理(テレビの基本操作タスクとテレビに関する情報検索タスク)のほうが短時間に終わる可能性がある。即ち、ネットワーク環境によっては、「エアコンをつけて」をキーワード検索した結果の表示が、エアコンの電源をつける操作よりも、先に実行される可能性があり、ユーザの思い通りに機器を操作することができないという課題が生じる。
従って、本開示は、クライアント・サーバ型の音声認識システムにおいて、優先度の異なる複数のタスクを含んだ対話処理を、機器側とサーバ側で並行処理する際に、各タスクの優先度に基づいた最適な対話処理制御が行える情報処理装置及び情報処理方法を提供することを目的とする。
上記目的を達成するために、本開示の一態様に係る情報処理装置として動作する対話処理制御装置は、音声認識処理により得られるテキストデータである音声認識結果を取得する音声認識結果取得部と、前記音声認識結果に基づく複数の対話処理によりそれぞれ特定される複数のタスクの各々にそれぞれ対応する優先度を取得する優先度取得部と、互いに異なる前記複数の対話処理を複数の装置に分散実行させ、かつ、前記優先度に基づいて、前記対話処理の分散実行により特定されるタスクに応じた制御情報を、当該制御情報に基づいて動作する実行部へ提供する対話処理制御部とを備える。
例えば、本構成では、タスク優先度記憶部に記憶された各タスクの優先度に基づいて、対話タスク管理部が、各タスクを処理する機器側の対話処理部と対話処理サーバの対話処理によりそれぞれ特定される各タスクの動作スケジュールを決定する。そして、その動作スケジュールに基づいて、対話処理制御部が、機器側の各対話処理部と対話サーバ側の各対話処理の動作を制御する。これにより、優先度の異なる複数の異なるタスクを含んだ対話処理が、機器側とサーバ側で、同時に並行処理される場合でも、各タスクの優先度に応じた順番で、タスクの実行を制御することが可能となる。即ち、優先度の高いタスクの対話処理をサーバ側で、優先度の低いタスクの対話処理を機器側で同時に並行処理された場合、ネットワーク環境等の影響で、サーバからの処理結果の応答が遅くなったとしても、優先度に応じて、機器側の処理結果ではなく、サーバ側の処理結果を実行させることが可能となる。
また、例えば、本開示の別の一形態に係る対話処理制御装置は、さらに、前記実行部により制御される被制御装置の状態を管理する機器状態管理部を備え、前記優先度取得部は、前記機器状態管理部で管理されている前記状態に基づいて、前記優先度を取得する。
例えば、この構成においても、対話処理制御部は、対話タスク管理部から得られる動作スケジュールに基づいて、機器側の各対話処理部と対話サーバ側の各対話処理の動作を制御する。但し、本構成では、機器状態管理部が、機器の状態を管理し、対話タスク管理部は、タスク優先度記憶部に記憶されている各タスクの優先度に加えて、前記機器の状態に基づいて、機器側の各対話処理部及び、対話処理サーバの各対話処理の動作スケジュールを決定する。これにより、操作対象の機器の状態に応じて、機器および対話処理サーバの対話処理の動作スケジュールを動的に変更することが可能となる。つまり、機器の状態に応じて、最適な処理を行うことができ、全体の処理時間を短縮することができる。
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
以下、本開示の実施の形態について、図面を参照しながら説明する。
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
(実施の形態1)
図1は、本実施の形態1に係る対話処理制御システムの構成を示すブロック図である。
図1に示すように、対話処理制御システムは、音声による操作対象の機器(対話処理制御装置)100及び、機器100に、有線LAN/無線LAN等でネットワーク接続された外部機器101と、クラウド上で音声認識処理および対話処理を行う対話処理サーバ200を備える。例えば、機器100をテレビとすれば、外部機器101は、テレビにネットワーク接続された全ての機器、つまり、HDMI(登録商標)またはLANで接続されたハードディスクレコーダまたはAVアンプ等の従来のAV機器に加え、エコネット(登録商標)で接続されたエアーコンディショナー(以下エアコンとも称する。)または照明等の白物家電であってもよい。対話処理制御装置は、情報処理装置の一例である。
対話処理サーバ200は、通信部21、音声認識部22、第3対話処理部23、第4対話処理部24を備える。通信部21は、機器100と、音声、認識文字列、対話処理結果等の情報の送受信を行う。音声認識部22は、通信部21を介して入力されたユーザが発話した音声を認識する。そして、音声認識部22は、音声認識結果である認識文字列を、通信部21を介して、機器100に送信する。なお、音声認識部22は、クラウド上で音声認識処理を行うので、従来例同様に、数十万程度の大規模な語彙を認識することが可能である。また、音声認識部22において、音声を認識する方法としては、従来のDPマッチング法、HMM(隠れマルコフモデル)法、N−Gram法等が用いられる。対話処理サーバ200は、外部装置に含まれる。
第3対話処理部23及び、第4対話処理部24は、機器100から通信部21を介して入力された認識文字列に対し、予め定められた異なるタスクの対話処理を行う。そして、第3対話処理部23及び、第4対話処理部24は、対話処理の結果を、通信部21を介して機器100に送信する。
本実施の形態では、第3対話処理部23は、機器100に接続された外部機器101の操作タスクを処理し、第4対話処理部24は、天気予報およびニュース等の一般的なインターネットの情報検索タスクを処理する。この場合、第3対話処理部23は、認識文字列が、外部機器101の操作コマンドのいずれかに該当するかどうかを確認し、該当した場合には、対応する外部機器の操作を実行するための制御情報が出力される。また、第4対話処理部24は、認識文字列から検索キーワードを抽出し、その検索キーワードによるインターネットの情報検索を実行するための制御情報が出力される。更に、各対話処理部23、24は、各制御情報以外に、対話処理の結果をユーザに提示するための応答情報も出力する。
第3対話処理部23では、外部機器101の操作コマンドと対話処理の結果である制御情報および応答情報の対応関係が、対話ルールとして記述されている。第3対話処理部23の対話処理はこの対話ルールに基づいて行われる。例えば、外部機器101をエアコンとした場合の第3対話処理部23が用いる対話ルールの一例を図2に示す。図2に示すように、操作コマンドは、ユーザが外部機器101に対して操作を指示する言葉であり、「エアコンをつけて」「冷房にして」等である。
操作内容は、操作コマンドに対して外部機器101が実際に行う操作の内容であり、例えば、操作コマンド「冷房にして」に対応する操作内容は「エアコンの電源をONにし、冷房運転を行う」となる。なお、各操作内容に対し、操作コマンドは複数登録されていてもよい。例えば、図2では、「エアコンの電源をONにし、自動運転を行う」という操作内容に対して、「エアコンをつけて」「エアコンを入れて」という2つの言葉が登録されている。
制御情報は、操作対象の外部機器101に操作内容を実行させるためのネットワークコマンドであり、ネットワークを介して、機器100から操作対象の外部機器101に送信される。例えば、図2の例では、エアコンに対し、「エアコンをつけて」という操作内容を実行させる場合、機器100から外部機器101に、(Air conditioner, On, Auto)というネットワークコマンドが送信される。
応答情報は、操作コマンドが正しく受け付けられたときに、音声および画面を用いて、ユーザに提示する情報である。例えば、図2の例では、操作コマンド「冷房にして」が受け付けられた場合には、応答情報「冷房をつけます」がユーザに提示される。
同様に、第4対話処理部24の対話処理も、対話ルールに基づいて行われる。但し、対話ルールは一つだけで、その処理の内容は「認識文字列から検索キーワードを抽出し、その検索キーワードを用いて、インターネット情報を検索する」である。よって、制御情報は、機器100の一般情報検索部13に、認識文字列から抽出された検索キーワードによるインターネット情報を検索させるためのネットワークコマンドであり、応答情報は、例えば、「検索結果を画面に表示します」等である。
機器100は、収音部1、認識制御部2、音声認識部3、通信部4、第1対話処理部5、第2対話処理部6、タスク優先度記憶部7、対話タスク管理部8、対話処理制御部9、機器制御部10、機器関連情報検索部11、外部機器制御部12、一般情報検索部13、GUI出力部14、画面表示部15、音出力部16を備える。
以下、機器100の構成を詳しく説明する。
収音部1は、マイクであり、ユーザが発話した音声を入力する。認識制御部2は、収音部1で入力された音声を機器側の音声認識部3に出力するとともに、対話処理サーバ200の音声認識部22にも通信部4を介して出力する。そして、認識制御部2は、音声認識部3または音声認識部22から得られた音声認識結果に基づいて、認識文字列を決定する。音声認識部3は、認識制御部2から入力されたユーザの発話音声を認識し、音声認識結果として、認識制御部2に認識文字列を出力する。通信部4は、対話処理サーバ200と、音声、認識文字列、対話処理結果等の情報の送受信を行う。なお、音声認識部3は、機器内で音声認識処理を行うので、数百程度の小規模な語彙しか認識できないが、対話処理サーバ200の音声認識部22に比べると、応答速度はかなり速い。また、音声認識部3において、音声を認識する方法としては、従来のDPマッチング法、HMM(隠れマルコフモデル)法、N−Gram法等が用いられる。
第1対話処理部5及び、第2対話処理部6は、認識制御部2で決定された認識文字列に基づいて、予め定められた異なるタスクの対話処理を行う。本実施の形態では、第1対話処理部は、機器100の基本操作タスクを処理し、第2対話処理部は、機器100に関連する情報検索タスクを処理する。この場合、第1対話処理部5は、認識文字列が、機器100の基本操作コマンドのいずれかに該当するかどうかを確認し、該当した場合には、対応する機器操作を実行するための制御情報が出力される。また、第2対話処理部6は、認識文字列から検索キーワードを抽出し、その検索キーワードによる機器関連情報の検索を実行するための制御情報が出力される。更に、各対話処理部5、6は、各制御情報以外に、対話処理の結果をユーザに提示するための応答情報も出力する。
第1対話処理部5では、機器100の操作コマンドと対話処理の結果である制御情報および応答情報の対応関係が、対話ルールとして記述されている。第1対話処理部5の対話処理はこの対話ルールに基づいて行われる。例えば、機器100をテレビとした場合の第1対話処理部5が用いる対話ルールの一例を図3に示す。図3に示すように、操作コマンドは、ユーザが機器100に対して操作を指示する言葉であり、「テレビをつけて」「番組表」等である。
操作内容は、操作コマンドに対して機器100が実際に行う操作の内容であり、例えば、操作コマンド「テレビをつけて」に対応する操作内容は「テレビの電源をONにする」となる。なお、各操作内容に対し、操作コマンドは複数登録されていてもよい。例えば、図3では、「音量を3レベル上げる」という操作内容に対して、「音量を上げて」「音量アップ」という2つの言葉が登録されている。
制御情報は、操作対象の機器100に操作内容を実行させるための機器制御コマンドであり、機器制御部10に入力される情報である。例えば、図3の例では、テレビに対し「テレビをつけて」という操作内容を実行させる場合、機器制御部10に(Power On)という機器制御コマンドが入力される。
応答情報は、操作コマンドが正しく受け付けられた場合に、音声および画面を用いて、ユーザに提示する情報である。例えば、図3の例では、操作コマンド「テレビを消して」が受け付けられたときには、応答情報「テレビを消します」がユーザに提示される。
同様に、第2対話処理部の対話処理も、対話ルールに基づいて行われる。但し、対話ルールは一つだけで、その処理の内容は「認識文字列から検索キーワードを抽出し、その検索キーワードを用いて、機器関連情報を検索する」である。例えば、機器100をテレビ、機器関連情報を番組表の番組情報とすると、処理の内容は、「認識文字列から番組情報に関する検索キーワードを抽出し、その検索キーワードを用いて、番組表から番組情報を検索する」となる。よって、制御情報は、機器100の機器関連情報検索部11に、認識文字列から抽出された検索キーワードを用いて、番組表から番組情報を検索させるための機器制御コマンドであり、応答情報は、例えば、「番組表の検索結果を画面に表示します」等である。
タスク優先度記憶部7は、機器100の第1対話処理部および第2対話処理部6が処理するタスクならびに、対話処理サーバ200の第3対話処理部23および第4対話処理部24が処理するタスクの優先度が記憶されている。本実施の形態では、機器100の基本操作タスクには優先度1、機器関連情報の検索タスクには優先度3、対話処理サーバ200の外部機器操作タスクには優先度2、インターネットによる一般的な情報検索タスクには優先度4が記憶されている。
対話タスク管理部8は、音声認識結果に基づく複数の対話処理によりそれぞれ特定される複数のタスクの各々にそれぞれ対応する優先度を取得する。つまり、対話タスク管理部8は、タスク優先度記憶部7に記憶されている各タスクの優先度に基づいて、機器100の第1対話処理部5および第2対話処理部6、ならびに対話処理サーバ200の第3対話処理部23および第4対話処理部24の動作スケジュールを決定する。なお、対話処理部の動作スケジュールは、機器100及び対話処理サーバ200の各対話処理部5、6、23、24をどの順番で、どのように動作させるかを定義し、例えば、図4に示すように、以下の情報が記述されている。動作スケジュールは、実行スケジュールの一例である。
各対話処理部を動作させる順番
各対話処理部の動作を開始するタイミング
各対話処理部の処理結果を実行するタイミング
ここで、対話処理部の動作を開始するタイミングとは、認識文字列が対話処理部に入力されるタイミングのことを示す。また、対話処理部の処理結果を実行するタイミングとは、各対話処理部の処理結果を実行するための制御信号を、その処理結果を実際に実行する各構成要件、例えば、機器制御部10、機器関連情報検索部11、外部機器制御部12、一般情報検索部13に出力するタイミングのことを示す。
例えば、第1対話処理部5の処理結果を実行するタイミングとは、機器100の基本操作タスクを実行するタイミングを示す。また、第2対話処理部6の処理結果を実行するタイミングは、機器関連情報の検索タスクを実行するタイミングを示す。同様に、第3対話処理部の処理結果を実行するタイミングは、外部機器101の操作タスクを実行するタイミングであり、第4対話処理部の処理結果を実行するタイミングは、一般的なインターネットの情報検索タスクを実行するタイミングのことである。
対話処理制御部9は、対話タスク管理部8で決定された動作スケジュールに基づいて、機器100の第1対話処理部5、第2対話処理部6の動作を制御する。また、対話処理制御部9は、通信部4、21を介して、対話処理サーバ200の第3対話処理部23、第4対話処理部24の動作も制御する。
具体的には、対話処理制御部9は、動作スケジュールに基づいて、各対話処理部に、認識文字列を入力して、対話処理を開始させる処理を行う。また、動作スケジュールに基づいて、各対話処理部から得られた処理結果を、機器制御部10、機器関連情報検索部11、外部機器制御部12、または、一般情報検索部13のいずれかに出力する処理を行う。例えば、機器100の第1対話処理部5から得られた機器100を操作するための制御情報は、機器制御部10に出力される。機器100の第2対話処理部6から得られた機器関連情報の検索を実行するための制御情報は、機器関連情報検索部11に出力される。通信部4を介して、対話処理サーバ200の第3対話処理部23から得られた外部機器101を操作するための制御情報は、外部機器制御部12に出力される。通信部4を介して、対話処理サーバ200の第4対話処理部24から得られた一般的なインターネットの情報検索を実行するための制御情報は、一般情報検索部13に出力される。
機器制御部10は、対話処理制御部9から入力された制御情報に基づいて、機器100の操作を実行する。機器関連情報検索部11は、対話処理制御部9から入力された制御情報に基づいて、機器に関連する情報の検索を実行する。外部機器制御部12は、対話処理制御部9から入力された制御情報に基づいて、外部機器の操作を実行する。一般情報検索部13は、対話処理制御部9から入力された制御情報に基づいて、一般的なインターネットの情報検索タスクを実行する。
GUI出力部14は、ディスプレイ等の画面表示部15と、スピーカー等の音出力部16を備える。画面表示部15には、機器制御部10で実行された機器100の操作結果、外部機器制御部12で実行された外部機器101の操作結果、機器関連情報検索部11で検索された機器関連情報の検索結果または、一般情報検索部13で検索された一般的なインターネットの情報検索結果が表示される。同時に、音出力部16からは、画面表示に同期して報知音が出力される。
また、画面表示部15は、対話処理制御部9を介して、各対話処理部5、6、23、24から得られる応答情報を画面出力する。同様に、音出力部16は、対話処理制御部9を介して、各対話処理部5、6、23、24から得られる応答情報を音声合成し、応答音声として出力する。
以下、本実施の形態における対話処理制御システムにおいて、対話処理によりそれぞれ特定される複数のタスク(以下、対話タスクとも称する。)を行うために、ユーザが各タスクに関連する音声コマンドを発話した場合のシステムの動作について説明する。なお、以下では、具体的に説明するために、機器100をテレビ、外部機器101をエアコンとする。よって、第1対話処理部5のタスクは、テレビのチャンネル選局および音量調整等の基本操作タスクとし、その対話ルールは図3に示される。第2対話処理部6のタスクは、番組表の番組情報検索とする。また、第3対話処理部23のタスクは、エアコンの電源操作および温度設定等の操作タスクとし、その対話ルールは図2に示される。第4対話処理部24のタスクは、天気予報およびニュース等の一般的なインターネットの情報検索タスクとする。
上記対話処理制御システムにおいて、ユーザが、テレビ100およびエアコン101を音声操作する場合には、テレビ100の収音部1に向かって、音声コマンドを発話する。例えば、ユーザは、テレビの音量を操作したいときには、「音量をあげて」と、また、エアコンの温度を下げたい時には、「温度を下げて」等を発話する。同様に、ユーザは、音声による情報検索を行う場合には、例えば、番組表から明日放送する予定のドラマの番組名を検索したいときには、「明日のドラマ」等と、インターネットから天気予報を検索したい時には、「東京の天気」等を発話する。
図5は、本実施の形態において、テレビ100の収音部1に、ユーザが音声コマンドを入力したときの処理の流れを示すフローチャートである。以下、図5を用いて、音声認識システムの動作フローを説明する。
テレビ100の収音部1は、ユーザが発話した音声を収音し、認識制御部2に出力する(S1)。認識制御部2は、収音部1から入力された音声に対し、テレビ100の音声認識部3及び、対話処理サーバ200の音声認識部22で音声認識処理を行い、それらの音声認識結果に基づいて、認識文字列を求める(S2)。具体的には、以下の一連の動作が行われる。
認識制御部2は、収音部1から入力された音声を、音声認識部3に出力する。また、同時に、認識制御部2は、収音部1から入力された音声を、テレビ100の通信部4から対話処理サーバ200の通信部21を介して、対話処理サーバ200の音声認識部22にも出力する。
音声認識部3は、入力された音声を認識し、その音声認識結果を認識制御部2に出力する。つまり、音声認識部3は、音声認識処理により得られるテキストデータである音声認識結果を取得する。同様に、対話処理サーバ200の音声認識部22は、入力された音声を認識し、その音声認識結果を対話処理サーバ200の通信部21からテレビ100の通信部4を介して、認識制御部2に出力する。通常、テレビ100の音声認識部3の音声認識結果は、対話処理サーバ200の音声認識部22の音声認識結果より先に得られるので、認識制御部2は、まず、音声認識部3の音声認識結果を確認する。音声認識部3が認識に成功したなら、その音声認識結果である文字列を対話処理制御部9に出力する。もし、音声認識部3が認識に失敗したなら、次に、認識制御部2は、対話処理サーバ200の音声認識部22の認識結果を確認する。音声認識部22が認識に成功したなら、認識制御部2は、その音声認識結果である文字列を対話処理制御部9に出力する。逆に、認識に失敗したなら、認識制御部2は、ユーザに対し、認識に失敗したことをGUI出力部14の画面表示部15、音出力部16を用いて提示し、ユーザに再発声を促す。
対話処理制御部9は、認識制御部2から認識文字列を受信すると、まず、対話タスク管理部9から各対話処理部5、6、23、24の動作スケジュールを取得する(S3)。なお、前述したように、動作スケジュールは、予め、タスク優先度記憶部7に記憶されている各対話処理のタスクの優先度に基づいて、対話タスク管理部8で決定されるものであり、例えば、図4に示すような、各対話処理部5、6、23、24の動作を規定する情報が記述されている。ここでは、図4の動作スケジュールを用いて以下の動作を説明する。
対話処理制御部9は、取得した動作スケジュールに従って、まず、テレビ100の第1対話処理部5に、認識制御部2から得られた認識文字列を入力する(S4)。また、対話処理制御部9は、ほぼ同時に、認識文字列を、テレビ100の通信部4から対話処理サーバ200の通信部21に送信し、対話処理サーバ200の第3対話処理部23に入力する(S5)。
第1対話処理部5では、テレビ100の基本操作タスクの対話処理を行い、その処理結果を対話処理制御部9に出力する。なお、第1対話処理部5の対話処理は、前述したように、図3に示す対話ルールに基づいて行われる。具体的には、まず、第1対話処理部5は、入力された認識文字列が、対話ルールに記述されているテレビの機器操作コマンドのいずれかに一致するかどうか確認する(S6)。一致した場合(S6でYの場合)には、第1対話処理部5は、その操作コマンドに対応する制御情報と応答情報を読み出して、対話処理制御部9に出力する。逆に、一致しない場合(S6でNの場合)には、第1対話処理部5は、入力された認識文字列が、テレビ100の基本操作コマンドではないと判定し、対話処理リジェクトの情報を対話処理制御部9に出力する。
第1対話処理部5で対話処理が成功した場合には、対話処理制御部9は、動作スケジュールに基づいて、第1対話処理部5の対話処理の結果であるテレビ100の機器操作コマンドを実行する(S7)。具体的には、対話処理制御部9は、第1対話処理部5から得られた制御情報を機器制御部10に出力し、また、応答情報をGUI出力部14の画面表示部15および音出力部16に出力する。機器制御部10は、対話処理制御部9から入力された制御情報に基づいて、テレビ100の操作を実行する。また、機器制御部10は、画面表示部15または音出力部16を介して、対話処理制御部9から入力された応答情報をユーザに提示するとともに、機器制御部10で実行されたテレビ100の操作結果をユーザに提示する。なお、処理フローとしては、ここで処理が開始ポイント(A)に戻り、ユーザの再発声が待たれる。
以下、テレビ100の基本操作タスクに関する対話処理の動作フローについて、具体例で説明する。
例えば、ユーザが、収音部1に対して、「2チャンネルに変えて」と発話し、音声認識部3が音声認識に成功した場合には、認識文字列“2チャンネルに変えて”が、第1対話処理部5に入力される(S4)。第1対話処理部5は、入力された認識文字列に対し、テレビ100の基本操作タスクに関する対話処理を行う。認識文字列“2チャンネルに変えて”は、図3の対話ルールに記述された操作コマンドと一致するので(S6でY)、第1対話処理部5は、対応する制御情報(Channel、2)と応答情報“2チャンネルにします”を対話処理制御部9に出力する。
次に、対話処理制御部9は、受信した制御情報(Channel、2)を機器制御部10に出力する(S7)。また、対話処理制御部9は、応答情報“2チャンネルにします”を画面表示部15または音出力部16に出力する。機器制御部10は、受信した制御情報に基づいて、テレビ100のチャンネルを2チャンネルに変更する。また、画面表示部15または音出力部16は、応答情報“2チャンネルにします”を画面にテキスト表示または、音声合成音で音声出力した後、2チャンネルの放送番組を再生する。
以上までが、テレビ100の基本操作タスクに関する対話処理の動作フローの具体例の説明である。
ところで、第1対話処理部5の対話処理が失敗した場合、つまり、対話処理制御部9が第1対話処理部5から対話処理リジェクトの情報を受信した場合(S6でNの場合)には、対話処理制御部9は、動作スケジュールに基づき、対話処理サーバ200の第3対話処理部23から送信される対話処理の結果を受信する(S8)。
なお、通常、テレビ100内の第1対話処理部5の対話処理は、対話処理サーバ200で行う第3対話処理部23の対話処理に比べ、ネットワークの通信状態等に影響を受けることがないので、短時間で終わる。よって、対話処理制御部9は、第1対話処理部5の対話処理の結果を得てから、第3対話処理部23の対話処理の結果を受信するまで少々待つ必要がある場合もある。
対話処理サーバ200の第3対話処理部23は、認識文字列に対し、エアコン101の操作タスクの対話処理を行い、その処理結果を通信部21から通信部4を介して、テレビ100の対話処理制御部9に送信する。前述したように、第3対話処理部23の対話処理は、図2に示す対話ルールに基づいて行われる。具体的には、第3対話処理部23は、まず、入力された認識文字列が、対話ルールに記述されているエアコン101の操作コマンドのいずれかに一致するかどうか確認する。一致した場合には、第3対話処理部23は、その操作コマンドに対応する制御情報と応答情報を読み出して、対話処理制御部9に出力する。逆に、一致しない場合には、第3対話処理部23は、入力された認識文字列が、エアコン101の操作コマンドではないと判定し、対話処理リジェクトの情報を対話処理制御部9に送信する。
対話処理制御部9は、対話処理サーバ200から第3対話処理部23の対話処理の結果を受信した後、その処理結果をチェックする(S9)。
そして、もし、第3対話処理部23の対話処理が成功したなら、即ち、認識文字列がエアコンの操作コマンドであった場合(S9でYの場合)には、対話処理制御部9は、動作スケジュールに基づいて、第3対話処理部23の対話処理の結果であるエアコン101の機器操作コマンドを実行する(S10)。具体的には、対話処理制御部9は、第3対話処理部23から得られた制御情報を外部機器制御部12に出力する。また、対話処理制御部9は、応答情報を画面表示部15または音出力部16に出力する。外部機器制御部12は、対話処理制御部9から入力された制御情報に基づいて、エアコン101の操作を実行する。また、外部機器制御部12は、画面表示部15または音出力部16を介して、対話処理制御部9から入力された応答情報をユーザに提示するとともに、外部機器制御部12で実行されたエアコン101の操作結果をユーザに提示する。なお、処理フローとしては、ここで処理が開始ポイント(A)に戻り、ユーザの再発声が待たれる。
以下、エアコン101の操作タスクに関する対話処理の動作フローについて、具体例で説明する。
例えば、ユーザが、収音部1に対して、「エアコンをつけて」と発話したとする。音声認識部3または音声認識部22のいずれかが音声認識に成功した場合には、認識制御部2は、対話処理制御部9に、認識文字列“エアコンをつけて”を入力する。次に、対話処理制御部9は、認識文字列“エアコンをつけて”を、テレビ100の第1対話処理部5に入力する(S4)。また、対話処理制御部9は、対話処理サーバ200の第3対話処理部23にも当該認識文字列を入力する(S5)。第1対話処理部3は、入力された認識文字列に対し、テレビ100の基本操作タスクに関する対話処理を行う。認識文字列“エアコンをつけて”は、図3の対話ルールに記述された操作コマンドのいずれとも一致しないので、第1対話処理部5は、対話処理リジェクトの情報を対話処理制御部9に出力する(S6でNの処理)。
第1対話処理部5の対話処理と並行して、対話処理サーバ200の第3対話処理部23は、入力された認識文字列に対し、エアコン101の操作タスクに関する対話処理を行う。認識文字列“エアコンをつけて”は、図2の対話ルールに記述された操作コマンドと一致するので、第3対話処理部23は、対応する制御情報(Air conditioner, On, Auto)と応答情報“エアコンをつけます”をテレビ100の対話処理制御部9に送信する。
対話処理制御部9は、テレビ100の第1対話処理部5の対話処理がリジェクトされた後に、対話処理サーバ200の第3対話処理部23の対話処理の結果である制御情報と応答情報を受信する(S8)。第3対話処理部23の対話処理が成功したので、即ち、認識文字列がエアコン101の操作コマンドであったので(S9でYの場合)、対話処理制御部9は、受信した制御情報(Air conditioner, On, Auto)を外部機器制御部12に出力する(S10)。また、対話処理制御部9は、受信した応答情報“エアコンをつけます”を画面表示部15または音出力部16に出力する。外部機器制御部12は、受信した制御情報に基づいて、エアコン101の電源をONにし、自動運転を開始する。また、画面表示部15または音出力部16は、応答情報“エアコンをつけます”を画面にテキスト表示または、音声合成音で音声出力した後、エアコン101の操作結果をユーザに提示する。
以上までが、エアコン101の操作タスクに関する対話処理の動作フローの具体例の説明である。
ところで、第3対話処理部23の対話処理が失敗した場合、つまり、対話処理サーバ200の第3対話処理部23から対話処理リジェクトの情報を受信した場合(S9でNの場合)には、対話処理制御部9は、動作スケジュールに従って、テレビ100の第2対話処理部6に、認識制御部2から得られた認識文字列を入力する(S11)。また、対話処理制御部9は、ほぼ同時に、認識文字列を、テレビ100の通信部4から対話処理サーバ200の通信部21に送信し、対話処理サーバ200の第4対話処理部24に入力する(S12)。
第2対話処理部6は、認識文字列を用いたテレビ100に関する情報検索、具体的には、番組表を用いた番組情報検索タスクの対話処理を行い、その処理結果を対話処理制御部9に出力する。第2対話処理部6の対話処理は、前述した対話ルールに基づいて行われる。具体的には、まず、第2対話処理部6は、入力された認識文字列が番組情報検索コマンドかどうかを判定する(S13)。判定方法としては、認識文字列から番組情報を検索するための検索キーワード、例えば、日時、ジャンル名、番組名等を抽出できるかどうかで判定する方法がある。つまり、検索キーワードが抽出できたなら、第2対話処理部6は、番組情報検索コマンドであると判定し(S13でYの場合)、テレビ100の番組表から、抽出された検索キーワードによる番組情報検索を実行するための制御情報を生成し、その制御情報を対話処理制御部9に出力する。また、第2対話処理部6は、対話処理の結果をユーザに提示するための応答情報も対話処理制御部9に出力する。
逆に、第2対話処理部6は、入力された認識文字列が番組情報検索コマンドでないと判定した場合(S13でNの場合)、つまり、認識文字列から番組情報を検索するための検索キーワードが抽出できなかった場合には、対話処理リジェクトの情報を対話処理制御部9に送信する。
第2対話処理部6の対話処理が成功した場合には、対話処理制御部9は、動作スケジュールに基づいて、第2対話処理部6の対話処理の結果である番組表を用いた番組情報検索を実行する(S14)。具体的には、対話処理制御部9は、第2対話処理部6から得られた制御情報を機器関連情報検索部11に出力する。また、対話処理制御部9は、応答情報をGUI出力部14の画面表示部15または音出力部16に出力する。機器関連情報検索部11は、対話処理制御部9から入力された制御情報に基づいて、テレビ100の番組表を用いた番組情報検索を行う。また、機器関連情報検索部11は、画面表示部15または音出力部16を介して、対話処理制御部9から入力された応答情報をユーザに提示する。機器関連情報検索部11は、番組情報検索を行った結果、少なくとも1件以上、番組情報が検索された場合には、ユーザに、画面表示部15または音出力部16を介して、検索された番組情報を提示する(S15)。なお、処理フローとしては、ここで処理が開始ポイント(A)に戻り、ユーザの再発声が待たれる。
以下、番組情報検索タスクに関する対話処理について、具体例で説明する。
例えば、ユーザが、収音部1に対して、「明日のドラマ」と発話したとする。音声認識部3または音声認識部22のいずれかが音声認識に成功した場合には、認識制御部2は、対話処理制御部9に、認識文字列“明日のドラマ”を入力する。次に、対話処理制御部9は、認識文字列“明日のドラマ”を、テレビ100の第1対話処理部に入力する(S4)。また、対話処理制御部9は、対話処理サーバ200の第3対話処理部23にも当該認識文字列を入力する(S5)。第1対話処理部3及び第3対話処理部23は、認識文字列“明日のドラマ”に対し、テレビ100の基本操作タスク及び、エアコンの操作タスクに関する対話処理を行うが、どちらも図2及び図3の対話ルールに記述された操作コマンドと一致しないので、双方の対話処理部から順次、対話処理リジェクトの情報が対話処理制御部9に返ってくる。
対話処理制御部9は、第3対話処理部23から対話処理リジェクトの情報を受信した場合(S9でNの場合)、テレビ100の第2対話処理部6に、認識文字列“明日のドラマ”を入力する(S11)。第2対話処理部6は、入力された認識文字列“明日のドラマ”に対し、番組情報検索タスクに関する対話処理を行う。具体的には、第2対話処理部6は、認識文字列“明日のドラマ”から、番組情報を検索するための検索キーワードの抽出を行えるかどうかで、認識文字列が番組検索コマンドかどうかを判定する(S13)。ここでは、番組情報を検索するための日付キーワード“明日”とジャンルキーワード“ドラマ”が抽出できるので、第2対話処理部6は、認識文字列を番組検索コマンドであると判定する(S13でYの処理)。次に、第2対話処理部6は、日付キーワード“明日”とジャンルキーワード“ドラマ”を用いて、番組情報検索を実行するための制御情報を生成し、その制御情報を対話処理制御部9に出力する。また、第2対話処理部6は、対話処理の結果をユーザに提示するための応答情報、例えば、“明日のドラマを番組表で探します”等を対話処理制御部9に出力する。
対話処理制御部9は、第2対話処理部6の対話処理の結果である番組情報検索のための制御情報を受信すると、その制御情報を機器関連情報検索部11に出力する(S14)。また、対話処理制御部9は、応答情報“明日のドラマを番組表で探します”を画面表示部15および音出力部16に出力する。画面表示部15または音出力部16は、応答情報“明日のドラマを番組表で探します”を画面にテキスト表示または、音声合成音で音声出力する。機器関連情報検索部11は、入力された番組情報検索のための制御情報に基づいて、つまり、日付キーワード“明日”とジャンルキーワード“ドラマ”を用いて、テレビ100の番組表から、キーワードに該当する番組情報を検索する。番組情報の検索を行った結果、少なくとも1件以上、検索キーワードに該当する番組情報が見つかった場合には、機器関連情報検索部11は、画面表示部15または音出力部16を介して、ユーザに検索結果を提示する(S15)。
以上までが、番組情報検索タスクに関する対話処理の動作フローの具体例の説明である。
ところで、第2対話処理部6の対話処理が失敗した場合、つまり、対話処理制御部9が第2対話処理部6から対話処理リジェクトの情報を受信した場合(S13でNの場合)には、対話処理制御部9は、動作スケジュールに基づき、対話処理サーバ200の第4対話処理部24から送信される対話処理の結果を受信する(S16)。
対話処理サーバ200の第4対話処理部24は、認識文字列を用いたインターネットの情報検索、具体的には、天気予報またはニュース等の一般的な情報検索タスクの対話処理を行い、その処理結果を対話処理制御部9に出力する。第4対話処理部24の対話処理は、前述した対話ルールに基づいて行われる。具体的には、第4対話処理部24は、まず、入力された認識文字列が一般情報検索コマンドかどうか判定する。判定方法としては、認識文字列から、インターネットの一般的な情報を検索するための検索キーワード、例えば、天気、ニュース、地図検索に必要な検索キーワード等が抽出できるかどうかで判定する方法がある。つまり、検索キーワードが抽出できたなら、第4対話処理部24は、一般情報検索コマンドであると判定し、インターネットから、抽出された検索キーワードによる一般的な情報検索を実行するための制御情報を生成し、その制御情報を対話処理制御部9に出力する。また、第4対話処理部24は、対話処理の結果をユーザに提示するための応答情報も対話処理制御部9に出力する。
逆に、第4対話処理部24は、入力された認識文字列が一般情報検索コマンドでないと判定した場合、つまり、認識文字列から一般的な情報を検索するための検索キーワードが抽出できなかった場合には、対話処理リジェクトの情報を対話処理制御部9に送信する。
対話処理制御部9は、対話処理サーバ200から第4対話処理部24の対話処理の結果を受信した後、その処理結果をチェックする(S17)。
そして、もし、第4対話処理部24の対話処理が成功したなら、即ち、認識文字列が一般情報検索コマンドであると判定された場合(S17でYの場合)には、対話処理制御部9は、動作スケジュールに基づいて、第4対話処理部24の対話処理の結果であるインターネットを用いた一般情報検索を実行する(S18)。具体的には、対話処理制御部9は、第4対話処理部24から得られた制御情報を一般情報検索部13に出力し、また、応答情報をGUI出力部14の画面表示部15または音出力部16に出力する。
一般情報検索部13は、対話処理制御部9から入力された制御情報に基づいて、インターネットを用いた一般情報検索を行う。また、一般情報検索部13は、画面表示部15および音出力部16を介して、対話処理制御部6から入力された応答情報をユーザに提示する。一般情報検索部13は、一般情報検索を行った結果、少なくとも1件以上、一般情報が検索された場合には、ユーザに、画面表示部15または音出力部16を介して、検索された一般情報を提示する(S19)。なお、処理フローとしては、ここで処理が開始ポイント(A)に戻り、ユーザの再発声が待たれる。
以下、一般情報検索タスクに関する対話処理の動作フローについて、具体例で説明する。
例えば、ユーザが、収音部1に対して、「東京の天気」と発話したとする。音声認識部3または音声認識部22のいずれかが音声認識に成功した場合には、認識制御部2は、対話処理制御部9に、認識文字列“東京の天気”を入力する。次に、対話処理制御部9は、認識文字列“東京の天気”を、テレビ100の第1対話処理部に入力する(S4)。また、対話処理サーバ200の第3対話処理部23にも当該認識文字列を入力する(S5)。第1対話処理部3及び第3対話処理部23は、認識文字列“東京の天気”に対し、テレビ100の基本操作タスク及び、エアコンの操作タスクに関する対話処理を行うが、どちらも図2及び図3の対話ルールに記述された操作コマンドと一致しないので、双方の対話処理部から順次、対話処理リジェクトの情報が対話処理制御部9に返ってくる。
対話処理制御部9は、第3対話処理部23から対話処理リジェクトの情報を受信した場合(S9でNの場合)、テレビ100の第2対話処理部6に、認識文字列“東京の天気”を入力する(S11)。また、対話処理制御部9は、対話処理サーバ200の第4対話処理部24にも当該認識文字列を入力する(S12)。第2対話処理部6は、入力された認識文字列“東京の天気”に対し、番組情報検索タスクに関する対話処理を行うが、認識文字列から番組情報を検索するためのキーワードが抽出できないので、対話処理リジェクトの情報を対話処理部9に出力する(S13でNの処理)。
第2対話処理部6の対話処理と並行して、対話処理サーバ200の第4対話処理部24は、入力された認識文字列に対し、一般情報検索タスクに関する対話処理を行う。具体的には、第4対話処理部24は、認識文字列“東京の天気”から、一般情報を検索するための検索キーワードの抽出が行えるかどうかで、認識文字列が一般情報検索コマンドかどうかを判定する。ここでは、一般情報を検索するためのエリアキーワード“東京”と情報種別キーワード“天気”が抽出できるので、第4対話処理部24は、認識文字列を一般情報検索コマンドであると判定する。次に、第4対話処理部24は、エリアキーワード“東京”と、情報種別キーワード“天気”を用いて、インターネットからの一般的な情報検索を実行するための制御情報を生成し、その制御情報を対話処理制御部9に出力する。また、第4対話処理部24は、対話処理の結果をユーザに提示するための応答情報、例えば、“東京の天気をインターネットで探します”等を対話処理制御部9に出力する。
対話処理制御部9は、テレビ100の第2対話処理部6の対話処理がリジェクトされた後に、対話処理サーバ200の第4対話処理部24の対話処理の結果である制御情報と応答情報を受信する(S16)。第4対話処理部24の対話処理が成功したので、即ち、認識文字列がインターネットからの一般情報を検索するためのコマンドであったので(S17でYの場合)、対話処理制御部9は、受信した制御情報を一般情報検索部13に出力する。また、対話処理制御部9は、受信した応答情報“東京の天気をインターネットで探します”を画面表示部15または音出力部16に出力する。
一般情報検索部13は、入力された一般情報検索のための制御情報に基づいて、つまり、エリアキーワード“東京”と情報種別キーワード“天気”を用いて、インターネットから、上記キーワードに該当する情報を検索する。一般情報検索部13は、情報の検索を行った結果、少なくとも1件以上、検索キーワードに該当する情報が見つかった場合には、画面表示部15または音出力部16を介して、ユーザに検索結果を提示する(S19)。
以上までが、一般情報検索タスクに関する対話処理の具体例の説明である。
ところで、第4対話処理部24の対話処理が失敗した場合、つまり、対話処理制御部9が第4対話処理部24から対話処理リジェクトの情報を受信したとき(S17でNの場合)には、対話処理制御部9は、全ての対話処理が失敗したことをユーザに提示する(S20)。例えば、対話処理制御部9は、“話された言葉がよくわかりません”等を画面表示部15および音出力部16を介して、ユーザに提示する。なお、処理フローとしては、ここで処理が開始ポイント(A)に戻り、ユーザの再発声が待たれる。
以上説明したように、本開示の実施の形態に係る対話処理制御システムは、予め、タスク優先度記憶部7に記憶された各タスクの優先度に基づいて、対話タスク管理部8が、各タスクを処理するテレビ100の第1対話処理部5、第2対話処理部6と、対話処理サーバ200の第3対話処理部23、第4対話処理部24の動作スケジュールを決定する。そして、ユーザが発話した音声認識結果である認識文字列が対話処理制御部9に入力された時は、その動作スケジュールに基づいて、対話処理制御部9は、テレビ100側の各対話処理部と、対話サーバ200側の各対話処理部の動作を制御する。これにより、優先度の異なる複数の異なるタスクを含んだ対話処理を、テレビ100側と対話処理サーバ200側で、同時に並行処理する場合でも、各タスクの優先度に応じた順番で、各対話処理を制御することが可能となる。
例えば、上記実施の形態で説明したように、テレビ100側で、優先度が1番目のタスクであるテレビ100の基本操作に関する対話処理と、優先度が3番目のタスクである番組情報検索に関する対話処理が行われ、同時に、対話処理サーバ200側で、優先度が2番目のタスクであるエアコン操作に関する対話処理と、優先度が4番目のタスクであるインターネットの一般情報検索に関する対話処理が並行処理される場合を考える。この場合、ネットワーク環境等の影響で、対話処理サーバ200からのエアコン操作の対話処理結果の応答が遅くなったとしても、タスクの優先度から決められた動作スケジュールに基づいて各対話処理の動作が制御される。そのため、優先度の低いテレビ100側の番組情報検索に関する対話処理の結果ではなく、優先度の高いサーバ200側のエアコンの操作に関する対話処理の結果を先に実行させることが可能である。
即ち、優先度の高いタスクの対話処理をサーバ側で、優先度の低いタスクの対話処理を機器側で同時に並行処理される場合、ネットワーク環境等の影響で、サーバからの処理結果の応答が遅くても、優先度に応じて、機器側の処理結果ではなく、サーバ側の処理結果を実行させることが可能となる。
(実施の形態2)
実施の形態2では、上記実施の形態1に係る音声認識システムの変形例について説明する。
図6は、実施の形態2に係る音声認識システムの構成を示すブロック図である。
本実施の形態の対話処理制御システムは、実施の形態1の対話処理制御システムと、ほぼ同様の構成であり、実施の形態1の対話処理制御システムの構成要素である機器100において、さらに機器状態管理部19が設けられていることのみが異なる。このため、実施の形態2の対話処理制御システムでは、実施の形態1の対話処理制御システムと共通する構成については実施の形態1と同様の符号が付されている。
以下では、実施の形態1と異なる構成についてのみ説明して、実施の形態1と共通する構成については説明を省略する。
実施の形態2の対話処理制御システムにおける機器状態管理部19は、機器100の状態を管理する。なお、機器100の状態とは、対話処理サーバ200との接続の状態、機器制御部10により操作可能な機器100の状態及び、外部機器制御部12により操作可能な外部機器101の状態である。例えば、機器100をテレビとすると、機器制御部10により操作可能な機器の状態とは、テレビの選局、音量、画面出力の状態等である。また、外部機器101をエアコンとすると、外部機器制御部12により操作可能な機器の状態とは、テレビとエアコンの接続状態およびエアコンの動作状態(電源、モード、設定温度)等である。
また、対話タスク管理部8は、タスク優先度記憶部7に記憶されている各タスクの優先度と機器状態管理部19に管理されている現在の機器100の状態に基づいて、機器100の第1対話処理部5および第2対話処理部6、ならびに対話処理サーバ200の第3対話処理部23および第4対話処理部24の動作スケジュールを決定する。なお、各対話処理部の動作スケジュールは、実施の形態1と同様に、機器100及び対話処理サーバ200の各対話処理部5、6、23、24をどの順番で、どのように動作させるかを定義する。
このように、実施の形態2において、実施の形態1の構成が異なるポイントは、対話タスク管理部8が第1〜第4対話処理部の動作スケジュールを決定する際に、タスク優先度記憶部7に記憶されている各タスクの優先度だけでなく、機器状態管理部19で管理されている機器100の状態を用いることである。
そこで、以下、実施の形態2の対話処理制御システムにおいて、対話タスク管理部8が、機器100の状態に応じて、各対話処理部の動作スケジュールを更新する場合の動作を説明する。なお、以下では、具体的に説明するために、実施の形態1同様に、機器100をテレビ、外部機器101をエアコンとする。よって、第1対話処理部5のタスクは、テレビのチャンネル選局または音量調整等の基本操作タスクとし、その対話ルールは図3に示される。第2対話処理部6のタスクは、番組表の番組情報検索とする。また、第3対話処理部23のタスクは、エアコンの電源操作または温度設定等の操作タスクとし、その対話ルールは図2に示される。第4対話処理部24のタスクは、天気予報およびニュース等の一般的なインターネットの情報検索タスクとする。
図7は、実施の形態2において、対話タスク管理部8が各対話処理部の動作スケジュールを更新する際の処理の流れを示すフローチャートである。
以下、図7を用いて、対話タスク管理部8の動作を説明する。
対話タスク管理部8は、まず、機器状態管理部19が管理している現在のテレビ100の状態を取得する(S31)。次に、対話タスク管理部8は、取得したテレビ100の状態を用いて、テレビ100が対話処理サーバ200とネットワーク接続され、利用できるかどうかを確認する(S32)。確認した結果、対話処理サーバ200が利用可能である場合(S32でYの場合)には、対話タスク管理部8は、タスク優先度記憶部7から第4対話処理部24が処理するインターネットによる一般的な情報検索タスクの優先度“4”を取得する(S33)。
次に、対話タスク管理部8は、同様に、取得したテレビ100の状態を用いて、テレビ100から外部機器であるエアコン101が制御可能であるかどうかを確認する(S34)。確認した結果、エアコン101が制御可能である場合(S34でYの場合)には、対話タスク管理部8は、タスク優先度記憶部7から第3対話処理部23が処理するエアコン101の操作タスクの優先度“2”を取得し(S35)、処理が次(S36)へ進む。つまり、対話タスク管理部8は、制御可能であるかを示す制御可能性に応じて、優先度を取得する。
一方で、例えば、テレビ100がネットワークに接続されていない、または、対話処理サーバ200がシステムダウンしている等の理由により、対話処理サーバ200が利用可能でない場合(S32でNの場合)には、対話タスク管理部8は、第4対話処理部24のタスクの優先度を取得せずに、処理が次(S36)へ進む。同様に、テレビ100とエアコン101がネットワーク接続されていない、または、エアコン101が故障している等の理由により、テレビ100からエアコン101が制御できない場合(S34でNの場合)には、対話タスク管理部8は、第3対話処理部23のタスクの優先度を取得せずに、処理が次(S36)へ進む。
処理(S36)では、対話タスク管理部8は、タスク優先度記憶部7に記憶されている第1対話処理部5が処理するテレビ100の基本操作タスクの優先度“1”及び、第2対話処理部6が処理するテレビ100の番組情報検索タスクの優先度“3”を取得する。
そして、対話タスク管理部8は、テレビ100の状態に応じて取得できた各タスクの優先度に基づいて、各対話処理部の動作スケジュールを更新する(S37)。
最後に、対話タスク管理部8は、テレビ100の状態に応じて、動作スケジュールが更新されたことを対話処理制御部9に通知する(S38)。
以上までが、実施の形態2において、対話タスク管理部8が各対話処理部の動作スケジュールを更新する処理の動作フローの説明である。
さて、実施の形態2の対話処理制御システムでは、テレビ100の状態によって更新された動作スケジュールに基づいて、各対話処理部の動作が対話処理制御部9によって制御される。但し、テレビ100と対話処理サーバ200、エアコン101が正常に接続されている場合には、ユーザが音声コマンドを発話したときのシステムの動作フローは、図5に示す実施の形態1と同様になる。
しかし、例えば、対話処理サーバ200は利用できるが、テレビ100からエアコン101を制御できない場合には、動作スケジュールは、第3対話処理部23のタスクの優先度を除いて、第1対話処理部5、第2対話処理部6及び第4対話処理部24が処理するタスクの優先度に基づいて決定される。つまり、動作スケジュールは、まず、テレビ100の基本操作タスクの対話処理を行い、次に、番組情報検索タスクの対話処理を行い、最後にインターネットを用いた一般情報検索タスクの対話処理を行うように、対話タスク管理部8によって更新される。
よって、この場合のシステムの動作フローは、図5の動作フローから、第3対話処理部23に関する処理(S5、S8〜S10)を省いた図8に示す動作フローとなる。
また、対話処理サーバ200が利用できない場合には、動作スケジュールは、第3対話処理部23、第4対話処理部24のタスクの優先度を除いて、第1対話処理部5、第2対話処理部6が処理するタスクの優先度に基づいて決定される。つまり、動作スケジュールは、まず、テレビ100の基本操作タスクの対話処理を行い、次に、番組情報検索タスクの対話処理を行うように、対話タスク管理部8によって更新される。
よって、この場合のシステムの動作フローは、図5の動作フローから、第3対話処理部23に関する処理(S5、S8〜S10)、第4対話処理部24に関する処理(S12、S16〜S19)を省いた図9に示す動作フローとなる。
以上説明したように、実施の形態1同様に、本開示の実施の形態2に係る対話処理制御システムも、対話処理制御部9が、対話タスク管理部7から得られる動作スケジュールに基づいて、テレビ100の第1対話処理部5、第2対話処理部6及び、対話処理サーバ200の第3対話処理部23、第4対話処理部24の動作を制御する。但し、実施の形態2では、実施の形態1の構成に、新たに追加された機器状態管理部19が、テレビ100の状態、例えば、対話処理サーバ200との接続状態および外部機器であるエアコン101との接続状態またはエアコン101の動作状態を管理し、対話タスク管理部8は、タスク優先度記憶部7に記憶されている各タスクの優先度に加えて、テレビ100の状態に基づいて、テレビ100の第1対話処理部5、第2対話処理部6及び、対話処理サーバ200の第3対話処理部23、第4対話処理部24の動作スケジュールを決定する。
これにより、テレビ100の状態、具体的には、対話処理サーバ200との接続状態、エアコン101との接続状態またはエアコン101の動作状態に応じて、テレビ100および対話処理サーバ200の各対話処理部の動作スケジュールを動的に変更することが可能となる。例えば、テレビ100からエアコン101が制御できない場合には、動作スケジュールは、対話処理制御部9により、第3対話処理部23の対話処理が実行されないように更新される。同様に、対話処理サーバ200が利用できない場合には、動作スケジュールは、第3対話処理部23、第4対話処理部24の対話処理が実行されないように更新される。従って、テレビ100の状態に応じて、システム全体として、無駄な対話処理を行わない、即ち、最適な対話処理を行うことができ、システム全体の処理時間を短縮することができる。
なお、上記各実施の形態において、機器100にネットワーク接続された外部機器101は1台として説明したが、複数の外部機器(例えば、エアコンと照明等)が接続されていてもよい。この場合、第3対話処理部23の対話ルールには、複数の外部機器の操作コマンドと、対話処理の結果である制御情報および応答情報の対応関係が記述されている。例えば、外部機器がエアコンと照明の場合には、図2に示す対話ルールに、照明の操作コマンド、例えば、「電気をつけて」、「照明を消して」等が追加される。また、外部機器制御部12は、第3対話処理部23から出力された制御情報に基づいて、複数の外部機器を制御する。
また、上記各実施の形態において、第1対話処理部5のタスクを機器100の基本操作、第2対話処理部6のタスクを機器100に関連する情報検索、第3対話処理部23のタスクを外部機器101の操作、第4対話処理部24のタスクがインターネットの情報検索タスクと設定されるとしたが、機器100における第1対話処理部5と第2対話処理部6のタスクが異なれば、上記タスク以外のタスクが設定されてもよい。例えば、第3対話処理部23のタスクが機器100の基本操作タスク以外の機器100の操作タスクに設定されてもよい。機器100をテレビとするならば、第1対話処理部5は、図3の対話ルールに示したような基本操作タスクを行い、第3対話処理部6は、字幕表示、ヘルプ表示、映像/音声モードの選択等の操作タスクを設定してもよいし、また、基本操作タスクを含むテレビ全体の操作タスクを設定してもよい。但し、これらのタスクの優先度は、予め、タスク優先度記憶部7に記憶されている必要がある。
また、上記各実施の形態において、タスク優先度記憶部7において、機器100の基本操作タスクを優先度1、機器関連情報の検索タスクを優先度3、対話処理サーバ200の外部機器操作タスクは優先度2、インターネットによる一般的な情報検索タスクは優先度4と設定されるとしたが、上記以外の優先度が設定されてもよい。
また、上記各実施の形態において、対話処理サーバ200は、2つの対話処理部(第3対話処理部23、第4対話処理部24)を備えているが、対話処理部は少なくとも1つ以上あればよい。また、対話処理サーバ200は、音声認識部22を備えているが、対話処理サーバ200と異なるサーバである音声認識サーバが用意され、この音声認識サーバが音声認識部22を備えるようにしてもよい。
(実施の形態3)
(本開示に至った経緯)
一般的に、機器操作に関する対話処理は、発話理解処理と応答生成処理の2つの処理を含む。発話理解処理は、音声認識処理から得られた認識文字列を解析することによって、認識文字列からユーザが意図した機器の操作内容を特定する。また、応答生成処理は、特定された操作内容に基づいて、操作対象機器を制御するための制御情報およびユーザへの応答情報を生成する。
さて、前述したように、従来のクライアント・サーバ型の音声認識システムでは、ユーザが発話した音声認識結果である認識文字列から操作対象の機器の動作を特定する対話処理を機器側で行うため、機器の計算能力またはメモリ容量等の制限によって、対話処理、特に、発話理解処理で扱える操作コマンドの数および発話パターン(言い回し)の数が限定されるという課題があった。
そこで、音声認識処理と同様に、発話理解処理においても、クラウドサーバ上で発話理解処理を行うことにより、大規模な語彙数(操作コマンドの数および発話パターンの数等)を処理できるようにする方法が提案されている。
しかし、クラウドサーバ上で音声認識が行われる場合と同様に、クラウドサーバ上で発話理解処理が行われる場合、ネットワークの通信環境が悪い場合または、複数の機器からサーバにアクセスが集中した場合には、サーバからの応答速度は、機器内で処理する場合に比べ、かなり遅くなるという問題がある。
よって、上記問題を解決する方法としては、発話理解処理できる語彙数は少ないが、迅速な応答が求められるタスクに対しては、機器内で対話処理(発話理解処理と応答生成処理)を行い、一方、応答速度が遅くても、発話理解処理が可能な語彙数が大規模であることが要求されるタスクに対しては、クラウドサーバ上で発話理解処理を行った後、機器側で応答生成処理を行う分散型の対話処理を実施するクライアント・サーバ型の対話処理システムが考えられる。また、このようなシステムでは、サーバからの応答時間を短くするために、通常、認識文字列を機器とサーバの発話理解処理にほぼ同時に入力し、発話理解処理の最終的な結果を得るまでの時間を短くするようにしている。
ところで、最近の音声認識機器または音声認識システムでは、音声認識の結果である認識文字列に対し、複数の異なるタスクを処理する対話処理が行われることが多い。例えば、まず、認識文字列が、操作対象機器の操作コマンド(機能)か、アプリケーションかどうかが判定され、操作コマンドである場合には、対応する機器操作が実行される。そうでない場合には、アプリマーケットで、認識文字列を検索キーワードとしたアプリ検索が行われ、その結果がユーザに提示される。つまり、機器操作タスクとアプリ検索タスクの2つの異なるタスクを処理する対話処理が行われている。
なお、機器内だけで、上記複数の異なるタスクに対する対話処理(発話理解処理と応答生成処理)が行われている。前述したように、大規模な語彙数を対話処理、特に発話理解処理を行うためには、クライアント・サーバ型のシステムを利用することが望ましい。
しかしながら、複数の異なるタスクに対して、機器内だけで行われる対話処理と機器側とサーバ側の双方で対話処理を行われる分散型の対話処理を併用した場合、機器内の対話処理の結果と、分散型の対話処理(サーバ側で発話理解処理を行った後、機器側で応答生成処理を行う処理)の結果のうち、どちらの結果を優先的に処理するかを決定する必要がある。単純に、先に有効な結果を得られた方を処理するという方法もあるが、機器内の対話処理と分散型の対話処理が扱う各タスクの優先度が異なる場合には、一概に、その方法が良いとは限らない。
例えば、優先度が異なる3つのタスクがあるとする。優先度が1番目のタスクと3番目のタスクに対しては、それぞれ機器側で対話処理が行われ、2つの対話処理が連続して行われるとする。また、優先度が2番目のタスクについては、サーバ側で発話理解処理が行われ、機器側で応答生成処理が行われる分散型対話処理が行われるようにシステムが構築されるとする。この場合、優先度が高い順番に対話処理の結果が実行されることが望まれるが、ユーザの発話内容またはネットワーク環境等により、サーバ側の発話理解処理に時間がかかり、分散型対話処理より、機器側の2つの対話処理のほうが短時間に終わる場合がある。つまり、優先度3番目のタスクが機器側で先に実行されてしまい、分散型対話処理を行った優先度2番目のタスクが実行されないという問題が生じる。
以下、上記問題を、具体的に、機器をテレビとして説明する。ここで、優先度1番目のタスクをテレビのチャンネル選局または音量調整等のテレビの基本操作とし、また、優先度2番目のタスクをテレビとネットワーク接続されている外部機器の操作、例えば、エアコンまたは照明等の機器操作とする。また、優先度3番目のタスクを、テレビに関する情報検索、例えば、番組名または出演者名による番組情報検索とする。このとき、システムとしては、テレビ側で、優先度1番目のテレビの基本操作及び、優先度3番目のテレビに関する情報検索に関する対話処理が行われるとする。また、優先度2番目の外部機器操作については、サーバ側で発話理解処理が行われ、テレビ(機器)側で応答生成処理が行われる分散型対話処理が行われるとする。なお、サーバ側で、外部機器操作の発話理解処理を行う理由は、様々な機器の多様な操作コマンドに対して処理できるようにするためである。
上記システムにおいて、例えば、ユーザが、「エアコンをつけて」と発話したとする。正しく音声認識されたなら、次に、認識文字列「エアコンをつけて」は、テレビ側の対話処理及び、サーバ側の発話理解処理に同時に入力される。テレビ側では、まず、テレビの基本操作タスクの対話処理が行われ、認識文字列が、テレビの基本操作コマンドかどうかが確認される。認識文字列「エアコンをつけて」は、テレビの基本操作コマンドに含まれないので、次に、テレビに関する情報検索タスクの対話処理が行われる。つまり、認識文字列「エアコンをつけて」を検索キーワードとした情報検索(例えば、番組表検索またはインターネット検索等)が行われる。
一方、サーバ側では、外部機器の操作タスクの発話理解処理が行われ、認識文字列が、テレビに接続されている外部機器、例えば、エアコンおよび照明等の操作コマンドかどうかが解析される。解析の結果、認識文字列「エアコンをつけて」は、「エアコンの電源ON操作」として操作内容が特定されるので、サーバからテレビに対し、「エアコンの電源ON操作」という操作内容を示すための情報が送信される。
このとき、システム全体としては、優先度2番目の外部機器の操作タスクであるエアコンの電源ON操作が、優先度3番目のテレビに関する情報検索タスクより、先に実行されるべきである。しかし、前述したように、ネットワーク環境等により、サーバ側の外部機器の操作タスクの発話理解処理よりも、機器側の2つの対話処理(テレビの基本操作タスクとテレビに関する情報検索タスク)のほうが短時間に終わる可能性がある。即ち、ネットワーク環境によっては、「エアコンをつけて」をキーワード検索した結果の表示が、エアコンの電源をつける操作よりも、先に実行される可能性があり、ユーザの思い通りに機器を操作することができないという課題が生じる。
従って、本開示は、優先度の異なる複数のタスクに対し、機器内だけで行う対話処理と機器側とサーバ側の双方で対話処理を行う分散型の対話処理が併用される場合に、各タスクの優先度に基づいた最適な対話処理制御が行える情報処理装置および情報処理方法を提供することを目的とする。
上記目的を達成するために、本開示の一態様に係る情報処理装置として動作する対話処理制御装置は、音声認識処理により得られるテキストデータである音声認識結果を取得する音声認識結果取得部と、前記音声認識結果に基づく複数の対話処理によりそれぞれ特定される複数のタスクの各々にそれぞれ対応する優先度を取得する優先度取得部と、互いに異なる前記複数の対話処理を複数の装置に分散実行させ、かつ、前記優先度に基づいて、前記対話処理の分散実行により特定されるタスクに応じた制御情報を、当該制御情報に基づいて動作する実行部へ提供する対話処理制御部とを備え、前記複数の装置は、前記対話処理制御装置および前記対話処理制御装置と通信を介して接続される外部装置を含み、前記音声認識結果に基づいて前記対話処理を行う対話処理部と、前記優先度を記憶するタスク優先度記憶部とを備え、前記優先度取得部は、前記タスク優先度記憶部に記憶されている前記優先度を取得し、前記対話処理制御部は、前記音声認識結果を前記対話処理部および前記外部装置に提供し、前記優先度に基づいて、前記対話処理部または前記外部装置が行った前記対話処理より得た前記制御情報を前記実行部に提供し、前記対話処理は、少なくとも、前記制御情報を生成する対話理解処理を有し、前記外部装置は、前記対話理解処理を行う対話処理部を有し、前記対話処理部は、前記制御情報に基づいて応答情報を生成する応答生成部と、前記対話理解処理を行う対話理解部とを有する。
例えば、本構成では、タスク優先度記憶部7に記憶された各タスクの優先度に基づいて、対話タスク管理部8が、各タスクに対し、機器側の対話処理部、応答生成部及び、発話理解処理サーバの発話理解処理の動作スケジュールを決定する。そして、その動作スケジュールに基づいて、対話処理制御部9が、機器側の各対話処理部、応答生成部及び、発話理解処理サーバ側の発話理解処理の動作を制御する。これにより、優先度の異なる複数の異なるタスクに対して、機器内だけで行う対話処理と機器側とサーバ側の双方で行われる分散型の対話処理が併用される場合でも、各タスクの優先度に応じた順番で、各対話処理を制御することが可能となる。即ち、優先度の高いタスクの発話理解処理がサーバ側で、優先度の低いタスクの対話処理が機器側で並行処理される場合、ネットワーク環境等の影響で、サーバからの発話理解処理の結果の応答が遅くても、優先度に応じて、機器側の対話処理の結果ではなく、機器側とサーバ側で分散処理した対話処理の結果を実行させることが可能となる。
また、例えば、本開示の別の一形態に係る対話処理制御装置は、さらに、前記実行部により制御される被制御装置の状態を管理する機器状態管理部を備え、前記優先度取得部は、前記機器状態管理部で管理されている前記状態に基づいて、前記優先度を取得する。
例えば、この構成においても、被制御装置一例である対話処理制御部9は、対話タスク管理部8から得られる動作スケジュールに基づいて、機器側の各対話処理部、応答生成部及び、発話理解処理サーバの発話理解処理の動作を制御する。但し、本構成では、機器状態管理部19が、機器の状態を管理し、対話タスク管理部8は、タスク優先度記憶部7に記憶されている各タスクの優先度に加えて、前記機器の状態に基づいて、機器側の各対話処理部、応答生成部及び、発話理解処理サーバの発話理解処理の動作スケジュールを決定する。これにより、操作対象の機器の状態に応じて、機器の対話処理、応答生成処理及び、発話理解処理サーバの発話理解処理の動作スケジュールを動的に変更することが可能となる。つまり、機器の状態に応じて、最適な処理を行うことができ、全体の処理時間を短縮することができる。
図10は、実施の形態3に係る対話処理制御システムの構成を示すブロック図である。
図10に示すように、対話処理制御システムは、音声による操作対象の機器100及び、機器100に、有線LAN/無線LAN等でネットワーク接続された外部機器101と、クラウド上で音声認識処理を行う音声認識処理サーバ300と、同様に、クラウド上で対話処理の一部である発話理解処理を行う発話理解処理サーバ400を備える。例えば、機器100をテレビとすれば、外部機器101は、テレビにネットワーク接続された全ての機器、つまり、HDMI(登録商標)もしくはLANで接続されたハードディスクレコーダまたはAVアンプ等の従来のAV機器に加え、エコネット(登録商標)で接続されたエアコンまたは照明等の白物家電も該当するものとする。
音声認識処理サーバ300は、通信部21、音声認識部22を備える。通信部21は、機器100と、音声または音声認識結果である認識文字列等の情報の送受信を行う。音声認識部22は、通信部21を介して入力されたユーザが発話した音声を認識する。そして、音声認識部22は、音声認識結果である認識文字列を、通信部21を介して、機器100に送信する。なお、音声認識部22は、クラウド上で音声認識処理を行うので、従来例同様に、数十万程度の大規模な語彙を認識することが可能である。また、音声認識部22において、音声を認識する方法としては、従来のDPマッチング法、HMM(隠れマルコフモデル)法、N−Gram法等が用いられる。音声認識処理サーバ300は、外部装置に含まれる。
発話理解処理サーバ400は、通信部31、第3発話理解部32、第4発話理解部33を備える。通信部31は、機器100と、認識文字列、認識文字列に対する発話理解部の処理結果等の情報の送受信を行う。発話理解処理サーバ400は、外部装置に含まれる。
第3発話理解部32及び、第4発話理解部33は、機器100から通信部31を介して入力された認識文字列に対し、予め定められた異なるタスクの発話理解処理を行う。そして、第3発話理解部32及び、第4発話理解部33は、発話理解処理の結果を、通信部31を介して機器100に送信する。
本実施の形態では、第3発話理解部32は、機器100に接続された外部機器101の操作タスクを処理し、第4発話理解部33は、天気予報およびニュース等のインターネットの一般的な情報検索タスクを処理する。この場合、第3発話理解部32は、認識文字列が外部機器101の操作コマンドのいずれかに該当するかどうかを確認し、該当した場合には、対応する外部機器の操作の内容を具体的に示す情報(操作内容情報)が出力される。また、第4発話理解部33は、認識文字列から一般的な情報を検索するためのキーワードが抽出され、その検索キーワードを用いたインターネットの検索操作の内容を具体的に示す情報(操作内容情報)が出力される。
なお、第3発話理解部32において、認識文字列を発話理解する方法としては、一般的には、認識文字列を形態素解析した後、構文解析することによって、認識文字列を外部機器101の操作内容に変換する方法が使われる。但し、単純に、認識文字列と全ての操作コマンドを示す文字列とを照合する方法が用いられてもよい。同様に、第4発話理解部33において、認識文字列を発話理解する方法として、認識文字列を形態素解析した後、構文解析することによって、認識文字列から検索キーワードを抽出する方法が一般的に使われる。但し、単純に、認識文字列と全ての検索キーワードを含む検索コマンドを示す文字列と照合する方法が用いられてもよい。
第3発話理解部32では、外部機器101の操作コマンドと発話理解処理の結果である操作内容情報の対応関係が、発話理解ルールとして保持されている。第3発話理解処理部32の発話理解処理は、この発話理解ルールに基づいて行われる。例えば、外部機器101をエアコンとした場合の第3対話処理部32が用いる発話理解ルールの一例を図11に示す。図11に示すように、操作コマンドは、ユーザが外部機器101に対して操作を指示する言葉であり、「エアコンをつけて」「冷房にして」等である。
操作内容は、操作コマンドに対して外部機器101が実際に行う操作の内容であり、例えば、操作コマンド「冷房にして」に対応する操作内容は「エアコンの電源をONにし、冷房運転を行う」となる。なお、各操作内容に対し、操作コマンドは複数登録されていてもよい。例えば、図11では、「エアコンの電源をONにし、自動運転を行う」という操作内容に対して、「エアコンをつけて」「エアコンを入れて」という2つの言葉が登録されている。
操作内容情報は、操作対象の外部機器101の操作内容をパラメータ表現しており、第3発話理解部32の処理結果として出力される。例えば、図11の例では、「エアコンをつけて」の発話理解の処理結果として、(Device:Air conditioner,Operation:Power on,Operation Mode:Auto)が出力される。
同様に、第4発話理解部33の発話理解処理も、発話理解ルールに基づいて行われる。但し、発話理解ルールは一つだけで、その処理の内容は「認識文字列から一般情報を検索するためのキーワードを抽出し、その検索キーワードを用いて、インターネット情報を検索する」である。操作内容情報は、この検索操作の内容をパラメータ表現しており、例えば、認識文字列が「東京の天気」の場合は、(Operation:Search Internet,Information:Weather.Area:Tokyo)となり、第4発話理解部33の処理結果として出力される。
機器100は、収音部1、認識制御部2、音声認識部3、通信部4、第1対話処理部5、第2対話処理部6、タスク優先度記憶部7、対話タスク管理部8、対話処理制御部9、機器制御部10、外部機器制御部12、機器関連情報検索部11、一般情報検索部13、GUI出力部14、画面表示部15、音出力部16、第3応答生成部17、第4応答生成部18を備える。
また、第1対話処理部5は、第1発話理解部51、第1応答生成部52を備え、第2対話処理部6は、第2発話理解部61、第2応答生成部62を備える。
以下、機器100の構成を詳しく説明する。
収音部1は、マイクであり、ユーザが発話した音声を入力する。認識制御部2は、収音部1で入力された音声を機器側の音声認識部3に出力するとともに、音声認識処理サーバ300の音声認識部22にも通信部4を介して出力する。そして、認識制御部2は、音声認識部3または音声認識部22から得られた音声認識結果に基づいて、認識文字列を決定する。音声認識部3は、認識制御部2から入力されたユーザの発話音声を認識し、音声認識結果として、認識制御部2に認識文字列を出力する。通信部4は、音声認識処理サーバ300と、音声および認識文字列等の情報の送受信を行う。また、通信部4は、発話理解処理サーバ400と、認識文字列および発話理解の処理結果等の情報の送受信を行う。なお、音声認識部3は、機器内で音声認識処理を行うので、数百程度の小規模な語彙しか認識できないが、音声認識処理サーバ300の音声認識部22に比べると、応答速度はかなり速い。また、音声認識部3において、音声を認識する方法としては、従来のDPマッチング法、HMM(隠れマルコフモデル)法、N−Gram法等が用いられる。
第1対話処理部5及び、第2対話処理部6は、認識制御部2で決定された認識文字列に基づいて、予め定められた異なるタスクの対話処理を行う。本実施の形態では、第1対話処理部は、機器100の基本操作タスクを処理し、第2対話処理部は、機器100に関連する情報検索タスクを処理する。
この場合、第1対話処理部5では、まず、第1発話理解部51が、入力された認識文字列が、機器100の基本操作コマンドのいずれかに一致するかどうかを確認し、一致した場合には、対応する機器操作の内容を具体的に示す情報(操作内容情報)を出力する。次に、第1発話理解部51から出力された操作内容情報に基づいて、第1応答生成部52が対応する機器操作を実行するための制御情報を出力する。
また、第2対話処理部6でも、第2発話理解部61が、入力された認識文字列から検索キーワードを抽出し、その検索キーワードを用いた機器関連情報の検索操作の内容を具体的に示す情報(操作内容情報)を出力する。次に、第2発話理解部61から出力された操作内容情報に基づいて、第2応答生成部62は、機器関連情報の検索を実行するための制御情報を出力する。更に、各応答生成部52、62は、各制御情報以外に、対話処理の結果をユーザに提示するための応答情報も出力する。
なお、第1発話理解部51において、認識文字列を発話理解する方法としては、一般的には、認識文字列を形態素解析した後、構文解析することによって、認識文字列を機器100の操作内容に変換する方法が使われる。但し、単純に、認識文字列と全ての操作コマンドを示す文字列とを照合する方法が用いられてもよい。同様に、第2発話理解部61において、認識文字列を発話理解する方法として、認識文字列を形態素解析した後、構文解析することによって、認識文字列から機器関連情報を検索するためのキーワードを抽出する方法が一般的に使われる。但し、単純に、認識文字列と全ての検索キーワードを含む検索コマンドを示す文字列と照合する方法が用いられてもよい。
第1対話処理部5の第1発話理解部51では、機器100の操作コマンドと発話理解処理の結果である操作内容情報の対応関係が、発話理解ルールとして保持されている。第1発話理解部51の処理は、この発話理解ルールに基づいて行われる。例えば、機器100をテレビとした場合の第1発話理解部51が用いる発話理解ルールの一例を図12に示す。図12に示すように、操作コマンドは、ユーザが機器100に対して操作を指示する言葉であり、「テレビをつけて」「番組表」等である。
操作内容は、操作コマンドに対して機器100が実際に行う操作の内容であり、例えば、操作コマンド「テレビをつけて」に対応する操作内容は「テレビの電源をONにする」である。なお、各操作内容に対し、操作コマンドは複数登録されていてもよい。例えば、図12では、「音量を3レベル上げる」という操作内容に対して、「音量を上げて」「音量アップ」という2つの言葉が登録されている。
操作内容情報は、操作対象の機器100の操作内容をパラメータ表現しており、第1発話理解部51の処理結果として出力される。例えば、図12の例では、テレビに対し「テレビをつけて」の発話理解の処理結果として、(Device:TV,Operation:Power on)が出力される。
また、第1応答生成部52では、機器100の操作内容情報と応答生成処理の結果である機器100の制御情報および応答情報の対応関係が、応答生成ルールとして保持されている。第1応答生成部52の処理は、この応答生成ルールに基づいて行われる。ここで、図12に示した発話理解ルールに対応する応答生成ルールの一例を図13に示す。
図13に示すように、操作内容情報は、図12の発話理解ルールと同一であり、操作対象の機器100の操作内容をパラメータ表現している。
制御情報は、操作対象の機器100に操作内容を実行させるための機器制御コマンドであり、機器制御部10に入力される情報である。例えば、図13の例では、テレビに対し「テレビをつけて」という操作内容を実行させる場合、機器制御部10に(TV,On)という機器制御コマンドが入力される。
応答情報は、操作コマンドが正しく受け付けられた場合に、音声および画面を用いて、ユーザに提示する情報である。例えば、図13の例では、操作コマンド「テレビをつけて」が受け付けられた場合には、応答情報「テレビをつけます」がユーザに提示される。
同様に、第2対話処理部6において、第2発話理解部61の発話理解処理も、発話理解ルールに基づいて行われる。但し、発話理解ルールは一つだけで、その処理の内容は、「認識文字列から機器関連情報を検索するためのキーワードを抽出し、その検索キーワードを用いて、機器関連情報を検索する」である。例えば、機器100をテレビ、機器関連情報を番組表の番組情報とすると、処理の内容は、「認識文字列から番組情報を検索するためのキーワードを抽出し、その検索キーワードを用いて、番組表から番組情報を検索する」となる。操作内容情報は、この検索操作の内容をパラメータ表現しており、第2発話理解部61の処理結果として出力される。例えば、認識文字列が「明日のドラマ」の場合は、発話理解の処理結果として、(Operation:Search EPG,Day:Tomorrow,Genre:Drama)が出力される。
また、第2応答生成部62の応答生成処理も、応答生成ルールに基づいて行われる。但し、応答生成ルールは一つだけで、その処理の内容は、「操作内容情報に基づいて、機器関連情報の検索を実行するための制御情報と応答情報を生成する」である。例えば、機器100をテレビ、機器関連情報を番組表の番組情報とした場合には、制御情報は、機器100の機器関連情報検索部11に、認識文字列から抽出された検索キーワードを用いて、番組表から番組情報を検索させるための機器制御コマンドであり、応答情報は、「番組表の検索結果を画面に表示します」等である。
第3応答生成部17は、発話理解処理サーバ400の第3発話理解部32の処理結果に基づいて、予め定められたタスクの応答生成処理を行う。前述したように、本実施の形態では、第3発話理解部32は、外部機器101の操作タスクを処理し、第3応答生成部17は、外部機器101の操作タスクを処理する。即ち、第3応答生成部17は、第3発話理解部32から出力された操作内容情報に基づいて、対応する外部機器の操作を実行するための制御情報を出力する。また、第3応答生成部17は、制御情報以外に、発話理解処理の結果をユーザに提示するための応答情報も出力する。
第3応答生成部17では、外部機器101の操作内容情報と応答生成処理の結果である外部機器101の制御情報および応答情報との対応関係が、応答生成ルールとして保持されている。第3応答生成部17の処理は、この応答生成ルールに基づいて行われる。ここで、図11に示した発話理解ルールに対応する応答生成ルールの一例を図14に示す。
図14に示すように、操作内容情報は、図11の発話理解ルールと同一のものであり、操作対象の外部機器101の操作内容をパラメータ表現している。
制御情報は、操作対象の外部機器101に操作内容を実行させるためのネットワークコマンドであり、ネットワークを介して、機器100から外部機器101に送信される。例えば、図14の例では、エアコンに対し、「エアコンをつけて」という操作内容を実行させる場合(即ち、操作内容情報が“Device:Air Conditioner,Operation:Power On,Operation Mode:Auto”の場合)、機器100から外部機器101に、(Air conditioner, On, Auto)というネットワークコマンドが送信される。
応答情報は、操作コマンドが正しく受け付けられた場合に、音声または画面を用いて、ユーザに提示される情報である。例えば、図14の例では、操作コマンド「冷房にして」が受け付けられた場合には、応答情報「冷房をつけます」がユーザに提示される。
第4応答生成部18は、発話理解処理サーバ400の第4発話理解部33の処理結果に基づいて、予め定められたタスクの応答生成処理を行う。前述したように、本実施の形態では、第4発話理解部24は、天気予報またはニュース等のインターネットの一般的な情報検索タスクを処理する。即ち、第4応答生成部18は、第4発話理解部33から出力された操作内容情報に基づいて、機器100の一般情報検索部13に、認識文字列から抽出された検索キーワードによるインターネット情報を検索させるための制御情報を出力する。また、第4応答生成部18は、制御情報以外に、発話理解処理の結果をユーザに提示するための応答情報も出力する。
また、第4応答生成部18の応答生成処理も、応答生成ルールに基づいて行われる。但し、応答生成ルールは一つだけで、その処理の内容は、「操作内容情報に基づいて、インターネットの一般的な情報を検索するための制御情報と応答情報を生成する」である。つまり、制御情報は、機器100の一般情報検索部13に、認識文字列から抽出された検索キーワードを用いて、インターネットから情報を検索させるためのネットワークコマンドである。また、応答情報は、例えば、「検索結果を画面に表示します」等である。
タスク優先度記憶部7には、機器100の第1対話処理部および第2対話処理部6が処理するタスクならびに、発話理解処理サーバ400の第3発話理解部32と機器100の第3応答生成部17及び、発話理解処理サーバ400の第4発話理解部33と機器100の第4応答生成部18が処理するタスクの優先度が記憶されている。本実施の形態では、機器100の基本操作タスクは優先度1、機器関連情報の検索タスクは優先度3、外部機器操作タスクは優先度2、インターネットによる一般的な情報検索タスクは優先度4というように記憶されているとする。
対話タスク管理部8は、タスク優先度記憶部7に記憶されている各タスクの優先度に基づいて、機器100の第1対話処理部5、第2対話処理部6、第3応答生成部17、第4応答生成部18、発話理解処理サーバ400の第3発話理解部32および第4発話理解部33の動作スケジュールを決定する。なお、対話処理部及びその構成要素である発話理解部、応答生成部の動作スケジュールは、具体的には、各処理部(対話処理部、発話理解部、応答生成部)をどの順番で、どのように動作させるかを定義し、例えば、図15に示すように、以下の情報が記述されている。
各処理部を動作させる順番
各処理部の動作を開始するタイミング
各処理部の処理結果を実行するタイミング
例えば、対話処理部または発話理解部の動作を開始するタイミングとは、認識文字列が対話処理部または発話理解処理サーバ400の発話理解部に入力されるタイミングのことを示す。また、対話処理部または応答生成部の処理結果を実行するタイミングとは、対話処理部または応答生成部の処理結果を実行するための制御信号を、その処理結果を実際に実行する各構成要件、例えば、機器制御部10、外部機器制御部12、機器関連情報検索部11、一般情報検索部13に出力するタイミングのことを示す。
例えば、第1対話処理部5の処理結果を実行するタイミングとは、機器100の基本操作タスクを実行するタイミングを示す。また、第2対話処理部6の処理結果を実行するタイミングは、機器関連情報の検索タスクを実行するタイミングを示す。同様に、第3応答生成部17の処理結果を実行するタイミングは、外部機器101の操作タスクを実行するタイミングであり、第4応答生成部18の処理結果を実行するタイミングは、一般的なインターネットの情報検索タスクを実行するタイミングである。
対話処理制御部9は、対話タスク管理部8で決定された動作スケジュールに基づいて、機器100の第1対話処理部5、第2対話処理部6、第3応答生成部17、第4応答生成部18の動作を制御する。また、対話処理制御部9は、通信部4、31を介して、発話理解処理サーバ400の第3発話理解部32、第4発話理解部33の動作も制御する。
具体的には、対話処理制御部9は、動作スケジュールに基づいて、各対話処理部および発話理解サーバ400の各発話理解部に、認識文字列を入力して、発話理解処理を開始させる処理を行う。また、対話処理制御部9は、動作スケジュールに基づいて、各応答生成部から得られた処理結果を、機器制御部10、外部機器制御部12、機器関連情報検索部11、または、一般情報検索部13のいずれかに出力する処理を行う。例えば、機器100における第1対話処理部5の第1応答生成部52から得られた機器100を操作するための制御情報は、機器制御部10に出力される。機器100における第2対話処理部6の第2応答生成部62から得られた機器関連情報の検索を実行するための制御情報は、機器関連情報検索部11に出力される。第3応答生成部17から得られた外部機器101を操作するための制御情報は、外部機器制御部12に出力される。第4応答生成部18から得られた一般的なインターネットの情報検索を実行するための制御情報は、一般情報検索部13に出力される。
機器制御部10は、対話処理制御部9から入力された制御情報に基づいて、機器100の操作を実行する。外部機器制御部12は、対話処理制御部9から入力された制御情報に基づいて、外部機器の操作を実行する。機器関連情報検索部11は、対話処理制御部9から入力された制御情報に基づいて、機器に関連する情報の検索を実行する。一般情報検索部13は、対話処理制御部9から入力された制御情報に基づいて、一般的なインターネットの情報検索タスクを実行する。
GUI出力部14は、ディスプレイ等の画面表示部15と、スピーカー等の音出力部16を備える。画面表示部15には、機器制御部10で実行された機器100の操作結果、外部機器制御部12で実行された外部機器101の操作結果、機器関連情報検索部11で検索された機器関連情報の検索結果または、一般情報検索部13で検索された一般的なインターネットの情報検索結果が表示される。同時に、音出力部16から、画面表示に同期して報知音が出力される。
また、画面表示部15は、対話処理制御部9を介して、各応答生成部52、62、17、18から得られる応答情報を画面出力する。同様に、音出力部16は、対話処理制御部9を介して、各応答生成部52、62、17、18から得られる応答情報を音声合成し、応答音声として出力する。
以下、本実施の形態における対話処理制御システムにおいて、各対話タスクを行うために、ユーザが各タスクに関連する音声コマンドを発話したときのシステムの動作について説明する。なお、以下では、具体的に説明するために、機器100をテレビ、外部機器101をエアコンとする。よって、第1対話処理部5のタスクは、テレビのチャンネル選局および音量調整等の基本操作タスクとし、その発話理解ルール、応答生成ルールは、それぞれ図12、図13に示される。第2対話処理部6のタスクは、番組表の番組情報検索とする。また、発話理解処理サーバ400の第3発話理解部32と機器100の第3応答生成部17が処理するタスクは、エアコンの電源操作および温度設定等の機器操作タスクとし、その発話理解ルール、応答生成ルールは、図11、図14に示される。発話理解処理サーバ400の第4発話理解部33と機器100の応答生成部18が処理するタスクは、天気予報またはニュース等の一般的なインターネットの情報検索タスクとする。
上記対話処理制御システムにおいて、ユーザが、テレビ100またはエアコン101を音声操作する場合には、テレビ100の収音部1に向かって、音声コマンドを発話する。例えば、テレビの音量を操作したい場合には、ユーザは、「音量をあげて」と、また、エアコンの温度を下げたい時には、「温度を下げて」等を発話する。同様に、音声による情報検索を行う場合、ユーザは、例えば、番組表から明日放送する予定のドラマの番組名を検索したいときには、「明日のドラマ」等と、インターネットから天気予報を検索したいときには、「東京の天気」等を発話する。
図16は、本実施の形態において、テレビ100の収音部1に、ユーザが音声コマンドを入力したときの処理の流れを示すフローチャートである。以下、図16を用いて、対話処理制御システムの動作フローを説明する。
テレビ100の収音部1は、ユーザが発話した音声を収音し、認識制御部2に出力する(S41)。認識制御部2は、収音部1から入力された音声に対し、テレビ100の音声認識部3及び、音声認識処理サーバ300の音声認識部22で音声認識処理を行い、それらの音声認識結果に基づいて、認識文字列を求める(S42)。具体的には、以下の一連の動作が行われる。
認識制御部2は、収音部1から入力された音声を、音声認識部3に出力する。また、同時に、認識制御部2は、収音部1から入力された音声を、テレビ100の通信部4から音声認識処理サーバ300の通信部21を介して、音声認識処理サーバ300の音声認識部22にも出力する。
音声認識部3は、入力された音声を認識し、その音声認識結果を認識制御部2に出力する。同様に、音声認識処理サーバ300の音声認識部22は、入力された音声を認識し、その音声認識結果を音声認識処理サーバ300の通信部21からテレビ100の通信部4を介して、認識制御部2に出力する。通常、テレビ100の音声認識部3の音声認識結果は、音声認識処理サーバ300の音声認識部22の音声認識結果より先に得られるので、認識制御部2は、まず、音声認識部3の音声認識結果を確認する。音声認識部3が認識に成功したなら、認識制御部2は、その音声認識結果である文字列を対話処理制御部9に出力する。もし、音声認識部3が認識に失敗したなら、認識制御部2は、次に、音声認識処理サーバ300の音声認識部22の音声認識結果を確認する。音声認識部22が認識に成功したなら、認識制御部2は、その音声認識結果である文字列を対話処理制御部9に出力する。逆に、認識に失敗したなら、認識制御部2は、ユーザに対し、認識に失敗したことをGUI出力部14の画面表示部15、音出力部16を用いて提示し、ユーザに再発声を促す。
対話処理制御部9は、認識制御部2から認識文字列を受信すると、まず、対話タスク管理部9から対話処理を行う各処理部の動作スケジュールを取得する(S43)。即ち、対話処理制御部9は、各対話処理部5、6、各応答生成部17、18、発話理解サーバ300の各発話理解部32、33の動作スケジュールを取得する。なお、前述したように、動作スケジュールは、予め、タスク優先度記憶部7に記憶されている各対話処理のタスクの優先度に基づいて対話タスク管理部8で決定され、例えば、図15に示すような、各対話処理部5、6、各応答生成部17、18、各発話理解部32、33の動作を規定する情報である。ここでは、図15の動作スケジュールを用いて以下の動作を説明する。
対話処理制御部9は、取得した動作スケジュールに従って、まず、テレビ100の第1対話処理部5に、認識制御部2から得られた認識文字列を入力する(S44)。また、対話処理制御部9は、ほぼ同時に、認識文字列を、テレビ100の通信部4から発話理解処理サーバ400の通信部31に送信し、発話理解処理サーバ400の第3発話理解部32に入力する(S45)。
第1対話処理部5では、テレビ100の基本操作タスクの対話処理を行い、その処理結果を対話処理制御部9に出力する。
以下、第1対話処理部5の動作を詳しく説明する。第1対話処理部5では、まず、認識文字列は、第1発話理解部51に入力され、発話理解処理が行われる。前述したように、第1発話理解部51の処理は、図12に示す発話理解ルールに基づいて行われる。つまり、第1発話理解部51は、入力された認識文字列が、発話理解ルールに記述されているテレビの機器操作コマンドのいずれかに該当するかどうかを確認し(S46)、該当した場合(S46でYの場合)には、その操作コマンドに対応する機器操作の内容を具体的に示す情報(操作内容情報)を出力する。そして、第1発話理解部51から出力された操作内容情報は、第1応答生成部52に入力され、応答生成処理が行われる。前述したように、第1応答生成部52の処理は、図13に示す応答生成ルールに基づいて行われる。即ち、第1応答生成部52は、入力された操作内容情報に対応する制御情報と応答情報を読みだして、対話処理制御部9に出力する。
逆に、入力された認識文字列が機器操作コマンドと一致しない場合(S46でNの場合)には、第1発話理解部51は、入力された認識文字列が、テレビ100の基本操作コマンドではないと判定し、発話理解処理リジェクトの情報を対話処理制御部9に出力する。
第1対話処理部5で対話処理が成功した場合には、対話処理制御部9は、動作スケジュールに基づいて、第1対話処理部5の対話処理の結果であるテレビ100の機器操作コマンドを実行する(S47)。具体的には、対話処理制御部9は、第1対話処理部5から得られた制御情報を機器制御部10に出力し、また、応答情報をGUI出力部14の画面表示部15または音出力部16に出力する。機器制御部10は、対話処理制御部9から入力された制御情報に基づいて、テレビ100の操作を実行する。また、機器制御部10は、画面表示部15または音出力部16を介して、対話処理制御部9から入力された応答情報をユーザに提示するとともに、機器制御部10で実行されたテレビ100の操作結果をユーザに提示する。なお、処理フローとしては、ここで処理が開始ポイント(A)に戻り、ユーザの再発声が待たれる。
以下、テレビ100の基本操作タスクに関する対話処理の動作フローについて、具体例で説明する。
例えば、ユーザが、収音部1に対して、「2チャンネルに変えて」と発話し、音声認識部3が音声認識に成功した場合には、認識文字列“2チャンネルに変えて”が、第1対話処理部5に入力される(S44)。第1対話処理部5は、入力された認識文字列に対し、テレビ100の基本操作タスクに関する対話処理を行う。認識文字列“2チャンネルに変えて”は、まず、第1発話理解部51に入力され、図12の発話理解ルールに基づいた発話理解処理が行われる。認識文字列“2チャンネルに変えて”は、図12の発話理解ルールに記述された操作コマンドと一致するので(S46でY)、操作内容は、(2チャンネルを選局)と判断され、対応する操作内容情報(Device:TV,Operation:Select 2 channel)が第1応答生成部52に出力される。第1応答生成部52では、(2チャンネルを選局)に対応する操作内容情報が入力されると、図13の応答生成ルールから対応する制御情報(TV,On,Select 2 channel)と応答情報“2チャンネルにします”が読み出されて、対話処理制御部9に出力される。
次に、対話処理制御部9は、受信した制御情報(TV,On,Select 2 channel)を機器制御部10に出力する(S47)。また、対話処理制御部9は、応答情報“2チャンネルにします”を画面表示部15または音出力部16に出力する。機器制御部10は、受信した制御情報に基づいて、テレビ100のチャンネルを2チャンネルに変更する。また、画面表示部15または音出力部16は、応答情報“2チャンネルにします”を画面にテキスト表示または、音声合成音で音声出力した後、2チャンネルの放送番組を再生する。
以上までが、テレビ100の基本操作タスクに関する対話処理の動作フローの具体例の説明である。
ところで、第1対話処理部5の対話処理が失敗した場合、つまり、対話処理制御部9が第1対話処理部5から発話理解処理リジェクトの情報を受信した場合(S46でNの場合)には、対話処理制御部9は、動作スケジュールに基づき、発話理解処理サーバ400の第3発話理解部32から送信される発話理解処理の結果を受信する(S48)。
なお、通常、テレビ100内の第1対話処理部5の対話処理は、発話理解処理サーバ400で行う第3発話理解部32の発話理解処理に比べ、ネットワークの通信状態等に影響を受けることがないので、短時間で終わる。よって、対話処理制御部9は、第1対話処理部5の対話処理の結果を得てから、第3発話理解部32の発話理解処理の結果を受信するまで少々待つ必要がある場合もある。
発話理解処理サーバ400の第3発話理解部32では、認識文字列に対し、エアコン101の操作タスクの発話理解処理を行い、その処理結果を通信部31から通信部4を介して、テレビ100の対話処理制御部9に送信する。前述したように、第3発話理解部32の発話理解処理は、図11に示す発話理解ルールに基づいて行われる。具体的には、第3発話理解部32は、入力された認識文字列が、発話理解ルールに記述されているエアコン101の操作コマンドのいずれかに該当するかどうかを確認し、該当した場合には、その操作コマンドに対応する機器操作の内容を具体的に示す情報(操作内容情報)を、通信部31から通信部4を介して、対話処理制御部9に送信する。
逆に、入力された認識文字列が操作コマンドと一致しない場合には、第3発話理解部32は、入力された認識文字列が、エアコン101の操作コマンドではないと判定し、発話理解処理リジェクトの情報を対話処理制御部9に送信する。
対話処理制御部9は、発話理解処理サーバ400から第3発話理解部32の発話理解処理の結果を受信した後、その処理結果をチェックする(S49)。具体的には、対話処理制御部9は、受信した処理結果がエアコン101の操作内容情報であるか、発話理解処理リジェクト情報かどうかをチェックする。
チェックした結果、もし、第3発話理解部32の発話理解処理が成功したなら、即ち、認識文字列がエアコンの操作コマンドであった場合(S49でYの場合)には、対話処理制御部9は、動作スケジュールに基づいて、発話理解処理サーバ400から受信した操作内容情報を第3応答生成部17へ出力する。第3応答生成部17では、前述したように、図14に示す応答生成ルールに基づいて、応答生成処理が行われる(S50)。即ち、第3応答生成部17は、入力された操作内容情報に対応する制御情報および応答情報を読みだして、対話処理制御部9に出力する。
対話処理制御部9は、第3応答生成部17から応答生成処理の結果として、エアコン101の制御情報および応答情報が入力されると、動作スケジュールに基づいて、エアコン101の機器操作コマンドを実行する(S51)。具体的には、対話処理制御部9は、第3応答生成部17から得られた制御情報を外部機器制御部12に出力し、また、応答情報を画面表示部15または音出力部16に出力する。外部機器制御部12は、対話処理制御部9から入力された制御情報に基づいて、エアコン101の操作を実行する。また、外部機器制御部12は、画面表示部15または音出力部16を介して、対話処理制御部9から入力された応答情報をユーザに提示するとともに、外部機器制御部12で実行されたエアコン101の操作結果をユーザに提示する。なお、処理フローとしては、ここで処理が開始ポイント(A)に戻り、ユーザの再発声が待たれる。
このように、エアコン101の操作タスクに関する対話処理は、発話理解処理サーバ400の第3発話理解部32と、テレビ100の第3応答生成部17とで分散的に対話処理が行われるようになっている。
以下、エアコン101の操作タスクに関する対話処理の動作フローについて、具体例で説明する。
例えば、ユーザが、収音部1に対して、「エアコンをつけて」と発話したとする。音声認識部3または、音声認識処理サーバ300の音声認識部22のいずれかが音声認識に成功した場合には、認識制御部2は、対話処理制御部9に、認識文字列“エアコンをつけて”を入力する。次に、対話処理制御部9は、認識文字列“エアコンをつけて”を、テレビ100の第1対話処理部5に入力する(S44)。また、対話処理制御部9は、発話理解処理サーバ400の第3発話理解部32にも当該認識文字列を入力する(S45)。第1対話処理部3は、入力された認識文字列に対し、テレビ100の基本操作タスクに関する対話処理を行う。認識文字列“エアコンをつけて”は、図12の発話理解ルールに記述された操作コマンドのいずれとも一致しないので、第1対話処理部5は、発話理解処理リジェクトの情報を対話処理制御部9に出力する(S46でNの処理)。
第1対話処理部5の対話処理と並行して、発話理解処理サーバ400の第3発話理解部32では、入力された認識文字列に対し、エアコン101の操作タスクに関する対話処理が行われる。認識文字列“エアコンをつけて”は、図11の発話理解ルールに記述された操作コマンドと一致するので、操作内容は(エアコンの電源をONにし、自動運転を行う)と判断され、第3発話理解部32は、対応する操作内容情報(Device:Air conditioner, Operation:Power on,Operation
Mode:Auto)をテレビ100の対話処理制御部9に送信する。
対話処理制御部9は、テレビ100の第1対話処理部5の対話処理がリジェクトされた後に、発話理解処理サーバ400の第3発話理解部32の発話理解処理の結果である操作内容情報を受信する(S48)。第3発話理解部32の発話理解処理が成功したので、即ち、認識文字列がエアコン101の操作コマンドであったので(S49でYの場合)、対話処理制御部9は、動作スケジュールに基づいて、発話理解処理サーバ400から受信した操作内容情報を第3応答生成部17へ出力する。第3応答生成部17では、(エアコンの電源をONにし、自動運転を行う)に対応する操作内容情報が入力されると、図14の応答生成ルールから対応する制御情報(Air conditioner,On,Auto)と応答情報“エアコンをつけます”を読み出して、対話処理制御部9に出力する(S50)。
次に、対話処理制御部9は、受信した制御情報(Air conditioner,On,Auto)を外部機器制御部12に出力する(S51)。また、対話処理制御部9は、受信した応答情報“エアコンをつけます”を画面表示部15または音出力部16に出力する。外部機器制御部12は、受信した制御情報に基づいて、エアコン101の電源をONにし、自動運転を開始する。また、画面表示部15または音出力部16は、応答情報“エアコンをつけます”を画面にテキスト表示または、音声合成音で音声出力した後、エアコン101の操作結果をユーザに提示する。
以上までが、エアコン101の操作タスクに関する対話処理の動作フローの具体例の説明である。
ところで、第3発話理解部32の発話理解処理が失敗した場合、つまり、発話理解処理サーバ400の第3発話理解部32から発話理解処理リジェクトの情報を受信した場合(S49でNの場合)には、対話処理制御部9は、動作スケジュールに従って、テレビ100の第2対話処理部6に、認識制御部2から得られた認識文字列を入力する(S52)。また、対話処理制御部9は、ほぼ同時に、認識文字列を、テレビ100の通信部4から発話理解処理サーバ400の通信部21に送信し、発話理解処理サーバ400の第4発話理解部33に入力する(S53)。
第2対話処理部6は、認識文字列を用いたテレビ100に関する情報検索、具体的には、番組表を用いた番組情報検索タスクの対話処理を行い、その処理結果を対話処理制御部9に出力する。
以下、第2対話処理部6の動作を詳しく説明する。第2対話処理部6では、まず、認識文字列は、第2発話理解部61に入力され、発話理解処理が行われる。前述したように、第2発話理解部61の処理は、発話理解ルールに基づいて行われる。具体的には、第2発話理解部61は、まず、入力された認識文字列が番組情報検索コマンドかどうかを判定する(S54)。判定方法としては、認識文字列から番組情報を検索するための検索キーワード、例えば、日時、ジャンル名、番組名等を抽出できるかどうかで判定する方法がある。つまり、これらの検索キーワードが抽出できたなら、第2発話理解部61は、番組情報検索コマンドであると判定し(S54でYの場合)、抽出されたキーワードによる番組情報の検索操作の内容を示す情報(操作内容情報)を出力する。そして、第2発話理解部61から出力された操作内容情報は、第2応答生成部62に入力され、応答生成処理が行われる。前述したように、第2応答生成部62の処理は、応答生成ルールに基づいて行われる。具体的には、第2応答生成部62は、第2発話理解部61から出力された操作内容情報に基づいて、テレビ100の番組表から、抽出された検索キーワードによる番組情報検索を実行するための制御情報を生成し、その制御情報を対話処理制御部9に出力する。また、制御情報以外に、発話理解処理の結果をユーザに提示するための応答情報も対話処理制御部9に出力される。
逆に、第2対話処理部6は、入力された認識文字列が番組情報検索コマンドでないと判定した場合(S54でNの場合)、つまり、認識文字列から番組情報を検索するための検索キーワードが抽出できなかった場合には、発話理解処理リジェクトの情報を対話処理制御部9に送信する。
第2対話処理部6の対話処理が成功した場合には、対話処理制御部9は、動作スケジュールに基づいて、第2対話処理部6の対話処理の結果である番組表を用いた番組情報検索を実行する(S55)。具体的には、対話処理制御部9は、第2対話処理部6から得られた制御情報を機器関連情報検索部11に出力し、また、応答情報をGUI出力部14の画面表示部15または音出力部16に出力する。機器関連情報検索部11は、対話処理制御部9から入力された制御情報に基づいて、テレビ100の番組表を用いた番組情報検索を行う。また、機器関連情報検索部11は、画面表示部15または音出力部16を介して、対話処理制御部6から入力された応答情報をユーザに提示する。機器関連情報検索部11は、番組情報検索を行った結果、少なくとも1件以上、番組情報が検索された場合には、ユーザに、画面表示部15または音出力部16を介して、検索された番組情報を提示する(S56)。なお、処理フローとしては、ここで処理が開始ポイント(A)に戻り、ユーザの再発声が待たれる。
以下、番組情報検索タスクに関する対話処理について、具体例で説明する。
例えば、ユーザが、収音部1に対して、「明日のドラマ」と発話したとする。音声認識部3または、音声認識処理サーバ300の音声認識部22のいずれかが音声認識に成功した場合には、認識制御部2は、対話処理制御部9に、認識文字列“明日のドラマ”を入力する。次に、対話処理制御部9は、認識文字列“明日のドラマ”を、テレビ100の第1対話処理部に入力する(S44)。また、対話処理制御部9は、発話理解処理サーバ400の第3発話理解部32にも当該認識文字列を入力する(S45)。第1対話処理部3及び第3発話理解部32は、認識文字列“明日のドラマ”に対し、テレビ100の基本操作タスク及び、エアコンの操作タスクに関する発話理解処理を行うが、どちらも図11及び図12の発話理解ルールに記述された操作コマンドと一致しないので、双方の発話理解部から順次、発話理解処理リジェクトの情報が対話処理制御部9に返ってくる。
対話処理制御部9は、第3発話理解部32から発話理解処理リジェクトの情報を受信した場合(S49でNの場合)、テレビ100の第2対話処理部6に、認識文字列“明日のドラマ”を入力する(S52)。第2対話処理部6は、入力された認識文字列“明日のドラマ”に対し、番組情報検索タスクに関する対話処理を行う。認識文字列“明日のドラマ”は、まず、第2発話理解部61に入力され、発話理解ルールに基づいた発話理解処理が行われる。具体的には、第2発話理解部61は、認識文字列“明日のドラマ”から番組情報を検索するための検索キーワードの抽出が行えるかどうかで、認識文字列が番組検索コマンドかどうかを判定する(S54)。ここでは、番組情報を検索するための日付キーワード“明日”とジャンルキーワード“ドラマ”が抽出されるので、第2発話理解部61は、認識文字列は番組検索コマンドであると判定する(S54でYの処理)。次に、第2発話理解部61は、抽出された日付キーワード“明日”とジャンルキーワード“ドラマ”を用いて、番組情報の検索操作の内容を示す操作内容情報(Operation:Search EPG,Day:Tomorrow,Genre:Drama)を生成し、これを第2応答生成部62へ出力する。第2応答生成部62では、“明日のドラマ”を検索するための上記操作内容情報が入力されると、応答生成ルールに基づいた応答生成処理が行われる。具体的には、第2応答生成部62は、操作内容情報に基づいて、テレビ100の番組表から、抽出された検索キーワードによる番組情報検索を実行するための制御情報を生成し、その制御情報を対話処理制御部9に出力する。また、第2応答生成部62は、対話処理の結果をユーザに提示するための応答情報、例えば、“明日のドラマを番組表で探します”等を対話処理制御部9に出力する。
対話処理制御部9は、第2対話処理部6の対話処理の結果である番組情報検索のための制御情報を受信すると、その制御情報を機器関連情報検索部11に出力する(S55)。また、対話処理制御部9は、応答情報“明日のドラマを番組表で探します”を画面表示部15および音出力部16に出力する。画面表示部15または音出力部16は、応答情報“明日のドラマを番組表で探します”を画面にテキスト表示または、音声合成音で音声出力する。
機器関連情報検索部11は、入力された番組情報検索のための制御情報に基づいて、つまり、日付キーワード“明日”とジャンルキーワード“ドラマ”を用いて、テレビ100の番組表から、キーワードに該当する番組情報を検索する。番組情報の検索を行った結果、少なくとも1件以上、検索キーワードに該当する番組情報が見つかった場合には、機器関連情報検索部11は、画面表示部15または音出力部16を介して、ユーザに検索結果を提示する(S56)。
以上までが、番組情報検索タスクに関する対話処理の動作フローの具体例の説明である。
ところで、第2対話処理部6の対話処理が失敗した場合、つまり、対話処理制御部9が第2対話処理部6から発話理解処理リジェクトの情報を受信した場合(S54でNの場合)には、対話処理制御部9は、動作スケジュールに基づき、発話理解処理サーバ400の第4発話理解部33から送信される発話理解処理の結果を受信する(S57)。
発話理解処理サーバ400の第4発話理解部33は、認識文字列を用いたインターネットの情報検索、具体的には、天気予報またはニュース等の一般的な情報検索タスクの発話理解処理を行い、その処理結果を通信部31から通信部4を介して、テレビ100の対話処理制御部9に送信する。前述したように、第4発話理解部33の発話理解処理は、前述した発話理解ルールに基づいて行われる。具体的には、まず、第4発話理解部33は、入力された認識文字列が一般情報検索コマンドかどうか判定する。判定方法としては、認識文字列から、インターネットの一般的な情報を検索するための検索キーワード、例えば、天気、ニュース、地図検索に必要な検索キーワード等が抽出できるかどうかで判定する方法がある。つまり、これらの検索キーワードが抽出できたなら、第4発話理解部33は、一般情報検索コマンドであると判定し、抽出された検索キーワードによる一般的な情報の検索操作の内容を示す情報(操作内容情報)を、通信部31から通信部4を介して、対話処理制御部9に送信する。
逆に、第4発話理解部33は、入力された認識文字列が一般情報検索コマンドでないと判定した場合、つまり、認識文字列から一般的な情報を検索するための検索キーワードが抽出できなかった場合には、発話理解処理リジェクトの情報を対話処理制御部9に送信する。
対話処理制御部9は、発話理解処理サーバ400から第4発話理解部33の発話理解処理の結果を受信した後、その処理結果をチェックする(S58)。具体的には、対話処理制御部9は、受信した処理結果が、一般的な情報の検索操作の内容を示す情報(操作内容情報)であるか、発話理解処理リジェクト情報かどうかをチェックする。
チェックした結果、もし、第4発話理解部33の発話理解処理が成功したなら、即ち、認識文字列が一般情報検索コマンドであると判定された場合(S58でYの場合)には、対話処理制御部9は、動作スケジュールに基づいて、発話理解処理サーバ400から受信した操作内容情報を第4応答生成部18へ出力する。第4応答生成部18では、前述したように、応答生成ルールに基づいて、応答生成処理が行われる(S59)。具体的には、第4応答生成部18は、入力された操作内容情報に基づいて、抽出された検索キーワードを用いたインターネットの情報検索を実行するための制御情報を生成し、その制御情報を対話処理制御部9に出力する。また、第4応答生成部18は、制御情報以外に、発話理解処理の結果をユーザに提示するための応答情報も対話処理制御部9に出力する。
対話処理制御部9は、第4応答生成部18から応答生成処理の結果として、インターネットからの一般情報を検索するための制御情報および応答情報が入力されると、動作スケジュールに基づいて、インターネットを用いた一般情報検索を実行する(S60)。具体的には、対話処理制御部9は、第4対話処理部24から得られた制御情報を一般情報検索部13に出力し、また、対話処理制御部9は、応答情報をGUI出力部14の画面表示部15または音出力部16に出力する。
一般情報検索部13は、対話処理制御部9から入力された制御情報に基づいて、インターネットを用いた一般情報検索を行う。また、一般情報検索部13は、画面表示部15または音出力部16を介して、対話処理制御部6から入力された応答情報をユーザに提示する。一般情報検索部13は、一般情報検索を行った結果、少なくとも1件以上、一般情報が検索された場合には、ユーザに、画面表示部15および音出力部16を介して、検索された一般情報を提示する(S61)。なお、処理フローとしては、ここで処理が開始ポイント(A)に戻り、ユーザの再発声が待たれる。
以下、一般情報検索タスクに関する対話処理の動作フローについて、具体例で説明する。
例えば、ユーザが、収音部1に対して、「東京の天気」と発話したとする。音声認識部3または、音声認識処理サーバ300の音声認識部22のいずれかが音声認識に成功した場合には、認識制御部2は、対話処理制御部9に、認識文字列“東京の天気”を入力する。次に、対話処理制御部9は、認識文字列“東京の天気”を、テレビ100の第1対話処理部に入力する(S44)。また、対話処理制御部9は、発話理解処理サーバ400の第3発話理解部32にも当該認識文字列を入力する(S45)。第1対話処理部3及び第3発話理解部32は、認識文字列“東京の天気”に対し、テレビ100の基本操作タスク及び、エアコンの操作タスクに関する発話理解処理を行うが、どちらも図11及び図12の発話理解ルールに記述された操作コマンドと一致しないので、双方の発話理解部から順次、発話理解処理リジェクトの情報が対話処理制御部9に返ってくる。
対話処理制御部9は、第3発話理解部32から発話理解処理リジェクトの情報を受信した場合(S49でNの場合)、次に、テレビ100の第2対話処理部6に、認識文字列“東京の天気”を入力する(S52)。また、対話処理制御部9は、発話理解処理サーバ400の第4発話理解部33にも当該認識文字列を入力する(S53)。第2対話処理部6は、入力された認識文字列“東京の天気”に対し、番組情報検索タスクに関する対話処理を行うが、認識文字列から番組情報を検索するためのキーワードが抽出できないので、発話理解処理リジェクトの情報を対話処理部9に出力する(S54でNの処理)。
第2対話処理部6の対話処理と並行して、発話理解処理サーバ400の第4発話理解部33は、入力された認識文字列に対し、一般情報検索タスクに関する発話理解処理を行う。具体的には、第4発話理解部33は、認識文字列“東京の天気”から、一般情報を検索するための検索キーワードの抽出が行えるかどうかで、認識文字列が一般情報検索コマンドかどうかを判定する。ここでは、一般情報を検索するためのエリアキーワード“東京”と情報種別キーワード“天気”が抽出されるので、第4発話理解部33は、認識文字列を一般情報検索コマンドであると判定する。次に、第4発話理解部33は、抽出されたエリアキーワード“東京”と、情報種別キーワード“天気”を用いて、インターネットからの一般的な情報の検索操作の内容を示す操作内容情報(Operation:Search Internet,Information:Weather.Area:Tokyo)を生成し、テレビ100の対話処理制御部9に送信する。
対話処理制御部9は、テレビ100の第2対話処理部6の対話処理がリジェクトされた後に、発話理解処理サーバ400の第4発話理解部33の発話理解処理の結果である操作内容情報を受信する(S58)。第4発話理解部33の発話理解処理が成功したので、即ち、認識文字列がインターネットからの一般情報を検索するためのコマンドであったので(S58でYの場合)、対話処理制御部9は、受信した操作内容情報を第4応答生成部18へ出力する。第4応答生成部18では、“東京の天気”を検索するための上記操作内容情報が入力されると、応答生成ルールに基づいた応答生成処理が行われる。具体的には、第4応答生成部18は、操作内容情報に基づいて、抽出された検索キーワードを用いたインターネットの情報検索を実行するための制御情報を生成し、その制御情報を対話処理制御部9に出力する(S59)。また、第4応答生成部18は、対話処理の結果をユーザに提示するための応答情報、例えば、“東京の天気をインターネットで探します”等を対話処理制御部9に出力する。
対話処理制御部9は、第4応答生成部18の応答生成処理の結果であるインターネットから一般情報を検索するための制御情報を受信すると、その制御情報を一般情報検索部13に出力する(S60)。また、対話処理制御部9は、受信した応答情報“東京の天気をインターネットで探します”を画面表示部15または音出力部16に出力する。
一般情報検索部13は、入力された一般情報検索のための制御情報に基づいて、つまり、エリアキーワード“東京”と情報種別キーワード“天気”を用いて、インターネットから、上記キーワードに該当する情報を検索する。情報の検索を行った結果、少なくとも1件以上、検索キーワードに該当する情報が見つかった場合には、一般情報検索部13は、画面表示部15または音出力部16を介して、ユーザに検索結果を提示する(S61)。
以上までが、一般情報検索タスクに関する対話処理の具体例の説明である。
ところで、第4発話理解部33の発話理解処理が失敗した場合、つまり、対話処理制御部9が第4発話理解部33から発話理解処理リジェクトの情報を受信した場合(S58でNの場合)には、対話処理制御部9は、全ての対話処理が失敗したことをユーザに提示する(S62)。例えば、対話処理制御部9は、“話された言葉がよくわかりません”等を画面表示部15または音出力部16を介して、ユーザに提示する。なお、処理フローとしては、ここで処理が開始ポイント(A)に戻り、ユーザの再発声が待たれる。
以上説明したように、本開示の実施の形態に係る音声認識システムは、予め、タスク優先度記憶部7に記憶された各タスクの優先度に基づいて、対話タスク管理部8が、各タスクを処理するテレビ100の第1対話処理部5、第2対話処理部6、第3応答生成手段17、第4応答生成手段18と、発話理解処理サーバ400の第3発話理解部32、第4発話理解部33の動作スケジュールを決定する。そして、ユーザが発話した音声認識結果である認識文字列が対話処理制御部9に入力された時は、その動作スケジュールに基づいて、対話処理制御部9は、テレビ100の各対話処理部、各応答生成手段と、発話理解処理サーバ400側の各発話理解部の動作を制御する。これにより、優先度の異なる複数の異なるタスクに対して、テレビ100内だけで行う対話処理とテレビ100側とサーバ400側の双方で対話処理を行う分散型の対話処理が併用された場合でも、各タスクの優先度に応じた順番で、各対話処理を制御することが可能となる。
以下、詳しく説明すると、本実施の形態のシステムは、テレビ100側で、優先度が1番目のタスクであるテレビ100の基本操作に関する対話処理と、優先度が3番目のタスクである番組情報検索に関する対話処理を行う。また、優先度が2番目のタスクであるエアコン操作および優先度が4番目のタスクであるインターネットの一般情報検索については、発話理解処理サーバ400側で発話理解処理を行い、テレビ100側で応答生成処理を行う分散型対話処理が行われる。そして、テレビ100側の対話処理と、サーバ側の発話理解処理は、ほぼ同時に並行処理される。
この場合、ネットワーク環境等の影響で、発話理解処理サーバ400からのエアコン操作の発話理解処理の結果の応答が遅くなったとしても、本実施の形態のシステムでは、タスクの優先度から決められた動作スケジュールに基づいて、各対話処理の動作が制御される。よって、優先度の低いテレビ100側の番組情報検索に関する対話処理の結果よりも、発話理解処理サーバ400とテレビ100で分散的に対話処理が行われる、相対的に優先度の高いエアコン操作に関する対話処理の結果を、先に実行させることができる。
つまり、優先度の高いタスクの対話処理における発話理解処理をサーバ側で、優先度の低いタスクの対話処理を機器側で同時に並行処理した場合、ネットワーク環境等の影響で、サーバからの処理結果の応答が遅くても、優先度に応じて、機器側の対話処理の結果ではなく、サーバ側と機器側で分散実行された対話処理の結果を実行させることが可能となる。
(実施の形態4)
実施の形態4では、上記実施の形態3に係る対話処理制御システムの変形例について説明する。
図17は、実施の形態4に係る対話処理制御システムの構成を示すブロック図である。
実施の形態4の対話処理制御システムは、実施の形態3の対話処理制御システムと、ほぼ同様の構成であり、実施の形態3の対話処理制御システムに備えられる機器100において、さらに機器状態管理部19が設けられていることのみが異なる。このため、実施の形態4の対話処理制御システムでは、実施の形態3の対話処理制御システムと共通する構成については実施の形態3と同様の符号を付している。
以下では、実施の形態3と異なる構成についてのみ説明して、実施の形態3と共通する構成については説明を省略する。
実施の形態3の対話処理制御システムに新たに追加された機器状態管理部19は、機器100の状態を管理する。なお、機器100の状態とは、音声認識処理サーバ300および発話理解処理サーバ400との接続の状態、機器制御部10により操作可能な機器100の状態及び、外部機器制御部12により操作可能な外部機器101の状態である。例えば、機器100をテレビとすると、機器制御部10により操作可能な機器の状態とは、テレビの選局、音量、画面出力の状態等である。また、外部機器101をエアコンとすると、外部機器制御部12により操作可能な機器の状態とは、テレビとエアコンの接続状態またはエアコンの動作状態(電源、モード、設定温度)等である。
また、対話タスク管理部8は、タスク優先度記憶部7に記憶されている各タスクの優先度と機器状態管理部19に管理されている現在の機器100の状態に基づいて、機器100の第1対話処理部5、第2対話処理部6、第3応答生成部17および第4応答生成部18ならびに、発話理解処理サーバ400の第3発話理解部32および第4発話理解部33の動作スケジュールを決定する。なお、対話処理部及びその構成要素である発話理解部、応答生成部の動作スケジュールは、実施の形態3と同様に、各処理部(対話処理部、発話理解部、応答生成部)をどの順番で、どのように動作させるかを定義する。
このように、実施の形態4において、実施の形態3と構成が異なるポイントは、対話タスク管理部8が各処理部(対話処理部、発話理解部、応答生成部)の動作スケジュールを決定する際に、タスク優先度記憶部7に記憶されている各タスクの優先度だけでなく、機器状態管理部19で管理されている機器100の状態を用いるところである。
そこで、以下、実施の形態4の対話処理制御システムにおいて、対話タスク管理部8が、機器100の状態に応じて、各処理部(対話処理部、発話理解部、応答生成部)の動作スケジュールを更新する動作を説明する。なお、以下では、具体的に説明するために、実施の形態3同様に、機器100をテレビ、外部機器101をエアコンとする。よって、第1対話処理部5のタスクは、テレビのチャンネル選局または音量調整等の基本操作タスクとし、その発話理解ルールは図12、応答生成ルールは図13に示される。第2対話処理部6のタスクは、番組表の番組情報検索とする。また、第3発話理解部32および第3応答生成部17のタスクは、エアコンの電源操作または温度設定等の操作タスクとし、その発話理解ルールは図11に、応答生成ルールは図14に示される。第4発話理解部33および第4応答生成部18のタスクは、天気予報またはニュース等の一般的なインターネットの情報検索タスクとする。
図18は、実施の形態4において、対話タスク管理部8が各対話処理部及びその構成要素である各発話理解部、各応答生成部の動作スケジュールを更新する際の処理の流れを示すフローチャートである。
以下、図18を用いて、対話タスク管理部8の動作を説明する。
対話タスク管理部8は、まず、機器状態管理部19が管理している現在のテレビ100の状態を取得する(S71)。次に、取得したテレビ100の状態を用いて、テレビ100が、発話理解処理サーバ400とネットワーク接続され、利用できるかどうかを確認する(S72)。確認した結果、発話理解処理サーバ400が利用可能である場合(S72でYの場合)には、対話タスク管理部8は、タスク優先度記憶部7から第4発話理解部33と第4応答生成部18が処理するインターネットによる一般的な情報検索タスクの優先度“4”を取得する(S73)。
次に、対話タスク管理部8は、同様に、取得したテレビ100の状態を用いて、テレビ100から外部機器であるエアコン101が制御可能であるかどうかを確認する(S74)。確認した結果、エアコン101が制御可能である場合(S74でYの場合)には、対話タスク管理部8は、タスク優先度記憶部7から第3発話理解部32と第3応答生成部17が処理するエアコン101の操作タスクの優先度“2”を取得し(S75)、処理が次(S76)へ進む。
一方で、例えば、テレビ100がネットワークに接続されていない、または、発話理解処理サーバ400がシステムダウンしている等の理由により、発話理解処理サーバ400が利用可能でない場合(S72でNの場合)には、対話タスク管理部8は、インターネットによる一般的な情報検索タスクの優先度を取得せずに、処理が次(S76)へ進む。同様に、テレビ100とエアコン101がネットワーク接続されていない、または、エアコン101が故障している等の理由により、テレビ100からエアコン101が制御できない場合(S74でNの場合)には、対話タスク管理部8は、エアコン101の操作タスクの優先度を取得せずに、処理が次(S76)へ進む。
処理(S76)では、対話タスク管理部8は、タスク優先度記憶部7に記憶されている第1対話処理部5が処理するテレビ100の基本操作タスクの優先度“1”及び、第2対話処理部6が処理するテレビ100の番組情報検索タスクの優先度“3”を取得する。
そして、対話タスク管理部8は、テレビ100の状態に応じて取得できた各タスクの優先度に基づいて、各対話処理部の動作スケジュールを更新する(S77)。
最後に、対話タスク管理部8は、テレビ100の状態に応じて、動作スケジュールが更新されたことを対話処理制御部9に通知する(S78)。
以上までが、実施の形態4において、対話タスク管理部8が各処理部(対話処理部、発話理解部、応答生成部)の動作スケジュールを更新する処理の動作フローの説明である。
さて、実施の形態4の対話処理制御システムでは、テレビ100の状態によって更新された動作スケジュールに基づいて、各処理部(対話処理部、発話理解部、応答生成部)の動作が対話処理制御部9によって制御される。但し、テレビ100と発話理解処理サーバ400、エアコン101が正常に接続されている場合には、ユーザが音声コマンドを発話したときのシステムの動作フローは、図16に示す実施の形態3と同様になる。
しかし、例えば、発話理解処理サーバ400を利用できるが、テレビ100からエアコン101を制御できない場合には、動作スケジュールは、第3発話理解部32と第3応答生成部6が分散的に対話処理するエアコン101の操作タスクの優先度を除いて、第1対話処理部5が処理するテレビ100の基本操作タスク、第2対話処理部6が処理するテレビ100の番組情報検索タスク及び、第4発話理解部33と第4応答生成部18が分散的に対話処理するインターネットによる一般情報検索タスクの優先度に基づいて決定される。つまり、動作スケジュールは、まず、テレビ100の基本操作タスクの対話処理が行われ、次に、番組情報検索タスクの対話処理が行われ、最後にインターネットを用いた一般情報検索タスクの対話処理が行われるように、対話タスク管理部8によって更新される。
よって、この場合のシステムの動作フローは、図16の動作フローから、発話理解処理サーバ400の第3発話理解部32と第3応答生成部17に関する対話処理(S45、S48〜S51)を省いた図19に示す動作フローとなる。
また、発話理解処理サーバ400が利用できない場合には、動作スケジュールは、第3発話理解部32と第3応答生成部6が分散的に対話処理するエアコン101の操作タスクの優先度及び、第4発話理解部33と第4応答生成部18が分散的に対話処理するインターネットによる一般情報検索タスクの優先度を除いて、第1対話処理部5が処理するテレビ100の基本操作タスク及び、第2対話処理部6が処理するテレビ100の番組情報検索タスクの優先度に基づいて決定される。つまり、動作スケジュールは、まず、テレビ100の基本操作タスクの対話処理が行われ、次に、番組情報検索タスクの対話処理が行われるように、対話タスク管理部8によって更新される。
よって、この場合のシステムの動作フローは、図16の動作フローから、発話理解処理サーバ400の第3発話理解部32と第3応答生成部17に関する対話処理(S45、S48〜S51)、発話理解処理サーバ400の第4発話理解部33と第4応答生成部18に関する処理(S53、S57〜S61)を省いた図20に示す動作フローとなる。
以上説明したように、実施の形態3同様に、実施の形態4に係る対話処理制御システムも、対話処理制御部9により、対話タスク管理部7から得られる動作スケジュールに基づいて、テレビ100の第1対話処理部5、第2対話処理部6、第3応答生成手段17、第4応答生成手段18と、発話理解処理サーバ400の第3発話理解部32、第4発話理解部33の動作を制御する。但し、実施の形態4では、実施の形態3の構成に、新たに追加された機器状態管理部19が、テレビ100の状態、例えば、発話理解処理サーバ400との接続状態もしくは外部機器であるエアコン101との接続状態またはエアコン101の動作状態を管理し、対話タスク管理部8は、タスク優先度記憶部7に記憶されている各タスクの優先度に加えて、テレビ100の状態に基づいて、テレビ100の第1対話処理部5、第2対話処理部6、第3応答生成手段17、第4応答生成手段18と、発話理解処理サーバ400の第3発話理解部32、第4発話理解部33の動作スケジュールを決定する。
これにより、テレビ100の状態、具体的には、発話理解処理サーバ400との接続状態もしくはエアコン101との接続状態またはエアコン101の動作状態に応じて、テレビ100の各対話処理部と各応答生成部及び、発話理解処理サーバ400の各発話理解部の動作スケジュールを動的に変更することが可能となる。例えば、テレビ100からエアコン101が制御できない場合には、動作スケジュールは、対話処理制御部9が、発話理解処理サーバ400の第3発話理解部32と第3応答生成部17で行う対話処理を実行しないように、更新される。同様に、発話理解処理サーバ400が利用できない場合には、動作スケジュールは、第3、第4発話理解部32、33と第3、第4応答生成部17、18で行う対話処理を実行しないように更新される。従って、テレビ100の状態に応じて、システム全体として、無駄な対話処理を行わない、即ち、最適な対話処理を行うことができ、システム全体の処理時間を短縮することができる。
なお、上記各実施の形態において、機器100にネットワーク接続された外部機器101は1台として説明したが、複数の外部機器(例えば、エアコンと照明等)が接続されていてもよい。この場合、第3発話理解部32の発話理解ルールには、複数の外部機器の操作コマンドと、発話理解処理の結果である複数の外部機器の操作内容情報の対応関係が記述されている。同様に、第3応答生成部17の応答生成ルールには、複数の外部機器の操作内容情報と、応答生成処理の結果である複数の外部機器の制御情報および応答情報の対応関係が記述されている。例えば、外部機器がエアコンと照明の場合には、図11に示す発話理解ルールに、照明の操作コマンド、例えば、「電気をつけて」、「照明を消して」等が追加される。また、図13の応答生成ルールにも、上記照明の操作コマンドに対応する操作内容情報及び、制御情報、応答情報が追加される。また、外部機器制御部12は、第3応答生成部18から出力された制御情報に基づいて、複数の外部機器を制御する。
また、上記各実施の形態において、第1対話処理部5のタスクを機器100の基本操作、第2対話処理部6のタスクを機器100に関連する情報検索、第3発話理解部32と第3応答生成部17が分散的に対話処理するタスクを外部機器101の操作、第4発話理解部33と第4応答生成部18が分散的に対話処理するタスクをインターネットの情報検索タスクと設定したが、機器100における第1対話処理部5と第2対話処理部6のタスクが異なれば、上記タスク以外のタスクが設定されてもよい。例えば、第3発話理解部32と第3応答生成部17が分散的に対話処理するタスクが機器100の基本操作タスク以外の機器100の操作タスクに設定されてもよい。機器100をテレビとするならば、第1対話処理部5では、図12の対話ルールに示したような基本操作タスクが設定されてもよく、第3発話理解部32では、字幕表示、ヘルプ表示、映像/音声モードの選択等の操作タスクが設定され、また、基本操作タスクを含むテレビ全体の操作タスクが設定されてもよい。但し、これらのタスクの優先度は、予め、タスク優先度記憶部7に記憶されている必要がある。
また、上記各実施の形態において、タスク優先度記憶部7において、機器100の基本操作タスクを優先度1、機器関連情報の検索タスクを優先度3、発話理解処理サーバ400と機器100で分散的に対話処理する外部機器操作タスクを優先度2、インターネットによる一般的な情報検索タスクを優先度4と設定したが、上記以外の優先度が設定されてもよい。
また、上記各実施の形態において、発話理解処理サーバ400は、2つの発話理解部(第3発話理解部32、第4発話理解部33)を備えているが、発話理解部は少なくとも1つ以上備えられればよい。但し、対応する機器100側の応答生成部は発話理解部と同数である必要がある。
また、上記各実施の形態では、音声認識処理サーバ300と発話理解処理サーバ400が備えられることにより、音声認識処理と発話理解処理が別々のサーバで行われているが、同一のサーバでこれらの処理が行われてもよい。
また、上記各実施の形態において、機器100は、収音部1を備えているが、機器100とは別の機器、例えば、リモコンを用意し、このリモコンが収音部1を備え、収音部1から入力された音声をリモコンから機器100に無線LAN等で送信されるようにしてもよい。
また、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
さらに、上記の各装置を構成する構成要素の一部又は全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)を備えるとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、及びRAMなどを含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。
さらにまた、上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールを備えるとしてもよい。ICカード又はモジュールは、マイクロプロセッサ、ROM、及びRAMなどを備えるコンピュータシステムである。ICカード又はモジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、ICカード又はモジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
また、本開示の一態様は、上記に示す装置の処理を実行する方法であるとしてもよい。また、本開示の一態様は、上記に示す装置の機能をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、上記コンピュータプログラムからなるデジタル信号であるとしてもよい。
さらに、本開示の一態様は、上記コンピュータプログラム又は上記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray(登録商標) Disc)、USBメモリ、SD(登録商標)カードなどのメモリカード、又は半導体メモリなどに記録したものとしてもよい。また、本開示の一態様は、これらの記録媒体に記録されている上記デジタル信号であるとしてもよい。
また、本開示の一態様は、上記コンピュータプログラム又は上記デジタル信号を、電気通信回線、無線或いは有線通信回線、インターネットを代表とするネットワーク、又はデータ放送等を経由して伝送するものとしてもよい。
また、本開示の一態様は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、上記メモリは、上記コンピュータプログラムを記憶しており、上記マイクロプロセッサは、上記コンピュータプログラムに従って動作するとしてもよい。
また、上記プログラム或いは上記デジタル信号を上記記録媒体に記録して移送することにより、又は、上記プログラム或いは上記デジタル信号を、上記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより上記装置を実現するとしてもよい。
また、上記で用いた数字は、全て本開示の実施の形態を具体的に説明するために例示するものであり、本開示は例示された数字に制限されない。
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
また、上記方法に含まれる複数のステップが実行される順序は、本開示の実施の形態を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
以上、一つまたは複数の態様に係る情報処理装置について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。