(本発明の基礎となった知見)
本発明者は、上記特許文献1に記載の技術では、以下の問題が生じることを見出した。
特許文献1は、制御対象となる機器80,82,84と、前記機器の近傍にそれぞれ配置され、使用者の音声を検出するマイクロホン20,22,24とを備え、以下の技術を開示する。各マイクロホンが検出した音声データは集音手段30によって収集される。集音手段に入力された音声データの内容は音声認識手段40によって解析される。集音手段に入力された音声データの大きさから、使用者の発声方向が検出される。音声認識手段によって解析された音声データの内容と、分布分析手段によって解析された使用者の発声方向に基づいて、制御対象となる機器と操作内容とが推論手段により決定される。推論手段により決定された機器と操作内容に基づいて、制御対象となる機器に制御信号が発せられる。
ユーザが対象の機器に音声による指示を行う場合、対象機器の方を向いて指示することが自然であると考えられる。このため、上記構成により、複数存在する機器のうちのどの機器に対して指示を行ったかを判別できる。
近年、例えば、複数の加熱部を備える誘導加熱(IH)調理器または上段の加熱部と下段の加熱部とで異なる加熱プログラムを実行可能な電子レンジなど、同一機器内にて複数のタスクを実行可能な調理機器が汎用されている。このような調理機器では、複数の加熱部の間の距離が短いため、各加熱部に対するユーザからの方向の相違を判別するのは困難となっている。このため、特許文献1では、上記のような調理機器に対して、複数のタスクのうちの一のタスクを指定して音声指示を行うことは困難であるという課題があった。
そこで、本願発明者は、上記課題を解決するために、下記の改善策を検討した。
本開示の第1態様は、第1調理プログラムを実行可能な第1調理部及び前記第1調理プログラムと異なる第2調理プログラムを実行可能な第2調理部を有する調理機器と、ユーザの音声を入力する音声入力装置とに接続され、ユーザの音声によって前記調理機器を制御する音声機器制御システムにおける機器制御方法であって、第1ネットワークを介して、第1調理レシピに対応する前記第1調理プログラムを示す第1調理プログラム情報と、第2調理レシピに対応する前記第2調理プログラムを示す第2調理プログラム情報とを前記調理機器へ送信し、前記調理機器の中の前記第1調理部において前記第1調理プログラムに基づく処理が実行されており、且つ前記調理機器の中の前記第2調理部において前記第2調理プログラムに基づく処理が実行されているときに、前記音声入力装置から前記調理機器に対する操作指示を表す第1音声情報を含む指示情報を受信した場合、前記第1音声情報から前記操作指示を認識し、前記第1調理レシピの調理メニュー名を示す第1調理メニュー情報と前記第2調理レシピの調理メニュー名を示す第2調理メニュー情報とを管理するデータベースを用いて、前記指示情報に、前記第1調理メニュー情報または前記第2調理メニュー情報に関連する第2音声情報が含まれるか否かを判断し、前記指示情報に前記第2音声情報が含まれると判断された場合は、前記第1ネットワークを介して前記調理機器に、前記第2音声情報の関連する調理メニュー情報に対応した調理プログラムによって実行される処理に代わって前記操作指示に対応する処理を実行させる制御コマンドを送信するものである。
本態様によれば、第1ネットワークを介して、第1調理レシピに対応する第1調理プログラムを示す第1調理プログラム情報と、第2調理レシピに対応する第2調理プログラムを示す第2調理プログラム情報とが調理機器に送信される。調理機器の中の第1調理部において第1調理プログラムに基づく処理が実行されており、且つ調理機器の中の第2調理部において第2調理プログラムに基づく処理が実行されているときに、音声入力装置から調理機器に対する操作指示を表す第1音声情報を含む指示情報が受信された場合、第1音声情報から操作指示が認識される。
第1調理レシピの調理メニュー名を示す第1調理メニュー情報と第2調理レシピの調理メニュー名を示す第2調理メニュー情報とを管理するデータベースを用いて、指示情報に、第1調理メニュー情報または第2調理メニュー情報に関連する第2音声情報が含まれるか否かが判断される。指示情報に第2音声情報が含まれると判断された場合は、第1ネットワークを介して調理機器に、第2音声情報の関連する調理メニュー情報に対応した調理プログラムによって実行される処理に代わって操作指示に対応する処理を実行させる制御コマンドが送信される。
したがって、例えば、指示情報に第1調理メニュー情報に関連する第2音声情報が含まれると判断された場合は、第1調理部では、第1調理プログラムによって実行されている処理に代わって、操作指示に対応する処理が実行される。また、例えば、指示情報に第2調理メニュー情報に関連する第2音声情報が含まれると判断された場合は、第2調理部では、第2調理プログラムによって実行されている処理に代わって、操作指示に対応する処理が実行される。その結果、調理機器のなかの第1調理部又は第2調理部に対する操作指示が的確に実行されることとなる。
上記第1態様において、例えば、前記指示情報に前記第2音声情報が含まれないと判断された場合は、前記操作指示に対応する処理を実行できない旨を示すエラーメッセージをユーザに対して通知してもよい。
本態様によれば、指示情報に第2音声情報が含まれないと判断された場合は、操作指示に対応する処理を実行できない旨を示すエラーメッセージがユーザに対して通知される。このため、ユーザは、音声による指示をやり直すことができる。
上記第1態様において、例えば、前記音声機器制御システムはさらに、ディスプレイを有する表示装置と接続され、前記エラーメッセージは、前記表示装置のディスプレイに表示されてもよい。
本態様によれば、エラーメッセージは、表示装置のディスプレイに表示される。このため、ユーザは、操作指示に対応する処理が実行できないことを目で確認できる。
上記第1態様において、例えば、前記音声機器制御システムはさらに、音声を出力可能な音声出力装置と接続され、前記エラーメッセージは、前記音声出力装置を用いてユーザに通知されてもよい。
本態様によれば、エラーメッセージは、音声出力装置を用いてユーザに通知される。このため、ユーザは、操作指示に対応する処理が実行できないことを耳で確認できる。
上記第1態様において、例えば、前記指示情報に前記第2音声情報が含まれないと判断された場合は、前記操作指示に対応する処理を、前記調理機器において実行されている前記第1調理プログラム及び前記第2調理プログラムの全てのプログラムに基づく処理に代わって、実行させてもよい。
本態様によれば、指示情報に第2音声情報が含まれないと判断された場合は、操作指示に対応する処理は、調理機器において実行されている第1調理プログラム及び第2調理プログラムの全てのプログラムに基づく処理に代わって、実行される。指示情報に第2音声情報が含まれないと判断されたため、第1調理部に対する操作指示か第2調理部に対する操作指示かが不明となっている。この場合、本態様では、第1調理部及び第2調理部の両方において、それぞれ、第1調理プログラム及び第2調理プログラムによって実行される処理に代わって、操作指示に対応する処理が実行される。その結果、調理機器に対する操作指示が、とりあえず実行されることとなる。
上記第1態様において、例えば、前記操作指示は、前記調理機器において前記第1調理プログラム又は前記第2調理プログラムによって実行されている処理を中断させるキャンセル指示であってもよい。
本態様によれば、操作指示は、調理機器において第1調理プログラム又は第2調理プログラムによって実行されている処理を中断させるキャンセル指示である。このため、第1調理部又は第2調理部では、第1調理プログラム又は第2調理プログラムによって実行されている処理が中断される。
上記第1態様において、例えば、前記操作指示は、前記調理機器において前記第1調理プログラム又は前記第2調理プログラムによって実行されている処理とは調理パラメータの異なる処理を実行させる指示であってもよい。
本態様によれば、操作指示は、調理機器において第1調理プログラム又は第2調理プログラムによって実行されている処理とは調理パラメータの異なる処理を実行させる指示である。このため、第1調理部又は第2調理部では、第1調理プログラム又は第2調理プログラムによって実行されている処理と調理パラメータの異なる処理が実行される。
上記第1態様において、例えば、前記音声機器制御システムはさらに、ディスプレイを有する表示装置と接続され、第2ネットワークを介して、前記第1調理レシピ及び前記第2調理レシピを含む二以上の調理レシピを提供する表示画面を表す表示画面情報を、前記表示装置へ送信し、前記第2ネットワークを介して前記表示装置から、前記表示装置において前記第1調理レシピが選択された旨を示す第1調理レシピ選択情報と、前記表示装置において前記第2調理レシピが選択された旨を示す第2調理レシピ選択情報とをそれぞれ受信してもよい。
本態様によれば、第2ネットワークを介して、第1調理レシピ及び第2調理レシピを含む二以上の調理レシピを提供する表示画面を表す表示画面情報が、表示装置へ送信される。第2ネットワークを介して表示装置から、表示装置において第1調理レシピが選択された旨を示す第1調理レシピ選択情報と、表示装置において第2調理レシピが選択された旨を示す第2調理レシピ選択情報とをそれぞれ受信する。したがって、表示装置において、ユーザにより第1調理レシピ及び第2調理レシピが選択されたことを認識できる。
上記第1態様において、例えば、前記第1調理プログラム情報の前記調理機器への送信は、前記表示装置から前記第1調理レシピ選択情報を受信すると、前記表示装置を介して行われ、前記第2調理プログラム情報の前記調理機器への送信は、前記表示装置から前記第2調理レシピ選択情報を受信すると、前記表示装置を介して行われてもよい。
本態様によれば、第1調理プログラム情報及び第2調理プログラム情報の調理機器への送信は、それぞれ、表示装置から第1調理レシピ選択情報及び第2調理レシピ選択情報を受信すると、表示装置を介して行われる。したがって、表示装置は、第1調理レシピ及び第2調理レシピの選択と、第1調理プログラム情報及び第2調理プログラム情報の調理機器への送信とに、兼用される。
上記第1態様において、例えば、前記データベースは、前記第1調理部と前記第1調理プログラムとの対応関係及び前記第2調理部と前記第2調理プログラムとの対応関係を示す対応関係情報を含み、前記対応関係情報に基づいて、前記第1調理部及び前記第2調理部のうち前記操作指示に対応する処理が実行される調理部を特定し、前記制御コマンドに、前記特定した調理部を示す特定調理部情報を含めてもよい。
本態様によれば、データベースは、第1調理部と第1調理プログラムとの対応関係及び第2調理部と第2調理プログラムとの対応関係を示す対応関係情報を含む。前記対応関係情報に基づいて、第1調理部及び第2調理部のうち操作指示に対応する処理が実行される調理部が特定される。制御コマンドに、特定した調理部を示す特定調理部情報が含められる。したがって、第1調理部及び第2調理部のうち、特定調理部情報により示される特定した調理部において、調理プログラムによって実行されている処理に代わって、操作指示に対応する処理が実行される。その結果、調理機器のなかの第1調理部又は第2調理部に対する操作指示が的確に実行されることとなる。
上記第1態様において、例えば、前記調理機器は、前記対応関係情報を管理し、前記対応関係情報および前記特定調理部情報に基づいて、前記第1調理部及び前記第2調理部のうち前記操作指示に対応する処理が実行される調理部を特定し、前記特定した調理部に前記操作指示に対応する処理を実行させてもよい。
本態様によれば、調理機器は、第1調理部と第1調理プログラムとの対応関係及び第2調理部と第2調理プログラムとの対応関係を示す対応関係情報を管理する。対応関係情報および特定調理部情報に基づいて、第1調理部及び第2調理部のうち操作指示に対応する処理が実行される調理部が特定される。特定された調理部は、操作指示に対応する処理を実行する。したがって、調理機器に送信された操作指示が、第1調理部又は第2調理部において的確に実行される。
上記第1態様において、例えば、前記表示装置は、前記調理機器に含まれてもよい。
上記第1態様において、例えば、前記表示装置は、前記調理機器とは異なる機器に含まれてもよい。
本開示の第2態様は、第1調理プログラムを実行可能な第1調理部及び前記第1調理プログラムと異なる第2調理プログラムを実行可能な第2調理部を有する調理機器と、ユーザの音声を入力する音声入力装置とに接続され、ユーザの音声によって前記調理機器を制御する音声機器制御システムにおける機器制御方法であって、第1ネットワークを介して、第1調理レシピに対応する前記第1調理プログラムを示す第1調理プログラム情報と、第2調理レシピに対応する前記第2調理プログラムを示す第2調理プログラム情報とを前記調理機器へ送信し、前記調理機器の中の前記第1調理部において前記第1調理プログラムに基づく処理が実行されており、且つ前記調理機器の中の前記第2調理部において前記第2調理プログラムに基づく処理が実行されているときに、前記音声入力装置から前記調理機器に対する操作指示を表す第1音声情報を含む指示情報を受信した場合、前記第1音声情報から前記操作指示を認識し、前記第1調理レシピにおいて使用される調理器具の名称を示す第1調理器具情報と前記第2調理レシピにおいて使用される調理器具の名称を示す第2調理器具情報とを管理するデータベースを用いて、前記指示情報に、前記第1調理器具情報または前記第2調理器具情報に関連する第2音声情報が含まれるか否かを判断し、前記指示情報に前記第2音声情報が含まれると判断された場合は、前記第1ネットワークを介して前記調理機器に、前記第2音声情報の関連する調理器具情報に対応した調理プログラムによって実行される処理に代わって前記操作指示に対応する処理を実行させる制御コマンドを送信するものである。
本態様によれば、第1ネットワークを介して、第1調理レシピに対応する第1調理プログラムを示す第1調理プログラム情報と、第2調理レシピに対応する第2調理プログラムを示す第2調理プログラム情報とが調理機器に送信される。調理機器の中の第1調理部において第1調理プログラムに基づく処理が実行されており、且つ調理機器の中の第2調理部において第2調理プログラムに基づく処理が実行されているときに、音声入力装置から調理機器に対する操作指示を表す第1音声情報を含む指示情報が受信された場合、第1音声情報から操作指示が認識される。
第1調理レシピにおいて使用される調理器具の名称を示す第1調理器具情報と第2調理レシピにおいて使用される調理器具の名称を示す第2調理器具情報とを管理するデータベースを用いて、指示情報に、第1調理器具情報または第2調理器具情報に関連する第2音声情報が含まれるか否かが判断される。指示情報に第2音声情報が含まれると判断された場合は、第1ネットワークを介して調理機器に、第2音声情報の関連する調理器具情報に対応した調理プログラムによって実行される処理に代わって操作指示に対応する処理を実行させる制御コマンドが送信される。
したがって、例えば、指示情報に第1調理器具情報に関連する第2音声情報が含まれると判断された場合は、第1調理部では、第1調理プログラムによって実行されている処理に代わって、操作指示に対応する処理が実行される。また、例えば、指示情報に第2調理器具情報に関連する第2音声情報が含まれると判断された場合は、第2調理部では、第2調理プログラムによって実行されている処理に代わって、操作指示に対応する処理が実行される。その結果、調理機器のなかの第1調理部又は第2調理部に対する操作指示が的確に実行されることとなる。
上記第2態様において、例えば、前記指示情報に前記第2音声情報が含まれないと判断された場合は、前記操作指示に対応する処理を実行できない旨を示すエラーメッセージをユーザに対して通知してもよい。
上記第2態様において、例えば、前記音声機器制御システムはさらに、ディスプレイを有する表示装置と接続され、前記エラーメッセージは、前記表示装置のディスプレイに表示されてもよい。
上記第2態様において、例えば、前記音声機器制御システムはさらに、音声を出力可能な音声出力装置と接続され、前記エラーメッセージは、前記音声出力装置を用いてユーザに通知されてもよい。
上記第2態様において、例えば、前記指示情報に前記第2音声情報が含まれないと判断された場合は、前記操作指示に対応する処理を、前記調理機器において実行されている前記第1調理プログラム及び前記第2調理プログラムの全てのプログラムに基づく処理に代わって、実行させてもよい。
上記第2態様において、例えば、前記操作指示は、前記調理機器において前記第1調理プログラム又は前記第2調理プログラムによって実行されている処理を中断させるキャンセル指示であってもよい。
上記第2態様において、例えば、前記操作指示は、前記調理機器において前記第1調理プログラム又は前記第2調理プログラムによって実行されている処理とは調理パラメータの異なる処理を実行させる指示であってもよい。
上記第2態様において、例えば、前記音声機器制御システムはさらに、ディスプレイを有する表示装置と接続され、第2ネットワークを介して、前記第1調理レシピ及び前記第2調理レシピを含む二以上の調理レシピを提供する表示画面を表す表示画面情報を、前記表示装置へ送信し、前記第2ネットワークを介して前記表示装置から、前記表示装置において前記第1調理レシピが選択された旨を示す第1調理レシピ選択情報と、前記表示装置において前記第2調理レシピが選択された旨を示す第2調理レシピ選択情報とをそれぞれ受信してもよい。
上記第2態様において、例えば、前記第1調理プログラム情報の前記調理機器への送信は、前記表示装置から前記第1調理レシピ選択情報を受信すると、前記表示装置を介して行われ、前記第2調理プログラム情報の前記調理機器への送信は、前記表示装置から前記第2調理レシピ選択情報を受信すると、前記表示装置を介して行われてもよい。
上記第2態様において、例えば、前記データベースは、前記第1調理部と前記第1調理プログラムとの対応関係及び前記第2調理部と前記第2調理プログラムとの対応関係を示す対応関係情報を含み、前記対応関係情報に基づいて、前記第1調理部及び前記第2調理部のうち前記操作指示に対応する処理が実行される調理部を特定し、前記制御コマンドに、前記特定した調理部を示す特定調理部情報を含めてもよい。
上記第2態様において、例えば、前記調理機器は、前記対応関係情報を管理し、前記対応関係情報および前記特定調理部情報に基づいて、前記第1調理部及び前記第2調理部のうち前記操作指示に対応する処理が実行される調理部を特定し、前記特定した調理部に前記操作指示に対応する処理を実行させてもよい。
上記第2態様において、例えば、前記表示装置は、前記調理機器に含まれてもよい。
上記第2態様において、例えば、前記表示装置は、前記調理機器とは異なる機器に含まれてもよい。
本開示の第3態様は、第1調理プログラムを実行可能な第1調理部及び前記第1調理プログラムと異なる第2調理プログラムを実行可能な第2調理部を有する調理機器と、ユーザの音声を入力する音声入力装置と、前記調理機器および前記音声入力装置に接続可能なサーバとを含み、ユーザの音声によって前記調理機器を制御する音声機器制御システムであって、前記調理機器は、第1調理レシピに対応する前記第1調理プログラムを示す第1調理プログラム情報と、第2調理レシピに対応する前記第2調理プログラムを示す第2調理プログラム情報とを受信する第1通信部と、前記第1調理プログラムに基づく処理を前記第1調理部に実行させ、前記第2調理プログラムに基づく処理を前記第1調理部に実行させる第2制御部と、を備え、前記音声入力装置は、前記調理機器に対する操作指示を表す第1音声情報を含む指示情報を取得する音声取得部と、前記取得された指示情報を前記サーバへ送信する第2通信部と、を備え、前記サーバは、前記調理機器へ前記第1調理プログラム情報と前記第2調理プログラム情報とを送信する第3通信部と、前記第1調理レシピの調理メニュー名を示す第1調理メニュー情報と前記第2調理レシピの調理メニュー名を示す第2調理メニュー情報とを管理するデータベースと、前記調理機器の中の前記第1調理部において前記第1調理プログラムに基づく調理が実行されており、且つ前記調理機器の中の前記第2調理部において前記第2調理プログラムに基づく処理が実行されているときに、前記音声入力装置から前記指示情報を受信した場合、前記受信した指示情報に含まれる前記第1音声情報から前記操作指示を認識し、前記指示情報に、前記第1調理メニュー情報または前記第2調理メニュー情報に関連する第2音声情報が含まれるか否かを判断する判断部と、前記指示情報に前記第2音声情報が含まれると判断された場合は、前記調理機器に、前記第2音声情報の関連する調理メニュー情報に対応した調理プログラムによって実行される処理に代わって前記操作指示に対応する処理を実行させる制御コマンドを送信する第4通信部と、を備えるものである。
本態様によれば、調理機器の中の第1調理部において第1調理プログラムに基づく処理が実行されており、且つ調理機器の中の第2調理部において第2調理プログラムに基づく処理が実行されているときに、音声入力装置から調理機器に対する操作指示を表す第1音声情報を含む指示情報を受信した場合、受信した指示情報に含まれる第1音声情報から操作指示が認識される。指示情報に、第1調理メニュー情報または第2調理メニュー情報に関連する第2音声情報が含まれるか否かが判断される。
指示情報に第2音声情報が含まれると判断された場合は、調理機器に、第2音声情報の関連する調理メニュー情報に対応した調理プログラムによって実行される処理に代わって操作指示に対応する処理を実行させる制御コマンドが送信される。
したがって、例えば、指示情報に第1調理メニュー情報に関連する第2音声情報が含まれると判断された場合は、第1調理部では、第1調理プログラムによって実行されている処理に代わって、操作指示に対応する処理が実行される。また、例えば、指示情報に第2調理メニュー情報に関連する第2音声情報が含まれると判断された場合は、第2調理部では、第2調理プログラムによって実行されている処理に代わって、操作指示に対応する処理が実行される。その結果、調理機器のなかの第1調理部又は第2調理部に対する操作指示が的確に実行されることとなる。
本開示の第4態様は、上記第3態様の音声機器制御システムにおいて用いられる調理機器である。
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
以下、実施の形態について、図面を参照しながら具体的に説明する。
なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、構成要素、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また全ての実施の形態において、各々の内容を組み合わせることもできる。
(提供するサービスの全体像)
まず、本実施の形態における音声機器制御システムが提供するサービスの全体像について説明する。
図1Aは、本実施の形態における音声機器制御システムが提供するサービスの全体像を示す図である。音声機器制御システムは、グループ4100、データセンタ運営会社4110及びサービスプロバイダ4120を備える。
グループ4100は、例えば企業、団体又は家庭等であり、その規模を問わない。グループ4100は、第1の家電機器及び第2の家電機器を含む複数の家電機器101およびホームゲートウェイ4102を備える。複数の家電機器101は、インターネットと接続可能な機器(例えば、スマートフォン、パーソナルコンピュータ(PC)又はテレビ受像機等)を含む。また、複数の家電機器101は、それ自身ではインターネットと接続不可能な機器(例えば、照明、洗濯機又は冷蔵庫等)を含む。複数の家電機器101は、それ自身ではインターネットと接続不可能であっても、ホームゲートウェイ4102を介してインターネットと接続可能となる機器を含んでもよい。また、ユーザ4200は、グループ4100内の複数の家電機器101を使用する。
データセンタ運営会社4110は、クラウドサーバ4111を備える。クラウドサーバ4111は、インターネットを介して様々な機器と連携する仮想化サーバである。クラウドサーバ4111は、主に通常のデータベース管理ツール等で扱うことが困難な巨大なデータ(ビッグデータ)等を管理する。データセンタ運営会社4110は、データの管理及びクラウドサーバ4111の管理を行うデータセンタの運営等を行っている。データセンタ運営会社4110が行っている役務の詳細については後述する。
ここで、データセンタ運営会社4110は、データの管理及びクラウドサーバ4111の管理を行うデータセンタの運営等のみを行っている会社に限らない。
図1B、図1Cは、データセンタ運営会社4110の一例を示す図である。例えば、図1Bに示すように、複数の家電機器101のうちの一つの機器を開発又は製造している機器メーカが、データの管理又はクラウドサーバ4111の管理等を行っている場合は、機器メーカがデータセンタ運営会社4110に該当する。また、データセンタ運営会社4110は一つの会社に限らない。例えば、図1Cに示すように、機器メーカ及び管理会社が共同又は分担してデータの管理又はクラウドサーバ4111の管理を行っている場合は、両者又はいずれか一方がデータセンタ運営会社4110に該当する。
サービスプロバイダ4120は、サーバ121を備える。ここで言うサーバ121とは、その規模は問わず、例えば、個人用PC内のメモリ等も含む。また、サービスプロバイダ4120がサーバ121を備えていない場合もある。この場合、サービスプロバイダ4120は、サーバ121の機能を果たす別の装置を備えてもよい。
なお、上記の音声機器制御システムにおいて、ホームゲートウェイ4102は必須ではない。ホームゲートウェイ4102は、家電機器101をインターネットに接続可能にするための装置である。そこで、例えば、グループ4100内の全ての家電機器101がインターネットに接続されている場合のように、それ自身ではインターネットと接続不可能な機器は存在しない場合は、ホームゲートウェイ4102は不要となる。
次に、図1Aを用いて上記の音声機器制御システムにおける情報の流れが説明される。
まず、グループ4100の第1の家電機器又は第2の家電機器は、各ログ情報をデータセンタ運営会社4110のクラウドサーバ4111にそれぞれ送信する。クラウドサーバ4111は、第1の家電機器又は第2の家電機器のログ情報を集積する(図1Aの矢印131)。ここで、ログ情報とは、複数の家電機器101の例えば運転状況又は動作日時等を示す情報である。例えば、ログ情報は、テレビの視聴履歴、レコーダの録画予約情報、洗濯機の運転日時、洗濯物の量、冷蔵庫の開閉日時、又は冷蔵庫の開閉回数などを含む。ログ情報は、これらの情報に限らず、種々の家電機器101から取得が可能な種々の情報を含んでもよい。なお、ログ情報は、インターネットを介して複数の家電機器101自体から直接クラウドサーバ4111に提供されてもよい。また、ログ情報は、複数の家電機器101から一旦ホームゲートウェイ4102に集積され、ホームゲートウェイ4102からクラウドサーバ4111に提供されてもよい。
次に、データセンタ運営会社4110のクラウドサーバ4111は、集積したログ情報を一定の単位でサービスプロバイダ4120に提供する。ここで、「一定の単位」は、データセンタ運営会社4110が集積した情報を整理してサービスプロバイダ4120に提供することのできる単位でもよいし、サービスプロバイダ4120が要求する単位でもよい。また、「一定の単位」で提供するとしているが、情報量は一定でなくてもよい。例えば、状況に応じて提供する情報量が変化してもよい。ログ情報は、必要に応じてサービスプロバイダ4120が保有するサーバ121に保存される(図1Aの矢印132)。
そして、サービスプロバイダ4120は、ログ情報をユーザに提供するサービスに適合する情報に整理し、ユーザに提供する。情報が提供されるユーザは、複数の家電機器101を使用するユーザ4200でもよいし、外部のユーザ4210でもよい。ユーザ4200,4210への情報提供方法としては、例えば、サービスプロバイダ4120から直接ユーザ4200,4210へ情報が提供されてもよい(図1Aの矢印133,134)。また、ユーザ4200への情報提供方法としては、例えば、データセンタ運営会社4110のクラウドサーバ4111を再度経由して、ユーザ4200に情報が提供されてもよい(図1Aの矢印135,136)。また、データセンタ運営会社4110のクラウドサーバ4111は、ログ情報をユーザに提供するサービスに適合する情報に整理し、サービスプロバイダ4120に提供してもよい。
なお、ユーザ4200は、ユーザ4210と異なっていても同一であってもよい。
(実施の形態1)
図2は、実施の形態1に係る音声機器制御システムの構成を示す図である。図2を用いて、実施の形態1に係る音声機器制御システムの構成が説明される。
図2に示す音声機器制御システムは、音声入出力装置240と、複数の家電機器101と、表示端末260と、ゲートウェイ102と、情報通信ネットワーク220と、クラウドサーバ111とを含む。家電機器101は、オーブンレンジ243、誘導加熱(IH)調理器244、冷蔵庫245を含む。なお、複数の家電機器101は、オーブンレンジ243、IH調理器244、冷蔵庫245に代えて、又はこれらの機器に加えて、他の任意の機器を含んでもよい。
音声入出力装置240(音声入力装置の一例)は、ユーザ250の音声を取得する音声取得部と、ユーザ250に音声を出力する音声出力部とを含む。グループ100は、音声入出力装置240が情報提供可能な空間(つまり音声対話可能な空間)である。グループ100は、例えばユーザ250の自宅である。
音声入出力装置240は、ユーザ250の音声を認識する。音声入出力装置240は、音声入力によるユーザ250の指示に応じて、音声情報を提示すると共に、複数の家電機器101を制御する。より具体的には、音声入出力装置240は、音声入力によるユーザ250の指示に従いコンテンツを読み上げたり、ユーザ250の質問に回答したり、家電機器101を制御したりする。
表示端末260(表示装置の一例)は、ユーザ250が機器制御を指示する入力機能と、ユーザ250に情報を提供する情報出力機能とを有する。表示端末260への入力機能は、タッチパネルによって実現されてもよいし、プッシュボタンにより実現されてもよい。表示端末260は、携帯電話、スマートフォン又はタブレット装置であってもよい。
表示端末260、音声入出力装置240、及び複数の家電機器101と、ゲートウェイ102との接続は、有線又は無線を用いることができる。また、音声入出力装置240及び複数の家電機器101のうち少なくとも一部が一体化されていてもよい。
図3は、音声入出力装置240のハードウェア構成を示すブロック図である。図3を用いて、音声入出力装置240のハードウェア構成が説明される。
図3に示すように音声入出力装置240は、処理回路300、集音回路301、音声出力回路302および通信回路303を有している。これらはバス330で相互に接続されており、データ又は命令の授受を行うことが可能である。
処理回路300は、CPU310と、メモリ320とを含む。あるいは、処理回路300は、CPU310及びメモリ320に代えて、以下に説明する動作を実現するように構成された専用のハードウェアを含んでもよい。メモリ320は、機器ID341およびコンピュータプログラム342を格納する。
機器ID341は、音声入出力装置240に一意に付与された識別子である。機器ID341は、メーカによって独自に付与されてもよいし、あるいは、原則としてネットワーク上で一意に割り当てられる物理アドレス(いわゆるMAC(Media Access Control)アドレス)であってもよい。
集音回路301は、ユーザの音声を収集してアナログ音声信号を生成する。集音回路301は、生成したアナログ音声信号をデジタルデータに変換してバス330に送信する。
音声出力回路302は、バス330を通じて受信したデジタルデータをアナログ音声信号に変換する。音声出力回路302は、変換したアナログ音声信号を出力する。
通信回路303は、ネットワークを介して他の機器(例えばゲートウェイ102)と通信を行う回路である。通信回路303は、例えばイーサネット(登録商標)規格に準拠した通信を行う。通信回路303は、処理回路300によって生成されたログ情報又はID情報をゲートウェイ102に送信する。通信回路303は、ゲートウェイ102より受信した信号を、バス330を通じて処理回路300に送信する。
音声入出力装置240は、図示される構成要素以外にも、その機器に要求される機能を実現するための構成要素も含み得る。
図4は、家電機器101の一例である調理機器400のハードウェア構成を示すブロック図である。図4を用いて、調理機器400のハードウェア構成が説明される。オーブンレンジ243、IH調理器244、冷蔵庫245は、調理機器400の一例である。
調理機器400は、入出力回路410と、通信回路450と、処理回路470とを有している。これらはバス460で相互に接続されており、データ又は命令の授受を行うことが可能である。
処理回路470は、CPU430と、メモリ440とを含む。あるいは、処理回路470は、CPU430及びメモリ440に代えて、以下に説明する動作を実現するように構成された専用のハードウェアを含んでもよい。メモリ440は、機器ID441、コンピュータプログラム442、及び調理プログラムID443を格納する。
機器ID441は、調理機器400に一意に付与された識別子である。調理プログラムID443は、調理プログラムに一意に付与された識別子である。機器ID441及び調理プログラムID443は、メーカによって独自に付与されてもよいし、あるいは、原則としてネットワーク上で一意に割り当てられる物理アドレス(いわゆるMAC(Media Access Control)アドレス)であってもよい。
入出力回路410は、処理回路470が処理した結果を出力する。入出力回路410は、入力されたアナログ信号をデジタルデータに変換してバス460に送信する。例えば入出力回路410が表示機能を有する場合には、入出力回路410は、処理回路470が処理した結果を表示する。この場合、表示機能を有する入出力回路410(表示装置の一例)を含む調理機器400は、表示端末260の機能を有するように構成してもよい。
通信回路450は、ネットワークを介して他の機器(例えばゲートウェイ102)と通信を行う回路である。通信回路450は、例えばイーサネット(登録商標)規格に準拠した通信を行う。通信回路450は、処理回路470によって生成されたログ情報又はID情報をゲートウェイ102に送信する。通信回路450は、ゲートウェイ102より受信した信号を、バス460を通じて処理回路470に送信する。
調理機器400は、図示される構成要素以外にも、その機器に要求される機能を実現するための構成要素も含み得る。
図5は、表示端末260のハードウェア構成を示すブロック図である。図5に示されるように、表示端末260は、表示制御回路500と、表示回路502と、通信回路505と、処理回路510とを有している。これらはバス525で相互に接続されており、データ又は命令の授受を行うことが可能である。
表示回路502は、液晶などを含む。表示回路502は、アイコンまたは操作ボタンなどのオブジェクト画像、文字画像などの画像を表示する。表示制御回路500は、表示回路502の動作を制御して表示回路502に画像を表示させる。
通信回路505は、ネットワークを介して他の機器(例えば音声入出力装置240及び調理機器400等)と通信を行う回路である。通信回路505は、例えばイーサネット(登録商標)規格又は近距離無線通信規格に準拠した通信を行う。通信回路505は、処理回路510によって生成されたログ情報又はID情報を音声入出力装置240又は調理機器400に送信する。通信回路505は、音声入出力装置240又は調理機器400より受信した信号を、バス525を通じて処理回路510に送信する。
処理回路510は、CPU515と、メモリ520とを含む。あるいは、処理回路510は、CPU515及びメモリ520に代えて、以下に説明する動作を実現するように構成された専用のハードウェアを含んでもよい。メモリ520は、表示端末ID521、コンピュータプログラム522、及び調理プログラムID523を格納する。表示端末ID521は、表示端末260に一意に付与された識別子である。調理プログラムID523は、調理プログラムID443と同様に、調理プログラムに一意に付与された識別子である。
表示端末260は、図示される構成要素以外にも、その機器に要求される機能を実現するための構成要素も含み得る。
なお、図5では、コンピュータプログラム522が格納されているメモリ520に表示端末ID521及び調理プログラムID523が格納されているとした。しかしながらこれは一例である。コンピュータプログラム522がRAMまたはROMに格納され、表示端末ID521及び調理プログラムID523がフラッシュメモリに格納されてもよい。
図6は、ゲートウェイ102のハードウェア構成を示すブロック図である。ゲートウェイ102は、通信回路550と、処理回路570とを有している。これらはバス560で相互に接続されており、データ又は命令の授受を行うことが可能である。
通信回路550は、ネットワークを介して他の機器(例えば音声入出力装置240及び調理機器400等)と通信を行う回路である。通信回路550は、例えばイーサネット(登録商標)規格に準拠した通信を行う。通信回路550は、処理回路570によって生成されたログ情報又はID情報を音声入出力装置240又は調理機器400に送信する。また通信回路550は、音声入出力装置240又は調理機器400より受信した信号を、バス560を通じて処理回路570に送信する。
処理回路570は、CPU530と、メモリ540とを含む。あるいは、処理回路570は、CPU530及びメモリ540に代えて、以下に説明する動作を実現するように構成された専用のハードウェアを含んでもよい。メモリ540は、ゲートウェイID541およびコンピュータプログラム542を格納する。ゲートウェイID541は、ゲートウェイ102に一意に付与された識別子である。ゲートウェイ102は、図示される構成要素以外にも、その機器に要求される機能を実現するための構成要素も含み得る。
なお、図6では、コンピュータプログラム542が格納されているメモリ540にゲートウェイID541が格納されているとした。しかしながらこれは一例である。コンピュータプログラム542がRAMまたはROMに格納され、ゲートウェイID541がフラッシュメモリに格納されてもよい。
図7は、クラウドサーバ111のハードウェア構成を示すブロック図である。クラウドサーバ111は、通信回路650と、処理回路670と、音声認識データベース(DB)600と、機器状態管理DB620(データベースの一例)と、発話理解辞書DB625と、機器機能DB630と、調理プログラムDB640とを備えている。処理回路670は、CPU671と、コンピュータプログラム673を格納したメモリ672とを有している。これらの構成要素は、バス680で接続されており、相互にデータを授受することが可能である。
処理回路670は、音声認識DB600、機器状態管理DB620、発話理解辞書DB625、機器機能DB630および調理プログラムDB640にバス680で接続されている。処理回路670は、それらのデータベースに格納された管理情報の取得や編集を行う。
なお、本実施形態では、音声認識DB600、機器状態管理DB620、発話理解辞書DB625、機器機能DB630および調理プログラムDB640は、クラウドサーバ111の内部の要素であるが、クラウドサーバ111の外部に設けられていてもよい。その場合には、バス680に加えて、インターネット回線が含まれ得る。
通信回路650は、ネットワークを介して他の通信機器(例えばゲートウェイ102)と通信を行う回路である。通信回路650は、例えばイーサネット(登録商標)規格に準拠した通信を行う。
CPU671は、クラウドサーバ111の動作を制御する。CPU671は、メモリ672に展開されたコンピュータプログラム673に記述された命令群を実行する。これにより、CPU671は、種々の機能を実現することができる。コンピュータプログラム673には、クラウドサーバ111が後述する動作を実現するための命令群が記述されている。
上述のコンピュータプログラム673は、CD−ROM等の記録媒体に記録されて製品として市場に流通され、または、インターネット等の電気通信回線を通じて伝送され得る。図7に示すハードウェアを備えた機器(例えばPC)は、当該コンピュータプログラム673を読み込むことにより、本実施形態によるクラウドサーバ111として機能し得る。
なお、CPU671、コンピュータプログラム673を格納したメモリ672は、1つの半導体回路にコンピュータプログラムを組み込んだDSP(Digital Signal Processor)等のハードウェアとして実現されてもよい。そのようなDSPは、1つの集積回路で上述のコンピュータプログラム673を実行するCPU671によって行われる全ての処理を実現することができる。図7に示すCPU671およびメモリ672に代えて、そのようなDSPを処理回路670として用いてもよい。
音声認識DB600は、音声認識のための音響モデル及び言語モデルを格納する。機器状態管理DB620、発話理解辞書DB625、機器機能DB630および調理プログラムDB640については、後に詳述される。
図8は、音声入出力装置240のシステム構成を示すブロック図である。音声入出力装置240は、集音部1000と、音声検出部1010と、音声区間切り出し部1020と、通信部1030と、音声出力部1040とを備える。
集音部1000は、集音回路301に対応する。集音部1000は、ユーザの音声を収集してアナログ音声信号を生成する。集音部1000は、生成したアナログ音声信号をデジタルデータに変換し、音声信号を生成する。
音声検出部1010と、音声区間切り出し部1020とは、処理回路300により実現される。コンピュータプログラム342を実行するCPU310は、ある時点では、たとえば音声検出部1010として機能し、異なる他の一時点では、音声区間切り出し部1020として機能する。なお、これら2つの構成要素のうち、少なくとも1つが、DSPなどの専用の処理を行うハードウェアによって実現されてもよい。
音声検出部1010は、音声を検出したか否かを判定する。例えば集音部1000において生成された音声信号のレベル(例えば音声信号の振幅)が所定値以下の場合には、音声検出部1010は、音声を検出していないと判断する。
音声区間切り出し部1020は、取得した音声信号の中から音声が存在する区間を抽出する。集音部1000、音声検出部1010及び音声区間切り出し部1020は、音声取得部の一例を構成する。
通信部1030(第2通信部の一例)は、通信回路303に対応する。通信部1030は、ネットワークを介して他の通信機器(例えばゲートウェイ102)と通信を行う。通信部1030は、例えばイーサネット(登録商標)規格に準拠した通信を行う。通信部1030は、音声区間切り出し部1020が抽出した区間の音声信号を送信する。また通信部1030は、受信した音声信号を音声出力部1040に受け渡す。
音声出力部1040は、音声出力回路302に対応する。音声出力部1040は、通信部1030が受信した音声信号をアナログ音声信号に変換する。音声出力部1040は、変換されたアナログ音声信号を出力する。
図9は、調理機器400のシステム構成を示すブロック図である。調理機器400は、通信部900と、機器制御部910と、第1調理部911と、第2調理部912とを備える。
通信部900(第1通信部の一例)は、通信回路450に対応する。通信部900は、ネットワークを介して他の通信機器(例えばゲートウェイ102)と通信を行う。通信部900は、例えばイーサネット(登録商標)規格に準拠した通信を行う。
機器制御部910(第2制御部の一例)は、入出力回路410と、処理回路470とに対応する。機器制御部910の処理回路470は、通信部900により受信された制御データを読み込む。機器制御部910の処理回路470は、読み込んだ制御データを用いて、入出力回路410を制御する。
機器制御部910は、通信部900により受信された制御コマンドに従って、第1調理部911及び第2調理部912の動作を制御する。第1調理部911と第2調理部912とは、互いに異なる調理プログラムを同時に実行可能に構成されている。調理機器400がIH調理器244の場合には、第1調理部911は、例えば「ヒータ1」に対応し、第2調理部912は、例えば「ヒータ2」に対応する。調理機器400がオーブンレンジ243の場合には、第1調理部911は、例えば「上段」に対応し、第2調理部912は、例えば「下段」に対応する。
図10は、ゲートウェイ102のシステム構成を示すブロック図である。ゲートウェイ102は、通信部800と、受信データ解析部810と、送信データ生成部820とを備える。
通信部800は、通信回路550に対応する。通信部800は、ネットワークを介して他の機器(例えば音声入出力装置240及び調理機器400等)と通信を行う。通信部800は、例えばイーサネット(登録商標)規格に準拠した通信を行う。通信部800は、受信したデータを受信データ解析部810に受け渡す。また、通信部800は、送信データ生成部820が生成したデータを送信する。
受信データ解析部810は、処理回路570に対応する。受信データ解析部810は、通信部800が受信したデータの種別を解析する。受信データ解析部810は、受信したデータの種別を解析した結果、次に送信すべき機器(例えば音声入出力装置240又は調理機器400)と、その機器に送信すべきデータとを決定する。
送信データ生成部820は、処理回路570に対応する。送信データ生成部820は、受信データ解析部810が決定した、次に送信すべき機器と、その機器に送信すべきデータとから、送信データを生成する。
図11は、クラウドサーバ111のシステム構成を示すブロック図である。クラウドサーバ111は、通信部700と、音声認識部710と、発話理解部730と、状態管理部740と、応答生成部750と、音声合成部760とを備える。
通信部700(第3通信部、第4通信部の一例)は、通信回路650に対応する。通信部700は、ネットワークを介して他の機器(例えばゲートウェイ102)と通信を行う。通信部700は、例えばイーサネット(登録商標)規格に準拠した通信を行う。
音声認識部710は、処理回路670と音声認識DB600とにより実現される。音声認識部710は、音声信号を文字列データに変換する。具体的には、音声認識部710は、予め登録された音響モデルの情報を音声認識DB600より取得し、音響モデルと音声信号の周波数特性とを用いて、音声信号を音素データに変換する。また、音声認識部710は、予め登録された言語モデルの情報を音声認識DB600より取得し、言語モデルを用いて、音素データの並び方から特定の文字列データを生成する。
発話理解部730は、処理回路670と機器機能DB630と調理プログラムDB640とにより実現される。発話理解部730は、文字列データから、コンテキストデータを抽出する。コンテキストデータとは、具体的には、制御対象となる機器名、献立名、調理器具名又はタスク内容を指す。発話理解部730は、文字列データと機器機能DB630および調理プログラムDB640とを照合することで、コンテキストデータを抽出する。
状態管理部740(判断部の一例)は、処理回路670と機器状態管理DB620と調理プログラムDB640とにより実現される。状態管理部740は、コンテキストデータを入力として、機器状態管理DB620と調理プログラムDB640とのデータを取得し、取得したデータを書き換えることで、機器状態管理DB620と調理プログラムDB640とを更新する。
応答生成部750は、処理回路670と、機器状態管理DB620と、機器機能DB630と、調理プログラムDB640とにより実現される。応答生成部750は、機器状態管理DB620、機器機能DB630および調理プログラムDB640を検索し、制御対象となる調理機器400を制御する制御信号を生成する。応答生成部750は、機器機能DB630および調理プログラムDB640を検索し、ユーザ250に提供すべき情報の文字列データを生成する。
音声合成部760は、処理回路670と、音声認識DB600とにより実現される。音声合成部760は、文字列データを音声信号に変換する。具体的には、音声合成部760は、予め登録された音響モデル、言語モデルの情報を音声認識DB600より取得し、音響モデル及び言語モデルを用いて、文字列データを特定の音声信号に変換する。
図12は、発話理解部730の動作の一例を示すフローチャートである。図13A,13Bは、発話理解辞書DB625の一例を示す図である。図14は、発話理解部730により抽出されたコンテキストデータ1400の一例を示す図である。図14に示されるコンテキストデータ1400は、ユーザの発話内容が「煮物の火を止めて」の場合の例を示す。
発話理解辞書DB625は、図13A,13Bに示されるように、単語ID、単語名、関連単語ID、種別、及び概念を、互いに関連付けて保持する。
単語IDは、単語名に登録されている単語に一意に付与された識別子である。例えば単語名「鍋」には、単語ID「W001」が登録されている。関連単語IDは、単語名に登録されている単語に関連する単語の単語IDである。例えば単語名「ハンバーグ」の関連単語IDには、単語名「挽肉」の単語ID「W030」が登録されている。逆に、単語名「挽肉」の関連単語IDには、単語名「ハンバーグ」の単語ID「W010」が登録されている。
種別は、単語名に登録された単語の種別を表す。種別は、<equipment>、<menu>、<category>、<ingredient>、<appliance>、<task>を含む。種別<equipment>は、調理器具を表す。種別<menu>は、献立を表す。種別<category>は、献立の大概念を表す。種別<ingredient>は、調理に用いられる材料名を表す。種別<appliance>は、調理機器を表す。種別<task>は、動作などの指示を表す。
例えば単語名「鍋」には、種別<equipment>が登録されている。例えば単語名「ハンバーグ」には、種別<menu>が登録されている。例えば単語名「煮物」には、種別<category>が登録されている。例えば単語名「挽肉」には、種別<ingredient>が登録されている。例えば単語名「IH調理器」には、種別<appliance>が登録されている。例えば単語名「止めて」には、種別<task>が登録されている。
概念は、単語名に登録された単語の論理記号を表す。概念は、単語名に登録された単語と1対1に対応する。例えば単語名「煮物」には、概念<stewed>が登録されている。例えば単語名「オーブンレンジ」には、概念<stove>が登録されている。例えば単語名「止めて」には、概念<stop_heat>が登録されている。
図12の処理は、音声認識部710が、ユーザの発話内容の音声信号を文字列データに変換した直後に発話理解部730によって開始される。
S1201において、クラウドサーバ111の発話理解部730は、ユーザの発話内容の文字列(つまり音声認識部710から出力される文字列データ)と、発話理解辞書DB625の単語名の一覧とを照合する。ステップS1202において、発話理解部730は、文字列の全体または一部と一致する全ての単語名の「種別」及び「概念」をコンテキストデータとして出力する。図14に示されるように、コンテキストデータは、テーブル形式で出力される。
図14の例では、発話理解部730は、発話内容「煮物の火を止めて」のうち、単語名「煮物」と単語名「止めて」とが、発話理解辞書DB625の単語名に一致すると判断する。発話理解部730は、図13A,13Bから分かるように、単語名「煮物」の単語ID「W020」、種別<category>及び概念<stewed>と、単語名「止めて」の単語ID「W100」、種別<task>及び概念<stop_heat>とを、コンテキストデータ1400として出力する。
S1203において、発話理解部730は、各単語名に関連単語IDがあるか否かを判断する。各単語名に関連単語IDがなければ(S1203でNO)、図12の処理は終了する。一方、各単語名に関連単語IDがあれば(S1203でYES)、発話理解部730は、関連単語IDに関連付けられた「単語名」、「種別」、「概念」をコンテキストデータとして出力する。
図14の例では、発話理解部730は、図13A,13Bから分かるように、単語名「止めて」には関連単語IDは無いと判断し、単語名「煮物」には関連単語IDがあると判断する。そして、発話理解部730は、単語名「煮物」の関連単語ID「W011」に関連付けられた単語名「ビーフシチュー」、種別<menu>及び概念<beef_stew>と、関連単語ID「W012」に関連付けられた単語名「筑前煮」、種別<menu>及び概念<chikuzen_ni>とを、コンテキストデータとして出力する。その結果、発話理解部730から、図14に示されるコンテキストデータ1400が出力される。
図17は、機器状態管理DB620の具体例を示す図である。機器状態管理DB620は、たとえばゲートウェイID(GW−ID)、機器ID、機器名<appliance>、動作中調理プログラムID、動作中調理ステップID、調理器具名<equipment>、献立名<menu>、及び機器の動作状態を、互いに関連付けて保持する。
ゲートウェイIDは、ゲートウェイ102に一意に付与された識別子である。図17の例では、ゲートウェイIDには「G001」と「G002」とが登録されている。
機器IDは、調理機器400に含まれる個別の調理部に対してそれぞれ一意に付与された識別子である。図17の例では、IH調理器244の「ヒータ1」に対して機器ID「M01−01」が登録され、IH調理器244の「ヒータ2」に対して機器ID「M01−02」が登録され、IH調理器244の「ヒータ3」に対して機器ID「M01−03」が登録されている。また、オーブンレンジ243の「上段」に対して機器ID「M02−01」が登録され、オーブンレンジ243の「下段」に対して機器ID「M02−02」が登録されている。
機器名<appliance>は、調理機器400を表す論理記号である。機器名<appliance>は、調理機器400と1対1に対応している。図17の例では、IH調理器244のヒータ1,2,3に対して、それぞれ、機器名<ih_heater>が登録されている。また、オーブンレンジ243の上段及び下段に対して、それぞれ、機器名<stove>が登録されている。
動作中調理プログラムIDは、現在動作中の調理プログラムの識別子である。図17の例では、現在、調理プログラムID「T001」、「T002」、「T003」の調理プログラムが動作している。動作中調理ステップIDは、現在動作中の調理プログラムにおける個別の調理ステップの識別子である。図17の例では、現在、調理プログラムID「T001」の調理は、調理ステップID「S001」の調理ステップが行われており、調理プログラムID「T002」の調理は、調理ステップID「S002」の調理ステップが行われており、調理プログラムID「T003」の調理は、調理ステップID「S002」の調理ステップが行われている。
調理器具名<equipment>は、調理プログラムにおいて用いられる調理器具を表す。図17の例では、調理プログラムID「T001」の調理には、<pot>が用いられており、調理プログラムID「T002」の調理には、<pan>が用いられており、調理プログラムID「T003」の調理には、<gratin_plate>が用いられている。
献立名<menu>は、現在調理されている献立を表す。図17の例では、調理プログラムID「T001」の献立は、<chikuzen_ni>であり、調理プログラムID「T002」の献立は、<hamburg>であり、調理プログラムID「T003」の献立は、<gratin>である。
機器の動作状態は、機器が現在動作中であるか停止中であるか等を表す。図17の例では、IH調理器244の「ヒータ1」は、機器の動作状態「停止中」であり、IH調理器244の「ヒータ2」は、機器の動作状態「動作中(弱火)」であり、オーブンレンジ243の「上段」は、機器の動作状態「動作中(残り時間2分)」である。
上述のように、IH調理器244は、「ヒータ1」、「ヒータ2」、「ヒータ3」の3つの調理部を有する。これらの3つの調理部は、それぞれ異なる調理プログラムで同時に動作可能に構成されている。そこで、それぞれの調理部を特定するために、「ヒータ1」、「ヒータ2」、「ヒータ3」に対して、個別に機器IDが登録されている。IH調理器244の「ヒータ1」は、第1調理部の一例であり、IH調理器244の「ヒータ2」は、第2調理部の一例である。
同様に、オーブンレンジ243は、「上段」、「下段」の2つの調理部を有する。これらの2つの調理部は、それぞれ異なる調理プログラムで同時に動作可能に構成されている。そこで、それぞれの調理部を特定するために、「上段」、「下段」に対して、個別に機器IDが登録されている。オーブンレンジ243の「上段」は、第1調理部の一例であり
、オーブンレンジ243の「下段」は、第2調理部の一例である。
図18は、機器機能DB630の具体例を示す図である。機器機能DB630は、たとえば機能ID、機器ID、タスクの内容<task>、制御コマンド、応答メッセージを、互いに関連付けて保持する。機能IDは、機器IDに登録されている調理部が有する各機能に対して一意に付与された識別子である。タスクの内容<task>は、機能IDの機能に対するタスクを表す論理記号である。制御コマンドは、機能IDの機能を行わせるための制御コマンドを表す。応答メッセージは、機能IDの機能を行わせたときに発せられるメッセージを表す。
図18の例では、機能ID「O01−01−01」は、機器ID「M01−01」の調理部、つまり、図17よりIH調理器244の「ヒータ1」の機能を表す。この機能に対応する、タスクの内容は<begin_heat>であり、制御コマンドは「CMD=0xFFA05050」であり、応答メッセージは「ヒータ1をONにしました」である。
図19Aは、調理プログラムDB640に含まれる献立リスト1900の一例を示す図である。図19Bは、調理プログラムDB640に含まれる調理ステップリスト1910の一例を示す図である。図20Aは、調理プログラムDB640に含まれるエラーメッセージリスト1920の一例を示す図である。図20Bは、表示端末260の表示画面1930の一例を示す図である。
図19Aに示されるように、調理プログラムDB640の献立リスト1900は、たとえば調理プログラムID、献立名<menu>、調理器具名<equipment>、材料名<ingredient>、及びカテゴリー名<category>を、互いに関連付けて保持する。図19Aの例では、調理プログラムID「T001」の、献立名は<chikuzen_ni>であり、調理器具名は<pot>であり、材料名は<chiken>,<carrot>等であり、カテゴリー名は<stewed>である。
図19Bに示されるように、調理プログラムDB640の調理ステップリスト1910は、たとえば調理プログラムID、調理ステップID、応答メッセージを、互いに関連付けて保持する。図19Bの例では、調理プログラムID「T001」の調理は、調理ステップID「S001」、「S002」等を含む。調理ステップID「S002」の調理ステップには、応答メッセージ「お鍋を強火で温めてください」が登録されている。
図20Aに示されるように、調理プログラムDB640のエラーメッセージリスト1920は、たとえばエラーメッセージID、エラー種別、応答エラーメッセージを、互いに関連付けて保持する。図20Aの例では、エラーメッセージID「E002」のエラー種別には、「該当カテゴリ・献立・材料なし」と登録されており、応答エラーメッセージには、「現在、○○は作っていません。」と登録されている。図20AのエラーメッセージID「E002」の場合、例えば図20Bに示されるように、表示端末260は、「現在、クリームシチューは作っていません」との応答エラーメッセージを含む表示画面1930を表示する。
図15A,15Bは、クラウドサーバ111の状態管理部740の動作の一例を示すフローチャートである。状態管理部740は、まず、発話理解部730から出力されたコンテキストデータを取得する(S1501)。次に、状態管理部740は、取得したコンテキストデータにカテゴリ名又は材料名が含まれているか否かを判断する(S1502)。コンテキストデータにカテゴリ名又は材料名が含まれていないと判断されると(S1502でNO)、状態管理部740は、処理をS1506に進める。
一方、コンテキストデータにカテゴリ名又は材料名が含まれていると判断されると(S1502でYES)、状態管理部740は、そのカテゴリ名又は材料名と、調理プログラムDB640とを照合する(S1503)。状態管理部740は、該当するカテゴリ名又は材料名が調理プログラムDB640に登録されているか否かを判断する(S1504)。該当するカテゴリ名又は材料名が調理プログラムDB640に登録されていないと判断されると(S1504でNO)、状態管理部740は、処理をS1513に進める。
一方、該当するカテゴリ名又は材料名が調理プログラムDB640に登録されていると判断されると(S1502でYES)、状態管理部740は、関連する献立名と調理器具名とを出力して(S1505)、処理をS1506に進める。
S1506において、状態管理部740は、S1502でNOであった場合には、コンテキストデータにおける機器名、献立名又は調理器具名と機器状態管理DB620とを照合する。また、S1506において、状態管理部740は、S1505から進んだ場合には、S1505で出力された献立名、調理器具名と、機器状態管理DB620とを照合する。
S1507において、状態管理部740は、機器状態管理DB620に、該当する機器名、献立名、または調理器具名が登録されているか否かを判断する。該当する機器名、献立名又は調理器具名が、機器状態管理DB620に登録されていないと判断されると(S1507でNO)、状態管理部740は、処理をS1513に進める。
一方、該当する機器名、献立名又は調理器具名が、機器状態管理DB620に登録されていると判断されると(S1507でYES)、状態管理部740は、機器状態管理DB620から機器IDを取得する(S1508)。次に、状態管理部740は、取得した機器IDが一意に特定できるか否かを判断する(S1509)。取得した機器IDが一意に特定できないと判断されると(S1509でNO)、状態管理部740は、処理をS1513に進める。
一方、機器IDが一意に特定できると判断されると(S1509でYES)、状態管理部740は、コンテキストデータにおけるタスク内容と機器機能DB630とを照合する(S1510)。次に、状態管理部740は、該当するタスク内容が機器機能DB630に登録されているか否かを判断する(S1511)。該当するタスク内容が機器機能DB630に登録されていないと判断されると(S1511でNO)、状態管理部740は、処理をS1513に進める。
一方、該当するタスク内容が機器機能DB630に登録されていると判断されると(S1511でYES)、状態管理部740は、機器機能DB630から機能IDを取得して出力して(S1512)、図15A,15Bの処理を終了する。
S1513では、状態管理部740は、調理プログラムDB640のエラーメッセージリスト1920を検索し、該当するエラーメッセージIDを取得して出力し、図15A,15Bの処理を終了する。
例えばS1504でNOとなって処理がS1513に進められた場合には、該当するカテゴリ名又は材料名が登録されていないので、状態管理部740は、エラーメッセージID「E002」を取得する。
例えばS1507でNOとなって処理がS1513に進められた場合には、該当する機器名、献立名、又は調理器具名が登録されていないので、状態管理部740は、エラーメッセージID「E001」、「E002」、「E003」のいずれかを取得する。
例えばS1509でNOとなって処理がS1513に進められた場合には、機器IDが一意に特定できないので、状態管理部740は、エラーメッセージID「E004」を取得する。
例えばS1511でNOとなって処理がS1513に進められた場合には、該当するタスク内容が登録されていないので、状態管理部740は、エラーメッセージID「E006」を取得する。
なお、複数のエラーメッセージIDが該当する場合には、状態管理部740は、取得するエラーメッセージIDをデフォルトで例えば「E002」に決めておいてもよい。
S1513でエラーメッセージIDを出力して、この処理を終了した後、エラーメッセージに対してユーザ250が発話によって応答した場合には、発話理解部730の動作(図12)が開始されることとなる。
図16は、クラウドサーバ111の応答生成部750の動作の一例を示すフローチャートである。応答生成部750は、まず、図15A,15BのS1512,S1513で状態管理部740が出力した出力内容を取得する(S1601)。次に、応答生成部750は、取得した出力内容が機能IDかエラーメッセージIDかを判断する(S1602)。
取得した出力内容が機能IDであれば(S1602で「機能ID」)、応答生成部750は、機器機能DB630と機能IDとを照合して、制御コマンドと応答メッセージとを生成する(S1603)。
一方、取得した出力内容がエラーメッセージIDであれば(S1602でエラーメッセージID)、応答生成部750は、調理プログラムDB640に含まれるエラーメッセージリスト1920とエラーメッセージIDとを照合して、応答エラーメッセージを生成する(S1604)。
図21〜図23は、実施の形態1の音声機器制御システムの動作を示すシーケンス図である。図24A,24B,24Cは、表示端末260に表示される献立選択画面2400の一例を示す図である。なお、図21〜図23は連続する一連のシーケンスを表している。この図21〜図23に示されるシーケンス図の処理は、例えばユーザ250が表示端末260の表示画面に表示されたアイコンをタップするなどして、表示端末260に音声機器制御システムの起動を指示したときに開始される。
S2101において、表示端末260は、ユーザ250による献立リストのリクエスト指示を取得する。S2102において、表示端末260の通信回路505は、取得した献立リストのリクエスト指示と、表示端末ID521とを、ゲートウェイ102に送信する。ゲートウェイ102は、それらを受信する。
S2103において、ゲートウェイ102は、表示端末260から受信した献立リストリクエストと、表示端末ID521と、自らのメモリ540に保持するゲートウェイID541とを、クラウドサーバ111に送信する。クラウドサーバ111は、それらを受信する。
クラウドサーバ111の状態管理部740は、S2104において、献立リストを抽出する献立リスト取得処理を行う。
クラウドサーバ111の応答生成部750は、S2105において、抽出した献立リストと、表示対象となる表示端末260を特定する表示端末ID521と、ゲートウェイID541とを、ゲートウェイ102に送信する。ゲートウェイ102は、それらを受信する。
ゲートウェイ102の受信データ解析部810は、S2106において、受信データ解析処理を行う。受信データ解析部810は、受信データ解析処理において、クラウドサーバ111から受信したデータを、献立リストと、表示端末ID521と、ゲートウェイID541とに分離する。次に、S2107において、ゲートウェイ102の送信データ生成部820は、分離された献立リストを表示端末ID521に対応する表示端末260に送信する。
S2108において、表示端末260の表示制御回路500は、図24Aに示されるように、受信した献立リスト(表示画面情報の一例)に従って、献立選択画面2400を表示回路502に表示する。表示端末260は、S2109において、ユーザ250による特定の調理プログラムのリクエスト指示を取得する。
図24Aに示されるように、献立選択画面2400は、調理機器表示部2401と、調理プログラム表示部2402とを含む。調理機器表示部2401は、複数の調理部を有する調理機器400を概略的に表示する。図24Aの例では、調理機器表示部2401は、IH調理器244の「ヒータ1」、「ヒータ2」、「ヒータ3」の3つの調理部を表示している。
調理プログラム表示部2402は、調理プログラムの一覧を表示する。図24Aの例では、調理機器表示部2401は、「ハンバーグ」、「ビーフシチュー」、「筑前煮」、「グラタン」の4つの献立を表示している。調理プログラム表示部2402は、調理プログラム表示部2402の領域において上下方向にスワイプ操作が行われると、画面をスクロールして他の調理プログラムを表示するようにしてもよい。
ユーザ250は、図24Bに示されるように、接触物2403(例えばユーザの指)で、調理プログラム表示部2402の例えば「筑前煮」と表示された領域をタップし、続いて調理機器表示部2401の「ヒータ1」と表示された領域をタップする。すると、表示端末260は、調理プログラム「筑前煮」(第1調理レシピの一例)をIH調理器244の「ヒータ1」(第1調理部の一例)で調理するというリクエスト指示を取得する。これによって、表示端末260は、調理プログラムIDと機器IDとを取得する。また、表示端末260は、図24Bに示されるように、タップされた領域の表示色を変更して、選択されたことを明示する。
なお、IH調理器244の「ヒータ1」、「ヒータ2」、「ヒータ3」に対する機器IDは、事前に登録されている。
図21に戻って、S2110において、表示端末260の通信回路505は、調理プログラムID523を、機器IDに対応する調理機器400に送信する。調理機器400は、送信された調理プログラムID523を受信し、受信した調理プログラムID523をメモリ440に格納する。S2110において表示端末260から調理機器400に送信される「筑前煮」を表す調理プログラムIDは、第1調理プログラム情報の一例である。
S2111において、表示端末260の通信回路505は、調理プログラムIDと、表示端末IDと、機器IDとを、ゲートウェイ102に送信する。ゲートウェイ102は、それらを受信する。S2111において表示端末260からゲートウェイ102に送信される「筑前煮」を表す調理プログラムIDは、第1調理レシピ選択情報の一例である。
ゲートウェイ102は、S2112において、表示端末260から受信した調理プログラムIDと、表示端末IDと、機器IDと、自らのメモリ540に保持するゲートウェイID541とを、クラウドサーバ111に送信する。クラウドサーバ111の通信回路650は、これらを受信する。
クラウドサーバ111の状態管理部740は、S2201において、調理プログラム管理処理を行う。状態管理部740は、調理プログラム管理処理において、受信した調理プログラムID、表示端末ID、機器IDおよびゲートウェイIDの値を用いて、機器状態管理DB620の内容を書き換える処理を行う。
図26は、図22のS2201で実行される調理プログラム管理処理を示すフローチャートである。
S2601において、状態管理部740は、図21のS2112で通信回路650が受信した、表示端末IDと、ゲートウェイIDと、機器IDと、調理プログラムIDとを取得する。
S2602において、状態管理部740は、ゲートウェイID及び機器IDと、機器状態管理DB620とを照合する。S2603において、状態管理部740は、機器状態管理DB620の、ゲートウェイID及び機器IDに対応する動作中調理プログラムIDの欄に、調理プログラムIDが登録されているか否かを判断する。動作中調理プログラムIDの欄に調理プログラムIDが登録されていれば(S2603でYES)、状態管理部740は、図26の処理を終了する。
一方、動作中調理プログラムIDの欄に調理プログラムIDが登録されていなければ(S2603でNO)、状態管理部740は、S2601で取得した調理プログラムIDを、ゲートウェイID及び機器IDと関連付けて、機器状態管理DB620の動作中調理プログラムIDの欄に登録する(S2604)。
S2605において、状態管理部740は、調理プログラムIDと、調理プログラムDB640の献立リスト1900とを照合し、調理器具名と献立名とを取得する。S2606において、状態管理部740は、取得した調理器具名及び献立名を、ゲートウェイID及び機器IDと関連付けて、機器状態管理DB620の調理器具名及び献立名の欄に、それぞれ登録する。
S2607において、状態管理部740は、機器状態管理DB620の動作中調理ステップIDの欄を初期値(図19Bの例では「S001」)にリセットして、図26の処理を終了する。
図22に戻って、クラウドサーバ111の応答生成部750は、S2202において、ユーザ250への応答メッセージを生成する応答文生成処理を行う。具体的には、クラウドサーバ111は、調理プログラムDB640の調理ステップリスト1910(図19B)に登録された応答メッセージの情報と、機器機能DB630(図18)に登録された応答メッセージの情報とを保持している。クラウドサーバ111の応答生成部750は、調理プログラムDB640又は機器機能DB630の応答メッセージを読み込むことで、応答文の文字データを生成する。
クラウドサーバ111の音声合成部760は、S2203において、応答メッセージを音声データに変換する音声合成処理を行う。具体的には、クラウドサーバ111は、音声認識DB600に登録された、音声モデル及び言語モデルの情報を保持している。クラウドサーバ111の音声合成部760は、音声認識DB600に登録された音声モデル及び言語モデルの情報を読み込み、音声モデル及び言語モデルの情報を用いて、応答メッセージの文字列データを特定の音声データに変換する。
クラウドサーバ111は、S2204において、生成した音声データ、生成した文字データ、表示端末ID521およびゲートウェイID541をゲートウェイ102に送信する。ゲートウェイ102は、これらを受信する。
ゲートウェイ102の受信データ解析部810は、S2205において、受信データ解析処理を行う。受信データ解析処理において、ゲートウェイ102の受信データ解析部810は、受信したデータを、音声データ、文字データ、表示端末ID521およびゲートウェイID541に分離する。
次に、S2206において、ゲートウェイ102の送信データ生成部820は、分離された音声データを音声入出力装置240に送信する。S2207において、音声入出力装置240は、受信した音声データを用いて、音声を出力する。次に、S2208において、ゲートウェイ102の送信データ生成部820は、分離された文字データを表示端末ID521に対応する表示端末260に送信する。S2209において、表示端末260は、受信した文字データに対応する文字画像を表示する。
調理機器400は、S2301において、ユーザ250による調理機器400に対する操作内容を検出する。調理機器400の通信回路450は、S2302において、検出した操作内容と、機器ID441と、調理プログラムID443とを、ゲートウェイ102に送信する。ゲートウェイ102は、それらを受信する。
ゲートウェイ102は、S2303において、調理機器400から受信した調理プログラムID443と、操作内容と、機器ID441と、自らのメモリ540に保持するゲートウェイID541とを、クラウドサーバ111に送信する。クラウドサーバ111は、これらを受信する。
クラウドサーバ111の状態管理部740は、S2304において、調理プログラム更新処理を行う。状態管理部740は、調理プログラム更新処理において、受信した調理プログラムID、操作内容、機器ID441およびゲートウェイID541の値を用いて、機器状態管理DB620の内容を書き換える処理を行う。状態管理部740は、受信した操作内容から、直前の調理ステップが実行されたことを知ることができる。その結果に応じて、状態管理部740は、機器状態管理DB620の内容を更新する。
具体的には、例えば、図24Bに示されるように、図21のS2109において、ユーザ250が「筑前煮」をIH調理器244の「ヒータ1」で調理することをリクエストした場合が説明される。この場合、図19Aに示されるように、「筑前煮」の調理プログラムIDは「T001」である。そこで、クラウドサーバ111の応答生成部750は、状態管理部740から「筑前煮」の調理プログラムID「T001」を取得する。
応答生成部750は、調理プログラムDB640の調理ステップリスト1910(図19B)を参照して、調理プログラムID「T001」の最初の調理ステップID「S001」の応答メッセージである「浄水400CCをお鍋に入れて、コンロの上に置いてください」を取得する。応答生成部750は、図22のS2202において、この応答メッセージを生成する。
この応答メッセージが、図22のS2207において音声出力され、S2209において画面表示される。これに応じて、ユーザ250が、鍋に水を入れて、IH調理器244の「ヒータ1」の上に置く。すると、図23のS2301において、調理機器400(この例ではIH調理器244)は、「ヒータ1」の重量が増加したことを検出する。調理機器400は、S2302において、この「ヒータ1」の重量増加を、操作内容として、ゲートウェイ102に送信する。
ゲートウェイ102は、S2303において、「ヒータ1」の重量増加との操作内容をクラウドサーバ111に送信する。クラウドサーバ111の通信回路650は、これを受信する。
S2304において、状態管理部740は、通信回路650が受信した「ヒータ1」の重量増加との操作内容を取得する。状態管理部740は、「ヒータ1」の重量増加との操作内容から、調理プログラムID「T001」の調理(筑前煮)の調理ステップID「S001」が実行されたと判断する。
そこで、状態管理部740は、機器状態管理DB620の機器IDが「M01−01」である「IH調理器・ヒータ1」に対応する動作中調理ステップIDの「S001」を「S002」に更新する。このようにして、状態管理部740は、S2304の調理プログラム更新処理を実行する。
図21〜図23の処理によって、例えば、筑前煮の調理が、IH調理器244の「ヒータ1」で行われることとなる。この状態で、ユーザ250がIH調理器244の別の調理部で、同時に別の調理を行いたい場合がある。この場合には、例えば表示端末260に表示されたアイコンをタップするなどの操作により、音声機器制御システムは、図21のS2101からの処理を再び開始する。
このとき、図21のS2108では、図24Bに示されるように、筑前煮の調理が行われており、「ヒータ1」が使用中であることを示す献立選択画面2400が、表示端末260に表示される。
献立選択画面2400が表示端末260に表示された状態で、ユーザ250は、図24Cに示されるように、接触物2403(例えばユーザの指)で、調理プログラム表示部2402の例えば「ハンバーグ」と表示された領域をタップし、続いて調理機器表示部2401の「ヒータ2」と表示された領域をタップする。すると、表示端末260は、図21のS2109において、調理プログラム「ハンバーグ」(第2調理レシピの一例)をIH調理器244の「ヒータ2」(第2調理部の一例)で調理するというリクエスト指示を取得する。
これによって、表示端末260は、調理プログラムIDと機器IDとを取得する。また、表示端末260は、図24Cに示されるように、タップされた領域の表示色を変更して、選択されたことを明示する。
そして、「ハンバーグ」を表す調理プログラムIDと、IH調理器244の「ヒータ2」を表す機器IDとを用いて、図21〜図23の処理が再び行われる。このとき、図21のS2110において表示端末260から調理機器400に送信される「ハンバーグ」を表す調理プログラムIDは、第2調理プログラム情報の一例である。また、図21のS2111において表示端末260からゲートウェイ102に送信される「ハンバーグ」を表す調理プログラムIDは、第2調理レシピ選択情報の一例である。
調理機器400の加熱は、ユーザ250による操作で開始してもよい。この場合には、図19Bの調理ステップリスト1910に登録されている「お鍋を強火で温めてください」との応答メッセージを出力してもよい。
調理機器400の加熱は、鍋の重量増加で自動開始してもよい。この場合には、図18の機器機能DB630に登録されている「ヒータ1をONにしました」との応答メッセージを出力してもよい。
調理プログラムの実行中に、ユーザ250による操作が行われると、操作毎に、図23の処理が実行される。
図25は、実施の形態1の音声機器制御システムにおいて、音声指示の対象を判別する処理を示すシーケンス図である。この図25の処理は、ユーザが音声により機器に何らかの指示を発したときに開始される。
S2501において、音声入出力装置240は、ユーザ250の音声データを取得する。S2502において、音声入出力装置240の通信回路303は、取得した音声データをゲートウェイ102に送信する。ゲートウェイ102は、それらを受信する。
S2503において、ゲートウェイ102は、音声入出力装置240から受信した音声データと、自らのメモリ540に保持するゲートウェイID541とを、クラウドサーバ111に送信する。クラウドサーバ111の通信回路650は、これらを受信する。
S2504において、クラウドサーバ111の音声認識部710及び発話理解部730は、音声内容理解処理を実行する。この音声内容理解処理において、まず、音声認識部710は、通信回路650により受信されたユーザの音声データを取得する。音声認識部710は、ユーザの音声データから周波数特性を抽出する。音声認識部710は、音声認識DB600に保持されている音響モデルと、抽出した周波数特性とから音素データを抽出する。
音声認識部710は、抽出した音素データの並び方が、音声認識DB600に保持されている言語モデルのどの文字列データに最も近いかを照合することにより、特定の文字列データに変換する。音声認識部710により得られた文字列データを用いて、発話理解部730は、上記図12を用いて説明された処理を実行する。このようにして、S2504の音声内容理解処理が実行される。
S2505において、クラウドサーバ111の状態管理部740は、状態管理処理を実行する。この状態管理処理では、状態管理部740は、上記図15A,15Bを用いて説明された処理を実行する。
S2506において、クラウドサーバ111の応答生成部750は、出力生成処理を実行する。この出力生成処理では、応答生成部750は、上記図16を用いて説明された処理を実行する。
クラウドサーバ111の音声合成部760は、S2507において、音声合成処理を行う。S2507の音声合成処理において、クラウドサーバ111の音声合成部760は、応答文を音声データに変換する処理を行う。具体的には、クラウドサーバ111は、音声認識DB600に登録された、音響モデル及び言語モデルの情報を保持している。クラウドサーバ111のCPU671は、音声認識DB600に登録された音響モデル及び言語モデルの情報を読み込み、音響モデル及び言語モデルの情報を用いて、文字列データを特定の音声データに変換する。
クラウドサーバ111は、S2508において、生成した制御コマンドと、生成した音声データと、生成した文字データと、制御対象となる機器ID441と、ゲートウェイID541とを、ゲートウェイ102に送信する。ゲートウェイ102は、これらを受信する。
ゲートウェイ102の受信データ解析部810は、S2509において、受信データ解析処理を行う。S2509の受信データ解析処理において、ゲートウェイ102の受信データ解析部810は、受信したデータを、制御コマンドと、音声データと、文字データと、機器ID441と、ゲートウェイID541とに分離する。
S2510において、ゲートウェイ102の送信データ生成部820は、分離された文字データを表示端末260に送信する。S2511において、表示端末260は、受信した文字データを表示画面に表示する。
S2512において、ゲートウェイ102の送信データ生成部820は、分離された制御コマンドを機器ID441に対応する調理機器400に送信する。S2513において、調理機器400の機器制御部910は、通信部900が受信した制御コマンドにしたがって、動作を制御する。
S2514において、ゲートウェイ102の送信データ生成部820は、分離された音声データを音声入出力装置240に送信する。S2515において、音声入出力装置240の音声出力部1040は、通信部1030が受信した音声データに従って、音声を出力する。
図25の処理における具体例が説明される。まず、上記図24Cのように、筑前煮とハンバーグとが調理されている場合において、上記図14のように、「煮物の火を止めて」とユーザ250が発話した場合の第1具体例の動作が説明される。
この場合には、図25のS2504の音声内容理解処理の結果、図14に示されるコンテキストデータ1400が発話理解部730から出力される。続くS2505では、上述のように図15A,15Bの処理が、状態管理部740によって実行される。
図14のコンテキストデータ1400では、「煮物」の種別は<category>、概念は<stewed>になっている。そこで、カテゴリ名が含まれているため、図15AのS1502でYESと判断されて、処理は図15BのS1503に進む。
図15BのS1503において、調理プログラムDB640(図19A)と照合されると、カテゴリー名<category>に<stewed>が登録されているため、S1504でYESと判断されて、S1505において、献立名<chikuzen_ni>と調理器具名<pot>とが出力される。
なお、図19Aの調理プログラムDB640では省略されているが、図13の単語名「煮物」の関連単語IDから分かるように、ビーフシチューも煮物に該当する。したがって、S1505では、献立名<beef_stew>及び調理器具名<pot>も、出力されることになる。
図15AのS1506において、機器状態管理DB620(図17)と照合されると、献立名<chikuzen_ni>が登録されている。したがって、S1507でYESと判断されて、S1508において、機器ID「M01−01」(特定調理部情報の一例)が取得される。機器IDが一意に特定できるため、S1509でYESと判断されて、S1510〜S1511に進む。このように、機器状態管理DB620において、献立名<chikuzen_ni>によって、機器IDが特定される。
S1510において、コンテキストデータ1400(図14)の種別<task>の「止めて」の概念<stop_heat>は、機器機能DB630(図18)の機器ID「M01−01」に登録されている。したがって、S1511でYESと判断され、S1512において、機能ID「O01−01−02」が出力される。以上により、図25のS2505の状態管理処理が終了する。
続いて、図25のS2506の出力生成処理、つまり図16の応答生成部750による処理が実行される。この第1具体例では、状態管理部740の出力内容は機能IDであるので、図16のS1603において、機能ID「O01−01−02」と機器機能DB630(図18)とが照合されて、制御コマンド「CMD=0xFFA05051」及び応答メッセージ「ヒータ1をOFFにしました」が生成される。
このようにして、ユーザ250による「煮物の火を止めて」との発話によって、ハンバーグを調理している「ヒータ2」ではなくて、筑前煮を調理している「ヒータ1」を的確に止めることができる。この第1具体例において、「煮物の火を止めて」は指示情報の一例であり、「止めて」は第1音声情報(操作指示)の一例であり、「煮物」は、第1メニュー情報又は第2メニュー情報の一例、かつ第2音声情報の一例である。
次に、上記図24Cのように、筑前煮とハンバーグとが調理されている場合において、上記図14と異なり、「お鍋の火を止めて」とユーザ250が発話した場合の第2具体例の動作が、上記第1具体例の動作と異なる点を中心に説明される。
この場合には、発話理解部730から出力されるコンテキストデータには、図13の発話理解辞書DB625における単語名「鍋」の欄の種別<equipment>及び概念<pot>と、単語名「止めて」の欄の種別<task>及び概念<stop_heat>とが、含まれる。
このコンテキストデータには、カテゴリー名も材料名も含まれない。このため、図15AのS1502でNOと判断されて、処理はS1506に進む。機器状態管理DB620(図17)には、コンテキストデータにおける調理器具名<pot>が1か所だけ登録されている。このため、S1506〜S1508において、機器ID「M01−01」が取得される。このように、機器状態管理DB620において、調理器具名<pot>により機器IDが特定される。
以下、タスク内容「止めて」は上記第1具体例と同じであるので、上記第1具体例と同様に処理が進み、同様の制御コマンド及び応答メッセージが生成される。
このようにして、ユーザ250による「お鍋の火を止めて」との発話によって、ハンバーグを調理している「ヒータ2」ではなくて、筑前煮を調理している「ヒータ1」を的確に止めることができる。この第2具体例において、「お鍋の火を止めて」は指示情報の一例であり、「止めて」は第1音声情報(操作指示)の一例であり、「お鍋」は、第1調理器具情報又は第2調理器具情報の一例、かつ第2音声情報の一例である。
次に、上記図24Cと異なり、筑前煮とビーフシチューとが調理されている場合において、上記図14のように、「煮物の火を止めて」とユーザ250が発話した場合の第3具体例の動作が、上記第1、第2具体例の動作と異なる点を中心に説明される。
この場合には、上記第1具体例と同じ、図14に示されるコンテキストデータ1400が発話理解部730から出力される。したがって、上記第1具体例と同様に、図15BのS1505において、献立名<chikuzen_ni>と調理器具名<pot>とが出力される。また、上記第1具体例と同様に、S1505では、献立名<beef_stew>及び調理器具名<pot>も出力される。
この第3具体例では、図17の機器状態管理DB620において、献立名には<hamburg>に代えて<beef_stew>が登録されている。したがって、機器状態管理DB620には、献立名<chikuzen_ni>と献立名<beef_stew>との両方が登録されている。このため、図15AのS1508において、機器ID「M01−01」と機器ID「M01−02」との両方が取得される。その結果、機器IDが一意に特定できないため、S1509でNOと判断される。
この第3具体例では、調理器具名<pot>が重複している。このため、図15BのS1513において、図20Aの調理プログラムDB640のエラーメッセージリスト1920から、エラーメッセージID「E004」が取得されて、出力される。
続いて、この第3具体例では、状態管理部740の出力内容はエラーメッセージIDであるので、図16のS1604において、エラーメッセージID「E004」と図20Aの調理プログラムDB640とが照合されて、応答エラーメッセージ「献立名を教えてください」が生成される。
このように、ユーザ250による「煮物の火を止めて」との発話では、煮物の一種である筑前煮を調理している「ヒータ1」と、同じく煮物の一種であるビーフシチューを調理している「ヒータ2」とを区別することができない。このため、ユーザ250は、「献立名」を発話するように促される。この第3具体例において、「煮物の火を止めて」は指示情報の一例であり、「止めて」は第1音声情報(操作指示)の一例である。
次に、上記図24Cと異なり、筑前煮とビーフシチューとが調理されている場合において、上記図14と異なり、「お鍋の火を止めて」とユーザ250が発話した場合の第4具体例の動作が、上記第1〜第3具体例の動作と異なる点を中心に説明される。
この場合には、上記第2具体例と同様に、発話理解部730から出力されるコンテキストデータには、図13の発話理解辞書DB625における単語名「鍋」の欄の種別<equipment>及び概念<pot>と、単語名「止めて」の欄の種別<task>及び概念<stop_heat>とが、含まれる。
このコンテキストデータには、カテゴリー名も材料名も含まれない。このため、図15AのS1502でNOと判断されて、処理はS1506に進む。
この第4具体例では、上記第3具体例と同様に、機器状態管理DB620には、献立名<chikuzen_ni>に対応する調理器具名には<pot>が登録され、献立名<beef_stew>に対応する調理器具名にも<pot>が登録されている。このため、機器IDが一意に特定できない。
この第4具体例では、上記第3具体例と同様に、調理器具名<pot>が重複している。このため、上記第3具体例と同様に、応答エラーメッセージ「献立名を教えてください」が生成される。
このように、ユーザ250による「お鍋の火を止めて」との発話では、どちらもお鍋を使用しているため、筑前煮を調理している「ヒータ1」と、ビーフシチューを調理している「ヒータ2」とを区別することができない。このため、ユーザ250は、「献立名」を発話するように促される。この第4具体例において、「お鍋の火を止めて」は指示情報の一例であり、「止めて」は第1音声情報(操作指示)の一例である。
次に、上記図24Cのように、筑前煮とハンバーグとが調理されている場合において、上記図14と異なり、「お鍋を弱火にして」とユーザ250が発話した場合の第5具体例の動作が、上記第1〜第4具体例の動作と異なる点を中心に説明される。
この場合には、発話理解部730から出力されるコンテキストデータには、図13の発話理解辞書DB625における単語名「鍋」の欄の種別<equipment>及び概念<pot>と、単語名「弱火」の欄の種別<task>及び概念<low_heat>とが、含まれる。
このコンテキストデータには、カテゴリー名も材料名も含まれない。このため、図15AのS1502でNOと判断されて、処理はS1506に進む。機器状態管理DB620(図17)には、コンテキストデータにおける調理器具名<pot>が1か所だけ登録されている。このため、S1506〜S1508において、機器ID「M01−01」が取得される。このように、機器状態管理DB620において、調理器具名<pot>により機器IDが特定される。
図15AのS1509で機器IDが一意に特定されるため、S1510〜S1512が実行される。コンテキストデータの種別<task>の「弱火」の概念<low_heat>は、図18の機器機能DB630の機器ID「M01−01」に登録されている。したがって、機能ID「O01−01−04」が出力される。
続いて、図16のS1603において、機器機能DB630(図18)から、機能ID「O01−01−04」に対応する制御コマンド「CMD=0xFFA05053」及び応答メッセージ「ヒータ1の火を弱くしました」が生成される。
このようにして、ユーザ250による「お鍋を弱火にして」との発話によって、ハンバーグを調理している「ヒータ2」ではなくて、筑前煮を調理している「ヒータ1」を的確に弱火にすることができる。この第5具体例において、「お鍋を弱火にして」は指示情報の一例であり、「弱火」は第1音声情報(操作指示)の一例であり、「お鍋」は、第1調理器具情報又は第2調理器具情報の一例、かつ第2音声情報の一例である。
なお、図13の発話理解辞書DB625の単語名「弱火」に対応する、図18の機器機能DB630のタスクの内容<low_heat>は、調理プログラムによって実行される処理とは調理パラメータの異なる処理を実行させる操作指示の一例である。
この第5具体例では、調理パラメータは、火加減、つまり設定温度である。しかし、本開示は、これに限られない。調理パラメータは、例えば、設定温度を持続させる時間、温度変化の傾き、又は加熱のオンオフのデューティ比であってもよい。つまり、ユーザ250の発話による指示は、設定温度を持続させる時間を変更する指示を含んでもよい。
以上説明されたように、実施の形態1によれば、IH調理器244の「ヒータ1」と「ヒータ2」との2つの調理部で、異なる調理を同時に実行中の場合において、ユーザ250の発話による指示が、どちらの調理部に対する指示であるかを的確に判別することができる。
また、実施の形態1では、どちらの調理部に対する指示であるかを判別できない場合には、応答エラーメッセージを出力している。これによって、ユーザ250に対して、適切な発話を促すことができる。
(実施の形態2)
図27は、実施の形態2に係る音声機器制御システムの構成を示す図である。実施の形態2では、実施の形態1と同一要素には同一符号が付され、詳細な説明は省略される。以下では、実施の形態1との相違点を中心に、実施の形態2が説明される。
実施の形態2の音声機器制御システムは、音声入出力装置240と、複数の家電機器101と、表示端末260と、統合管理装置2800とを含む。すなわち、実施の形態2の音声機器制御システムは、実施の形態1の音声機器制御システムが備えているゲートウェイ、情報通信ネットワーク、及びクラウドサーバに代えて、統合管理装置2800を備える。
統合管理装置2800は、グループ100内に配置されている。統合管理装置2800と、表示端末260、音声入出力装置240及び複数の家電機器101との接続は、有線又は無線を用いることができる。
なお、実施の形態2では、統合管理装置2800は、家電機器101と別に設けられているが、本開示は、これに限られない。例えば、オーブンレンジ243、IH調理器244、又は冷蔵庫245が、統合管理装置2800を含むようにしてもよい。
図28Aは、統合管理装置2800のハードウェア構成を示すブロック図である。統合管理装置2800は、通信回路650と、処理回路670と、音声認識データベース(DB)600と、機器状態管理DB620と、発話理解辞書DB625と、機器機能DB630と、調理プログラムDB640とを備える。処理回路670は、CPU671と、プログラム673を格納したメモリ672とを有する。このように、統合管理装置2800は、図7に示されるクラウドサーバ111と同じハードウェア構成を有する。
図28Bは、統合管理装置2800のシステム構成を示すブロック図である。統合管理装置2800は、通信部700と、音声認識部710と、発話理解部730と、状態管理部740と、応答生成部750と、音声合成部760とを備える。このように、統合管理装置2800は、図11に示されるクラウドサーバ111と同じシステム構成を有する。
図29は、実施の形態2の機器状態管理DB620の具体例を示す図である。実施の形態2の機器状態管理DB620は、機器ID、機器名<appliance>、動作中調理プログラムID、動作中調理ステップID、調理器具名<equipment>、献立名<menu>、及び機器の動作状態を、互いに関連付けて保持する。実施の形態2の機器状態管理DB620は、ゲートウェイIDを保持しない点で、図17に示される実施の形態1の機器状態管理DB620と異なる。
図30A,30Bは、実施の形態2の音声機器制御システムの動作を示すシーケンス図である。図30A,30Bでは、図21〜図23に示される実施の形態1の音声機器制御システムの動作と同一ステップには同一符号が付されている。
実施の形態1(図21〜図23)では、クラウドサーバ111によって実行されていた処理は、実施の形態2(図30A,30B)では、統合管理装置2800によって実行される。
実施の形態2(図30A,30B)では、実施の形態1(図21〜図23)で行われていたクラウドサーバ111とゲートウェイ102との間での送受信処理がなく、ゲートウェイ102で行われていた受信データ解析処理も行われない。
表示端末260及び調理機器400からのデータの送信先は、実施の形態1(図21〜図23)ではゲートウェイ102であったが、実施の形態2(図30A,30B)では、統合管理装置2800である。
以上の点を除いて、実施の形態2(図30A,30B)の音声機器制御システムの動作は、実施の形態1(図21〜図23)の動作と同じである。
図31は、実施の形態2の音声機器制御システムにおいて、音声指示の対象を判別する処理を示すシーケンス図である。図31では、図25に示される実施の形態1の音声機器制御システムの処理と同一ステップには同一符号が付されている。
実施の形態1(図25)では、クラウドサーバ111によって実行されていた処理は、実施の形態2(図31)では、統合管理装置2800によって実行される。
実施の形態2(図31)では、実施の形態1(図25)で行われていたクラウドサーバ111とゲートウェイ102との間での送受信処理がなく、ゲートウェイ102で行われていた受信データ解析処理も行われない。
音声入出力装置240からのデータの送信先は、実施の形態1(図25)ではゲートウェイ102であったが、実施の形態2(図31)では、統合管理装置2800である。
上記の点を除いて、実施の形態2(図31)の音声機器制御システムの処理は、実施の形態1(図25)の処理と同じである。
以上説明されたように、実施の形態2では、実施の形態1においてクラウドサーバ111により実行されていた処理が統合管理装置2800により実行される。その他の点は実施の形態1と同様であるため、実施の形態2によれば、実施の形態1と同様の効果を得ることができる。
上記実施の形態1では、クラウドサーバ111のみが機器状態管理DB620を有している。上記実施の形態2では、統合管理装置2800のみが機器状態管理DB620を有している。しかし、本開示は、これに限られない。
図32は、調理機器400のハードウェア構成の別の例を示すブロック図である。図32の調理機器400のメモリ440は、新たに、機器状態管理DB620を含む。
図32の構成によれば、調理機器400は、機器状態管理DB620の情報を保持している。このため、調理プログラムIDを含む制御コマンドを受信すると、調理機器400のCPU430は、機器状態管理DB620の情報から、機器IDを特定することができる。したがって、調理機器400の機器制御部910は、特定した機器IDに対応する調理部(例えばIH調理器244のヒータ2)を、制御コマンドに従って動作させることができる。
上記実施の形態1では、音声入出力装置240、表示端末260、各種の家電機器101がそれぞれ独立している例が開示されている。しかし、本開示はこれに限らず、表示端末260が音声入出力装置240を有していてもよい。また、各種の家電機器101が音声入出力装置240および/または表示端末260を有していてもよい。
上記実施の形態2では、音声入出力装置240、表示端末260、各種の家電機器101、統合管理装置2800がそれぞれ独立している例が開示されている。しかし、本開示はこれに限らず、表示端末260が音声入出力装置240を有していてもよい。また、各種の家電機器101が音声入出力装置240および/または表示端末260を有していてもよい。さらに、各種の家電機器101が統合管理装置2800を有していてもよい。
(その他の実施の形態)
その他の実施の形態として、複数の調理機器を使用する調理レシピを、音声対話型エージェントに適用してユーザが調理を行う場合について説明する。このとき、音声対話型エージェントは、各調理機器に搭載されていても良いし、家庭内の調理機器または家電機器を統一して制御可能なように家屋に備わっていても良い。なお、ここでは例えば、音声対話型エージェントは、各家電機器と相互にアクセス可能であるとする。
ここで、例えば、IH調理器またはガスコンロ、電子レンジ、オーブンを用いてローストビーフと付け合せである茹で野菜を調理する調理レシピを想定する。
エージェントは、食材である牛肉を解凍する必要があることをユーザへ伝え、牛肉を電子レンジへ入れて解凍ボタンを押すよう指示する。このときエージェントは、電子レンジへアクセスして解凍ボタンが押されたことを確認する。なお、この確認はユーザがエージェントに対して解凍指示を完了した旨を伝えるとしてもよい。
解凍ボタンが押されたことを確認されると、エージェントは付け合せの茹で野菜を調理するためにIH調理器を用いて湯を沸かすようユーザへ指示する。指示されたユーザは、鍋に水を入れてIH調理器を動作させる。このときもまた、エージェントはIH調理器へアクセスして、IH調理器が動作されたことを確認する。IH調理器に備わっている湯沸しボタンなどが押下されたことを検知することが好ましい。しかし、単純にIH調理器が動作したことを検知するだけでもよい。あるいは、湯沸しを開始した旨をユーザがエージェントに伝えるとしてもよい。また、IH調理器に限らず、ガスコンロまたは電子ケトルなどでこれを行っても良い。
湯沸かしが開始されたことを確認したエージェントは、ユーザへ茹で野菜の下ごしらえを指示する。ここで、どのように野菜を切るかなど、エージェントは、細かい指示をするとしてもよい。ユーザは下ごしらえが完了したことをエージェントへ伝える。
電子レンジおよびIH調理器は、牛肉の解凍または湯沸しが完了した場合に、エージェントへその旨を伝える。電子レンジまたはIH調理器と、エージェントとが、それぞれ相互にアクセスできない場合は、ユーザがエージェントへその旨を伝えるとしてもよい。
エージェントが電子レンジおよびIH調理器において、牛肉の解凍または湯沸しが完了した旨を確認した場合、ユーザに対して次の動作を指示する。例えば、電子レンジから牛肉を取り出して下ごしらえを行う指示である。または、IH調理器で湯を沸かしていた鍋に野菜を投入して、例えば、10分間茹でる指示である。このとき、鍋に野菜を投入すると、鍋の中の湯の温度が一次的に下がる。このため、エージェントはこれを検知して、検知した時点からタイマーを動作させて10分間を計測し、野菜を鍋から取り出す時期をユーザへ知らせるとしても良い。また、エージェントはユーザに牛肉の下ごしらえを指示すると同時に、オーブンに対して、例えば、250度へ余熱させる動作を行わせてもよい。
牛肉の下ごしらえが完了したことをエージェントが検知した場合、エージェントは次に牛肉をオーブンに入れるように指示する。ここで、牛肉の下ごしらえが完了したことは、ユーザがその旨をエージェントへ伝えるとしてもよい。
オーブン内のセンサなどによって牛肉がオーブンに入れられたことが検知されると、エージェントはオーブンを動作させる。このとき、例えば、15分間250度で焼いたのちに、160度へ温度を下げてさらに40分焼くという動作をオーブンに行わせる。この場合、エージェントがオーブンに対して自動で設定するとしても良いし、エージェントがユーザへ指示してユーザにオーブンを操作させるとしてもよい。このとき、温度を落とすタイミングはエージェントがタイマーを用いて計測して、適切なタイミングでユーザへ指示してもよい。または、15分後に160度へ温度を下げる温度制御プログラムを予めユーザへ設定させていてもよい。
オーブンでの調理が完了したことを確認したエージェントは、オーブンの天板に残った肉汁でソースを作る指示をユーザに対して行う。このとき、例えば、鍋またはフライパンに肉汁を移してIH調理器を用いて加熱するよう指示する。このとき、ソースを作るためのIH調理器の加熱プログラムはエージェントが自動で設定しても良いし、適切なタイミングでユーザへ加熱の強さを変更するよう指示するとしてもよい。また、肉汁に追加で加えるスパイス等の指示も適宜行う。
エージェントがソースの完成を確認すると、エージェントはユーザへ茹で野菜およびローストビーフの盛り付けを指示してレシピの調理完了とする。
このように、複数の調理機器を利用した調理レシピを適用する場合に、音声対話型エージェントは、各調理機器から動作確認通知を受け取ることで調理の進捗状況を確認可能とし、進捗状況に対応した指示をユーザへ行うことができる。
なお、これは調理に限るものではなく、複数の家電機器を用いた作業を行う場合であれば適用可能な処理である。
以上、実施の形態に係る音声機器制御システムについて説明したが、本発明は、この実施の形態に限定されるものではない。
また、上記実施の形態に係る音声機器制御システムに含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
さらに、本発明は上記プログラムであってもよいし、上記プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
また、上記で用いた数字は、全て本発明を具体的に説明するために例示するものであり、本発明は例示された数字に制限されない。また、構成要素間の接続関係は、本発明を具体的に説明するために例示するものであり、本発明の機能を実現する接続関係はこれに限定されない。
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
以上、一つの態様に係る音声機器制御システム装置について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つの態様の範囲内に含まれてもよい。
(クラウドサービスの類型)
上記態様において説明された技術は、例えば、以下のクラウドサービスの類型において実現されうる。しかし、上記態様において説明された技術が実現される類型はこれに限られるものでない。
(サービスの類型1:自社データセンタ型クラウドサービス)
図33は、サービスの類型1(自社データセンタ型クラウドサービス)における音声機器制御システムが提供するサービスの全体像を示す図である。本類型では、サービスプロバイダ4120がグループ4100から情報を取得し、ユーザに対してサービスを提供する。本類型では、サービスプロバイダ4120が、データセンタ運営会社の機能を有している。すなわち、サービスプロバイダ4120が、ビッグデータを管理するクラウドサーバ4203を保有している。したがって、データセンタ運営会社は存在しない。
本類型では、サービスプロバイダ4120は、データセンタ(クラウドサーバ)4203を運営及び管理している。また、サービスプロバイダ4120は、オペレーティングシステム(OS)4202及びアプリケーション4201を管理する。サービスプロバイダ4120は、サービスプロバイダ4120が管理するOS4202及びアプリケーション4201を用いてサービスを提供する(矢印204)。
(サービスの類型2:IaaS利用型クラウドサービス)
図34は、サービスの類型2(IaaS利用型クラウドサービス)における音声機器制御システムが提供するサービスの全体像を示す図である。ここで、IaaSとは、インフラストラクチャー・アズ・ア・サービスの略であり、コンピュータシステムを構築および稼動させるための基盤そのものを、インターネット経由のサービスとして提供するクラウドサービス提供モデルである。
本類型では、データセンタ運営会社4110が、データセンタ(クラウドサーバ)4203を運営及び管理している。また、サービスプロバイダ4120は、OS4202及びアプリケーション4201を管理する。サービスプロバイダ4120は、サービスプロバイダ4120が管理するOS4202及びアプリケーション4201を用いてサービスを提供する(矢印204)。
(サービスの類型3:PaaS利用型クラウドサービス)
図35は、サービスの類型3(PaaS利用型クラウドサービス)における音声機器制御システムが提供するサービスの全体像を示す図である。ここで、PaaSとは、プラットフォーム・アズ・ア・サービスの略であり、ソフトウェアを構築および稼動させるための土台となるプラットフォームを、インターネット経由のサービスとして提供するクラウドサービス提供モデルである。
本類型では、データセンタ運営会社4110は、OS4202を管理し、データセンタ(クラウドサーバ)4203を運営及び管理している。また、サービスプロバイダ4120は、アプリケーション4201を管理する。サービスプロバイダ4120は、データセンタ運営会社4110が管理するOS4202及びサービスプロバイダ4120が管理するアプリケーション4201を用いてサービスを提供する(矢印204)。
(サービスの類型4:SaaS利用型クラウドサービス)
図36は、サービスの類型4(SaaS利用型クラウドサービス)における音声機器制御システムが提供するサービスの全体像を示す図である。ここで、SaaSとは、ソフトウェア・アズ・ア・サービスの略である。SaaS利用型クラウドサービスは、例えば、データセンタ(クラウドサーバ)を保有しているプラットフォーム提供者が提供するアプリケーションを、データセンタ(クラウドサーバ)を保有していない会社又は個人などの利用者がインターネットなどのネットワーク経由で使用できる機能を有するクラウドサービス提供モデルである。
本類型では、データセンタ運営会社4110は、アプリケーション4201を管理し、OS4202を管理し、データセンタ(クラウドサーバ)4203を運営及び管理している。また、サービスプロバイダ4120は、データセンタ運営会社4110が管理するOS4202及びアプリケーション4201を用いてサービスを提供する(矢印204)。
以上、いずれのクラウドサービスの類型においても、サービスプロバイダ4120がサービスを提供する。また、例えば、サービスプロバイダ又はデータセンタ運営会社は、OS、アプリケーション又はビックデータのデータベース等を自ら開発してもよいし、また、第三者に外注して開発させてもよい。