(57)【要約】【課題】ユーザが発話した音声から、ユーザが所望するタスクをより正確に実行することができる情報処理装置および情報処理方法を提供する。【解決手段】情報処理装置として動作する対話処理制御装置１０１は、音声認識処理により得られるテキストデータである音声認識結果を取得する音声認識結果取得部２０と、音声認識結果に基づく複数の対話処理によりそれぞれ特定される複数のタスクの各々にそれぞれ対応する優先度を取得する対話タスク管理部８と、互いに異なる複数の対話処理を第１〜４対話処理部５、６、２３、２４に分散実行させ、かつ、上記優先度に基づいて、対話処理の分散実行により得られる制御情報を、制御情報に基づいて動作する実行部へ提供する対話処理制御部９とを備える。【選択図】図５
2018138987.tif 000002
【特許請求の範囲】
【請求項１】
音声認識処理により得られるテキストデータである音声認識結果を取得する音声認識結果取得部と、
前記音声認識結果に基づく複数の対話処理によりそれぞれ特定される複数のタスクの各々にそれぞれ対応する優先度を取得する優先度取得部と、
互いに異なる前記複数の対話処理を複数の装置に分散実行させ、かつ、前記優先度に基づいて、前記対話処理の分散実行により特定されるタスクに応じた制御情報を、当該制御情報に基づいて動作する実行部へ提供する対話処理制御部とを備える
情報処理装置。
【請求項２】
さらに、前記実行部により制御される被制御装置の状態を管理する機器状態管理部を備え、
前記優先度取得部は、前記機器状態管理部で管理されている前記状態に基づいて、前記優先度を取得する
請求項１に記載の情報処理装置。
【請求項３】
前記状態に基づいて判定される、前記被制御装置が制御可能であるかを示す制御可能性に応じて、前記優先度取得部は、前記優先度を取得する
請求項２に記載の情報処理装置。
【請求項４】
前記優先度取得部は、前記優先度に基づく前記対話処理の実行スケジュールを前記対話処理制御部に提供し、
前記対話処理制御部は、前記実行スケジュールに基づいた順番で、前記対話処理を前記複数の装置に分散実行させる
請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記実行スケジュールには、前記複数の装置に前記対話処理を実行させる順番が示される
請求項４に記載の情報処理装置。
【請求項６】
さらに、
前記複数の装置は、前記情報処理装置および前記情報処理装置と通信を介して接続される外部装置を含み、
前記音声認識結果に基づいて前記対話処理を行う対話処理部と、
前記優先度を記憶するタスク優先度記憶部とを備え、
前記優先度取得部は、前記タスク優先度記憶部に記憶されている前記優先度を取得し、
前記対話処理制御部は、前記音声認識結果を前記対話処理部および前記外部装置に提供し、前記優先度に基づいて、前記対話処理部または前記外部装置が行った前記対話処理より得た前記制御情報を前記実行部に提供する
請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記外部装置は、前記情報処理装置と通信を行うサーバを含む
請求項６に記載の情報処理装置。
【請求項８】
前記対話処理は、少なくとも、前記制御情報を生成する対話理解処理を有し、
前記外部装置は、前記対話理解処理を行う対話処理部を有し、
前記対話処理部は、前記制御情報に基づいて応答情報を生成する応答生成部と、前記対話理解処理を行う対話理解部とを有する
請求項６または７に記載の情報処理装置。
【請求項９】
さらに、前記実行部を備え、
前記実行部は、前記制御情報に基づいて、当該情報処理装置に接続されている外部機器を制御する外部機器制御部を有する
請求項１〜８のいずれか１項に記載の情報処理装置。
【請求項１０】
さらに、前記実行部を備え、
前記実行部は、前記制御情報に基づいて、当該情報処理装置のユーザに対する動作を制御する機器制御部を有する
請求項１〜８のいずれか１項に記載の情報処理装置。
【請求項１１】
音声認識処理により得られるテキストデータである音声認識結果を取得し、
前記音声認識結果に基づく複数の対話処理によりそれぞれ特定される複数のタスクの各々にそれぞれ対応する優先度を取得し、
互いに異なる前記複数の対話処理を複数の装置に分散実行させ、かつ、前記優先度に基づいて、前記対話処理の分散実行により特定されるタスクに応じた制御情報を、当該制御情報に基づいて動作する実行部へ提供する
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
従来の音声認識機能を備えた電子機器では、機器内で、ユーザが発話した音声を認識する音声認識処理または、認識した結果から機器の動作を特定する対話処理が行われていた。そのため、機器の計算能力およびメモリ容量等の制限により、音声認識処理および対話処理で扱える語彙数が数百単語程度に限定されていた。
【０００３】
しかし、近年、ネットワークの高速化とクラウドコンピューティングの技術進歩に伴い、音声認識処理をクラウドサーバ上に実装することによって、数十万程度の大規模な語彙に対して音声認識処理が実現できるようになってきた。但し、このようなクラウドサーバ上で音声認識処理を行う場合には、機器がネットワークに接続されていることが必要であり、ネットワークの通信環境が悪いとき、および複数の機器からサーバにアクセスが集中したときには、サーバからの応答速度が遅くなるという課題があった。
【０００４】
そこで、最近では、認識可能な語彙数は少ないが、迅速な応答が求められるタスクに対しては、機器内で音声認識処理を行い、一方、応答速度が少々遅くても、認識可能な語彙数が大規模であることが要求されるタスクに対しては、クラウドサーバ上で音声認識処理の一部または全てを行うクライアント・サーバ型の音声認識システムが提案されている。
【０００５】
例えば、特許文献１および特許文献２では、このようなクライアント・サーバ型の音声認識システムが開示されている。
【０００６】
特許文献１では、操作対象の機器はテレビジョン受像機（以下テレビとも称する。）である。この発明では、テレビのチャンネル選局または音量調整等の機器操作タスクに対しては、機器側で音声認識または対話処理が行われる。また、番組名または出演者名検索等の情報検索タスクに対しては、サーバ側で音声認識処理の一部が行われ、機器側で対話処理が行われている。
【０００７】
特許文献２では、機器は携帯電話、スマートフォン等のモバイル端末が想定されている。この発明では、電話の発信、メールアプリ、カメラアプリの起動等の機器操作タスクに対しては、機器側で音声認識および対話処理が行われる。また、乗換検索、飲食店検索およびアプリケーション検索等の情報検索タスクに対しては、サーバ側で音声認識処理が行われ、機器側で対話処理が行われている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１２−１３３２４３号公報
【特許文献２】特開２０１３−６４７７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従来のクライアント・サーバ型の音声認識装置および音声認識システムは、クラウドサーバ上で音声認識処理の一部または全てを行わせることによって、大規模な語彙に対して、高精度な音声認識を実現している。しかしながら、認識した結果（文字列）から操作対象機器の動作を特定する対話処理を機器側が行われるため、機器の計算能力またはメモリ容量等の制限によって、対話処理で扱える操作コマンドの数および発話パターン（言い回し）の数が限定されるという課題があった。つまり、クラウドサーバ上の音声認識処理によって、ユーザの発話が正確に認識されても、機器内の対話処理において、認識した結果（文字列）が、操作コマンドまたは発話パターンと一致しないため、ユーザの目的のタスクが実行することができない、つまり、ユーザの思い通りに機器を動作させることができないという課題があった。
【００１０】
本開示は、上記課題を鑑みて、ユーザが発話した音声から、ユーザが所望するタスクをより正確に実行することができる情報処理装置及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本開示の一形態に係る情報処理装置は、音声認識処理により得られるテキストデータである音声認識結果を取得する音声認識結果取得部と、前記音声認識結果に基づく複数の対話処理によりそれぞれ特定される複数のタスクの各々にそれぞれ対応する優先度を取得する優先度取得部と、互いに異なる前記複数の対話処理を複数の装置に分散実行させ、かつ、前記優先度に基づいて、前記対話処理の分散実行により特定されるタスクに応じた制御情報を、当該制御情報に基づいて動作する実行部へ提供する対話処理制御部とを備える。
【００１２】
また、本開示の一形態に係る情報処理方法は、音声認識処理により得られるテキストデータである音声認識結果を取得し、前記音声認識結果に基づく複数の対話処理によりそれぞれ特定される複数のタスクの各々にそれぞれ対応する優先度を取得し、互いに異なる前記複数の対話処理を複数の装置に分散実行させ、かつ、前記優先度に基づいて、前記対話処理の分散実行により特定されるタスクに応じた制御情報を、当該制御情報に基づいて動作する実行部へ提供する。
【発明の効果】
【００１３】
本開示は、ユーザが発話した音声から、ユーザが所望するタスクをより正確に実行することができる情報処理装置及び情報処理方法を提供できる。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施の形態１に係る対話処理制御システムのブロック図である。
【図２】図２は、実施の形態１に係る対話処理サーバの第３対話処理部が用いる対話ルールの一例を示す図である。
【図３】図３は、実施の形態１に係る機器の第１対話処理部が用いる対話ルールの一例を示す図である。
【図４】図４は、実施の形態１に係る動作スケジュールの一例を示す図である。
【図５】図５は、実施の形態１に係る対話処理制御システムの動作を説明するフローチャートである。
【図６】図６は、実施の形態２に係る対話処理制御システムのブロック図である。
【図７】図７は、実施の形態２に係る対話タスク管理手段が各対話処理部等の動作スケジュールを作成する処理の流れを説明するフローチャートである。
【図８】図８は、実施の形態２に係る機器から外部機器が制御できない場合の対話処理制御システムの動作を説明するフローチャートである。
【図９】図９は、実施の形態２に係る機器から対話処理サーバが利用できない場合の対話処理制御システムの動作を説明するフローチャートである。
【図１０】図１０は、実施の形態３に係る対話処理制御システムのブロック図である。
【図１１】図１１は、実施の形態３に係る発話理解処理サーバの第３発話理解部が用いる発話理解ルールの一例を示す図である。
【図１２】図１２は、実施の形態３に係る機器の第１発話理解部が用いる発話理解ルールの一例を示す図である。
【図１３】図１３は、実施の形態３に係る機器の第１応答生成部が用いる応答生成ルールの一例を示す図である。
【図１４】図１４は、実施の形態３に係る機器の第３応答生成部が用いる応答生成ルールの一例を示す図である。
【図１５】図１５は、実施の形態３に係る動作スケジュールの一例を示す図である。
【図１６】図１６は、実施の形態３に係る対話処理制御システムの動作を説明するフローチャートである。
【図１７】図１７は、実施の形態４に係る音声認識システムのブロック図である。
【図１８】図１８は、実施の形態４に係る対話タスク管理手段が各対話処理部、各応答生成部、各発話理解部の動作スケジュールを作成する処理の流れを説明するフローチャートである。
【図１９】図１９は、実施の形態４に係る機器から外部機器が制御できない場合の対話処理制御システムの動作を説明するフローチャートである。
【図２０】図２０は、実施の形態４に係る機器から発話理解処理サーバが利用できない場合の対話処理制御システムの動作を説明するフローチャートである。
【発明を実施するための形態】
【００１５】
（本開示に至った経緯）
前述したように、従来のクライアント・サーバ型の認識システムでは、ユーザが発話した音声の認識結果である認識文字列から操作対象の機器の動作を特定する対話処理を機器側で行われるため、機器の計算能力およびメモリ容量等の制限によって、対話処理で扱える操作コマンドの数および発話パターン（言い回し）の数が限定されるという課題があった。
【００１６】
そこで、音声認識処理と同様に、クラウドサーバ上で対話処理を行うことにより、対話処理においても、大規模な語彙数（操作コマンドの数および発話パターンの数等）を処理できるようにする方法が提案されている。
【００１７】
しかし、クラウドサーバ上で音声認識が行われる場合と同様に、クラウドサーバ上で対話処理が行われる場合、ネットワークの通信環境が悪いとき、または複数の機器からサーバにアクセスが集中したときには、サーバからの応答速度は、機器内で処理する場合に比べ、かなり遅くなるという問題がある。
【００１８】
よって、上記問題を解決する方法としては、対話処理できる語彙数は少ないが、迅速な応答が求められるタスクに対しては、機器内で対話処理を行い、一方、応答速度が遅くても、対話処理可能な語彙数が大規模であることが要求されるタスクに対しては、クラウドサーバ上で対話処理の一部または全てを行うクライアント・サーバ型の対話処理システムが考えられる。また、このようなシステムは、サーバからの応答時間を短くするために、通常、認識文字列を機器とサーバの対話処理にほぼ同時に入力し、対話処理の最終的な結果を得るまでの時間を短くする。
【００１９】
ところで、特許文献１に示されているように、最近の音声認識機器およびシステムでは、音声認識の結果である認識文字列に対し、複数の異なるタスクを処理する対話処理が行われることが多い。例えば、特許文献１の対話処理では、まず、認識文字列が、操作対象機器の操作コマンド（機能）か、アプリケーションかどうかを判定し、操作コマンドである場合には、対応する機器操作を実行する。そして、そうでない場合には、アプリマーケットで、認識文字列を検索キーワードとしたアプリ検索を行い、その結果をユーザに提示する。つまり、特許文献１では、機器操作タスクとアプリ検索タスクの２つの異なるタスクを処理する対話処理が行われている。
【００２０】
なお、特許文献１では、機器内だけで、上記複数の異なるタスクに対する対話処理が行われている。前述したように、大規模な語彙数を対話処理するためには、クライアント・サーバ型のシステムを利用することが望ましい。
【００２１】
しかしながら、機器側とサーバ側の双方で、複数のタスクに対して同時に対話処理が行われる場合、機器側の対話処理の結果とサーバから得られる対話処理の結果のうち、どちらの結果を優先的に実行するかを決定する必要がある。単純に、先に有効な結果を得られた方を実行するという方法もあるが、機器側とサーバ側の対話処理の各タスクの優先度が異なる場合には、一概に、その方法が良いとは限らない。
【００２２】
例えば、優先度が異なる３つのタスクがあり、機器側で、優先度が１番目のタスクと３番目のタスクに対する２つの対話処理が連続して行われ、サーバ側では、優先度が２番目の対話処理が行われるようにシステムが構築されるとする。この場合、優先度が高い順番に対話処理の結果が実行されることが望まれるが、ユーザの発話内容またはネットワーク環境等により、サーバ側の対話処理よりも、機器側の２つの対話処理のほうが短時間に終わる場合がある。つまり、優先度３番目のタスクが機器側で先に実行されてしまい、サーバ側の優先度２番目のタスクが実行されないという問題が生じる。
【００２３】
以下、上記問題を、具体的に、機器をテレビとして説明する。ここで、優先度１番目のタスクをテレビのチャンネル選局または音量調整等のテレビの基本操作とし、また、優先度２番目のタスクをテレビとネットワーク接続されている外部機器の操作、例えば、エアコンまたは照明等の機器操作とする。また、優先度３番目のタスクを、テレビに関する情報検索、例えば、番組名または出演者名による番組情報検索とする。このとき、システムとしては、テレビ側で、優先度１番目のテレビの基本操作及び、優先度３番目のテレビに関する情報検索に関する対話処理が行われ、サーバ側で、優先度２番目の外部機器操作に関する対話処理が行われるとする。なお、サーバ側で、外部機器操作の対話処理を行う理由は、様々な機器の多様な操作コマンドに対して処理できるようにするためである。
【００２４】
上記システムにおいて、例えば、ユーザが、「エアコンをつけて」と発話したとする。正しく音声認識されたなら、次に、認識文字列「エアコンをつけて」は、機器側及び、サーバ側の対話処理に同時に入力される。機器側では、まず、テレビの基本操作タスクの対話処理が行われ、認識文字列が、テレビの基本操作コマンドかどうかが確認される。認識文字列「エアコンをつけて」は、テレビの基本操作コマンドに含まれないので、次に、テレビに関する情報検索タスクの対話処理が行われる。つまり、認識文字列「エアコンをつけて」を検索キーワードとした情報検索（例えば、番組表検索またはインターネット検索等）が行われる。
【００２５】
一方、サーバ側では、外部機器の操作タスクの対話処理が行われ、認識文字列が、テレビに接続されている外部機器の操作コマンドかどうかが確認される。認識文字列「エアコンをつけて」は、エアコンの操作コマンドと一致するので、サーバから機器に対し、エアコンの電源をつける操作を行うための情報が送信される。
【００２６】
このとき、システム全体としては、優先度２番目の外部機器の操作タスクであるエアコンの電源操作が、優先度３番目のテレビに関する情報検索タスクより、先に実行されるべきである。しかし、前述したように、ネットワーク環境等により、サーバ側の外部機器の操作タスクの対話処理よりも、機器側の２つの対話処理（テレビの基本操作タスクとテレビに関する情報検索タスク）のほうが短時間に終わる可能性がある。即ち、ネットワーク環境によっては、「エアコンをつけて」をキーワード検索した結果の表示が、エアコンの電源をつける操作よりも、先に実行される可能性があり、ユーザの思い通りに機器を操作することができないという課題が生じる。
【００２７】
従って、本開示は、クライアント・サーバ型の音声認識システムにおいて、優先度の異なる複数のタスクを含んだ対話処理を、機器側とサーバ側で並行処理する際に、各タスクの優先度に基づいた最適な対話処理制御が行える情報処理装置及び情報処理方法を提供することを目的とする。
【００２８】
上記目的を達成するために、本開示の一態様に係る情報処理装置として動作する対話処理制御装置は、音声認識処理により得られるテキストデータである音声認識結果を取得する音声認識結果取得部と、前記音声認識結果に基づく複数の対話処理によりそれぞれ特定される複数のタスクの各々にそれぞれ対応する優先度を取得する優先度取得部と、互いに異なる前記複数の対話処理を複数の装置に分散実行させ、かつ、前記優先度に基づいて、前記対話処理の分散実行により特定されるタスクに応じた制御情報を、当該制御情報に基づいて動作する実行部へ提供する対話処理制御部とを備える。
【００２９】
例えば、本構成では、タスク優先度記憶部に記憶された各タスクの優先度に基づいて、対話タスク管理部が、各タスクを処理する機器側の対話処理部と対話処理サーバの対話処理によりそれぞれ特定される各タスクの動作スケジュールを決定する。そして、その動作スケジュールに基づいて、対話処理制御部が、機器側の各対話処理部と対話サーバ側の各対話処理の動作を制御する。これにより、優先度の異なる複数の異なるタスクを含んだ対話処理が、機器側とサーバ側で、同時に並行処理される場合でも、各タスクの優先度に応じた順番で、タスクの実行を制御することが可能となる。即ち、優先度の高いタスクの対話処理をサーバ側で、優先度の低いタスクの対話処理を機器側で同時に並行処理された場合、ネットワーク環境等の影響で、サーバからの処理結果の応答が遅くなったとしても、優先度に応じて、機器側の処理結果ではなく、サーバ側の処理結果を実行させることが可能となる。
【００３０】
また、例えば、本開示の別の一形態に係る対話処理制御装置は、さらに、前記実行部により制御される被制御装置の状態を管理する機器状態管理部を備え、前記優先度取得部は、前記機器状態管理部で管理されている前記状態に基づいて、前記優先度を取得する。
【００３１】
例えば、この構成においても、対話処理制御部は、対話タスク管理部から得られる動作スケジュールに基づいて、機器側の各対話処理部と対話サーバ側の各対話処理の動作を制御する。但し、本構成では、機器状態管理部が、機器の状態を管理し、対話タスク管理部は、タスク優先度記憶部に記憶されている各タスクの優先度に加えて、前記機器の状態に基づいて、機器側の各対話処理部及び、対話処理サーバの各対話処理の動作スケジュールを決定する。これにより、操作対象の機器の状態に応じて、機器および対話処理サーバの対話処理の動作スケジュールを動的に変更することが可能となる。つまり、機器の状態に応じて、最適な処理を行うことができ、全体の処理時間を短縮することができる。
【００３２】
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
【００３３】
以下、本開示の実施の形態について、図面を参照しながら説明する。
【００３４】
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【００３５】
（実施の形態１）
図１は、本実施の形態１に係る対話処理制御システムの構成を示すブロック図である。
【００３６】
図１に示すように、対話処理制御システムは、音声による操作対象の機器（対話処理制御装置）１００及び、機器１００に、有線ＬＡＮ／無線ＬＡＮ等でネットワーク接続された外部機器１０１と、クラウド上で音声認識処理および対話処理を行う対話処理サーバ２００を備える。例えば、機器１００をテレビとすれば、外部機器１０１は、テレビにネットワーク接続された全ての機器、つまり、ＨＤＭＩ（登録商標）またはＬＡＮで接続されたハードディスクレコーダまたはＡＶアンプ等の従来のＡＶ機器に加え、エコネット（登録商標）で接続されたエアーコンディショナー（以下エアコンとも称する。）または照明等の白物家電であってもよい。対話処理制御装置は、情報処理装置の一例である。
【００３７】
対話処理サーバ２００は、通信部２１、音声認識部２２、第３対話処理部２３、第４対話処理部２４を備える。通信部２１は、機器１００と、音声、認識文字列、対話処理結果等の情報の送受信を行う。音声認識部２２は、通信部２１を介して入力されたユーザが発話した音声を認識する。そして、音声認識部２２は、音声認識結果である認識文字列を、通信部２１を介して、機器１００に送信する。なお、音声認識部２２は、クラウド上で音声認識処理を行うので、従来例同様に、数十万程度の大規模な語彙を認識することが可能である。また、音声認識部２２において、音声を認識する方法としては、従来のＤＰマッチング法、ＨＭＭ（隠れマルコフモデル）法、Ｎ−Ｇｒａｍ法等が用いられる。対話処理サーバ２００は、外部装置に含まれる。
【００３８】
第３対話処理部２３及び、第４対話処理部２４は、機器１００から通信部２１を介して入力された認識文字列に対し、予め定められた異なるタスクの対話処理を行う。そして、第３対話処理部２３及び、第４対話処理部２４は、対話処理の結果を、通信部２１を介して機器１００に送信する。
【００３９】
本実施の形態では、第３対話処理部２３は、機器１００に接続された外部機器１０１の操作タスクを処理し、第４対話処理部２４は、天気予報およびニュース等の一般的なインターネットの情報検索タスクを処理する。この場合、第３対話処理部２３は、認識文字列が、外部機器１０１の操作コマンドのいずれかに該当するかどうかを確認し、該当した場合には、対応する外部機器の操作を実行するための制御情報が出力される。また、第４対話処理部２４は、認識文字列から検索キーワードを抽出し、その検索キーワードによるインターネットの情報検索を実行するための制御情報が出力される。更に、各対話処理部２３、２４は、各制御情報以外に、対話処理の結果をユーザに提示するための応答情報も出力する。
【００４０】
第３対話処理部２３では、外部機器１０１の操作コマンドと対話処理の結果である制御情報および応答情報の対応関係が、対話ルールとして記述されている。第３対話処理部２３の対話処理はこの対話ルールに基づいて行われる。例えば、外部機器１０１をエアコンとした場合の第３対話処理部２３が用いる対話ルールの一例を図２に示す。図２に示すように、操作コマンドは、ユーザが外部機器１０１に対して操作を指示する言葉であり、「エアコンをつけて」「冷房にして」等である。
【００４１】
操作内容は、操作コマンドに対して外部機器１０１が実際に行う操作の内容であり、例えば、操作コマンド「冷房にして」に対応する操作内容は「エアコンの電源をＯＮにし、冷房運転を行う」となる。なお、各操作内容に対し、操作コマンドは複数登録されていてもよい。例えば、図２では、「エアコンの電源をＯＮにし、自動運転を行う」という操作内容に対して、「エアコンをつけて」「エアコンを入れて」という２つの言葉が登録されている。
【００４２】
制御情報は、操作対象の外部機器１０１に操作内容を実行させるためのネットワークコマンドであり、ネットワークを介して、機器１００から操作対象の外部機器１０１に送信される。例えば、図２の例では、エアコンに対し、「エアコンをつけて」という操作内容を実行させる場合、機器１００から外部機器１０１に、（Ａｉｒ  ｃｏｎｄｉｔｉｏｎｅｒ，  Ｏｎ，  Ａｕｔｏ）というネットワークコマンドが送信される。
【００４３】
応答情報は、操作コマンドが正しく受け付けられたときに、音声および画面を用いて、ユーザに提示する情報である。例えば、図２の例では、操作コマンド「冷房にして」が受け付けられた場合には、応答情報「冷房をつけます」がユーザに提示される。
【００４４】
同様に、第４対話処理部２４の対話処理も、対話ルールに基づいて行われる。但し、対話ルールは一つだけで、その処理の内容は「認識文字列から検索キーワードを抽出し、その検索キーワードを用いて、インターネット情報を検索する」である。よって、制御情報は、機器１００の一般情報検索部１３に、認識文字列から抽出された検索キーワードによるインターネット情報を検索させるためのネットワークコマンドであり、応答情報は、例えば、「検索結果を画面に表示します」等である。
【００４５】
機器１００は、収音部１、認識制御部２、音声認識部３、通信部４、第１対話処理部５、第２対話処理部６、タスク優先度記憶部７、対話タスク管理部８、対話処理制御部９、機器制御部１０、機器関連情報検索部１１、外部機器制御部１２、一般情報検索部１３、ＧＵＩ出力部１４、画面表示部１５、音出力部１６を備える。
【００４６】
以下、機器１００の構成を詳しく説明する。
【００４７】
収音部１は、マイクであり、ユーザが発話した音声を入力する。認識制御部２は、収音部１で入力された音声を機器側の音声認識部３に出力するとともに、対話処理サーバ２００の音声認識部２２にも通信部４を介して出力する。そして、認識制御部２は、音声認識部３または音声認識部２２から得られた音声認識結果に基づいて、認識文字列を決定する。音声認識部３は、認識制御部２から入力されたユーザの発話音声を認識し、音声認識結果として、認識制御部２に認識文字列を出力する。通信部４は、対話処理サーバ２００と、音声、認識文字列、対話処理結果等の情報の送受信を行う。なお、音声認識部３は、機器内で音声認識処理を行うので、数百程度の小規模な語彙しか認識できないが、対話処理サーバ２００の音声認識部２２に比べると、応答速度はかなり速い。また、音声認識部３において、音声を認識する方法としては、従来のＤＰマッチング法、ＨＭＭ（隠れマルコフモデル）法、Ｎ−Ｇｒａｍ法等が用いられる。
【００４８】
第１対話処理部５及び、第２対話処理部６は、認識制御部２で決定された認識文字列に基づいて、予め定められた異なるタスクの対話処理を行う。本実施の形態では、第１対話処理部は、機器１００の基本操作タスクを処理し、第２対話処理部は、機器１００に関連する情報検索タスクを処理する。この場合、第１対話処理部５は、認識文字列が、機器１００の基本操作コマンドのいずれかに該当するかどうかを確認し、該当した場合には、対応する機器操作を実行するための制御情報が出力される。また、第２対話処理部６は、認識文字列から検索キーワードを抽出し、その検索キーワードによる機器関連情報の検索を実行するための制御情報が出力される。更に、各対話処理部５、６は、各制御情報以外に、対話処理の結果をユーザに提示するための応答情報も出力する。
【００４９】
第１対話処理部５では、機器１００の操作コマンドと対話処理の結果である制御情報および応答情報の対応関係が、対話ルールとして記述されている。第１対話処理部５の対話処理はこの対話ルールに基づいて行われる。例えば、機器１００をテレビとした場合の第１対話処理部５が用いる対話ルールの一例を図３に示す。図３に示すように、操作コマンドは、ユーザが機器１００に対して操作を指示する言葉であり、「テレビをつけて」「番組表」等である。
【００５０】
操作内容は、操作コマンドに対して機器１００が実際に行う操作の内容であり、例えば、操作コマンド「テレビをつけて」に対応する操作内容は「テレビの電源をＯＮにする」となる。なお、各操作内容に対し、操作コマンドは複数登録されていてもよい。例えば、図３では、「音量を３レベル上げる」という操作内容に対して、「音量を上げて」「音量アップ」という２つの言葉が登録されている。
【００５１】
制御情報は、操作対象の機器１００に操作内容を実行させるための機器制御コマンドであり、機器制御部１０に入力される情報である。例えば、図３の例では、テレビに対し「テレビをつけて」という操作内容を実行させる場合、機器制御部１０に（Ｐｏｗｅｒ  Ｏｎ）という機器制御コマンドが入力される。
【００５２】
応答情報は、操作コマンドが正しく受け付けられた場合に、音声および画面を用いて、ユーザに提示する情報である。例えば、図３の例では、操作コマンド「テレビを消して」が受け付けられたときには、応答情報「テレビを消します」がユーザに提示される。
【００５３】
同様に、第２対話処理部の対話処理も、対話ルールに基づいて行われる。但し、対話ルールは一つだけで、その処理の内容は「認識文字列から検索キーワードを抽出し、その検索キーワードを用いて、機器関連情報を検索する」である。例えば、機器１００をテレビ、機器関連情報を番組表の番組情報とすると、処理の内容は、「認識文字列から番組情報に関する検索キーワードを抽出し、その検索キーワードを用いて、番組表から番組情報を検索する」となる。よって、制御情報は、機器１００の機器関連情報検索部１１に、認識文字列から抽出された検索キーワードを用いて、番組表から番組情報を検索させるための機器制御コマンドであり、応答情報は、例えば、「番組表の検索結果を画面に表示します」等である。
【００５４】
タスク優先度記憶部７は、機器１００の第１対話処理部および第２対話処理部６が処理するタスクならびに、対話処理サーバ２００の第３対話処理部２３および第４対話処理部２４が処理するタスクの優先度が記憶されている。本実施の形態では、機器１００の基本操作タスクには優先度１、機器関連情報の検索タスクには優先度３、対話処理サーバ２００の外部機器操作タスクには優先度２、インターネットによる一般的な情報検索タスクには優先度４が記憶されている。
【００５５】
対話タスク管理部８は、音声認識結果に基づく複数の対話処理によりそれぞれ特定される複数のタスクの各々にそれぞれ対応する優先度を取得する。つまり、対話タスク管理部８は、タスク優先度記憶部７に記憶されている各タスクの優先度に基づいて、機器１００の第１対話処理部５および第２対話処理部６、ならびに対話処理サーバ２００の第３対話処理部２３および第４対話処理部２４の動作スケジュールを決定する。なお、対話処理部の動作スケジュールは、機器１００及び対話処理サーバ２００の各対話処理部５、６、２３、２４をどの順番で、どのように動作させるかを定義し、例えば、図４に示すように、以下の情報が記述されている。動作スケジュールは、実行スケジュールの一例である。
【００５６】
各対話処理部を動作させる順番
各対話処理部の動作を開始するタイミング
各対話処理部の処理結果を実行するタイミング
【００５７】
ここで、対話処理部の動作を開始するタイミングとは、認識文字列が対話処理部に入力されるタイミングのことを示す。また、対話処理部の処理結果を実行するタイミングとは、各対話処理部の処理結果を実行するための制御信号を、その処理結果を実際に実行する各構成要件、例えば、機器制御部１０、機器関連情報検索部１１、外部機器制御部１２、一般情報検索部１３に出力するタイミングのことを示す。
【００５８】
例えば、第１対話処理部５の処理結果を実行するタイミングとは、機器１００の基本操作タスクを実行するタイミングを示す。また、第２対話処理部６の処理結果を実行するタイミングは、機器関連情報の検索タスクを実行するタイミングを示す。同様に、第３対話処理部の処理結果を実行するタイミングは、外部機器１０１の操作タスクを実行するタイミングであり、第４対話処理部の処理結果を実行するタイミングは、一般的なインターネットの情報検索タスクを実行するタイミングのことである。
【００５９】
対話処理制御部９は、対話タスク管理部８で決定された動作スケジュールに基づいて、機器１００の第１対話処理部５、第２対話処理部６の動作を制御する。また、対話処理制御部９は、通信部４、２１を介して、対話処理サーバ２００の第３対話処理部２３、第４対話処理部２４の動作も制御する。
【００６０】
具体的には、対話処理制御部９は、動作スケジュールに基づいて、各対話処理部に、認識文字列を入力して、対話処理を開始させる処理を行う。また、動作スケジュールに基づいて、各対話処理部から得られた処理結果を、機器制御部１０、機器関連情報検索部１１、外部機器制御部１２、または、一般情報検索部１３のいずれかに出力する処理を行う。例えば、機器１００の第１対話処理部５から得られた機器１００を操作するための制御情報は、機器制御部１０に出力される。機器１００の第２対話処理部６から得られた機器関連情報の検索を実行するための制御情報は、機器関連情報検索部１１に出力される。通信部４を介して、対話処理サーバ２００の第３対話処理部２３から得られた外部機器１０１を操作するための制御情報は、外部機器制御部１２に出力される。通信部４を介して、対話処理サーバ２００の第４対話処理部２４から得られた一般的なインターネットの情報検索を実行するための制御情報は、一般情報検索部１３に出力される。
【００６１】
機器制御部１０は、対話処理制御部９から入力された制御情報に基づいて、機器１００の操作を実行する。機器関連情報検索部１１は、対話処理制御部９から入力された制御情報に基づいて、機器に関連する情報の検索を実行する。外部機器制御部１２は、対話処理制御部９から入力された制御情報に基づいて、外部機器の操作を実行する。一般情報検索部１３は、対話処理制御部９から入力された制御情報に基づいて、一般的なインターネットの情報検索タスクを実行する。
【００６２】
ＧＵＩ出力部１４は、ディスプレイ等の画面表示部１５と、スピーカー等の音出力部１６を備える。画面表示部１５には、機器制御部１０で実行された機器１００の操作結果、外部機器制御部１２で実行された外部機器１０１の操作結果、機器関連情報検索部１１で検索された機器関連情報の検索結果または、一般情報検索部１３で検索された一般的なインターネットの情報検索結果が表示される。同時に、音出力部１６からは、画面表示に同期して報知音が出力される。
【００６３】
また、画面表示部１５は、対話処理制御部９を介して、各対話処理部５、６、２３、２４から得られる応答情報を画面出力する。同様に、音出力部１６は、対話処理制御部９を介して、各対話処理部５、６、２３、２４から得られる応答情報を音声合成し、応答音声として出力する。
【００６４】
以下、本実施の形態における対話処理制御システムにおいて、対話処理によりそれぞれ特定される複数のタスク（以下、対話タスクとも称する。）を行うために、ユーザが各タスクに関連する音声コマンドを発話した場合のシステムの動作について説明する。なお、以下では、具体的に説明するために、機器１００をテレビ、外部機器１０１をエアコンとする。よって、第１対話処理部５のタスクは、テレビのチャンネル選局および音量調整等の基本操作タスクとし、その対話ルールは図３に示される。第２対話処理部６のタスクは、番組表の番組情報検索とする。また、第３対話処理部２３のタスクは、エアコンの電源操作および温度設定等の操作タスクとし、その対話ルールは図２に示される。第４対話処理部２４のタスクは、天気予報およびニュース等の一般的なインターネットの情報検索タスクとする。
【００６５】
上記対話処理制御システムにおいて、ユーザが、テレビ１００およびエアコン１０１を音声操作する場合には、テレビ１００の収音部１に向かって、音声コマンドを発話する。例えば、ユーザは、テレビの音量を操作したいときには、「音量をあげて」と、また、エアコンの温度を下げたい時には、「温度を下げて」等を発話する。同様に、ユーザは、音声による情報検索を行う場合には、例えば、番組表から明日放送する予定のドラマの番組名を検索したいときには、「明日のドラマ」等と、インターネットから天気予報を検索したい時には、「東京の天気」等を発話する。
【００６６】
図５は、本実施の形態において、テレビ１００の収音部１に、ユーザが音声コマンドを入力したときの処理の流れを示すフローチャートである。以下、図５を用いて、音声認識システムの動作フローを説明する。
【００６７】
テレビ１００の収音部１は、ユーザが発話した音声を収音し、認識制御部２に出力する（Ｓ１）。認識制御部２は、収音部１から入力された音声に対し、テレビ１００の音声認識部３及び、対話処理サーバ２００の音声認識部２２で音声認識処理を行い、それらの音声認識結果に基づいて、認識文字列を求める（Ｓ２）。具体的には、以下の一連の動作が行われる。
【００６８】
認識制御部２は、収音部１から入力された音声を、音声認識部３に出力する。また、同時に、認識制御部２は、収音部１から入力された音声を、テレビ１００の通信部４から対話処理サーバ２００の通信部２１を介して、対話処理サーバ２００の音声認識部２２にも出力する。
【００６９】
音声認識部３は、入力された音声を認識し、その音声認識結果を認識制御部２に出力する。つまり、音声認識部３は、音声認識処理により得られるテキストデータである音声認識結果を取得する。同様に、対話処理サーバ２００の音声認識部２２は、入力された音声を認識し、その音声認識結果を対話処理サーバ２００の通信部２１からテレビ１００の通信部４を介して、認識制御部２に出力する。通常、テレビ１００の音声認識部３の音声認識結果は、対話処理サーバ２００の音声認識部２２の音声認識結果より先に得られるので、認識制御部２は、まず、音声認識部３の音声認識結果を確認する。音声認識部３が認識に成功したなら、その音声認識結果である文字列を対話処理制御部９に出力する。もし、音声認識部３が認識に失敗したなら、次に、認識制御部２は、対話処理サーバ２００の音声認識部２２の認識結果を確認する。音声認識部２２が認識に成功したなら、認識制御部２は、その音声認識結果である文字列を対話処理制御部９に出力する。逆に、認識に失敗したなら、認識制御部２は、ユーザに対し、認識に失敗したことをＧＵＩ出力部１４の画面表示部１５、音出力部１６を用いて提示し、ユーザに再発声を促す。
【００７０】
対話処理制御部９は、認識制御部２から認識文字列を受信すると、まず、対話タスク管理部９から各対話処理部５、６、２３、２４の動作スケジュールを取得する（Ｓ３）。なお、前述したように、動作スケジュールは、予め、タスク優先度記憶部７に記憶されている各対話処理のタスクの優先度に基づいて、対話タスク管理部８で決定されるものであり、例えば、図４に示すような、各対話処理部５、６、２３、２４の動作を規定する情報が記述されている。ここでは、図４の動作スケジュールを用いて以下の動作を説明する。
【００７１】
対話処理制御部９は、取得した動作スケジュールに従って、まず、テレビ１００の第１対話処理部５に、認識制御部２から得られた認識文字列を入力する（Ｓ４）。また、対話処理制御部９は、ほぼ同時に、認識文字列を、テレビ１００の通信部４から対話処理サーバ２００の通信部２１に送信し、対話処理サーバ２００の第３対話処理部２３に入力する（Ｓ５）。
【００７２】
第１対話処理部５では、テレビ１００の基本操作タスクの対話処理を行い、その処理結果を対話処理制御部９に出力する。なお、第１対話処理部５の対話処理は、前述したように、図３に示す対話ルールに基づいて行われる。具体的には、まず、第１対話処理部５は、入力された認識文字列が、対話ルールに記述されているテレビの機器操作コマンドのいずれかに一致するかどうか確認する（Ｓ６）。一致した場合（Ｓ６でＹの場合）には、第１対話処理部５は、その操作コマンドに対応する制御情報と応答情報を読み出して、対話処理制御部９に出力する。逆に、一致しない場合（Ｓ６でＮの場合）には、第１対話処理部５は、入力された認識文字列が、テレビ１００の基本操作コマンドではないと判定し、対話処理リジェクトの情報を対話処理制御部９に出力する。
【００７３】
第１対話処理部５で対話処理が成功した場合には、対話処理制御部９は、動作スケジュールに基づいて、第１対話処理部５の対話処理の結果であるテレビ１００の機器操作コマンドを実行する（Ｓ７）。具体的には、対話処理制御部９は、第１対話処理部５から得られた制御情報を機器制御部１０に出力し、また、応答情報をＧＵＩ出力部１４の画面表示部１５および音出力部１６に出力する。機器制御部１０は、対話処理制御部９から入力された制御情報に基づいて、テレビ１００の操作を実行する。また、機器制御部１０は、画面表示部１５または音出力部１６を介して、対話処理制御部９から入力された応答情報をユーザに提示するとともに、機器制御部１０で実行されたテレビ１００の操作結果をユーザに提示する。なお、処理フローとしては、ここで処理が開始ポイント（Ａ）に戻り、ユーザの再発声が待たれる。
【００７４】
以下、テレビ１００の基本操作タスクに関する対話処理の動作フローについて、具体例で説明する。
【００７５】
例えば、ユーザが、収音部１に対して、「２チャンネルに変えて」と発話し、音声認識部３が音声認識に成功した場合には、認識文字列“２チャンネルに変えて”が、第１対話処理部５に入力される（Ｓ４）。第１対話処理部５は、入力された認識文字列に対し、テレビ１００の基本操作タスクに関する対話処理を行う。認識文字列“２チャンネルに変えて”は、図３の対話ルールに記述された操作コマンドと一致するので（Ｓ６でＹ）、第１対話処理部５は、対応する制御情報(Ｃｈａｎｎｅｌ、２)と応答情報“２チャンネルにします”を対話処理制御部９に出力する。
【００７６】
次に、対話処理制御部９は、受信した制御情報(Ｃｈａｎｎｅｌ、２)を機器制御部１０に出力する（Ｓ７）。また、対話処理制御部９は、応答情報“２チャンネルにします”を画面表示部１５または音出力部１６に出力する。機器制御部１０は、受信した制御情報に基づいて、テレビ１００のチャンネルを２チャンネルに変更する。また、画面表示部１５または音出力部１６は、応答情報“２チャンネルにします”を画面にテキスト表示または、音声合成音で音声出力した後、２チャンネルの放送番組を再生する。
【００７７】
以上までが、テレビ１００の基本操作タスクに関する対話処理の動作フローの具体例の説明である。
【００７８】
ところで、第１対話処理部５の対話処理が失敗した場合、つまり、対話処理制御部９が第１対話処理部５から対話処理リジェクトの情報を受信した場合（Ｓ６でＮの場合）には、対話処理制御部９は、動作スケジュールに基づき、対話処理サーバ２００の第３対話処理部２３から送信される対話処理の結果を受信する（Ｓ８）。
【００７９】
なお、通常、テレビ１００内の第１対話処理部５の対話処理は、対話処理サーバ２００で行う第３対話処理部２３の対話処理に比べ、ネットワークの通信状態等に影響を受けることがないので、短時間で終わる。よって、対話処理制御部９は、第１対話処理部５の対話処理の結果を得てから、第３対話処理部２３の対話処理の結果を受信するまで少々待つ必要がある場合もある。
【００８０】
対話処理サーバ２００の第３対話処理部２３は、認識文字列に対し、エアコン１０１の操作タスクの対話処理を行い、その処理結果を通信部２１から通信部４を介して、テレビ１００の対話処理制御部９に送信する。前述したように、第３対話処理部２３の対話処理は、図２に示す対話ルールに基づいて行われる。具体的には、第３対話処理部２３は、まず、入力された認識文字列が、対話ルールに記述されているエアコン１０１の操作コマンドのいずれかに一致するかどうか確認する。一致した場合には、第３対話処理部２３は、その操作コマンドに対応する制御情報と応答情報を読み出して、対話処理制御部９に出力する。逆に、一致しない場合には、第３対話処理部２３は、入力された認識文字列が、エアコン１０１の操作コマンドではないと判定し、対話処理リジェクトの情報を対話処理制御部９に送信する。
【００８１】
対話処理制御部９は、対話処理サーバ２００から第３対話処理部２３の対話処理の結果を受信した後、その処理結果をチェックする（Ｓ９）。
【００８２】
そして、もし、第３対話処理部２３の対話処理が成功したなら、即ち、認識文字列がエアコンの操作コマンドであった場合（Ｓ９でＹの場合）には、対話処理制御部９は、動作スケジュールに基づいて、第３対話処理部２３の対話処理の結果であるエアコン１０１の機器操作コマンドを実行する（Ｓ１０）。具体的には、対話処理制御部９は、第３対話処理部２３から得られた制御情報を外部機器制御部１２に出力する。また、対話処理制御部９は、応答情報を画面表示部１５または音出力部１６に出力する。外部機器制御部１２は、対話処理制御部９から入力された制御情報に基づいて、エアコン１０１の操作を実行する。また、外部機器制御部１２は、画面表示部１５または音出力部１６を介して、対話処理制御部９から入力された応答情報をユーザに提示するとともに、外部機器制御部１２で実行されたエアコン１０１の操作結果をユーザに提示する。なお、処理フローとしては、ここで処理が開始ポイント（Ａ）に戻り、ユーザの再発声が待たれる。
【００８３】
以下、エアコン１０１の操作タスクに関する対話処理の動作フローについて、具体例で説明する。
【００８４】
例えば、ユーザが、収音部１に対して、「エアコンをつけて」と発話したとする。音声認識部３または音声認識部２２のいずれかが音声認識に成功した場合には、認識制御部２は、対話処理制御部９に、認識文字列“エアコンをつけて”を入力する。次に、対話処理制御部９は、認識文字列“エアコンをつけて”を、テレビ１００の第１対話処理部５に入力する（Ｓ４）。また、対話処理制御部９は、対話処理サーバ２００の第３対話処理部２３にも当該認識文字列を入力する（Ｓ５）。第１対話処理部３は、入力された認識文字列に対し、テレビ１００の基本操作タスクに関する対話処理を行う。認識文字列“エアコンをつけて”は、図３の対話ルールに記述された操作コマンドのいずれとも一致しないので、第１対話処理部５は、対話処理リジェクトの情報を対話処理制御部９に出力する（Ｓ６でＮの処理）。
【００８５】
第１対話処理部５の対話処理と並行して、対話処理サーバ２００の第３対話処理部２３は、入力された認識文字列に対し、エアコン１０１の操作タスクに関する対話処理を行う。認識文字列“エアコンをつけて”は、図２の対話ルールに記述された操作コマンドと一致するので、第３対話処理部２３は、対応する制御情報（Ａｉｒ  ｃｏｎｄｉｔｉｏｎｅｒ，  Ｏｎ，  Ａｕｔｏ）と応答情報“エアコンをつけます”をテレビ１００の対話処理制御部９に送信する。
【００８６】
対話処理制御部９は、テレビ１００の第１対話処理部５の対話処理がリジェクトされた後に、対話処理サーバ２００の第３対話処理部２３の対話処理の結果である制御情報と応答情報を受信する（Ｓ８）。第３対話処理部２３の対話処理が成功したので、即ち、認識文字列がエアコン１０１の操作コマンドであったので（Ｓ９でＹの場合）、対話処理制御部９は、受信した制御情報（Ａｉｒ  ｃｏｎｄｉｔｉｏｎｅｒ，  Ｏｎ，  Ａｕｔｏ）を外部機器制御部１２に出力する（Ｓ１０）。また、対話処理制御部９は、受信した応答情報“エアコンをつけます”を画面表示部１５または音出力部１６に出力する。外部機器制御部１２は、受信した制御情報に基づいて、エアコン１０１の電源をＯＮにし、自動運転を開始する。また、画面表示部１５または音出力部１６は、応答情報“エアコンをつけます”を画面にテキスト表示または、音声合成音で音声出力した後、エアコン１０１の操作結果をユーザに提示する。
【００８７】
以上までが、エアコン１０１の操作タスクに関する対話処理の動作フローの具体例の説明である。
【００８８】
ところで、第３対話処理部２３の対話処理が失敗した場合、つまり、対話処理サーバ２００の第３対話処理部２３から対話処理リジェクトの情報を受信した場合（Ｓ９でＮの場合）には、対話処理制御部９は、動作スケジュールに従って、テレビ１００の第２対話処理部６に、認識制御部２から得られた認識文字列を入力する（Ｓ１１）。また、対話処理制御部９は、ほぼ同時に、認識文字列を、テレビ１００の通信部４から対話処理サーバ２００の通信部２１に送信し、対話処理サーバ２００の第４対話処理部２４に入力する（Ｓ１２）。
【００８９】
第２対話処理部６は、認識文字列を用いたテレビ１００に関する情報検索、具体的には、番組表を用いた番組情報検索タスクの対話処理を行い、その処理結果を対話処理制御部９に出力する。第２対話処理部６の対話処理は、前述した対話ルールに基づいて行われる。具体的には、まず、第２対話処理部６は、入力された認識文字列が番組情報検索コマンドかどうかを判定する（Ｓ１３）。判定方法としては、認識文字列から番組情報を検索するための検索キーワード、例えば、日時、ジャンル名、番組名等を抽出できるかどうかで判定する方法がある。つまり、検索キーワードが抽出できたなら、第２対話処理部６は、番組情報検索コマンドであると判定し（Ｓ１３でＹの場合）、テレビ１００の番組表から、抽出された検索キーワードによる番組情報検索を実行するための制御情報を生成し、その制御情報を対話処理制御部９に出力する。また、第２対話処理部６は、対話処理の結果をユーザに提示するための応答情報も対話処理制御部９に出力する。
【００９０】
逆に、第２対話処理部６は、入力された認識文字列が番組情報検索コマンドでないと判定した場合（Ｓ１３でＮの場合）、つまり、認識文字列から番組情報を検索するための検索キーワードが抽出できなかった場合には、対話処理リジェクトの情報を対話処理制御部９に送信する。
【００９１】
第２対話処理部６の対話処理が成功した場合には、対話処理制御部９は、動作スケジュールに基づいて、第２対話処理部６の対話処理の結果である番組表を用いた番組情報検索を実行する（Ｓ１４）。具体的には、対話処理制御部９は、第２対話処理部６から得られた制御情報を機器関連情報検索部１１に出力する。また、対話処理制御部９は、応答情報をＧＵＩ出力部１４の画面表示部１５または音出力部１６に出力する。機器関連情報検索部１１は、対話処理制御部９から入力された制御情報に基づいて、テレビ１００の番組表を用いた番組情報検索を行う。また、機器関連情報検索部１１は、画面表示部１５または音出力部１６を介して、対話処理制御部９から入力された応答情報をユーザに提示する。機器関連情報検索部１１は、番組情報検索を行った結果、少なくとも１件以上、番組情報が検索された場合には、ユーザに、画面表示部１５または音出力部１６を介して、検索された番組情報を提示する（Ｓ１５）。なお、処理フローとしては、ここで処理が開始ポイント（Ａ）に戻り、ユーザの再発声が待たれる。
【００９２】
以下、番組情報検索タスクに関する対話処理について、具体例で説明する。
【００９３】
例えば、ユーザが、収音部１に対して、「明日のドラマ」と発話したとする。音声認識部３または音声認識部２２のいずれかが音声認識に成功した場合には、認識制御部２は、対話処理制御部９に、認識文字列“明日のドラマ”を入力する。次に、対話処理制御部９は、認識文字列“明日のドラマ”を、テレビ１００の第１対話処理部に入力する（Ｓ４）。また、対話処理制御部９は、対話処理サーバ２００の第３対話処理部２３にも当該認識文字列を入力する（Ｓ５）。第１対話処理部３及び第３対話処理部２３は、認識文字列“明日のドラマ”に対し、テレビ１００の基本操作タスク及び、エアコンの操作タスクに関する対話処理を行うが、どちらも図２及び図３の対話ルールに記述された操作コマンドと一致しないので、双方の対話処理部から順次、対話処理リジェクトの情報が対話処理制御部９に返ってくる。
【００９４】
対話処理制御部９は、第３対話処理部２３から対話処理リジェクトの情報を受信した場合（Ｓ９でＮの場合）、テレビ１００の第２対話処理部６に、認識文字列“明日のドラマ”を入力する（Ｓ１１）。第２対話処理部６は、入力された認識文字列“明日のドラマ”に対し、番組情報検索タスクに関する対話処理を行う。具体的には、第２対話処理部６は、認識文字列“明日のドラマ”から、番組情報を検索するための検索キーワードの抽出を行えるかどうかで、認識文字列が番組検索コマンドかどうかを判定する（Ｓ１３）。ここでは、番組情報を検索するための日付キーワード“明日”とジャンルキーワード“ドラマ”が抽出できるので、第２対話処理部６は、認識文字列を番組検索コマンドであると判定する（Ｓ１３でＹの処理）。次に、第２対話処理部６は、日付キーワード“明日”とジャンルキーワード“ドラマ”を用いて、番組情報検索を実行するための制御情報を生成し、その制御情報を対話処理制御部９に出力する。また、第２対話処理部６は、対話処理の結果をユーザに提示するための応答情報、例えば、“明日のドラマを番組表で探します”等を対話処理制御部９に出力する。
【００９５】
対話処理制御部９は、第２対話処理部６の対話処理の結果である番組情報検索のための制御情報を受信すると、その制御情報を機器関連情報検索部１１に出力する（Ｓ１４）。また、対話処理制御部９は、応答情報“明日のドラマを番組表で探します”を画面表示部１５および音出力部１６に出力する。画面表示部１５または音出力部１６は、応答情報“明日のドラマを番組表で探します”を画面にテキスト表示または、音声合成音で音声出力する。機器関連情報検索部１１は、入力された番組情報検索のための制御情報に基づいて、つまり、日付キーワード“明日”とジャンルキーワード“ドラマ”を用いて、テレビ１００の番組表から、キーワードに該当する番組情報を検索する。番組情報の検索を行った結果、少なくとも１件以上、検索キーワードに該当する番組情報が見つかった場合には、機器関連情報検索部１１は、画面表示部１５または音出力部１６を介して、ユーザに検索結果を提示する（Ｓ１５）。
【００９６】
以上までが、番組情報検索タスクに関する対話処理の動作フローの具体例の説明である。
【００９７】
ところで、第２対話処理部６の対話処理が失敗した場合、つまり、対話処理制御部９が第２対話処理部６から対話処理リジェクトの情報を受信した場合（Ｓ１３でＮの場合）には、対話処理制御部９は、動作スケジュールに基づき、対話処理サーバ２００の第４対話処理部２４から送信される対話処理の結果を受信する（Ｓ１６）。
【００９８】
対話処理サーバ２００の第４対話処理部２４は、認識文字列を用いたインターネットの情報検索、具体的には、天気予報またはニュース等の一般的な情報検索タスクの対話処理を行い、その処理結果を対話処理制御部９に出力する。第４対話処理部２４の対話処理は、前述した対話ルールに基づいて行われる。具体的には、第４対話処理部２４は、まず、入力された認識文字列が一般情報検索コマンドかどうか判定する。判定方法としては、認識文字列から、インターネットの一般的な情報を検索するための検索キーワード、例えば、天気、ニュース、地図検索に必要な検索キーワード等が抽出できるかどうかで判定する方法がある。つまり、検索キーワードが抽出できたなら、第４対話処理部２４は、一般情報検索コマンドであると判定し、インターネットから、抽出された検索キーワードによる一般的な情報検索を実行するための制御情報を生成し、その制御情報を対話処理制御部９に出力する。また、第４対話処理部２４は、対話処理の結果をユーザに提示するための応答情報も対話処理制御部９に出力する。
【００９９】
逆に、第４対話処理部２４は、入力された認識文字列が一般情報検索コマンドでないと判定した場合、つまり、認識文字列から一般的な情報を検索するための検索キーワードが抽出できなかった場合には、対話処理リジェクトの情報を対話処理制御部９に送信する。
【０１００】
対話処理制御部９は、対話処理サーバ２００から第４対話処理部２４の対話処理の結果を受信した後、その処理結果をチェックする（Ｓ１７）。
【０１０１】
そして、もし、第４対話処理部２４の対話処理が成功したなら、即ち、認識文字列が一般情報検索コマンドであると判定された場合（Ｓ１７でＹの場合）には、対話処理制御部９は、動作スケジュールに基づいて、第４対話処理部２４の対話処理の結果であるインターネットを用いた一般情報検索を実行する（Ｓ１８）。具体的には、対話処理制御部９は、第４対話処理部２４から得られた制御情報を一般情報検索部１３に出力し、また、応答情報をＧＵＩ出力部１４の画面表示部１５または音出力部１６に出力する。
【０１０２】
一般情報検索部１３は、対話処理制御部９から入力された制御情報に基づいて、インターネットを用いた一般情報検索を行う。また、一般情報検索部１３は、画面表示部１５および音出力部１６を介して、対話処理制御部６から入力された応答情報をユーザに提示する。一般情報検索部１３は、一般情報検索を行った結果、少なくとも１件以上、一般情報が検索された場合には、ユーザに、画面表示部１５または音出力部１６を介して、検索された一般情報を提示する（Ｓ１９）。なお、処理フローとしては、ここで処理が開始ポイント（Ａ）に戻り、ユーザの再発声が待たれる。
【０１０３】
以下、一般情報検索タスクに関する対話処理の動作フローについて、具体例で説明する。
【０１０４】
例えば、ユーザが、収音部１に対して、「東京の天気」と発話したとする。音声認識部３または音声認識部２２のいずれかが音声認識に成功した場合には、認識制御部２は、対話処理制御部９に、認識文字列“東京の天気”を入力する。次に、対話処理制御部９は、認識文字列“東京の天気”を、テレビ１００の第１対話処理部に入力する（Ｓ４）。また、対話処理サーバ２００の第３対話処理部２３にも当該認識文字列を入力する（Ｓ５）。第１対話処理部３及び第３対話処理部２３は、認識文字列“東京の天気”に対し、テレビ１００の基本操作タスク及び、エアコンの操作タスクに関する対話処理を行うが、どちらも図２及び図３の対話ルールに記述された操作コマンドと一致しないので、双方の対話処理部から順次、対話処理リジェクトの情報が対話処理制御部９に返ってくる。
【０１０５】
対話処理制御部９は、第３対話処理部２３から対話処理リジェクトの情報を受信した場合（Ｓ９でＮの場合）、テレビ１００の第２対話処理部６に、認識文字列“東京の天気”を入力する（Ｓ１１）。また、対話処理制御部９は、対話処理サーバ２００の第４対話処理部２４にも当該認識文字列を入力する（Ｓ１２）。第２対話処理部６は、入力された認識文字列“東京の天気”に対し、番組情報検索タスクに関する対話処理を行うが、認識文字列から番組情報を検索するためのキーワードが抽出できないので、対話処理リジェクトの情報を対話処理部９に出力する（Ｓ１３でＮの処理）。
【０１０６】
第２対話処理部６の対話処理と並行して、対話処理サーバ２００の第４対話処理部２４は、入力された認識文字列に対し、一般情報検索タスクに関する対話処理を行う。具体的には、第４対話処理部２４は、認識文字列“東京の天気”から、一般情報を検索するための検索キーワードの抽出が行えるかどうかで、認識文字列が一般情報検索コマンドかどうかを判定する。ここでは、一般情報を検索するためのエリアキーワード“東京”と情報種別キーワード“天気”が抽出できるので、第４対話処理部２４は、認識文字列を一般情報検索コマンドであると判定する。次に、第４対話処理部２４は、エリアキーワード“東京”と、情報種別キーワード“天気”を用いて、インターネットからの一般的な情報検索を実行するための制御情報を生成し、その制御情報を対話処理制御部９に出力する。また、第４対話処理部２４は、対話処理の結果をユーザに提示するための応答情報、例えば、“東京の天気をインターネットで探します”等を対話処理制御部９に出力する。
【０１０７】
対話処理制御部９は、テレビ１００の第２対話処理部６の対話処理がリジェクトされた後に、対話処理サーバ２００の第４対話処理部２４の対話処理の結果である制御情報と応答情報を受信する（Ｓ１６）。第４対話処理部２４の対話処理が成功したので、即ち、認識文字列がインターネットからの一般情報を検索するためのコマンドであったので（Ｓ１７でＹの場合）、対話処理制御部９は、受信した制御情報を一般情報検索部１３に出力する。また、対話処理制御部９は、受信した応答情報“東京の天気をインターネットで探します”を画面表示部１５または音出力部１６に出力する。
【０１０８】
一般情報検索部１３は、入力された一般情報検索のための制御情報に基づいて、つまり、エリアキーワード“東京”と情報種別キーワード“天気”を用いて、インターネットから、上記キーワードに該当する情報を検索する。一般情報検索部１３は、情報の検索を行った結果、少なくとも１件以上、検索キーワードに該当する情報が見つかった場合には、画面表示部１５または音出力部１６を介して、ユーザに検索結果を提示する（Ｓ１９）。
【０１０９】
以上までが、一般情報検索タスクに関する対話処理の具体例の説明である。
【０１１０】
ところで、第４対話処理部２４の対話処理が失敗した場合、つまり、対話処理制御部９が第４対話処理部２４から対話処理リジェクトの情報を受信したとき（Ｓ１７でＮの場合）には、対話処理制御部９は、全ての対話処理が失敗したことをユーザに提示する（Ｓ２０）。例えば、対話処理制御部９は、“話された言葉がよくわかりません”等を画面表示部１５および音出力部１６を介して、ユーザに提示する。なお、処理フローとしては、ここで処理が開始ポイント（Ａ）に戻り、ユーザの再発声が待たれる。
【０１１１】
以上説明したように、本開示の実施の形態に係る対話処理制御システムは、予め、タスク優先度記憶部７に記憶された各タスクの優先度に基づいて、対話タスク管理部８が、各タスクを処理するテレビ１００の第１対話処理部５、第２対話処理部６と、対話処理サーバ２００の第３対話処理部２３、第４対話処理部２４の動作スケジュールを決定する。そして、ユーザが発話した音声認識結果である認識文字列が対話処理制御部９に入力された時は、その動作スケジュールに基づいて、対話処理制御部９は、テレビ１００側の各対話処理部と、対話サーバ２００側の各対話処理部の動作を制御する。これにより、優先度の異なる複数の異なるタスクを含んだ対話処理を、テレビ１００側と対話処理サーバ２００側で、同時に並行処理する場合でも、各タスクの優先度に応じた順番で、各対話処理を制御することが可能となる。
【０１１２】
例えば、上記実施の形態で説明したように、テレビ１００側で、優先度が１番目のタスクであるテレビ１００の基本操作に関する対話処理と、優先度が３番目のタスクである番組情報検索に関する対話処理が行われ、同時に、対話処理サーバ２００側で、優先度が２番目のタスクであるエアコン操作に関する対話処理と、優先度が４番目のタスクであるインターネットの一般情報検索に関する対話処理が並行処理される場合を考える。この場合、ネットワーク環境等の影響で、対話処理サーバ２００からのエアコン操作の対話処理結果の応答が遅くなったとしても、タスクの優先度から決められた動作スケジュールに基づいて各対話処理の動作が制御される。そのため、優先度の低いテレビ１００側の番組情報検索に関する対話処理の結果ではなく、優先度の高いサーバ２００側のエアコンの操作に関する対話処理の結果を先に実行させることが可能である。
【０１１３】
即ち、優先度の高いタスクの対話処理をサーバ側で、優先度の低いタスクの対話処理を機器側で同時に並行処理される場合、ネットワーク環境等の影響で、サーバからの処理結果の応答が遅くても、優先度に応じて、機器側の処理結果ではなく、サーバ側の処理結果を実行させることが可能となる。
【０１１４】
（実施の形態２）
実施の形態２では、上記実施の形態１に係る音声認識システムの変形例について説明する。
【０１１５】
図６は、実施の形態２に係る音声認識システムの構成を示すブロック図である。
【０１１６】
本実施の形態の対話処理制御システムは、実施の形態１の対話処理制御システムと、ほぼ同様の構成であり、実施の形態１の対話処理制御システムの構成要素である機器１００において、さらに機器状態管理部１９が設けられていることのみが異なる。このため、実施の形態２の対話処理制御システムでは、実施の形態１の対話処理制御システムと共通する構成については実施の形態１と同様の符号が付されている。
【０１１７】
以下では、実施の形態１と異なる構成についてのみ説明して、実施の形態１と共通する構成については説明を省略する。
【０１１８】
実施の形態２の対話処理制御システムにおける機器状態管理部１９は、機器１００の状態を管理する。なお、機器１００の状態とは、対話処理サーバ２００との接続の状態、機器制御部１０により操作可能な機器１００の状態及び、外部機器制御部１２により操作可能な外部機器１０１の状態である。例えば、機器１００をテレビとすると、機器制御部１０により操作可能な機器の状態とは、テレビの選局、音量、画面出力の状態等である。また、外部機器１０１をエアコンとすると、外部機器制御部１２により操作可能な機器の状態とは、テレビとエアコンの接続状態およびエアコンの動作状態（電源、モード、設定温度）等である。
【０１１９】
また、対話タスク管理部８は、タスク優先度記憶部７に記憶されている各タスクの優先度と機器状態管理部１９に管理されている現在の機器１００の状態に基づいて、機器１００の第１対話処理部５および第２対話処理部６、ならびに対話処理サーバ２００の第３対話処理部２３および第４対話処理部２４の動作スケジュールを決定する。なお、各対話処理部の動作スケジュールは、実施の形態１と同様に、機器１００及び対話処理サーバ２００の各対話処理部５、６、２３、２４をどの順番で、どのように動作させるかを定義する。
【０１２０】
このように、実施の形態２において、実施の形態１の構成が異なるポイントは、対話タスク管理部８が第１〜第４対話処理部の動作スケジュールを決定する際に、タスク優先度記憶部７に記憶されている各タスクの優先度だけでなく、機器状態管理部１９で管理されている機器１００の状態を用いることである。
【０１２１】
そこで、以下、実施の形態２の対話処理制御システムにおいて、対話タスク管理部８が、機器１００の状態に応じて、各対話処理部の動作スケジュールを更新する場合の動作を説明する。なお、以下では、具体的に説明するために、実施の形態１同様に、機器１００をテレビ、外部機器１０１をエアコンとする。よって、第１対話処理部５のタスクは、テレビのチャンネル選局または音量調整等の基本操作タスクとし、その対話ルールは図３に示される。第２対話処理部６のタスクは、番組表の番組情報検索とする。また、第３対話処理部２３のタスクは、エアコンの電源操作または温度設定等の操作タスクとし、その対話ルールは図２に示される。第４対話処理部２４のタスクは、天気予報およびニュース等の一般的なインターネットの情報検索タスクとする。
【０１２２】
図７は、実施の形態２において、対話タスク管理部８が各対話処理部の動作スケジュールを更新する際の処理の流れを示すフローチャートである。
【０１２３】
以下、図７を用いて、対話タスク管理部８の動作を説明する。
【０１２４】
対話タスク管理部８は、まず、機器状態管理部１９が管理している現在のテレビ１００の状態を取得する（Ｓ３１）。次に、対話タスク管理部８は、取得したテレビ１００の状態を用いて、テレビ１００が対話処理サーバ２００とネットワーク接続され、利用できるかどうかを確認する（Ｓ３２）。確認した結果、対話処理サーバ２００が利用可能である場合（Ｓ３２でＹの場合）には、対話タスク管理部８は、タスク優先度記憶部７から第４対話処理部２４が処理するインターネットによる一般的な情報検索タスクの優先度“４”を取得する（Ｓ３３）。
【０１２５】
次に、対話タスク管理部８は、同様に、取得したテレビ１００の状態を用いて、テレビ１００から外部機器であるエアコン１０１が制御可能であるかどうかを確認する（Ｓ３４）。確認した結果、エアコン１０１が制御可能である場合（Ｓ３４でＹの場合）には、対話タスク管理部８は、タスク優先度記憶部７から第３対話処理部２３が処理するエアコン１０１の操作タスクの優先度“２”を取得し（Ｓ３５）、処理が次（Ｓ３６）へ進む。つまり、対話タスク管理部８は、制御可能であるかを示す制御可能性に応じて、優先度を取得する。
【０１２６】
一方で、例えば、テレビ１００がネットワークに接続されていない、または、対話処理サーバ２００がシステムダウンしている等の理由により、対話処理サーバ２００が利用可能でない場合（Ｓ３２でＮの場合）には、対話タスク管理部８は、第４対話処理部２４のタスクの優先度を取得せずに、処理が次（Ｓ３６）へ進む。同様に、テレビ１００とエアコン１０１がネットワーク接続されていない、または、エアコン１０１が故障している等の理由により、テレビ１００からエアコン１０１が制御できない場合（Ｓ３４でＮの場合）には、対話タスク管理部８は、第３対話処理部２３のタスクの優先度を取得せずに、処理が次（Ｓ３６）へ進む。
【０１２７】
処理（Ｓ３６）では、対話タスク管理部８は、タスク優先度記憶部７に記憶されている第１対話処理部５が処理するテレビ１００の基本操作タスクの優先度“１”及び、第２対話処理部６が処理するテレビ１００の番組情報検索タスクの優先度“３”を取得する。
【０１２８】
そして、対話タスク管理部８は、テレビ１００の状態に応じて取得できた各タスクの優先度に基づいて、各対話処理部の動作スケジュールを更新する（Ｓ３７）。
【０１２９】
最後に、対話タスク管理部８は、テレビ１００の状態に応じて、動作スケジュールが更新されたことを対話処理制御部９に通知する（Ｓ３８）。
【０１３０】
以上までが、実施の形態２において、対話タスク管理部８が各対話処理部の動作スケジュールを更新する処理の動作フローの説明である。
【０１３１】
さて、実施の形態２の対話処理制御システムでは、テレビ１００の状態によって更新された動作スケジュールに基づいて、各対話処理部の動作が対話処理制御部９によって制御される。但し、テレビ１００と対話処理サーバ２００、エアコン１０１が正常に接続されている場合には、ユーザが音声コマンドを発話したときのシステムの動作フローは、図５に示す実施の形態１と同様になる。
【０１３２】
しかし、例えば、対話処理サーバ２００は利用できるが、テレビ１００からエアコン１０１を制御できない場合には、動作スケジュールは、第３対話処理部２３のタスクの優先度を除いて、第１対話処理部５、第２対話処理部６及び第４対話処理部２４が処理するタスクの優先度に基づいて決定される。つまり、動作スケジュールは、まず、テレビ１００の基本操作タスクの対話処理を行い、次に、番組情報検索タスクの対話処理を行い、最後にインターネットを用いた一般情報検索タスクの対話処理を行うように、対話タスク管理部８によって更新される。
【０１３３】
よって、この場合のシステムの動作フローは、図５の動作フローから、第３対話処理部２３に関する処理（Ｓ５、Ｓ８〜Ｓ１０）を省いた図８に示す動作フローとなる。
【０１３４】
また、対話処理サーバ２００が利用できない場合には、動作スケジュールは、第３対話処理部２３、第４対話処理部２４のタスクの優先度を除いて、第１対話処理部５、第２対話処理部６が処理するタスクの優先度に基づいて決定される。つまり、動作スケジュールは、まず、テレビ１００の基本操作タスクの対話処理を行い、次に、番組情報検索タスクの対話処理を行うように、対話タスク管理部８によって更新される。
【０１３５】
よって、この場合のシステムの動作フローは、図５の動作フローから、第３対話処理部２３に関する処理（Ｓ５、Ｓ８〜Ｓ１０）、第４対話処理部２４に関する処理（Ｓ１２、Ｓ１６〜Ｓ１９）を省いた図９に示す動作フローとなる。
【０１３６】
以上説明したように、実施の形態１同様に、本開示の実施の形態２に係る対話処理制御システムも、対話処理制御部９が、対話タスク管理部７から得られる動作スケジュールに基づいて、テレビ１００の第１対話処理部５、第２対話処理部６及び、対話処理サーバ２００の第３対話処理部２３、第４対話処理部２４の動作を制御する。但し、実施の形態２では、実施の形態１の構成に、新たに追加された機器状態管理部１９が、テレビ１００の状態、例えば、対話処理サーバ２００との接続状態および外部機器であるエアコン１０１との接続状態またはエアコン１０１の動作状態を管理し、対話タスク管理部８は、タスク優先度記憶部７に記憶されている各タスクの優先度に加えて、テレビ１００の状態に基づいて、テレビ１００の第１対話処理部５、第２対話処理部６及び、対話処理サーバ２００の第３対話処理部２３、第４対話処理部２４の動作スケジュールを決定する。
【０１３７】
これにより、テレビ１００の状態、具体的には、対話処理サーバ２００との接続状態、エアコン１０１との接続状態またはエアコン１０１の動作状態に応じて、テレビ１００および対話処理サーバ２００の各対話処理部の動作スケジュールを動的に変更することが可能となる。例えば、テレビ１００からエアコン１０１が制御できない場合には、動作スケジュールは、対話処理制御部９により、第３対話処理部２３の対話処理が実行されないように更新される。同様に、対話処理サーバ２００が利用できない場合には、動作スケジュールは、第３対話処理部２３、第４対話処理部２４の対話処理が実行されないように更新される。従って、テレビ１００の状態に応じて、システム全体として、無駄な対話処理を行わない、即ち、最適な対話処理を行うことができ、システム全体の処理時間を短縮することができる。
【０１３８】
なお、上記各実施の形態において、機器１００にネットワーク接続された外部機器１０１は１台として説明したが、複数の外部機器（例えば、エアコンと照明等）が接続されていてもよい。この場合、第３対話処理部２３の対話ルールには、複数の外部機器の操作コマンドと、対話処理の結果である制御情報および応答情報の対応関係が記述されている。例えば、外部機器がエアコンと照明の場合には、図２に示す対話ルールに、照明の操作コマンド、例えば、「電気をつけて」、「照明を消して」等が追加される。また、外部機器制御部１２は、第３対話処理部２３から出力された制御情報に基づいて、複数の外部機器を制御する。
【０１３９】
また、上記各実施の形態において、第１対話処理部５のタスクを機器１００の基本操作、第２対話処理部６のタスクを機器１００に関連する情報検索、第３対話処理部２３のタスクを外部機器１０１の操作、第４対話処理部２４のタスクがインターネットの情報検索タスクと設定されるとしたが、機器１００における第１対話処理部５と第２対話処理部６のタスクが異なれば、上記タスク以外のタスクが設定されてもよい。例えば、第３対話処理部２３のタスクが機器１００の基本操作タスク以外の機器１００の操作タスクに設定されてもよい。機器１００をテレビとするならば、第１対話処理部５は、図３の対話ルールに示したような基本操作タスクを行い、第３対話処理部６は、字幕表示、ヘルプ表示、映像／音声モードの選択等の操作タスクを設定してもよいし、また、基本操作タスクを含むテレビ全体の操作タスクを設定してもよい。但し、これらのタスクの優先度は、予め、タスク優先度記憶部７に記憶されている必要がある。
【０１４０】
また、上記各実施の形態において、タスク優先度記憶部７において、機器１００の基本操作タスクを優先度１、機器関連情報の検索タスクを優先度３、対話処理サーバ２００の外部機器操作タスクは優先度２、インターネットによる一般的な情報検索タスクは優先度４と設定されるとしたが、上記以外の優先度が設定されてもよい。
【０１４１】
また、上記各実施の形態において、対話処理サーバ２００は、２つの対話処理部（第３対話処理部２３、第４対話処理部２４）を備えているが、対話処理部は少なくとも１つ以上あればよい。また、対話処理サーバ２００は、音声認識部２２を備えているが、対話処理サーバ２００と異なるサーバである音声認識サーバが用意され、この音声認識サーバが音声認識部２２を備えるようにしてもよい。
【０１４２】
（実施の形態３）
（本開示に至った経緯）
一般的に、機器操作に関する対話処理は、発話理解処理と応答生成処理の２つの処理を含む。発話理解処理は、音声認識処理から得られた認識文字列を解析することによって、認識文字列からユーザが意図した機器の操作内容を特定する。また、応答生成処理は、特定された操作内容に基づいて、操作対象機器を制御するための制御情報およびユーザへの応答情報を生成する。
【０１４３】
さて、前述したように、従来のクライアント・サーバ型の音声認識システムでは、ユーザが発話した音声認識結果である認識文字列から操作対象の機器の動作を特定する対話処理を機器側で行うため、機器の計算能力またはメモリ容量等の制限によって、対話処理、特に、発話理解処理で扱える操作コマンドの数および発話パターン（言い回し）の数が限定されるという課題があった。
【０１４４】
そこで、音声認識処理と同様に、発話理解処理においても、クラウドサーバ上で発話理解処理を行うことにより、大規模な語彙数（操作コマンドの数および発話パターンの数等）を処理できるようにする方法が提案されている。
【０１４５】
しかし、クラウドサーバ上で音声認識が行われる場合と同様に、クラウドサーバ上で発話理解処理が行われる場合、ネットワークの通信環境が悪い場合または、複数の機器からサーバにアクセスが集中した場合には、サーバからの応答速度は、機器内で処理する場合に比べ、かなり遅くなるという問題がある。
【０１４６】
よって、上記問題を解決する方法としては、発話理解処理できる語彙数は少ないが、迅速な応答が求められるタスクに対しては、機器内で対話処理（発話理解処理と応答生成処理）を行い、一方、応答速度が遅くても、発話理解処理が可能な語彙数が大規模であることが要求されるタスクに対しては、クラウドサーバ上で発話理解処理を行った後、機器側で応答生成処理を行う分散型の対話処理を実施するクライアント・サーバ型の対話処理システムが考えられる。また、このようなシステムでは、サーバからの応答時間を短くするために、通常、認識文字列を機器とサーバの発話理解処理にほぼ同時に入力し、発話理解処理の最終的な結果を得るまでの時間を短くするようにしている。
【０１４７】
ところで、最近の音声認識機器または音声認識システムでは、音声認識の結果である認識文字列に対し、複数の異なるタスクを処理する対話処理が行われることが多い。例えば、まず、認識文字列が、操作対象機器の操作コマンド（機能）か、アプリケーションかどうかが判定され、操作コマンドである場合には、対応する機器操作が実行される。そうでない場合には、アプリマーケットで、認識文字列を検索キーワードとしたアプリ検索が行われ、その結果がユーザに提示される。つまり、機器操作タスクとアプリ検索タスクの２つの異なるタスクを処理する対話処理が行われている。
【０１４８】
なお、機器内だけで、上記複数の異なるタスクに対する対話処理（発話理解処理と応答生成処理）が行われている。前述したように、大規模な語彙数を対話処理、特に発話理解処理を行うためには、クライアント・サーバ型のシステムを利用することが望ましい。
【０１４９】
しかしながら、複数の異なるタスクに対して、機器内だけで行われる対話処理と機器側とサーバ側の双方で対話処理を行われる分散型の対話処理を併用した場合、機器内の対話処理の結果と、分散型の対話処理（サーバ側で発話理解処理を行った後、機器側で応答生成処理を行う処理）の結果のうち、どちらの結果を優先的に処理するかを決定する必要がある。単純に、先に有効な結果を得られた方を処理するという方法もあるが、機器内の対話処理と分散型の対話処理が扱う各タスクの優先度が異なる場合には、一概に、その方法が良いとは限らない。
【０１５０】
例えば、優先度が異なる３つのタスクがあるとする。優先度が１番目のタスクと３番目のタスクに対しては、それぞれ機器側で対話処理が行われ、２つの対話処理が連続して行われるとする。また、優先度が２番目のタスクについては、サーバ側で発話理解処理が行われ、機器側で応答生成処理が行われる分散型対話処理が行われるようにシステムが構築されるとする。この場合、優先度が高い順番に対話処理の結果が実行されることが望まれるが、ユーザの発話内容またはネットワーク環境等により、サーバ側の発話理解処理に時間がかかり、分散型対話処理より、機器側の２つの対話処理のほうが短時間に終わる場合がある。つまり、優先度３番目のタスクが機器側で先に実行されてしまい、分散型対話処理を行った優先度２番目のタスクが実行されないという問題が生じる。
【０１５１】
以下、上記問題を、具体的に、機器をテレビとして説明する。ここで、優先度１番目のタスクをテレビのチャンネル選局または音量調整等のテレビの基本操作とし、また、優先度２番目のタスクをテレビとネットワーク接続されている外部機器の操作、例えば、エアコンまたは照明等の機器操作とする。また、優先度３番目のタスクを、テレビに関する情報検索、例えば、番組名または出演者名による番組情報検索とする。このとき、システムとしては、テレビ側で、優先度１番目のテレビの基本操作及び、優先度３番目のテレビに関する情報検索に関する対話処理が行われるとする。また、優先度２番目の外部機器操作については、サーバ側で発話理解処理が行われ、テレビ（機器）側で応答生成処理が行われる分散型対話処理が行われるとする。なお、サーバ側で、外部機器操作の発話理解処理を行う理由は、様々な機器の多様な操作コマンドに対して処理できるようにするためである。
【０１５２】
上記システムにおいて、例えば、ユーザが、「エアコンをつけて」と発話したとする。正しく音声認識されたなら、次に、認識文字列「エアコンをつけて」は、テレビ側の対話処理及び、サーバ側の発話理解処理に同時に入力される。テレビ側では、まず、テレビの基本操作タスクの対話処理が行われ、認識文字列が、テレビの基本操作コマンドかどうかが確認される。認識文字列「エアコンをつけて」は、テレビの基本操作コマンドに含まれないので、次に、テレビに関する情報検索タスクの対話処理が行われる。つまり、認識文字列「エアコンをつけて」を検索キーワードとした情報検索（例えば、番組表検索またはインターネット検索等）が行われる。
【０１５３】
一方、サーバ側では、外部機器の操作タスクの発話理解処理が行われ、認識文字列が、テレビに接続されている外部機器、例えば、エアコンおよび照明等の操作コマンドかどうかが解析される。解析の結果、認識文字列「エアコンをつけて」は、「エアコンの電源ＯＮ操作」として操作内容が特定されるので、サーバからテレビに対し、「エアコンの電源ＯＮ操作」という操作内容を示すための情報が送信される。
【０１５４】
このとき、システム全体としては、優先度２番目の外部機器の操作タスクであるエアコンの電源ＯＮ操作が、優先度３番目のテレビに関する情報検索タスクより、先に実行されるべきである。しかし、前述したように、ネットワーク環境等により、サーバ側の外部機器の操作タスクの発話理解処理よりも、機器側の２つの対話処理（テレビの基本操作タスクとテレビに関する情報検索タスク）のほうが短時間に終わる可能性がある。即ち、ネットワーク環境によっては、「エアコンをつけて」をキーワード検索した結果の表示が、エアコンの電源をつける操作よりも、先に実行される可能性があり、ユーザの思い通りに機器を操作することができないという課題が生じる。
【０１５５】
従って、本開示は、優先度の異なる複数のタスクに対し、機器内だけで行う対話処理と機器側とサーバ側の双方で対話処理を行う分散型の対話処理が併用される場合に、各タスクの優先度に基づいた最適な対話処理制御が行える情報処理装置および情報処理方法を提供することを目的とする。
【０１５６】
上記目的を達成するために、本開示の一態様に係る情報処理装置として動作する対話処理制御装置は、音声認識処理により得られるテキストデータである音声認識結果を取得する音声認識結果取得部と、前記音声認識結果に基づく複数の対話処理によりそれぞれ特定される複数のタスクの各々にそれぞれ対応する優先度を取得する優先度取得部と、互いに異なる前記複数の対話処理を複数の装置に分散実行させ、かつ、前記優先度に基づいて、前記対話処理の分散実行により特定されるタスクに応じた制御情報を、当該制御情報に基づいて動作する実行部へ提供する対話処理制御部とを備え、前記複数の装置は、前記対話処理制御装置および前記対話処理制御装置と通信を介して接続される外部装置を含み、前記音声認識結果に基づいて前記対話処理を行う対話処理部と、前記優先度を記憶するタスク優先度記憶部とを備え、前記優先度取得部は、前記タスク優先度記憶部に記憶されている前記優先度を取得し、前記対話処理制御部は、前記音声認識結果を前記対話処理部および前記外部装置に提供し、前記優先度に基づいて、前記対話処理部または前記外部装置が行った前記対話処理より得た前記制御情報を前記実行部に提供し、前記対話処理は、少なくとも、前記制御情報を生成する対話理解処理を有し、前記外部装置は、前記対話理解処理を行う対話処理部を有し、前記対話処理部は、前記制御情報に基づいて応答情報を生成する応答生成部と、前記対話理解処理を行う対話理解部とを有する。
【０１５７】
例えば、本構成では、タスク優先度記憶部７に記憶された各タスクの優先度に基づいて、対話タスク管理部８が、各タスクに対し、機器側の対話処理部、応答生成部及び、発話理解処理サーバの発話理解処理の動作スケジュールを決定する。そして、その動作スケジュールに基づいて、対話処理制御部９が、機器側の各対話処理部、応答生成部及び、発話理解処理サーバ側の発話理解処理の動作を制御する。これにより、優先度の異なる複数の異なるタスクに対して、機器内だけで行う対話処理と機器側とサーバ側の双方で行われる分散型の対話処理が併用される場合でも、各タスクの優先度に応じた順番で、各対話処理を制御することが可能となる。即ち、優先度の高いタスクの発話理解処理がサーバ側で、優先度の低いタスクの対話処理が機器側で並行処理される場合、ネットワーク環境等の影響で、サーバからの発話理解処理の結果の応答が遅くても、優先度に応じて、機器側の対話処理の結果ではなく、機器側とサーバ側で分散処理した対話処理の結果を実行させることが可能となる。
【０１５８】
また、例えば、本開示の別の一形態に係る対話処理制御装置は、さらに、前記実行部により制御される被制御装置の状態を管理する機器状態管理部を備え、前記優先度取得部は、前記機器状態管理部で管理されている前記状態に基づいて、前記優先度を取得する。
【０１５９】
例えば、この構成においても、被制御装置一例である対話処理制御部９は、対話タスク管理部８から得られる動作スケジュールに基づいて、機器側の各対話処理部、応答生成部及び、発話理解処理サーバの発話理解処理の動作を制御する。但し、本構成では、機器状態管理部１９が、機器の状態を管理し、対話タスク管理部８は、タスク優先度記憶部７に記憶されている各タスクの優先度に加えて、前記機器の状態に基づいて、機器側の各対話処理部、応答生成部及び、発話理解処理サーバの発話理解処理の動作スケジュールを決定する。これにより、操作対象の機器の状態に応じて、機器の対話処理、応答生成処理及び、発話理解処理サーバの発話理解処理の動作スケジュールを動的に変更することが可能となる。つまり、機器の状態に応じて、最適な処理を行うことができ、全体の処理時間を短縮することができる。
【０１６０】
図１０は、実施の形態３に係る対話処理制御システムの構成を示すブロック図である。
【０１６１】
図１０に示すように、対話処理制御システムは、音声による操作対象の機器１００及び、機器１００に、有線ＬＡＮ／無線ＬＡＮ等でネットワーク接続された外部機器１０１と、クラウド上で音声認識処理を行う音声認識処理サーバ３００と、同様に、クラウド上で対話処理の一部である発話理解処理を行う発話理解処理サーバ４００を備える。例えば、機器１００をテレビとすれば、外部機器１０１は、テレビにネットワーク接続された全ての機器、つまり、ＨＤＭＩ（登録商標）もしくはＬＡＮで接続されたハードディスクレコーダまたはＡＶアンプ等の従来のＡＶ機器に加え、エコネット（登録商標）で接続されたエアコンまたは照明等の白物家電も該当するものとする。
【０１６２】
音声認識処理サーバ３００は、通信部２１、音声認識部２２を備える。通信部２１は、機器１００と、音声または音声認識結果である認識文字列等の情報の送受信を行う。音声認識部２２は、通信部２１を介して入力されたユーザが発話した音声を認識する。そして、音声認識部２２は、音声認識結果である認識文字列を、通信部２１を介して、機器１００に送信する。なお、音声認識部２２は、クラウド上で音声認識処理を行うので、従来例同様に、数十万程度の大規模な語彙を認識することが可能である。また、音声認識部２２において、音声を認識する方法としては、従来のＤＰマッチング法、ＨＭＭ（隠れマルコフモデル）法、Ｎ−Ｇｒａｍ法等が用いられる。音声認識処理サーバ３００は、外部装置に含まれる。
【０１６３】
発話理解処理サーバ４００は、通信部３１、第３発話理解部３２、第４発話理解部３３を備える。通信部３１は、機器１００と、認識文字列、認識文字列に対する発話理解部の処理結果等の情報の送受信を行う。発話理解処理サーバ４００は、外部装置に含まれる。
【０１６４】
第３発話理解部３２及び、第４発話理解部３３は、機器１００から通信部３１を介して入力された認識文字列に対し、予め定められた異なるタスクの発話理解処理を行う。そして、第３発話理解部３２及び、第４発話理解部３３は、発話理解処理の結果を、通信部３１を介して機器１００に送信する。
【０１６５】
本実施の形態では、第３発話理解部３２は、機器１００に接続された外部機器１０１の操作タスクを処理し、第４発話理解部３３は、天気予報およびニュース等のインターネットの一般的な情報検索タスクを処理する。この場合、第３発話理解部３２は、認識文字列が外部機器１０１の操作コマンドのいずれかに該当するかどうかを確認し、該当した場合には、対応する外部機器の操作の内容を具体的に示す情報（操作内容情報）が出力される。また、第４発話理解部３３は、認識文字列から一般的な情報を検索するためのキーワードが抽出され、その検索キーワードを用いたインターネットの検索操作の内容を具体的に示す情報（操作内容情報）が出力される。
【０１６６】
なお、第３発話理解部３２において、認識文字列を発話理解する方法としては、一般的には、認識文字列を形態素解析した後、構文解析することによって、認識文字列を外部機器１０１の操作内容に変換する方法が使われる。但し、単純に、認識文字列と全ての操作コマンドを示す文字列とを照合する方法が用いられてもよい。同様に、第４発話理解部３３において、認識文字列を発話理解する方法として、認識文字列を形態素解析した後、構文解析することによって、認識文字列から検索キーワードを抽出する方法が一般的に使われる。但し、単純に、認識文字列と全ての検索キーワードを含む検索コマンドを示す文字列と照合する方法が用いられてもよい。
【０１６７】
第３発話理解部３２では、外部機器１０１の操作コマンドと発話理解処理の結果である操作内容情報の対応関係が、発話理解ルールとして保持されている。第３発話理解処理部３２の発話理解処理は、この発話理解ルールに基づいて行われる。例えば、外部機器１０１をエアコンとした場合の第３対話処理部３２が用いる発話理解ルールの一例を図１１に示す。図１１に示すように、操作コマンドは、ユーザが外部機器１０１に対して操作を指示する言葉であり、「エアコンをつけて」「冷房にして」等である。
【０１６８】
操作内容は、操作コマンドに対して外部機器１０１が実際に行う操作の内容であり、例えば、操作コマンド「冷房にして」に対応する操作内容は「エアコンの電源をＯＮにし、冷房運転を行う」となる。なお、各操作内容に対し、操作コマンドは複数登録されていてもよい。例えば、図１１では、「エアコンの電源をＯＮにし、自動運転を行う」という操作内容に対して、「エアコンをつけて」「エアコンを入れて」という２つの言葉が登録されている。
【０１６９】
操作内容情報は、操作対象の外部機器１０１の操作内容をパラメータ表現しており、第３発話理解部３２の処理結果として出力される。例えば、図１１の例では、「エアコンをつけて」の発話理解の処理結果として、（Ｄｅｖｉｃｅ：Ａｉｒ  ｃｏｎｄｉｔｉｏｎｅｒ，Ｏｐｅｒａｔｉｏｎ：Ｐｏｗｅｒ  ｏｎ，Ｏｐｅｒａｔｉｏｎ  Ｍｏｄｅ：Ａｕｔｏ）が出力される。
【０１７０】
同様に、第４発話理解部３３の発話理解処理も、発話理解ルールに基づいて行われる。但し、発話理解ルールは一つだけで、その処理の内容は「認識文字列から一般情報を検索するためのキーワードを抽出し、その検索キーワードを用いて、インターネット情報を検索する」である。操作内容情報は、この検索操作の内容をパラメータ表現しており、例えば、認識文字列が「東京の天気」の場合は、（Ｏｐｅｒａｔｉｏｎ：Ｓｅａｒｃｈ Ｉｎｔｅｒｎｅｔ，Ｉｎｆｏｒｍａｔｉｏｎ：Ｗｅａｔｈｅｒ．Ａｒｅａ：Ｔｏｋｙｏ）となり、第４発話理解部３３の処理結果として出力される。
【０１７１】
機器１００は、収音部１、認識制御部２、音声認識部３、通信部４、第１対話処理部５、第２対話処理部６、タスク優先度記憶部７、対話タスク管理部８、対話処理制御部９、機器制御部１０、外部機器制御部１２、機器関連情報検索部１１、一般情報検索部１３、ＧＵＩ出力部１４、画面表示部１５、音出力部１６、第３応答生成部１７、第４応答生成部１８を備える。
【０１７２】
また、第１対話処理部５は、第１発話理解部５１、第１応答生成部５２を備え、第２対話処理部６は、第２発話理解部６１、第２応答生成部６２を備える。
【０１７３】
以下、機器１００の構成を詳しく説明する。
【０１７４】
収音部１は、マイクであり、ユーザが発話した音声を入力する。認識制御部２は、収音部１で入力された音声を機器側の音声認識部３に出力するとともに、音声認識処理サーバ３００の音声認識部２２にも通信部４を介して出力する。そして、認識制御部２は、音声認識部３または音声認識部２２から得られた音声認識結果に基づいて、認識文字列を決定する。音声認識部３は、認識制御部２から入力されたユーザの発話音声を認識し、音声認識結果として、認識制御部２に認識文字列を出力する。通信部４は、音声認識処理サーバ３００と、音声および認識文字列等の情報の送受信を行う。また、通信部４は、発話理解処理サーバ４００と、認識文字列および発話理解の処理結果等の情報の送受信を行う。なお、音声認識部３は、機器内で音声認識処理を行うので、数百程度の小規模な語彙しか認識できないが、音声認識処理サーバ３００の音声認識部２２に比べると、応答速度はかなり速い。また、音声認識部３において、音声を認識する方法としては、従来のＤＰマッチング法、ＨＭＭ（隠れマルコフモデル）法、Ｎ−Ｇｒａｍ法等が用いられる。
【０１７５】
第１対話処理部５及び、第２対話処理部６は、認識制御部２で決定された認識文字列に基づいて、予め定められた異なるタスクの対話処理を行う。本実施の形態では、第１対話処理部は、機器１００の基本操作タスクを処理し、第２対話処理部は、機器１００に関連する情報検索タスクを処理する。
【０１７６】
この場合、第１対話処理部５では、まず、第１発話理解部５１が、入力された認識文字列が、機器１００の基本操作コマンドのいずれかに一致するかどうかを確認し、一致した場合には、対応する機器操作の内容を具体的に示す情報（操作内容情報）を出力する。次に、第１発話理解部５１から出力された操作内容情報に基づいて、第１応答生成部５２が対応する機器操作を実行するための制御情報を出力する。
【０１７７】
また、第２対話処理部６でも、第２発話理解部６１が、入力された認識文字列から検索キーワードを抽出し、その検索キーワードを用いた機器関連情報の検索操作の内容を具体的に示す情報（操作内容情報）を出力する。次に、第２発話理解部６１から出力された操作内容情報に基づいて、第２応答生成部６２は、機器関連情報の検索を実行するための制御情報を出力する。更に、各応答生成部５２、６２は、各制御情報以外に、対話処理の結果をユーザに提示するための応答情報も出力する。
【０１７８】
なお、第１発話理解部５１において、認識文字列を発話理解する方法としては、一般的には、認識文字列を形態素解析した後、構文解析することによって、認識文字列を機器１００の操作内容に変換する方法が使われる。但し、単純に、認識文字列と全ての操作コマンドを示す文字列とを照合する方法が用いられてもよい。同様に、第２発話理解部６１において、認識文字列を発話理解する方法として、認識文字列を形態素解析した後、構文解析することによって、認識文字列から機器関連情報を検索するためのキーワードを抽出する方法が一般的に使われる。但し、単純に、認識文字列と全ての検索キーワードを含む検索コマンドを示す文字列と照合する方法が用いられてもよい。
【０１７９】
第１対話処理部５の第１発話理解部５１では、機器１００の操作コマンドと発話理解処理の結果である操作内容情報の対応関係が、発話理解ルールとして保持されている。第１発話理解部５１の処理は、この発話理解ルールに基づいて行われる。例えば、機器１００をテレビとした場合の第１発話理解部５１が用いる発話理解ルールの一例を図１２に示す。図１２に示すように、操作コマンドは、ユーザが機器１００に対して操作を指示する言葉であり、「テレビをつけて」「番組表」等である。
【０１８０】
操作内容は、操作コマンドに対して機器１００が実際に行う操作の内容であり、例えば、操作コマンド「テレビをつけて」に対応する操作内容は「テレビの電源をＯＮにする」である。なお、各操作内容に対し、操作コマンドは複数登録されていてもよい。例えば、図１２では、「音量を３レベル上げる」という操作内容に対して、「音量を上げて」「音量アップ」という２つの言葉が登録されている。
【０１８１】
操作内容情報は、操作対象の機器１００の操作内容をパラメータ表現しており、第１発話理解部５１の処理結果として出力される。例えば、図１２の例では、テレビに対し「テレビをつけて」の発話理解の処理結果として、（Ｄｅｖｉｃｅ：ＴＶ，Ｏｐｅｒａｔｉｏｎ：Ｐｏｗｅｒ  ｏｎ）が出力される。
【０１８２】
また、第１応答生成部５２では、機器１００の操作内容情報と応答生成処理の結果である機器１００の制御情報および応答情報の対応関係が、応答生成ルールとして保持されている。第１応答生成部５２の処理は、この応答生成ルールに基づいて行われる。ここで、図１２に示した発話理解ルールに対応する応答生成ルールの一例を図１３に示す。
【０１８３】
図１３に示すように、操作内容情報は、図１２の発話理解ルールと同一であり、操作対象の機器１００の操作内容をパラメータ表現している。
【０１８４】
制御情報は、操作対象の機器１００に操作内容を実行させるための機器制御コマンドであり、機器制御部１０に入力される情報である。例えば、図１３の例では、テレビに対し「テレビをつけて」という操作内容を実行させる場合、機器制御部１０に（ＴＶ，Ｏｎ）という機器制御コマンドが入力される。
【０１８５】
応答情報は、操作コマンドが正しく受け付けられた場合に、音声および画面を用いて、ユーザに提示する情報である。例えば、図１３の例では、操作コマンド「テレビをつけて」が受け付けられた場合には、応答情報「テレビをつけます」がユーザに提示される。
【０１８６】
同様に、第２対話処理部６において、第２発話理解部６１の発話理解処理も、発話理解ルールに基づいて行われる。但し、発話理解ルールは一つだけで、その処理の内容は、「認識文字列から機器関連情報を検索するためのキーワードを抽出し、その検索キーワードを用いて、機器関連情報を検索する」である。例えば、機器１００をテレビ、機器関連情報を番組表の番組情報とすると、処理の内容は、「認識文字列から番組情報を検索するためのキーワードを抽出し、その検索キーワードを用いて、番組表から番組情報を検索する」となる。操作内容情報は、この検索操作の内容をパラメータ表現しており、第２発話理解部６１の処理結果として出力される。例えば、認識文字列が「明日のドラマ」の場合は、発話理解の処理結果として、（Ｏｐｅｒａｔｉｏｎ：Ｓｅａｒｃｈ  ＥＰＧ，Ｄａｙ：Ｔｏｍｏｒｒｏｗ，Ｇｅｎｒｅ：Ｄｒａｍａ）が出力される。
【０１８７】
また、第２応答生成部６２の応答生成処理も、応答生成ルールに基づいて行われる。但し、応答生成ルールは一つだけで、その処理の内容は、「操作内容情報に基づいて、機器関連情報の検索を実行するための制御情報と応答情報を生成する」である。例えば、機器１００をテレビ、機器関連情報を番組表の番組情報とした場合には、制御情報は、機器１００の機器関連情報検索部１１に、認識文字列から抽出された検索キーワードを用いて、番組表から番組情報を検索させるための機器制御コマンドであり、応答情報は、「番組表の検索結果を画面に表示します」等である。
【０１８８】
第３応答生成部１７は、発話理解処理サーバ４００の第３発話理解部３２の処理結果に基づいて、予め定められたタスクの応答生成処理を行う。前述したように、本実施の形態では、第３発話理解部３２は、外部機器１０１の操作タスクを処理し、第３応答生成部１７は、外部機器１０１の操作タスクを処理する。即ち、第３応答生成部１７は、第３発話理解部３２から出力された操作内容情報に基づいて、対応する外部機器の操作を実行するための制御情報を出力する。また、第３応答生成部１７は、制御情報以外に、発話理解処理の結果をユーザに提示するための応答情報も出力する。
【０１８９】
第３応答生成部１７では、外部機器１０１の操作内容情報と応答生成処理の結果である外部機器１０１の制御情報および応答情報との対応関係が、応答生成ルールとして保持されている。第３応答生成部１７の処理は、この応答生成ルールに基づいて行われる。ここで、図１１に示した発話理解ルールに対応する応答生成ルールの一例を図１４に示す。
【０１９０】
図１４に示すように、操作内容情報は、図１１の発話理解ルールと同一のものであり、操作対象の外部機器１０１の操作内容をパラメータ表現している。
【０１９１】
制御情報は、操作対象の外部機器１０１に操作内容を実行させるためのネットワークコマンドであり、ネットワークを介して、機器１００から外部機器１０１に送信される。例えば、図１４の例では、エアコンに対し、「エアコンをつけて」という操作内容を実行させる場合（即ち、操作内容情報が“Ｄｅｖｉｃｅ：Ａｉｒ  Ｃｏｎｄｉｔｉｏｎｅｒ，Ｏｐｅｒａｔｉｏｎ：Ｐｏｗｅｒ  Ｏｎ，Ｏｐｅｒａｔｉｏｎ  Ｍｏｄｅ：Ａｕｔｏ”の場合）、機器１００から外部機器１０１に、（Ａｉｒ  ｃｏｎｄｉｔｉｏｎｅｒ，  Ｏｎ，  Ａｕｔｏ）というネットワークコマンドが送信される。
【０１９２】
応答情報は、操作コマンドが正しく受け付けられた場合に、音声または画面を用いて、ユーザに提示される情報である。例えば、図１４の例では、操作コマンド「冷房にして」が受け付けられた場合には、応答情報「冷房をつけます」がユーザに提示される。
【０１９３】
第４応答生成部１８は、発話理解処理サーバ４００の第４発話理解部３３の処理結果に基づいて、予め定められたタスクの応答生成処理を行う。前述したように、本実施の形態では、第４発話理解部２４は、天気予報またはニュース等のインターネットの一般的な情報検索タスクを処理する。即ち、第４応答生成部１８は、第４発話理解部３３から出力された操作内容情報に基づいて、機器１００の一般情報検索部１３に、認識文字列から抽出された検索キーワードによるインターネット情報を検索させるための制御情報を出力する。また、第４応答生成部１８は、制御情報以外に、発話理解処理の結果をユーザに提示するための応答情報も出力する。
【０１９４】
また、第４応答生成部１８の応答生成処理も、応答生成ルールに基づいて行われる。但し、応答生成ルールは一つだけで、その処理の内容は、「操作内容情報に基づいて、インターネットの一般的な情報を検索するための制御情報と応答情報を生成する」である。つまり、制御情報は、機器１００の一般情報検索部１３に、認識文字列から抽出された検索キーワードを用いて、インターネットから情報を検索させるためのネットワークコマンドである。また、応答情報は、例えば、「検索結果を画面に表示します」等である。
【０１９５】
タスク優先度記憶部７には、機器１００の第１対話処理部および第２対話処理部６が処理するタスクならびに、発話理解処理サーバ４００の第３発話理解部３２と機器１００の第３応答生成部１７及び、発話理解処理サーバ４００の第４発話理解部３３と機器１００の第４応答生成部１８が処理するタスクの優先度が記憶されている。本実施の形態では、機器１００の基本操作タスクは優先度１、機器関連情報の検索タスクは優先度３、外部機器操作タスクは優先度２、インターネットによる一般的な情報検索タスクは優先度４というように記憶されているとする。
【０１９６】
対話タスク管理部８は、タスク優先度記憶部７に記憶されている各タスクの優先度に基づいて、機器１００の第１対話処理部５、第２対話処理部６、第３応答生成部１７、第４応答生成部１８、発話理解処理サーバ４００の第３発話理解部３２および第４発話理解部３３の動作スケジュールを決定する。なお、対話処理部及びその構成要素である発話理解部、応答生成部の動作スケジュールは、具体的には、各処理部（対話処理部、発話理解部、応答生成部）をどの順番で、どのように動作させるかを定義し、例えば、図１５に示すように、以下の情報が記述されている。
【０１９７】
各処理部を動作させる順番
各処理部の動作を開始するタイミング
各処理部の処理結果を実行するタイミング
【０１９８】
例えば、対話処理部または発話理解部の動作を開始するタイミングとは、認識文字列が対話処理部または発話理解処理サーバ４００の発話理解部に入力されるタイミングのことを示す。また、対話処理部または応答生成部の処理結果を実行するタイミングとは、対話処理部または応答生成部の処理結果を実行するための制御信号を、その処理結果を実際に実行する各構成要件、例えば、機器制御部１０、外部機器制御部１２、機器関連情報検索部１１、一般情報検索部１３に出力するタイミングのことを示す。
【０１９９】
例えば、第１対話処理部５の処理結果を実行するタイミングとは、機器１００の基本操作タスクを実行するタイミングを示す。また、第２対話処理部６の処理結果を実行するタイミングは、機器関連情報の検索タスクを実行するタイミングを示す。同様に、第３応答生成部１７の処理結果を実行するタイミングは、外部機器１０１の操作タスクを実行するタイミングであり、第４応答生成部１８の処理結果を実行するタイミングは、一般的なインターネットの情報検索タスクを実行するタイミングである。
【０２００】
対話処理制御部９は、対話タスク管理部８で決定された動作スケジュールに基づいて、機器１００の第１対話処理部５、第２対話処理部６、第３応答生成部１７、第４応答生成部１８の動作を制御する。また、対話処理制御部９は、通信部４、３１を介して、発話理解処理サーバ４００の第３発話理解部３２、第４発話理解部３３の動作も制御する。
【０２０１】
具体的には、対話処理制御部９は、動作スケジュールに基づいて、各対話処理部および発話理解サーバ４００の各発話理解部に、認識文字列を入力して、発話理解処理を開始させる処理を行う。また、対話処理制御部９は、動作スケジュールに基づいて、各応答生成部から得られた処理結果を、機器制御部１０、外部機器制御部１２、機器関連情報検索部１１、または、一般情報検索部１３のいずれかに出力する処理を行う。例えば、機器１００における第１対話処理部５の第１応答生成部５２から得られた機器１００を操作するための制御情報は、機器制御部１０に出力される。機器１００における第２対話処理部６の第２応答生成部６２から得られた機器関連情報の検索を実行するための制御情報は、機器関連情報検索部１１に出力される。第３応答生成部１７から得られた外部機器１０１を操作するための制御情報は、外部機器制御部１２に出力される。第４応答生成部１８から得られた一般的なインターネットの情報検索を実行するための制御情報は、一般情報検索部１３に出力される。
【０２０２】
機器制御部１０は、対話処理制御部９から入力された制御情報に基づいて、機器１００の操作を実行する。外部機器制御部１２は、対話処理制御部９から入力された制御情報に基づいて、外部機器の操作を実行する。機器関連情報検索部１１は、対話処理制御部９から入力された制御情報に基づいて、機器に関連する情報の検索を実行する。一般情報検索部１３は、対話処理制御部９から入力された制御情報に基づいて、一般的なインターネットの情報検索タスクを実行する。
【０２０３】
ＧＵＩ出力部１４は、ディスプレイ等の画面表示部１５と、スピーカー等の音出力部１６を備える。画面表示部１５には、機器制御部１０で実行された機器１００の操作結果、外部機器制御部１２で実行された外部機器１０１の操作結果、機器関連情報検索部１１で検索された機器関連情報の検索結果または、一般情報検索部１３で検索された一般的なインターネットの情報検索結果が表示される。同時に、音出力部１６から、画面表示に同期して報知音が出力される。
【０２０４】
また、画面表示部１５は、対話処理制御部９を介して、各応答生成部５２、６２、１７、１８から得られる応答情報を画面出力する。同様に、音出力部１６は、対話処理制御部９を介して、各応答生成部５２、６２、１７、１８から得られる応答情報を音声合成し、応答音声として出力する。
【０２０５】
以下、本実施の形態における対話処理制御システムにおいて、各対話タスクを行うために、ユーザが各タスクに関連する音声コマンドを発話したときのシステムの動作について説明する。なお、以下では、具体的に説明するために、機器１００をテレビ、外部機器１０１をエアコンとする。よって、第１対話処理部５のタスクは、テレビのチャンネル選局および音量調整等の基本操作タスクとし、その発話理解ルール、応答生成ルールは、それぞれ図１２、図１３に示される。第２対話処理部６のタスクは、番組表の番組情報検索とする。また、発話理解処理サーバ４００の第３発話理解部３２と機器１００の第３応答生成部１７が処理するタスクは、エアコンの電源操作および温度設定等の機器操作タスクとし、その発話理解ルール、応答生成ルールは、図１１、図１４に示される。発話理解処理サーバ４００の第４発話理解部３３と機器１００の応答生成部１８が処理するタスクは、天気予報またはニュース等の一般的なインターネットの情報検索タスクとする。
【０２０６】
上記対話処理制御システムにおいて、ユーザが、テレビ１００またはエアコン１０１を音声操作する場合には、テレビ１００の収音部１に向かって、音声コマンドを発話する。例えば、テレビの音量を操作したい場合には、ユーザは、「音量をあげて」と、また、エアコンの温度を下げたい時には、「温度を下げて」等を発話する。同様に、音声による情報検索を行う場合、ユーザは、例えば、番組表から明日放送する予定のドラマの番組名を検索したいときには、「明日のドラマ」等と、インターネットから天気予報を検索したいときには、「東京の天気」等を発話する。
【０２０７】
図１６は、本実施の形態において、テレビ１００の収音部１に、ユーザが音声コマンドを入力したときの処理の流れを示すフローチャートである。以下、図１６を用いて、対話処理制御システムの動作フローを説明する。
【０２０８】
テレビ１００の収音部１は、ユーザが発話した音声を収音し、認識制御部２に出力する（Ｓ４１）。認識制御部２は、収音部１から入力された音声に対し、テレビ１００の音声認識部３及び、音声認識処理サーバ３００の音声認識部２２で音声認識処理を行い、それらの音声認識結果に基づいて、認識文字列を求める（Ｓ４２）。具体的には、以下の一連の動作が行われる。
【０２０９】
認識制御部２は、収音部１から入力された音声を、音声認識部３に出力する。また、同時に、認識制御部２は、収音部１から入力された音声を、テレビ１００の通信部４から音声認識処理サーバ３００の通信部２１を介して、音声認識処理サーバ３００の音声認識部２２にも出力する。
【０２１０】
音声認識部３は、入力された音声を認識し、その音声認識結果を認識制御部２に出力する。同様に、音声認識処理サーバ３００の音声認識部２２は、入力された音声を認識し、その音声認識結果を音声認識処理サーバ３００の通信部２１からテレビ１００の通信部４を介して、認識制御部２に出力する。通常、テレビ１００の音声認識部３の音声認識結果は、音声認識処理サーバ３００の音声認識部２２の音声認識結果より先に得られるので、認識制御部２は、まず、音声認識部３の音声認識結果を確認する。音声認識部３が認識に成功したなら、認識制御部２は、その音声認識結果である文字列を対話処理制御部９に出力する。もし、音声認識部３が認識に失敗したなら、認識制御部２は、次に、音声認識処理サーバ３００の音声認識部２２の音声認識結果を確認する。音声認識部２２が認識に成功したなら、認識制御部２は、その音声認識結果である文字列を対話処理制御部９に出力する。逆に、認識に失敗したなら、認識制御部２は、ユーザに対し、認識に失敗したことをＧＵＩ出力部１４の画面表示部１５、音出力部１６を用いて提示し、ユーザに再発声を促す。
【０２１１】
対話処理制御部９は、認識制御部２から認識文字列を受信すると、まず、対話タスク管理部９から対話処理を行う各処理部の動作スケジュールを取得する（Ｓ４３）。即ち、対話処理制御部９は、各対話処理部５、６、各応答生成部１７、１８、発話理解サーバ３００の各発話理解部３２、３３の動作スケジュールを取得する。なお、前述したように、動作スケジュールは、予め、タスク優先度記憶部７に記憶されている各対話処理のタスクの優先度に基づいて対話タスク管理部８で決定され、例えば、図１５に示すような、各対話処理部５、６、各応答生成部１７、１８、各発話理解部３２、３３の動作を規定する情報である。ここでは、図１５の動作スケジュールを用いて以下の動作を説明する。
【０２１２】
対話処理制御部９は、取得した動作スケジュールに従って、まず、テレビ１００の第１対話処理部５に、認識制御部２から得られた認識文字列を入力する（Ｓ４４）。また、対話処理制御部９は、ほぼ同時に、認識文字列を、テレビ１００の通信部４から発話理解処理サーバ４００の通信部３１に送信し、発話理解処理サーバ４００の第３発話理解部３２に入力する（Ｓ４５）。
【０２１３】
第１対話処理部５では、テレビ１００の基本操作タスクの対話処理を行い、その処理結果を対話処理制御部９に出力する。
【０２１４】
以下、第１対話処理部５の動作を詳しく説明する。第１対話処理部５では、まず、認識文字列は、第１発話理解部５１に入力され、発話理解処理が行われる。前述したように、第１発話理解部５１の処理は、図１２に示す発話理解ルールに基づいて行われる。つまり、第１発話理解部５１は、入力された認識文字列が、発話理解ルールに記述されているテレビの機器操作コマンドのいずれかに該当するかどうかを確認し（Ｓ４６）、該当した場合（Ｓ４６でＹの場合）には、その操作コマンドに対応する機器操作の内容を具体的に示す情報（操作内容情報）を出力する。そして、第１発話理解部５１から出力された操作内容情報は、第１応答生成部５２に入力され、応答生成処理が行われる。前述したように、第１応答生成部５２の処理は、図１３に示す応答生成ルールに基づいて行われる。即ち、第１応答生成部５２は、入力された操作内容情報に対応する制御情報と応答情報を読みだして、対話処理制御部９に出力する。
【０２１５】
逆に、入力された認識文字列が機器操作コマンドと一致しない場合（Ｓ４６でＮの場合）には、第１発話理解部５１は、入力された認識文字列が、テレビ１００の基本操作コマンドではないと判定し、発話理解処理リジェクトの情報を対話処理制御部９に出力する。
【０２１６】
第１対話処理部５で対話処理が成功した場合には、対話処理制御部９は、動作スケジュールに基づいて、第１対話処理部５の対話処理の結果であるテレビ１００の機器操作コマンドを実行する（Ｓ４７）。具体的には、対話処理制御部９は、第１対話処理部５から得られた制御情報を機器制御部１０に出力し、また、応答情報をＧＵＩ出力部１４の画面表示部１５または音出力部１６に出力する。機器制御部１０は、対話処理制御部９から入力された制御情報に基づいて、テレビ１００の操作を実行する。また、機器制御部１０は、画面表示部１５または音出力部１６を介して、対話処理制御部９から入力された応答情報をユーザに提示するとともに、機器制御部１０で実行されたテレビ１００の操作結果をユーザに提示する。なお、処理フローとしては、ここで処理が開始ポイント（Ａ）に戻り、ユーザの再発声が待たれる。
【０２１７】
以下、テレビ１００の基本操作タスクに関する対話処理の動作フローについて、具体例で説明する。
【０２１８】
例えば、ユーザが、収音部１に対して、「２チャンネルに変えて」と発話し、音声認識部３が音声認識に成功した場合には、認識文字列“２チャンネルに変えて”が、第１対話処理部５に入力される（Ｓ４４）。第１対話処理部５は、入力された認識文字列に対し、テレビ１００の基本操作タスクに関する対話処理を行う。認識文字列“２チャンネルに変えて”は、まず、第１発話理解部５１に入力され、図１２の発話理解ルールに基づいた発話理解処理が行われる。認識文字列“２チャンネルに変えて”は、図１２の発話理解ルールに記述された操作コマンドと一致するので（Ｓ４６でＹ）、操作内容は、（２チャンネルを選局）と判断され、対応する操作内容情報（Ｄｅｖｉｃｅ：ＴＶ，Ｏｐｅｒａｔｉｏｎ：Ｓｅｌｅｃｔ ２  ｃｈａｎｎｅｌ）が第１応答生成部５２に出力される。第１応答生成部５２では、（２チャンネルを選局）に対応する操作内容情報が入力されると、図１３の応答生成ルールから対応する制御情報(ＴＶ，Ｏｎ，Ｓｅｌｅｃｔ  ２  ｃｈａｎｎｅｌ)と応答情報“２チャンネルにします”が読み出されて、対話処理制御部９に出力される。
【０２１９】
次に、対話処理制御部９は、受信した制御情報(ＴＶ，Ｏｎ，Ｓｅｌｅｃｔ  ２  ｃｈａｎｎｅｌ)を機器制御部１０に出力する（Ｓ４７）。また、対話処理制御部９は、応答情報“２チャンネルにします”を画面表示部１５または音出力部１６に出力する。機器制御部１０は、受信した制御情報に基づいて、テレビ１００のチャンネルを２チャンネルに変更する。また、画面表示部１５または音出力部１６は、応答情報“２チャンネルにします”を画面にテキスト表示または、音声合成音で音声出力した後、２チャンネルの放送番組を再生する。
【０２２０】
以上までが、テレビ１００の基本操作タスクに関する対話処理の動作フローの具体例の説明である。
【０２２１】
ところで、第１対話処理部５の対話処理が失敗した場合、つまり、対話処理制御部９が第１対話処理部５から発話理解処理リジェクトの情報を受信した場合（Ｓ４６でＮの場合）には、対話処理制御部９は、動作スケジュールに基づき、発話理解処理サーバ４００の第３発話理解部３２から送信される発話理解処理の結果を受信する（Ｓ４８）。
【０２２２】
なお、通常、テレビ１００内の第１対話処理部５の対話処理は、発話理解処理サーバ４００で行う第３発話理解部３２の発話理解処理に比べ、ネットワークの通信状態等に影響を受けることがないので、短時間で終わる。よって、対話処理制御部９は、第１対話処理部５の対話処理の結果を得てから、第３発話理解部３２の発話理解処理の結果を受信するまで少々待つ必要がある場合もある。
【０２２３】
発話理解処理サーバ４００の第３発話理解部３２では、認識文字列に対し、エアコン１０１の操作タスクの発話理解処理を行い、その処理結果を通信部３１から通信部４を介して、テレビ１００の対話処理制御部９に送信する。前述したように、第３発話理解部３２の発話理解処理は、図１１に示す発話理解ルールに基づいて行われる。具体的には、第３発話理解部３２は、入力された認識文字列が、発話理解ルールに記述されているエアコン１０１の操作コマンドのいずれかに該当するかどうかを確認し、該当した場合には、その操作コマンドに対応する機器操作の内容を具体的に示す情報（操作内容情報）を、通信部３１から通信部４を介して、対話処理制御部９に送信する。
【０２２４】
逆に、入力された認識文字列が操作コマンドと一致しない場合には、第３発話理解部３２は、入力された認識文字列が、エアコン１０１の操作コマンドではないと判定し、発話理解処理リジェクトの情報を対話処理制御部９に送信する。
【０２２５】
対話処理制御部９は、発話理解処理サーバ４００から第３発話理解部３２の発話理解処理の結果を受信した後、その処理結果をチェックする（Ｓ４９）。具体的には、対話処理制御部９は、受信した処理結果がエアコン１０１の操作内容情報であるか、発話理解処理リジェクト情報かどうかをチェックする。
【０２２６】
チェックした結果、もし、第３発話理解部３２の発話理解処理が成功したなら、即ち、認識文字列がエアコンの操作コマンドであった場合（Ｓ４９でＹの場合）には、対話処理制御部９は、動作スケジュールに基づいて、発話理解処理サーバ４００から受信した操作内容情報を第３応答生成部１７へ出力する。第３応答生成部１７では、前述したように、図１４に示す応答生成ルールに基づいて、応答生成処理が行われる（Ｓ５０）。即ち、第３応答生成部１７は、入力された操作内容情報に対応する制御情報および応答情報を読みだして、対話処理制御部９に出力する。
【０２２７】
対話処理制御部９は、第３応答生成部１７から応答生成処理の結果として、エアコン１０１の制御情報および応答情報が入力されると、動作スケジュールに基づいて、エアコン１０１の機器操作コマンドを実行する（Ｓ５１）。具体的には、対話処理制御部９は、第３応答生成部１７から得られた制御情報を外部機器制御部１２に出力し、また、応答情報を画面表示部１５または音出力部１６に出力する。外部機器制御部１２は、対話処理制御部９から入力された制御情報に基づいて、エアコン１０１の操作を実行する。また、外部機器制御部１２は、画面表示部１５または音出力部１６を介して、対話処理制御部９から入力された応答情報をユーザに提示するとともに、外部機器制御部１２で実行されたエアコン１０１の操作結果をユーザに提示する。なお、処理フローとしては、ここで処理が開始ポイント（Ａ）に戻り、ユーザの再発声が待たれる。
【０２２８】
このように、エアコン１０１の操作タスクに関する対話処理は、発話理解処理サーバ４００の第３発話理解部３２と、テレビ１００の第３応答生成部１７とで分散的に対話処理が行われるようになっている。
【０２２９】
以下、エアコン１０１の操作タスクに関する対話処理の動作フローについて、具体例で説明する。
【０２３０】
例えば、ユーザが、収音部１に対して、「エアコンをつけて」と発話したとする。音声認識部３または、音声認識処理サーバ３００の音声認識部２２のいずれかが音声認識に成功した場合には、認識制御部２は、対話処理制御部９に、認識文字列“エアコンをつけて”を入力する。次に、対話処理制御部９は、認識文字列“エアコンをつけて”を、テレビ１００の第１対話処理部５に入力する（Ｓ４４）。また、対話処理制御部９は、発話理解処理サーバ４００の第３発話理解部３２にも当該認識文字列を入力する（Ｓ４５）。第１対話処理部３は、入力された認識文字列に対し、テレビ１００の基本操作タスクに関する対話処理を行う。認識文字列“エアコンをつけて”は、図１２の発話理解ルールに記述された操作コマンドのいずれとも一致しないので、第１対話処理部５は、発話理解処理リジェクトの情報を対話処理制御部９に出力する（Ｓ４６でＮの処理）。
【０２３１】
第１対話処理部５の対話処理と並行して、発話理解処理サーバ４００の第３発話理解部３２では、入力された認識文字列に対し、エアコン１０１の操作タスクに関する対話処理が行われる。認識文字列“エアコンをつけて”は、図１１の発話理解ルールに記述された操作コマンドと一致するので、操作内容は（エアコンの電源をＯＮにし、自動運転を行う）と判断され、第３発話理解部３２は、対応する操作内容情報（Ｄｅｖｉｃｅ：Ａｉｒ  ｃｏｎｄｉｔｉｏｎｅｒ,  Ｏｐｅｒａｔｉｏｎ：Ｐｏｗｅｒ ｏｎ，Ｏｐｅｒａｔｉｏｎ
Ｍｏｄｅ：Ａｕｔｏ）をテレビ１００の対話処理制御部９に送信する。
【０２３２】
対話処理制御部９は、テレビ１００の第１対話処理部５の対話処理がリジェクトされた後に、発話理解処理サーバ４００の第３発話理解部３２の発話理解処理の結果である操作内容情報を受信する（Ｓ４８）。第３発話理解部３２の発話理解処理が成功したので、即ち、認識文字列がエアコン１０１の操作コマンドであったので（Ｓ４９でＹの場合）、対話処理制御部９は、動作スケジュールに基づいて、発話理解処理サーバ４００から受信した操作内容情報を第３応答生成部１７へ出力する。第３応答生成部１７では、（エアコンの電源をＯＮにし、自動運転を行う）に対応する操作内容情報が入力されると、図１４の応答生成ルールから対応する制御情報（Ａｉｒ  ｃｏｎｄｉｔｉｏｎｅｒ，Ｏｎ，Ａｕｔｏ）と応答情報“エアコンをつけます”を読み出して、対話処理制御部９に出力する（Ｓ５０）。
【０２３３】
次に、対話処理制御部９は、受信した制御情報（Ａｉｒ ｃｏｎｄｉｔｉｏｎｅｒ，Ｏｎ，Ａｕｔｏ）を外部機器制御部１２に出力する（Ｓ５１）。また、対話処理制御部９は、受信した応答情報“エアコンをつけます”を画面表示部１５または音出力部１６に出力する。外部機器制御部１２は、受信した制御情報に基づいて、エアコン１０１の電源をＯＮにし、自動運転を開始する。また、画面表示部１５または音出力部１６は、応答情報“エアコンをつけます”を画面にテキスト表示または、音声合成音で音声出力した後、エアコン１０１の操作結果をユーザに提示する。
【０２３４】
以上までが、エアコン１０１の操作タスクに関する対話処理の動作フローの具体例の説明である。
【０２３５】
ところで、第３発話理解部３２の発話理解処理が失敗した場合、つまり、発話理解処理サーバ４００の第３発話理解部３２から発話理解処理リジェクトの情報を受信した場合（Ｓ４９でＮの場合）には、対話処理制御部９は、動作スケジュールに従って、テレビ１００の第２対話処理部６に、認識制御部２から得られた認識文字列を入力する（Ｓ５２）。また、対話処理制御部９は、ほぼ同時に、認識文字列を、テレビ１００の通信部４から発話理解処理サーバ４００の通信部２１に送信し、発話理解処理サーバ４００の第４発話理解部３３に入力する（Ｓ５３）。
【０２３６】
第２対話処理部６は、認識文字列を用いたテレビ１００に関する情報検索、具体的には、番組表を用いた番組情報検索タスクの対話処理を行い、その処理結果を対話処理制御部９に出力する。
【０２３７】
以下、第２対話処理部６の動作を詳しく説明する。第２対話処理部６では、まず、認識文字列は、第２発話理解部６１に入力され、発話理解処理が行われる。前述したように、第２発話理解部６１の処理は、発話理解ルールに基づいて行われる。具体的には、第２発話理解部６１は、まず、入力された認識文字列が番組情報検索コマンドかどうかを判定する（Ｓ５４）。判定方法としては、認識文字列から番組情報を検索するための検索キーワード、例えば、日時、ジャンル名、番組名等を抽出できるかどうかで判定する方法がある。つまり、これらの検索キーワードが抽出できたなら、第２発話理解部６１は、番組情報検索コマンドであると判定し（Ｓ５４でＹの場合）、抽出されたキーワードによる番組情報の検索操作の内容を示す情報（操作内容情報）を出力する。そして、第２発話理解部６１から出力された操作内容情報は、第２応答生成部６２に入力され、応答生成処理が行われる。前述したように、第２応答生成部６２の処理は、応答生成ルールに基づいて行われる。具体的には、第２応答生成部６２は、第２発話理解部６１から出力された操作内容情報に基づいて、テレビ１００の番組表から、抽出された検索キーワードによる番組情報検索を実行するための制御情報を生成し、その制御情報を対話処理制御部９に出力する。また、制御情報以外に、発話理解処理の結果をユーザに提示するための応答情報も対話処理制御部９に出力される。
【０２３８】
逆に、第２対話処理部６は、入力された認識文字列が番組情報検索コマンドでないと判定した場合（Ｓ５４でＮの場合）、つまり、認識文字列から番組情報を検索するための検索キーワードが抽出できなかった場合には、発話理解処理リジェクトの情報を対話処理制御部９に送信する。
【０２３９】
第２対話処理部６の対話処理が成功した場合には、対話処理制御部９は、動作スケジュールに基づいて、第２対話処理部６の対話処理の結果である番組表を用いた番組情報検索を実行する（Ｓ５５）。具体的には、対話処理制御部９は、第２対話処理部６から得られた制御情報を機器関連情報検索部１１に出力し、また、応答情報をＧＵＩ出力部１４の画面表示部１５または音出力部１６に出力する。機器関連情報検索部１１は、対話処理制御部９から入力された制御情報に基づいて、テレビ１００の番組表を用いた番組情報検索を行う。また、機器関連情報検索部１１は、画面表示部１５または音出力部１６を介して、対話処理制御部６から入力された応答情報をユーザに提示する。機器関連情報検索部１１は、番組情報検索を行った結果、少なくとも１件以上、番組情報が検索された場合には、ユーザに、画面表示部１５または音出力部１６を介して、検索された番組情報を提示する（Ｓ５６）。なお、処理フローとしては、ここで処理が開始ポイント（Ａ）に戻り、ユーザの再発声が待たれる。
【０２４０】
以下、番組情報検索タスクに関する対話処理について、具体例で説明する。
【０２４１】
例えば、ユーザが、収音部１に対して、「明日のドラマ」と発話したとする。音声認識部３または、音声認識処理サーバ３００の音声認識部２２のいずれかが音声認識に成功した場合には、認識制御部２は、対話処理制御部９に、認識文字列“明日のドラマ”を入力する。次に、対話処理制御部９は、認識文字列“明日のドラマ”を、テレビ１００の第１対話処理部に入力する（Ｓ４４）。また、対話処理制御部９は、発話理解処理サーバ４００の第３発話理解部３２にも当該認識文字列を入力する（Ｓ４５）。第１対話処理部３及び第３発話理解部３２は、認識文字列“明日のドラマ”に対し、テレビ１００の基本操作タスク及び、エアコンの操作タスクに関する発話理解処理を行うが、どちらも図１１及び図１２の発話理解ルールに記述された操作コマンドと一致しないので、双方の発話理解部から順次、発話理解処理リジェクトの情報が対話処理制御部９に返ってくる。
【０２４２】
対話処理制御部９は、第３発話理解部３２から発話理解処理リジェクトの情報を受信した場合（Ｓ４９でＮの場合）、テレビ１００の第２対話処理部６に、認識文字列“明日のドラマ”を入力する（Ｓ５２）。第２対話処理部６は、入力された認識文字列“明日のドラマ”に対し、番組情報検索タスクに関する対話処理を行う。認識文字列“明日のドラマ”は、まず、第２発話理解部６１に入力され、発話理解ルールに基づいた発話理解処理が行われる。具体的には、第２発話理解部６１は、認識文字列“明日のドラマ”から番組情報を検索するための検索キーワードの抽出が行えるかどうかで、認識文字列が番組検索コマンドかどうかを判定する（Ｓ５４）。ここでは、番組情報を検索するための日付キーワード“明日”とジャンルキーワード“ドラマ”が抽出されるので、第２発話理解部６１は、認識文字列は番組検索コマンドであると判定する（Ｓ５４でＹの処理）。次に、第２発話理解部６１は、抽出された日付キーワード“明日”とジャンルキーワード“ドラマ”を用いて、番組情報の検索操作の内容を示す操作内容情報（Ｏｐｅｒａｔｉｏｎ：Ｓｅａｒｃｈ ＥＰＧ，Ｄａｙ：Ｔｏｍｏｒｒｏｗ，Ｇｅｎｒｅ：Ｄｒａｍａ）を生成し、これを第２応答生成部６２へ出力する。第２応答生成部６２では、“明日のドラマ”を検索するための上記操作内容情報が入力されると、応答生成ルールに基づいた応答生成処理が行われる。具体的には、第２応答生成部６２は、操作内容情報に基づいて、テレビ１００の番組表から、抽出された検索キーワードによる番組情報検索を実行するための制御情報を生成し、その制御情報を対話処理制御部９に出力する。また、第２応答生成部６２は、対話処理の結果をユーザに提示するための応答情報、例えば、“明日のドラマを番組表で探します”等を対話処理制御部９に出力する。
【０２４３】
対話処理制御部９は、第２対話処理部６の対話処理の結果である番組情報検索のための制御情報を受信すると、その制御情報を機器関連情報検索部１１に出力する（Ｓ５５）。また、対話処理制御部９は、応答情報“明日のドラマを番組表で探します”を画面表示部１５および音出力部１６に出力する。画面表示部１５または音出力部１６は、応答情報“明日のドラマを番組表で探します”を画面にテキスト表示または、音声合成音で音声出力する。
【０２４４】
機器関連情報検索部１１は、入力された番組情報検索のための制御情報に基づいて、つまり、日付キーワード“明日”とジャンルキーワード“ドラマ”を用いて、テレビ１００の番組表から、キーワードに該当する番組情報を検索する。番組情報の検索を行った結果、少なくとも１件以上、検索キーワードに該当する番組情報が見つかった場合には、機器関連情報検索部１１は、画面表示部１５または音出力部１６を介して、ユーザに検索結果を提示する（Ｓ５６）。
【０２４５】
以上までが、番組情報検索タスクに関する対話処理の動作フローの具体例の説明である。
【０２４６】
ところで、第２対話処理部６の対話処理が失敗した場合、つまり、対話処理制御部９が第２対話処理部６から発話理解処理リジェクトの情報を受信した場合（Ｓ５４でＮの場合）には、対話処理制御部９は、動作スケジュールに基づき、発話理解処理サーバ４００の第４発話理解部３３から送信される発話理解処理の結果を受信する（Ｓ５７）。
【０２４７】
発話理解処理サーバ４００の第４発話理解部３３は、認識文字列を用いたインターネットの情報検索、具体的には、天気予報またはニュース等の一般的な情報検索タスクの発話理解処理を行い、その処理結果を通信部３１から通信部４を介して、テレビ１００の対話処理制御部９に送信する。前述したように、第４発話理解部３３の発話理解処理は、前述した発話理解ルールに基づいて行われる。具体的には、まず、第４発話理解部３３は、入力された認識文字列が一般情報検索コマンドかどうか判定する。判定方法としては、認識文字列から、インターネットの一般的な情報を検索するための検索キーワード、例えば、天気、ニュース、地図検索に必要な検索キーワード等が抽出できるかどうかで判定する方法がある。つまり、これらの検索キーワードが抽出できたなら、第４発話理解部３３は、一般情報検索コマンドであると判定し、抽出された検索キーワードによる一般的な情報の検索操作の内容を示す情報（操作内容情報）を、通信部３１から通信部４を介して、対話処理制御部９に送信する。
【０２４８】
逆に、第４発話理解部３３は、入力された認識文字列が一般情報検索コマンドでないと判定した場合、つまり、認識文字列から一般的な情報を検索するための検索キーワードが抽出できなかった場合には、発話理解処理リジェクトの情報を対話処理制御部９に送信する。
【０２４９】
対話処理制御部９は、発話理解処理サーバ４００から第４発話理解部３３の発話理解処理の結果を受信した後、その処理結果をチェックする（Ｓ５８）。具体的には、対話処理制御部９は、受信した処理結果が、一般的な情報の検索操作の内容を示す情報（操作内容情報）であるか、発話理解処理リジェクト情報かどうかをチェックする。
【０２５０】
チェックした結果、もし、第４発話理解部３３の発話理解処理が成功したなら、即ち、認識文字列が一般情報検索コマンドであると判定された場合（Ｓ５８でＹの場合）には、対話処理制御部９は、動作スケジュールに基づいて、発話理解処理サーバ４００から受信した操作内容情報を第４応答生成部１８へ出力する。第４応答生成部１８では、前述したように、応答生成ルールに基づいて、応答生成処理が行われる（Ｓ５９）。具体的には、第４応答生成部１８は、入力された操作内容情報に基づいて、抽出された検索キーワードを用いたインターネットの情報検索を実行するための制御情報を生成し、その制御情報を対話処理制御部９に出力する。また、第４応答生成部１８は、制御情報以外に、発話理解処理の結果をユーザに提示するための応答情報も対話処理制御部９に出力する。
【０２５１】
対話処理制御部９は、第４応答生成部１８から応答生成処理の結果として、インターネットからの一般情報を検索するための制御情報および応答情報が入力されると、動作スケジュールに基づいて、インターネットを用いた一般情報検索を実行する（Ｓ６０）。具体的には、対話処理制御部９は、第４対話処理部２４から得られた制御情報を一般情報検索部１３に出力し、また、対話処理制御部９は、応答情報をＧＵＩ出力部１４の画面表示部１５または音出力部１６に出力する。
【０２５２】
一般情報検索部１３は、対話処理制御部９から入力された制御情報に基づいて、インターネットを用いた一般情報検索を行う。また、一般情報検索部１３は、画面表示部１５または音出力部１６を介して、対話処理制御部６から入力された応答情報をユーザに提示する。一般情報検索部１３は、一般情報検索を行った結果、少なくとも１件以上、一般情報が検索された場合には、ユーザに、画面表示部１５および音出力部１６を介して、検索された一般情報を提示する（Ｓ６１）。なお、処理フローとしては、ここで処理が開始ポイント（Ａ）に戻り、ユーザの再発声が待たれる。
【０２５３】
以下、一般情報検索タスクに関する対話処理の動作フローについて、具体例で説明する。
【０２５４】
例えば、ユーザが、収音部１に対して、「東京の天気」と発話したとする。音声認識部３または、音声認識処理サーバ３００の音声認識部２２のいずれかが音声認識に成功した場合には、認識制御部２は、対話処理制御部９に、認識文字列“東京の天気”を入力する。次に、対話処理制御部９は、認識文字列“東京の天気”を、テレビ１００の第１対話処理部に入力する（Ｓ４４）。また、対話処理制御部９は、発話理解処理サーバ４００の第３発話理解部３２にも当該認識文字列を入力する（Ｓ４５）。第１対話処理部３及び第３発話理解部３２は、認識文字列“東京の天気”に対し、テレビ１００の基本操作タスク及び、エアコンの操作タスクに関する発話理解処理を行うが、どちらも図１１及び図１２の発話理解ルールに記述された操作コマンドと一致しないので、双方の発話理解部から順次、発話理解処理リジェクトの情報が対話処理制御部９に返ってくる。
【０２５５】
対話処理制御部９は、第３発話理解部３２から発話理解処理リジェクトの情報を受信した場合（Ｓ４９でＮの場合）、次に、テレビ１００の第２対話処理部６に、認識文字列“東京の天気”を入力する（Ｓ５２）。また、対話処理制御部９は、発話理解処理サーバ４００の第４発話理解部３３にも当該認識文字列を入力する（Ｓ５３）。第２対話処理部６は、入力された認識文字列“東京の天気”に対し、番組情報検索タスクに関する対話処理を行うが、認識文字列から番組情報を検索するためのキーワードが抽出できないので、発話理解処理リジェクトの情報を対話処理部９に出力する（Ｓ５４でＮの処理）。
【０２５６】
第２対話処理部６の対話処理と並行して、発話理解処理サーバ４００の第４発話理解部３３は、入力された認識文字列に対し、一般情報検索タスクに関する発話理解処理を行う。具体的には、第４発話理解部３３は、認識文字列“東京の天気”から、一般情報を検索するための検索キーワードの抽出が行えるかどうかで、認識文字列が一般情報検索コマンドかどうかを判定する。ここでは、一般情報を検索するためのエリアキーワード“東京”と情報種別キーワード“天気”が抽出されるので、第４発話理解部３３は、認識文字列を一般情報検索コマンドであると判定する。次に、第４発話理解部３３は、抽出されたエリアキーワード“東京”と、情報種別キーワード“天気”を用いて、インターネットからの一般的な情報の検索操作の内容を示す操作内容情報（Ｏｐｅｒａｔｉｏｎ：Ｓｅａｒｃｈ  Ｉｎｔｅｒｎｅｔ，Ｉｎｆｏｒｍａｔｉｏｎ：Ｗｅａｔｈｅｒ．Ａｒｅａ：Ｔｏｋｙｏ）を生成し、テレビ１００の対話処理制御部９に送信する。
【０２５７】
対話処理制御部９は、テレビ１００の第２対話処理部６の対話処理がリジェクトされた後に、発話理解処理サーバ４００の第４発話理解部３３の発話理解処理の結果である操作内容情報を受信する（Ｓ５８）。第４発話理解部３３の発話理解処理が成功したので、即ち、認識文字列がインターネットからの一般情報を検索するためのコマンドであったので（Ｓ５８でＹの場合）、対話処理制御部９は、受信した操作内容情報を第４応答生成部１８へ出力する。第４応答生成部１８では、“東京の天気”を検索するための上記操作内容情報が入力されると、応答生成ルールに基づいた応答生成処理が行われる。具体的には、第４応答生成部１８は、操作内容情報に基づいて、抽出された検索キーワードを用いたインターネットの情報検索を実行するための制御情報を生成し、その制御情報を対話処理制御部９に出力する（Ｓ５９）。また、第４応答生成部１８は、対話処理の結果をユーザに提示するための応答情報、例えば、“東京の天気をインターネットで探します”等を対話処理制御部９に出力する。
【０２５８】
対話処理制御部９は、第４応答生成部１８の応答生成処理の結果であるインターネットから一般情報を検索するための制御情報を受信すると、その制御情報を一般情報検索部１３に出力する（Ｓ６０）。また、対話処理制御部９は、受信した応答情報“東京の天気をインターネットで探します”を画面表示部１５または音出力部１６に出力する。
【０２５９】
一般情報検索部１３は、入力された一般情報検索のための制御情報に基づいて、つまり、エリアキーワード“東京”と情報種別キーワード“天気”を用いて、インターネットから、上記キーワードに該当する情報を検索する。情報の検索を行った結果、少なくとも１件以上、検索キーワードに該当する情報が見つかった場合には、一般情報検索部１３は、画面表示部１５または音出力部１６を介して、ユーザに検索結果を提示する（Ｓ６１）。
【０２６０】
以上までが、一般情報検索タスクに関する対話処理の具体例の説明である。
【０２６１】
ところで、第４発話理解部３３の発話理解処理が失敗した場合、つまり、対話処理制御部９が第４発話理解部３３から発話理解処理リジェクトの情報を受信した場合（Ｓ５８でＮの場合）には、対話処理制御部９は、全ての対話処理が失敗したことをユーザに提示する（Ｓ６２）。例えば、対話処理制御部９は、“話された言葉がよくわかりません”等を画面表示部１５または音出力部１６を介して、ユーザに提示する。なお、処理フローとしては、ここで処理が開始ポイント（Ａ）に戻り、ユーザの再発声が待たれる。
【０２６２】
以上説明したように、本開示の実施の形態に係る音声認識システムは、予め、タスク優先度記憶部７に記憶された各タスクの優先度に基づいて、対話タスク管理部８が、各タスクを処理するテレビ１００の第１対話処理部５、第２対話処理部６、第３応答生成手段１７、第４応答生成手段１８と、発話理解処理サーバ４００の第３発話理解部３２、第４発話理解部３３の動作スケジュールを決定する。そして、ユーザが発話した音声認識結果である認識文字列が対話処理制御部９に入力された時は、その動作スケジュールに基づいて、対話処理制御部９は、テレビ１００の各対話処理部、各応答生成手段と、発話理解処理サーバ４００側の各発話理解部の動作を制御する。これにより、優先度の異なる複数の異なるタスクに対して、テレビ１００内だけで行う対話処理とテレビ１００側とサーバ４００側の双方で対話処理を行う分散型の対話処理が併用された場合でも、各タスクの優先度に応じた順番で、各対話処理を制御することが可能となる。
【０２６３】
以下、詳しく説明すると、本実施の形態のシステムは、テレビ１００側で、優先度が１番目のタスクであるテレビ１００の基本操作に関する対話処理と、優先度が３番目のタスクである番組情報検索に関する対話処理を行う。また、優先度が２番目のタスクであるエアコン操作および優先度が４番目のタスクであるインターネットの一般情報検索については、発話理解処理サーバ４００側で発話理解処理を行い、テレビ１００側で応答生成処理を行う分散型対話処理が行われる。そして、テレビ１００側の対話処理と、サーバ側の発話理解処理は、ほぼ同時に並行処理される。
【０２６４】
この場合、ネットワーク環境等の影響で、発話理解処理サーバ４００からのエアコン操作の発話理解処理の結果の応答が遅くなったとしても、本実施の形態のシステムでは、タスクの優先度から決められた動作スケジュールに基づいて、各対話処理の動作が制御される。よって、優先度の低いテレビ１００側の番組情報検索に関する対話処理の結果よりも、発話理解処理サーバ４００とテレビ１００で分散的に対話処理が行われる、相対的に優先度の高いエアコン操作に関する対話処理の結果を、先に実行させることができる。
【０２６５】
つまり、優先度の高いタスクの対話処理における発話理解処理をサーバ側で、優先度の低いタスクの対話処理を機器側で同時に並行処理した場合、ネットワーク環境等の影響で、サーバからの処理結果の応答が遅くても、優先度に応じて、機器側の対話処理の結果ではなく、サーバ側と機器側で分散実行された対話処理の結果を実行させることが可能となる。
【０２６６】
（実施の形態４）
実施の形態４では、上記実施の形態３に係る対話処理制御システムの変形例について説明する。
【０２６７】
図１７は、実施の形態４に係る対話処理制御システムの構成を示すブロック図である。
【０２６８】
実施の形態４の対話処理制御システムは、実施の形態３の対話処理制御システムと、ほぼ同様の構成であり、実施の形態３の対話処理制御システムに備えられる機器１００において、さらに機器状態管理部１９が設けられていることのみが異なる。このため、実施の形態４の対話処理制御システムでは、実施の形態３の対話処理制御システムと共通する構成については実施の形態３と同様の符号を付している。
【０２６９】
以下では、実施の形態３と異なる構成についてのみ説明して、実施の形態３と共通する構成については説明を省略する。
【０２７０】
実施の形態３の対話処理制御システムに新たに追加された機器状態管理部１９は、機器１００の状態を管理する。なお、機器１００の状態とは、音声認識処理サーバ３００および発話理解処理サーバ４００との接続の状態、機器制御部１０により操作可能な機器１００の状態及び、外部機器制御部１２により操作可能な外部機器１０１の状態である。例えば、機器１００をテレビとすると、機器制御部１０により操作可能な機器の状態とは、テレビの選局、音量、画面出力の状態等である。また、外部機器１０１をエアコンとすると、外部機器制御部１２により操作可能な機器の状態とは、テレビとエアコンの接続状態またはエアコンの動作状態（電源、モード、設定温度）等である。
【０２７１】
また、対話タスク管理部８は、タスク優先度記憶部７に記憶されている各タスクの優先度と機器状態管理部１９に管理されている現在の機器１００の状態に基づいて、機器１００の第１対話処理部５、第２対話処理部６、第３応答生成部１７および第４応答生成部１８ならびに、発話理解処理サーバ４００の第３発話理解部３２および第４発話理解部３３の動作スケジュールを決定する。なお、対話処理部及びその構成要素である発話理解部、応答生成部の動作スケジュールは、実施の形態３と同様に、各処理部（対話処理部、発話理解部、応答生成部）をどの順番で、どのように動作させるかを定義する。
【０２７２】
このように、実施の形態４において、実施の形態３と構成が異なるポイントは、対話タスク管理部８が各処理部（対話処理部、発話理解部、応答生成部）の動作スケジュールを決定する際に、タスク優先度記憶部７に記憶されている各タスクの優先度だけでなく、機器状態管理部１９で管理されている機器１００の状態を用いるところである。
【０２７３】
そこで、以下、実施の形態４の対話処理制御システムにおいて、対話タスク管理部８が、機器１００の状態に応じて、各処理部（対話処理部、発話理解部、応答生成部）の動作スケジュールを更新する動作を説明する。なお、以下では、具体的に説明するために、実施の形態３同様に、機器１００をテレビ、外部機器１０１をエアコンとする。よって、第１対話処理部５のタスクは、テレビのチャンネル選局または音量調整等の基本操作タスクとし、その発話理解ルールは図１２、応答生成ルールは図１３に示される。第２対話処理部６のタスクは、番組表の番組情報検索とする。また、第３発話理解部３２および第３応答生成部１７のタスクは、エアコンの電源操作または温度設定等の操作タスクとし、その発話理解ルールは図１１に、応答生成ルールは図１４に示される。第４発話理解部３３および第４応答生成部１８のタスクは、天気予報またはニュース等の一般的なインターネットの情報検索タスクとする。
【０２７４】
図１８は、実施の形態４において、対話タスク管理部８が各対話処理部及びその構成要素である各発話理解部、各応答生成部の動作スケジュールを更新する際の処理の流れを示すフローチャートである。
【０２７５】
以下、図１８を用いて、対話タスク管理部８の動作を説明する。
【０２７６】
対話タスク管理部８は、まず、機器状態管理部１９が管理している現在のテレビ１００の状態を取得する（Ｓ７１）。次に、取得したテレビ１００の状態を用いて、テレビ１００が、発話理解処理サーバ４００とネットワーク接続され、利用できるかどうかを確認する（Ｓ７２）。確認した結果、発話理解処理サーバ４００が利用可能である場合（Ｓ７２でＹの場合）には、対話タスク管理部８は、タスク優先度記憶部７から第４発話理解部３３と第４応答生成部１８が処理するインターネットによる一般的な情報検索タスクの優先度“４”を取得する（Ｓ７３）。
【０２７７】
次に、対話タスク管理部８は、同様に、取得したテレビ１００の状態を用いて、テレビ１００から外部機器であるエアコン１０１が制御可能であるかどうかを確認する（Ｓ７４）。確認した結果、エアコン１０１が制御可能である場合（Ｓ７４でＹの場合）には、対話タスク管理部８は、タスク優先度記憶部７から第３発話理解部３２と第３応答生成部１７が処理するエアコン１０１の操作タスクの優先度“２”を取得し（Ｓ７５）、処理が次（Ｓ７６）へ進む。
【０２７８】
一方で、例えば、テレビ１００がネットワークに接続されていない、または、発話理解処理サーバ４００がシステムダウンしている等の理由により、発話理解処理サーバ４００が利用可能でない場合（Ｓ７２でＮの場合）には、対話タスク管理部８は、インターネットによる一般的な情報検索タスクの優先度を取得せずに、処理が次（Ｓ７６）へ進む。同様に、テレビ１００とエアコン１０１がネットワーク接続されていない、または、エアコン１０１が故障している等の理由により、テレビ１００からエアコン１０１が制御できない場合（Ｓ７４でＮの場合）には、対話タスク管理部８は、エアコン１０１の操作タスクの優先度を取得せずに、処理が次（Ｓ７６）へ進む。
【０２７９】
処理（Ｓ７６）では、対話タスク管理部８は、タスク優先度記憶部７に記憶されている第１対話処理部５が処理するテレビ１００の基本操作タスクの優先度“１”及び、第２対話処理部６が処理するテレビ１００の番組情報検索タスクの優先度“３”を取得する。
【０２８０】
そして、対話タスク管理部８は、テレビ１００の状態に応じて取得できた各タスクの優先度に基づいて、各対話処理部の動作スケジュールを更新する（Ｓ７７）。
【０２８１】
最後に、対話タスク管理部８は、テレビ１００の状態に応じて、動作スケジュールが更新されたことを対話処理制御部９に通知する（Ｓ７８）。
【０２８２】
以上までが、実施の形態４において、対話タスク管理部８が各処理部（対話処理部、発話理解部、応答生成部）の動作スケジュールを更新する処理の動作フローの説明である。
【０２８３】
さて、実施の形態４の対話処理制御システムでは、テレビ１００の状態によって更新された動作スケジュールに基づいて、各処理部（対話処理部、発話理解部、応答生成部）の動作が対話処理制御部９によって制御される。但し、テレビ１００と発話理解処理サーバ４００、エアコン１０１が正常に接続されている場合には、ユーザが音声コマンドを発話したときのシステムの動作フローは、図１６に示す実施の形態３と同様になる。
【０２８４】
しかし、例えば、発話理解処理サーバ４００を利用できるが、テレビ１００からエアコン１０１を制御できない場合には、動作スケジュールは、第３発話理解部３２と第３応答生成部６が分散的に対話処理するエアコン１０１の操作タスクの優先度を除いて、第１対話処理部５が処理するテレビ１００の基本操作タスク、第２対話処理部６が処理するテレビ１００の番組情報検索タスク及び、第４発話理解部３３と第４応答生成部１８が分散的に対話処理するインターネットによる一般情報検索タスクの優先度に基づいて決定される。つまり、動作スケジュールは、まず、テレビ１００の基本操作タスクの対話処理が行われ、次に、番組情報検索タスクの対話処理が行われ、最後にインターネットを用いた一般情報検索タスクの対話処理が行われるように、対話タスク管理部８によって更新される。
【０２８５】
よって、この場合のシステムの動作フローは、図１６の動作フローから、発話理解処理サーバ４００の第３発話理解部３２と第３応答生成部１７に関する対話処理（Ｓ４５、Ｓ４８〜Ｓ５１）を省いた図１９に示す動作フローとなる。
【０２８６】
また、発話理解処理サーバ４００が利用できない場合には、動作スケジュールは、第３発話理解部３２と第３応答生成部６が分散的に対話処理するエアコン１０１の操作タスクの優先度及び、第４発話理解部３３と第４応答生成部１８が分散的に対話処理するインターネットによる一般情報検索タスクの優先度を除いて、第１対話処理部５が処理するテレビ１００の基本操作タスク及び、第２対話処理部６が処理するテレビ１００の番組情報検索タスクの優先度に基づいて決定される。つまり、動作スケジュールは、まず、テレビ１００の基本操作タスクの対話処理が行われ、次に、番組情報検索タスクの対話処理が行われるように、対話タスク管理部８によって更新される。
【０２８７】
よって、この場合のシステムの動作フローは、図１６の動作フローから、発話理解処理サーバ４００の第３発話理解部３２と第３応答生成部１７に関する対話処理（Ｓ４５、Ｓ４８〜Ｓ５１）、発話理解処理サーバ４００の第４発話理解部３３と第４応答生成部１８に関する処理（Ｓ５３、Ｓ５７〜Ｓ６１）を省いた図２０に示す動作フローとなる。
【０２８８】
以上説明したように、実施の形態３同様に、実施の形態４に係る対話処理制御システムも、対話処理制御部９により、対話タスク管理部７から得られる動作スケジュールに基づいて、テレビ１００の第１対話処理部５、第２対話処理部６、第３応答生成手段１７、第４応答生成手段１８と、発話理解処理サーバ４００の第３発話理解部３２、第４発話理解部３３の動作を制御する。但し、実施の形態４では、実施の形態３の構成に、新たに追加された機器状態管理部１９が、テレビ１００の状態、例えば、発話理解処理サーバ４００との接続状態もしくは外部機器であるエアコン１０１との接続状態またはエアコン１０１の動作状態を管理し、対話タスク管理部８は、タスク優先度記憶部７に記憶されている各タスクの優先度に加えて、テレビ１００の状態に基づいて、テレビ１００の第１対話処理部５、第２対話処理部６、第３応答生成手段１７、第４応答生成手段１８と、発話理解処理サーバ４００の第３発話理解部３２、第４発話理解部３３の動作スケジュールを決定する。
【０２８９】
これにより、テレビ１００の状態、具体的には、発話理解処理サーバ４００との接続状態もしくはエアコン１０１との接続状態またはエアコン１０１の動作状態に応じて、テレビ１００の各対話処理部と各応答生成部及び、発話理解処理サーバ４００の各発話理解部の動作スケジュールを動的に変更することが可能となる。例えば、テレビ１００からエアコン１０１が制御できない場合には、動作スケジュールは、対話処理制御部９が、発話理解処理サーバ４００の第３発話理解部３２と第３応答生成部１７で行う対話処理を実行しないように、更新される。同様に、発話理解処理サーバ４００が利用できない場合には、動作スケジュールは、第３、第４発話理解部３２、３３と第３、第４応答生成部１７、１８で行う対話処理を実行しないように更新される。従って、テレビ１００の状態に応じて、システム全体として、無駄な対話処理を行わない、即ち、最適な対話処理を行うことができ、システム全体の処理時間を短縮することができる。
【０２９０】
なお、上記各実施の形態において、機器１００にネットワーク接続された外部機器１０１は１台として説明したが、複数の外部機器（例えば、エアコンと照明等）が接続されていてもよい。この場合、第３発話理解部３２の発話理解ルールには、複数の外部機器の操作コマンドと、発話理解処理の結果である複数の外部機器の操作内容情報の対応関係が記述されている。同様に、第３応答生成部１７の応答生成ルールには、複数の外部機器の操作内容情報と、応答生成処理の結果である複数の外部機器の制御情報および応答情報の対応関係が記述されている。例えば、外部機器がエアコンと照明の場合には、図１１に示す発話理解ルールに、照明の操作コマンド、例えば、「電気をつけて」、「照明を消して」等が追加される。また、図１３の応答生成ルールにも、上記照明の操作コマンドに対応する操作内容情報及び、制御情報、応答情報が追加される。また、外部機器制御部１２は、第３応答生成部１８から出力された制御情報に基づいて、複数の外部機器を制御する。
【０２９１】
また、上記各実施の形態において、第１対話処理部５のタスクを機器１００の基本操作、第２対話処理部６のタスクを機器１００に関連する情報検索、第３発話理解部３２と第３応答生成部１７が分散的に対話処理するタスクを外部機器１０１の操作、第４発話理解部３３と第４応答生成部１８が分散的に対話処理するタスクをインターネットの情報検索タスクと設定したが、機器１００における第１対話処理部５と第２対話処理部６のタスクが異なれば、上記タスク以外のタスクが設定されてもよい。例えば、第３発話理解部３２と第３応答生成部１７が分散的に対話処理するタスクが機器１００の基本操作タスク以外の機器１００の操作タスクに設定されてもよい。機器１００をテレビとするならば、第１対話処理部５では、図１２の対話ルールに示したような基本操作タスクが設定されてもよく、第３発話理解部３２では、字幕表示、ヘルプ表示、映像／音声モードの選択等の操作タスクが設定され、また、基本操作タスクを含むテレビ全体の操作タスクが設定されてもよい。但し、これらのタスクの優先度は、予め、タスク優先度記憶部７に記憶されている必要がある。
【０２９２】
また、上記各実施の形態において、タスク優先度記憶部７において、機器１００の基本操作タスクを優先度１、機器関連情報の検索タスクを優先度３、発話理解処理サーバ４００と機器１００で分散的に対話処理する外部機器操作タスクを優先度２、インターネットによる一般的な情報検索タスクを優先度４と設定したが、上記以外の優先度が設定されてもよい。
【０２９３】
また、上記各実施の形態において、発話理解処理サーバ４００は、２つの発話理解部（第３発話理解部３２、第４発話理解部３３）を備えているが、発話理解部は少なくとも１つ以上備えられればよい。但し、対応する機器１００側の応答生成部は発話理解部と同数である必要がある。
【０２９４】
また、上記各実施の形態では、音声認識処理サーバ３００と発話理解処理サーバ４００が備えられることにより、音声認識処理と発話理解処理が別々のサーバで行われているが、同一のサーバでこれらの処理が行われてもよい。
【０２９５】
また、上記各実施の形態において、機器１００は、収音部１を備えているが、機器１００とは別の機器、例えば、リモコンを用意し、このリモコンが収音部１を備え、収音部１から入力された音声をリモコンから機器１００に無線ＬＡＮ等で送信されるようにしてもよい。
【０２９６】
また、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、ＣＰＵまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
【０２９７】
さらに、上記の各装置を構成する構成要素の一部又は全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）を備えるとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、及びＲＡＭなどを含んで構成されるコンピュータシステムである。ＲＡＭには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。
【０２９８】
さらにまた、上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なＩＣカード又は単体のモジュールを備えるとしてもよい。ＩＣカード又はモジュールは、マイクロプロセッサ、ＲＯＭ、及びＲＡＭなどを備えるコンピュータシステムである。ＩＣカード又はモジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、ＩＣカード又はモジュールは、その機能を達成する。このＩＣカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
【０２９９】
また、本開示の一態様は、上記に示す装置の処理を実行する方法であるとしてもよい。また、本開示の一態様は、上記に示す装置の機能をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、上記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０３００】
さらに、本開示の一態様は、上記コンピュータプログラム又は上記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、ＵＳＢメモリ、ＳＤ（登録商標）カードなどのメモリカード、又は半導体メモリなどに記録したものとしてもよい。また、本開示の一態様は、これらの記録媒体に記録されている上記デジタル信号であるとしてもよい。
【０３０１】
また、本開示の一態様は、上記コンピュータプログラム又は上記デジタル信号を、電気通信回線、無線或いは有線通信回線、インターネットを代表とするネットワーク、又はデータ放送等を経由して伝送するものとしてもよい。
【０３０２】
また、本開示の一態様は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、上記メモリは、上記コンピュータプログラムを記憶しており、上記マイクロプロセッサは、上記コンピュータプログラムに従って動作するとしてもよい。
【０３０３】
また、上記プログラム或いは上記デジタル信号を上記記録媒体に記録して移送することにより、又は、上記プログラム或いは上記デジタル信号を、上記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより上記装置を実現するとしてもよい。
【０３０４】
また、上記で用いた数字は、全て本開示の実施の形態を具体的に説明するために例示するものであり、本開示は例示された数字に制限されない。
【０３０５】
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
【０３０６】
また、上記方法に含まれる複数のステップが実行される順序は、本開示の実施の形態を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時（並列）に実行されてもよい。
【０３０７】
以上、一つまたは複数の態様に係る情報処理装置について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
【産業上の利用可能性】
【０３０８】
本開示は、機器を音声で操作する装置およびシステムに適用できる。
【符号の説明】
【０３０９】
１    収音部
２    認識制御部（第２、第４の実施の形態では音声認識結果取得部）
３    音声認識部（音声認識結果取得部）
４    通信部
５    第１対話処理部
５１  第１発話理解部
５２  第１応答生成部
６    第２対話処理部
６１  第２発話理解部
６２  第２応答生成部
７    タスク優先度記憶部
８    対話タスク管理部（優先度取得部）
９    対話処理制御部（被制御装置）
１０  機器制御部（実行部）
１１  機器関連情報検索部（実行部）
１２  外部機器制御部（実行部）
１３  一般情報検索部（実行部）
１４  ＧＵＩ出力部
１５  画面表示部
１６  音出力部
１７  第３応答生成部
１８  第４応答生成部
１９  機器状態管理部
２１  通信部
２２  音声認識部
３１  通信部
３２  第３発話理解部
３３  第４発話理解部
１００  機器（複数の装置のうちの１つ）
１０１  外部機器（複数の装置のうちの１つ）
２００  対話処理サーバ（複数の装置のうちの１つ）
３００  音声認識処理サーバ
４００  発話理解処理サーバ（複数の装置のうちの１つ）
【図１】
2018138987.tif 000003
【図２】
2018138987.tif 000004
【図３】
2018138987.tif 000005
【図４】
2018138987.tif 000006
【図５】
2018138987.tif 000007
【図６】
2018138987.tif 000008
【図７】
2018138987.tif 000009
【図８】
2018138987.tif 000010
【図９】
2018138987.tif 000011
【図１０】
2018138987.tif 000012
【図１１】
2018138987.tif 000013
【図１２】
2018138987.tif 000014
【図１３】
2018138987.tif 000015
【図１４】
2018138987.tif 000016
【図１５】
2018138987.tif 000017
【図１６】
2018138987.tif 000018
【図１７】
2018138987.tif 000019
【図１８】
2018138987.tif 000020
【図１９】
2018138987.tif 000021
【図２０】
2018138987.tif 000022