(57)【要約】      （修正有）【課題】利用者が予め作業に関する情報を入力することなく、作業手順の案内を行うことができる環境理解装置および環境理解方法を提供する。【解決手段】環境理解装置１は、作業に関する複数の作業工程を含む情報を解析してフローグラフを生成する言語処理部４１と、生成されたフローグラフに含まれる複数の作業工程を、所定の基準に従って、時系列的に並べた工程モデルに変換する確率モデル化部４２と、音響信号を収録する収音部５０と、作業工程毎に対応する音響信号に基づいて作成された音響モデルと、収録された音響信号から音響特徴量を抽出する特徴量抽出部２２と、音響特徴量と音響モデルとに基づいて現在の作業工程である現作業工程を推測し、推測した現作業工程と、過去に推定した作業工程と、工程モデルとに基づいて、作業を推定する推定部と、を備える。【選択図】図１
2016051052.tif 000002
【特許請求の範囲】
【請求項１】
作業に関する複数の作業工程を含む情報を解析してフローグラフを生成する言語処理部と、
生成された前記フローグラフに含まれる複数の前記作業工程を、所定の基準に従って、時系列的に並べた工程モデルに変換するモデル化部と、
音響信号を収録する収音部と、
前記作業工程毎に対応する前記音響信号に基づいて作成された音響モデルと、
収録された前記音響信号から音響特徴量を抽出する特徴量抽出部と、
前記音響特徴量と前記音響モデルとに基づいて現在の作業工程である現作業工程を推測し、推測した前記現作業工程と、過去に推定した作業工程と、前記工程モデルとに基づいて、前記作業を推定する推定部と、
を備える環境理解装置。
【請求項２】
前記所定の基準は、前記フローグラフの前記作業工程における１つの状態から他の状態への遷移の共起確率である請求項１に記載の環境理解装置。
【請求項３】
前記所定の基準は、前記フローグラフの前記作業工程における１つの状態から他の状態への遷移が、他の作業にも含まれている場合に、前記１つの状態から他の状態への遷移する複数の前記作業工程を１つの作業工程であるとみなす請求項１または請求項２に記載の環境理解装置。
【請求項４】
前記モデル化部は、
前記工程モデルに含まれる前記作業工程毎に、前記作業工程に含まれる１個の名詞と１個の動詞との組み合わせに分割して、分割した組み合わせそれぞれを作業工程と見なして時系列的に並べて前記工程モデルに含まれる前記作業工程を階層化する請求項１から請求項３のいずれか１項に記載の環境理解装置。
【請求項５】
前記推定部は、
前記音響特徴量を、前記音響モデルと比較して、前記現作業工程を推測した結果、所定の値以上の他の作業が候補になった場合、候補になった前記他の作業の候補を利用者へ報知し、前記報知に対する前記利用者からの応答に応じて、複数の前記作業の候補から推測して前記作業を絞り込む請求項１から請求項４のいずれか１項に記載の環境理解装置。
【請求項６】
前記推定部は、
推定した前記作業に基づいて、次の作業工程である次作業工程を予測し、予測した前記次作業工程に関する情報を報知する請求項１から請求項５のいずれか１項に記載の環境理解装置。
【請求項７】
画像を撮像する撮像部と、
前記撮像部によって撮像された画像から、前記作業工程で用いられる対象物の位置を推定する画像処理部と、を備え、
前記推定部は、
前記画像処理部によって推定された前記対象物の位置を示す情報に基づいて、次の作業工程である次作業工程で用いる前記対象物の位置を示す情報を報知する請求項１から請求項６のいずれか１項に記載の環境理解装置。
【請求項８】
言語処理部が、作業に関する複数の作業工程を含む情報を解析してフローグラフを生成する言語処理手順と、
モデル化部が、前記言語処理手順によって生成された前記フローグラフに含まれる複数の前記作業工程を、所定の基準に従って、時系列的に並べた工程モデルに変換するモデル化手順と、
収音部が、音響信号を収録する収音手順と、
音響モデル作成部が、前記作業工程毎に対応する前記音響信号に基づいて音響モデルを作成する音響モデル作成手順と、
特徴量抽出部が、収録された前記音響信号から音響特徴量を抽出する特徴量抽出手順と、
推定部が、前記音響特徴量と前記音響モデルとに基づいて現在の作業工程である現作業工程を推測し、推測した前記現作業工程と、過去に推定した作業工程と、前記工程モデルとに基づいて、前記作業を推定する推定手順と、
を含む環境理解方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、環境理解装置および環境理解方法に関する。
【背景技術】
【０００２】
近年、利用者が行う作業の手順を案内するナビゲーション装置が提案されている。ここで、作業の手順（以下、作業手順という）とは、例えば調理の手順、または製品等の組み立ての手順等である。
【０００３】
調理の手順を案内する調理ナビゲーション装置（以下、調理ナビゲーション装置という）では、利用者によって入力されたレシピ情報を解析して、調理手順を示す読み上げ文を作成する。次に、調理ナビゲーション装置は、読み上げ文を音声データに変換する。次に、調理ナビゲーション装置は、読み上げ文に待機時間情報が含まれている場合に待機時間情報を抽出する。調理ナビゲーション装置では、先頭の読み上げ文の音声データに対応した音声信号を出力し、その後、調理手順の音声データの出力を利用者によって調理の段階毎に指示されたとき、次の調理手順に応じた音声信号を出力する。そして、調理ナビゲーション装置は、利用者によって指示が入力されないまま、抽出された待機時間が経過した場合、次の料理手順の音声信号を出力する（例えば特許文献１参照）。
【０００４】
また、例えば、製品の組み立てを行う現場では、作業員は、製品の組み立て作業の手順が示されている工程表に従って、製品の組み立てを行っている。この現場で用いられるナビゲーション装置では、製品の組み立てに関する情報が作業員等によって事前に入力され、入力された情報を用いて、製品の組み立て作業の手順を、例えば表示部に表示することで、案内を行っていた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２９４８６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このように、従来のナビゲーション装置では、利用者が、作業に関する情報を予めナビゲーション装置へ入力する必要があった。
【０００７】
本発明は上記の点に鑑みてなされたものであり、利用者が予め作業に関する情報を入力することなく、作業手順の案内を行うことができる環境理解装置および環境理解方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
（１）上記目的を達成するため、本発明の一態様に係る環境理解装置は、作業に関する複数の作業工程を含む情報を解析してフローグラフを生成する言語処理部と、生成された前記フローグラフに含まれる複数の前記作業工程を、所定の基準に従って、時系列的に並べた工程モデルに変換するモデル化部と、音響信号を収録する収音部と、前記作業工程毎に対応する前記音響信号に基づいて作成された音響モデルと、収録された前記音響信号から音響特徴量を抽出する特徴量抽出部と、前記音響特徴量と前記音響モデルとに基づいて現在の作業工程である現作業工程を推測し、推測した前記現作業工程と、過去に推定した作業工程と、前記工程モデルとに基づいて、前記作業を推定する推定部と、を備える。
【０００９】
（２）また、本発明の一態様に係る環境理解装置において、前記所定の基準は、前記フローグラフの前記作業工程における１つの状態から他の状態への遷移の共起確率であるようにしてもよい。
【００１０】
（３）また、本発明の一態様に係る環境理解装置において、前記フローグラフの前記作業工程における１つの状態から他の状態への遷移が、他の作業にも含まれている場合に、前記１つの状態から他の状態への遷移する複数の前記作業工程を１つの作業工程であるとみなすようにしてもよい。
【００１１】
（４）また、本発明の一態様に係る環境理解装置において、前記モデル化部は、前記工程モデルに含まれる前記作業工程毎に、前記作業工程に含まれる１個の名詞と１個の動詞との組み合わせに分割して、分割した組み合わせそれぞれを作業工程と見なして時系列的に並べて前記工程モデルに含まれる前記作業工程を階層化するようにしてもよい。
【００１２】
（５）また、本発明の一態様に係る環境理解装置において、前記推定部は、前記音響特徴量と前記音響モデルとに基づいて、前記現作業工程を推測した結果、所定の値以上の他の作業が候補になった場合、候補になった前記他の作業の候補を利用者へ報知し、前記報知に対する前記利用者からの応答に応じて、複数の前記作業の候補から推測して前記作業を絞り込むようにしてもよい。
【００１３】
（６）また、本発明の一態様に係る環境理解装置において、前記推定部は、推定した前記作業に基づいて、次の作業工程である次作業工程を予測し、予測した前記次作業工程に関する情報を報知するようにしてもよい。
【００１４】
（７）また、本発明の一態様に係る環境理解装置は、画像を撮像する撮像部と、前記撮像部によって撮像された画像から、前記作業工程で用いられる対象物の位置を推定する画像処理部と、を備え、前記推定部は、前記画像処理部によって推定された前記対象物の位置を示す情報に基づいて、次の作業工程である次作業工程で用いる前記対象物の位置を示す情報を報知するようにしてもよい。
【００１５】
（８）上記目的を達成するため、本発明の一態様に係る環境理解方法は、言語処理部が、作業に関する複数の作業工程を含む情報を解析してフローグラフを生成する言語処理手順と、モデル化部が、前記言語処理手順によって生成された前記フローグラフに含まれる複数の前記作業工程を、所定の基準に従って、時系列的に並べた工程モデルに変換するモデル化手順と、収音部が、音響信号を収録する収音手順と、音響モデル作成部が、前記作業工程毎に対応する前記音響信号に基づいて音響モデルを作成する音響モデル作成手順と、特徴量抽出部が、収録された前記音響信号から音響特徴量を抽出する特徴量抽出手順と、推定部が、前記音響特徴量と前記音響モデルとに基づいて現在の作業工程である現作業工程を推測し、推測した前記現作業工程と、過去に推定した作業工程と、前記工程モデルとに基づいて、前記作業を推定する推定手順と、を含む。
【発明の効果】
【００１６】
上述した（１）または（８）の構成では、利用者が作業名や作業工程を入力することなく、フローグラフを所定の基準に従って時系列的に複数の作業工程を並べた工程モデルに変換して、さらに予め収録した音響信号を作業工程それぞれに関連付けた音響モデルを生成するようにした。この構成によれば、収録された音響信号と、音響モデルとに基づいて現在の作業工程を推定できる。そして、この構成によれば、現在の作業工程と、過去の作業工程と、工程モデルに基づいて、環境理解装置が現在行われている作業を推定することができる。さらに、この構成によれば、フローグラフに含まれる複数の作業工程を、所定の基準に従って、時系列的に並べた工程モデルに変換してモデルを生成したので、作業工程の順序が入れ替わっても支障がない作業であっても、利用者が作業名や作業工程を入力することなく、環境理解装置が現在行われている作業を推定することができる。
【００１７】
上述した（２）の構成によれば、フローグラフの作業工程における１つの状態から他の状態への遷移に対して共起確率による制約を加えたので、フローグラフを実際に行われる可能性が高い工程モデルに変換することができる。また、上述した（３）の構成によれば、フローグラフの作業工程における１つの状態から他の状態への遷移が他の作業にも含まれている場合に、この複数の作業工程を１つの作業工程であるとみなす制約を加えたので、フローグラフを実際に行われる可能性が高い工程モデルに変換することができる。この結果、上述した（２）および（３）の構成によれば、変換された工程モデルを用いて、環境理解装置が現在行われている作業を精度良く推定することができる。
【００１８】
上述した（４）の構成によれば、変換された工程モデルをさらに階層化することができるので、さらに階層化された工程モデルを用いて、環境理解装置が利用者によって現在行われている作業工程や作業を精度良く推定することができる。
【００１９】
上述した（５）の構成によれば、作業の候補を所定の値以内に絞れない場合、推定される作業名の候補を利用者へ報知を行い、この報知に対する利用者の応答を得るようにした。この構成によれば、利用者が行うとしている作業を作業途中で絞ることができる。
【００２０】
上述した（６）の構成によれば、推定した作業と、収録した音響信号とを用いて、次に行われる作業工程を推定することができる。これにより、この構成によれば、利用者が作業工程を間違えたときや、作業工程を抜かして誤った工程に進んだときなどに、正しい作業工程を利用者へ報知することができるので、利用者の作業を支援することができる。
【００２１】
上述した（７）の構成によれば、撮像された画像に基づいて、次に行われる作業工程で用いられる対象物の位置を推定することができる。ここで対象物とは、作業工程で用いられる材料、器具等である。これにより、この構成によれば、利用者が、次の作業工程で用いる対象物を見つけられずに次の作業工程を実行できないとき、次の作業工程で用いる対象物の位置を報知することができるので利用者の作業を支援することができる。
【図面の簡単な説明】
【００２２】
【図１】第１実施形態に係る環境理解装置のブロック図である。
【図２】第１実施形態に係る調理音データベースに格納されている情報の一例を説明する図である。
【図３】レシピデータベースに格納されている調理名とリストの一例を説明する図である。
【図４】レシピデータベースに格納されている野菜炒めの作業手順を説明する図である。
【図５】レシピ情報から生成したフローグラフの一例を説明する図である。
【図６】合流ノードを説明する図である。
【図７】図６のフローグラフに対して重み付けを行ったフローグラフの一例を説明する図である。
【図８】ノードＡ、ノードＢ、ノードＣ、およびノードＸ間の共起確率の一例を説明する図である。
【図９】頻出パターンを他のノードに置き換える一例を説明する図である。
【図１０】図６のフローグラフをＨＭＭに変換した結果を説明する図である。
【図１１】図５に示したフローグラフを調理工程ＨＭＭおよび調理イベントＨＨＭＭに変換した一例を説明する図である。
【図１２】第１実施形態に係る環境理解装置の処理手順のフローチャートである。
【図１３】第１実施形態に係るレシピのフローグラフ化処理手順のフローチャートである。
【図１４】第１実施形態に係る調理工程ＨＭＭおよび調理イベントＨＨＭＭの生成処理手順のフローチャートである。
【図１５】第１実施形態に係るＧＭＭの生成処理手順のフローチャートである。
【図１６】第１実施形態に係るレシピに関する推定処理手順のフローチャートである。
【図１７】第１実施形態に係る環境理解装置と利用者とのコミュニケーションの一例を説明する図である。
【図１８】第１実施形態に係る環境理解装置のノイズに対する正答率を説明する図である。
【図１９】第２実施形態に係る環境理解装置のブロック図である。
【図２０】第２実施形態に係る撮像部によって撮像された画像情報の一例を説明する図である。
【図２１】第２実施形態に係る材料や調理器具の位置を示す情報の一例を説明する図である。
【図２２】第２実施形態に係る環境理解装置と利用者とのコミュニケーションの一例を説明する図である。
【図２３】第２実施形態に係るレシピに関する推定処理手順のフローチャートである
【図２４】第３実施形態に係る環境理解装置のブロック図である。
【図２５】第３実施形態に係る作業音データベースに格納されている情報の一例を説明する図である。
【図２６】工程データベースに格納されている作業名とリストの一例を説明する図である。
【図２７】工程データベースに格納されている制御ユニットの取り付けの作業手順を説明する図である。
【図２８】作業情報から生成したフローグラフの一例を説明する図である。
【図２９】図２８に示したフローグラフを作業工程ＨＭＭおよび作業イベントＨＨＭＭに変換した一例を説明する図である。
【図３０】第３実施形態に係る環境理解装置の処理手順のフローチャートである。
【発明を実施するための形態】
【００２３】
まず、本発明の概要について説明する。
本発明の環境理解装置は、まず、複数の作業手順を含む作業において、作業手順毎に発生する音響信号（以下、調理音、作業音ともいう）の収録を予め行う。なお、作業手順が、１つの名詞と１つの動詞による手順である作業イベント（調理イベントともいう）を複数含む場合、環境理解装置は、作業イベント毎に発生する音響信号の収録を予め行う。次に、環境理解装置は、収録した音響信号から音響特徴量を抽出して、作業手順または作業イベント毎の音響モデル（ＧＭＭ）を作成する。この音響モデルは、それぞれ作業手順または作業イベントに関連付けられている。また、環境理解装置は、予め作業手順に関する文字情報（例えば、調理のレシピ、製造における作業工程表）を取得する。次に、環境理解装置は、取得した文字情報を言語解析して、解析した結果を用いて作業手順の言語解析された部分（例えば、名詞と動詞）の意味内容を表現するフローグラフを生成する。そして、環境理解装置は、生成されたフローグラフを共起確率等の制約下で隠れマルコフモデル（ＨＭＭ；Ｈｉｄｄｅｎ  Ｍａｒｋｏｖ  Ｍｏｄｅｌ）に変換する。さらに、環境理解装置は、変換したＨＭＭにおいて階層化可能なノードをさらに階層化することで、作業毎に階層型隠れマルコフモデル（ＨＨＭＭ；Ｈｉｅｒａｒｃｈｉｃａｌ  ＨＭＭ）に変換する。
環境理解装置は、利用者によって電源がオン状態にされ作業が開始されると、作業イベント毎の音響信号を取得する。次に、環境理解装置は、取得した音響信号の音響特徴量に対して、音響モデルにおいて最尤推定を行って、最も尤度の高いＧＭＭに対応する作業イベントを推定する。環境理解装置は、音響信号を数工程分取得して、数工程分の作業イベントそれぞれを推定する。次に、環境理解装置は、推定した数工程分の作業イベントを用いて、利用者が何を行っているのか（どのような調理を行っているのか、何を製造しているのか等）を、ＨＨＭＭを参照して最も尤度の高い作業を推定する。
さらに、環境理解装置は、作業が推定できた後、収録した音響信号に基づいて、利用者の作業間違いを検出し、作業間違いが検出された場合に正しい作業イベントを示す情報を利用者に報知する。
【００２４】
＜第１実施形態＞
図１は、本実施形態に係る環境理解装置１のブロック図である。なお、本実施形態では、環境理解装置１の一例として、調理ナビゲーション装置について説明する。
図１に示すように、環境理解装置１は、調理音データベース１０、音響モデル構築部２０、レシピデータベース３０、レシピモデル構築部４０、収音部５０、音響信号取得部６０、区間検出部６５、特徴量抽出部７０、ＧＭＭ推定部７５（推定部）、ＨＨＭＭ推定部８０（推定部）、記憶部８５、報知処理部９０、および出力部９５を含んで構成される。
【００２５】
調理音データベース１０には、予め収録された調理工程それぞれの音響信号と、その音響信号に関する材料名または調理器具名と、調理内容とが関連付けられて格納されている。ここで、調理工程とは、名詞（Ｎ）と動詞（Ｖ）とで構成される工程であり、材料名または調理器具名の名詞（Ｎ）と、調理内容の動詞（Ｖ）との組み合わせである。一例として調理工程は、「（Ｎ）キャベツを（Ｖ）切る」である。また、材料とは、調理に使われる食材、調味料を含む。調理内容とは、切る、削ぐ、皮をむく、焼く、炒める、煮る、茹でる等である。なお、音響信号の音響特徴量を検出して比較するため、音響信号の収録には、後述する収音部５０または収音部５０と同等のものを用いることが好ましい。
【００２６】
図２は、本実施形態に係る調理音データベース１０に格納されている情報の一例を説明する図である。図２に示すように、調理音データベース１０には、材料名または調理器具名と、調理内容と、音響信号とが関連付けられて格納されている。例えば、材料名である「キャベツ」と、調理内容である「切る」と、音響信号である「音響信号１」とが関連付けられている。なお、格納されている音響信号は、材料名と調理内容との組み合わせ毎に複数であってもよい。図２において、材料名または調理器具名の名詞と、調理内容の動詞との組み合わせそれぞれが、調理工程に相当する。調理音データベース１０に格納されている情報は、調理音データベース１０に接続されている不図示のデータベース入力装置（例えばパーソナルコンピュータ）に、利用者によって「キャベツを切る」とテキストが入力された文字情報であってもよい。この場合、データベース入力装置は、形態素解析、係り受け解析を行って、名詞と動詞を抽出してもよい。この場合、データベース入力装置は、図２のように名詞を材料名、調理器具名とし、動詞を調理内容としてデータベースに格納するようにしてもよい。
【００２７】
図１に戻って、環境理解装置１の説明を続ける。
音響モデル構築部２０は、調理音データベース１０の音響信号から算出された音響特徴量を用いて学習を行って、ＧＭＭ（混合ガウスモデル）の音響モデルを生成する。
音響モデル構築部２０は、区間検出部２１、特徴量抽出部２２、および学習部２３を含んで構成される。
【００２８】
区間検出部２１は、調理音データベース１０に格納されている音響信号毎に、振幅と零交差数に基づいて、作業工程の開始端と終了端を調理区間として検出する。具体的には、区間検出部２１は、一定のレベルを越える振幅について零交差数が一定数を越えたとき、開始端として区間検出を開始する。次に、区間検出部２１は、値が一定以下になったときに、終了端としてそこで入力を区切って１作業工程分の区間検出を終了する。例えば、区間検出部２１は、「キャベツを切る」ときの音響信号１（図２）を調理音データベース１０から読み出し、音響信号１からキャベツを切っている調理区間と、その調理区間の音響信号を検出する。この調理区間の音響信号には、例えば、包丁がキャベツに接触したときの音、キャベツが包丁で切られたときの音、包丁がまな板にあたった時の音などが含まれている。区間検出部２１は、音響信号毎に、検出した調理区間の音響信号を特徴量抽出部２２に出力する。
【００２９】
特徴量抽出部２２は、区間検出部２１から入力される調理区間の音響信号について、フレーム毎に窓処理、離散フーリエ変換、絶対値演算、メルスケール変換、離散コサイン演算等を行って、ＭＦＣＣ（メル周波数ケプストラム係数；Ｍｅｌ−Ｆｒｅｑｕｅｎｃｙ  Ｃｅｐｓｔｒｕｍ  Ｃｏｅｆｆｉｃｉｅｎｔｓ）特徴量を算出する。なお、フレームとは、所定の単位時刻である。このため、算出される音響特徴量は、フレーム毎に算出されたＭＦＣＣ特徴量の集合である。なお、調理区間において算出される音響特徴量は、上述した例のように、包丁がキャベツに接触したときの音、キャベツが包丁で切られたときの音、包丁がまな板にあたった時の音など複数の状態が含まれている。そして、この状態毎に、音響特徴量が異なっている。
【００３０】
学習部２３は、特徴量抽出部２２から入力されるＭＦＣＣ特徴量を用いてＧＭＭを学習して生成する。学習部２３には、例えば調理工程毎に、複数のＭＦＣＣ特徴量が入力される。ここで、例えば複数の「キャベツ、切る」の音響信号が、調理音データベースに格納されている。学習部２３は、これらの複数の音響信号毎のＭＦＣＣ特徴量を用いて、「キャベツ、切る」である調理工程のＧＭＭを生成する。
ここで、ＭＦＣＣ特徴量には、上述したように、複数の状態毎のＭＦＣＣ特徴量が含まれている。学習部２３は、例えば、フレーム毎のＭＦＣＣ特徴量を、このような状態毎に分類し、分類した状態間を連結する。そして、学習部２３は、連結された状態が、この調理工程の音響信号のＭＦＣＣ特徴量であるときに尤度が最大になるように、各状態の出現確率、状態間の遷移確率等のパラメータを推定する。学習部２３は、入力された同じ調理工程のＭＦＣＣ特徴量を複数個用いて、それぞれのパラメータの推定を行って、作業工程毎のＧＭＭを学習する。なお、ＧＭＭは、入力の特徴ベクトルの出現確率を混合ガウス分布で表現したものである。このように、学習部２３は、調理工程毎にＧＭＭを学習する。なお、作業手順が１つの調理工程から構成される場合、作業手順が調理工程でもある。従って、音響モデル構築部２０が調理音データベース１０から読み出す音響信号は、調理工程毎または作業手順毎のものである。このため、生成されるＧＭＭは、調理工程または作業手順と関連付けられたものである。学習部２３は、生成したＧＭＭをＧＭＭ推定部７５に出力する。
【００３１】
レシピデータベース３０には、調理（作業）毎に、調理に関するレシピ情報が格納されている。レシピ情報には、材料、調味料、調理方法、調理時間等を示す情報が含まれている。環境理解装置１は、例えばネットワークを介して複数の調理に関するレシピ情報を取得して、取得したレシピ情報をレシピデータベース３０に格納するようにしてもよい。
【００３２】
図３は、レシピデータベース３０に格納されている調理名とリストの一例を説明する図である。また、図４は、レシピデータベース３０に格納されている野菜炒めの作業手順を説明する図である。
図３に示すように、レシピデータベース３０には、調理名とリストとが関連付けられて格納されている。なお、図３に示す例では、材料に調味料を含む。図３に示す例は、調理名が「野菜炒め」であり、その調理に必要な材料と調味料「豚肉、玉葱、キャベツ、人参、油、醤油、塩こしょう」がリストに格納されている。なお、図３に示した例では、リストに名詞のみが含まれている例を示したが、リストには、動詞が含まれていてもよい。
また、図４に示すように、レシピデータベース３０には、作業手順と作業項目とが、調理毎に関連付けられて格納されている。例えば、作業手順１の作業項目は、「玉葱、キャベツ、人参を、それぞれ食べやすい大きさに切っておく。」である。なお、本実施形態では、１つの調理にかかる全ての作業工程を、作業（タスク）と定義する。
レシピデータベース３０には、「野菜炒め」のレシピ情報に加え、他の調理（例えば「焼きそば」、「お好み焼き」等）のレシピ情報が格納されている。
【００３３】
図１に戻って、環境理解装置１の説明を続ける。
レシピモデル構築部４０は、レシピデータベース３０に格納されている情報を調理毎に読み出し、読み出した調理毎のレシピ情報を調理イベントＨＨＭＭに変換する。なお、調理イベントＨＨＭＭについては後述する。
レシピモデル構築部４０は、言語処理部４１、確率モデル化部４２（モデル化部）、および階層化部４３（モデル化部）を含んで構成される。
【００３４】
言語処理部４１は、レシピデータベース３０に格納されているレシピ情報を調理毎且つ作業手順毎に読み出す。言語処理部４１は、読み出した作業手順毎のレシピ情報に対して、形態素解析および係り受け解析を周知の手法によって行う。言語処理部４１は、解析した結果に基づいて、図５に示すような作業手順毎のフローグラフを生成する。なお、フローグラフの生成方法については、後述する。
【００３５】
図５は、レシピ情報から生成したフローグラフの一例を説明する図である。図５において、（Ｎ）は名詞を表し、（Ｖ）は動詞を表す。またｅｎｄノードは、作業項目の終端を表すノードである。作業手順１のノード「（Ｎ）玉葱、（Ｎ）キャベツ、（Ｎ）人参、（Ｖ）切る」は、「玉葱とキャベツと人参を切る」という調理工程（作業工程）を表している。なお、各作業項目で検出する名詞は、図３に示したリストに記載されている名詞である。作業手順２のノード「（Ｎ）油、（Ｖ）熱する」は、「油を熱する」という調理工程を表している。作業手順３のノード「（Ｎ）豚肉、（Ｎ）人参、（Ｎ）塩こしょう、（Ｖ）炒める」は、「豚肉を入れ、火が通ったら、塩こしょうを入れ、人参を炒める。」という調理工程を表している。また、作業手順３では、２つの親ノード「（Ｎ）豚肉、（Ｖ）入れる」と「（Ｎ）塩こしょう、（Ｖ）入れる」とが存在している。この２つの親ノードは、係り受け解析のみからでは、順序を決定できないものであり、親ノードのどちらの調理イベントを先に行っても良いが、必ず両方を行う必要のある調理工程である。このようなノードを、本実施形態では合流ノードという。さらに、作業手順３では、親ノード「（Ｎ）豚肉、（Ｖ）入れる」は、次のノード「（Ｎ）豚肉、（Ｖ）炒める」に遷移する。作業手順４のノード「（Ｖ）入れる」は、「残りの野菜を入れる」という調理工程を表し、ノード「（Ｖ）炒める」は、「残りの野菜を炒める」という調理工程を表している。作業手順５のノード「（Ｎ）醤油、（Ｖ）味を整える」は、「醤油で味を調える」という調理工程を表している。
【００３６】
図６は、合流ノードを説明する図である。図６は作業手順３に相当する。ノードＡが「（Ｎ）塩こしょう、（Ｖ）入れる」であり、ノードＣが「（Ｎ）豚肉、（Ｖ）入れる」であり、ノードＢが「（Ｎ）豚肉、（Ｖ）炒める」であり、ノードＸが「（Ｎ）豚肉、（Ｎ）人参、（Ｎ）塩こしょう、（Ｖ）炒める」である。
【００３７】
図１に戻って、レシピモデル構築部４０の説明を続ける。
確率モデル化部４２は、言語処理部４１によって生成されたフローグラフをＨＭＭ（工程モデル）に変換する。確率モデル化部４２は、すべてのノードの組み合わせパターンを生成すれば、ＨＭＭに変換することができる。しかしながら、各作業項目において、全てのノードの組み合わせパターンが可能であるとは限られない。例えば、図６において、ノードＣとノードＢの間にノードＡを行うことは、一般的には少ない。このため、本実施形態では、確率モデル化部４２が、各ノードから各ノードへの枝である矢印毎に重みを付け、重みが所定の値より大きい箇所に、他のノードを挿入しないこととする。なお、重み付けは、予め作業者が、例えばＬＤＡ（潜在的ディリクレ配分法；Ｌａｔｅｎｔ  Ｄｉｒｉｃｈｌｅｔ  Ａｌｌｏｃａｔｉｏｎ）を用いたノード間の遷移による共起確率を利用して行う。
【００３８】
図７は、図６のフローグラフに対して重み付けを行ったフローグラフの一例を説明する図である。図８は、ノードＡ、ノードＢ、ノードＣ、およびノードＸ間の共起確率の一例を説明する図である。図７および図８に示す例では、ノードＡからノードＸへの重み付けが０．１、ノードＣからノードＢへの重み付けが０．８、ノードＢからノードＸへの重み付けが０．１である。このような共起確率は、予め作業者が算出しておく。なお、確率モデル化部４２は、レシピデータベース３０の複数の調理のレシピ情報を参照して、共起確率を算出するようにしてもよい。
【００３９】
また、確率モデル化部４２は、上述した共起確率を用いたノード間の結びつきの強さ以外に、他の調理レシピも参照し、ノードからノードへの遷移が同じパターンである頻度が所定値より大きい場合、そのパターンを１つの手続きとみなして、この頻度の高いパターン（頻出パターンともいう）の中に他のノードを挿入しないようにしてもよい。ここで、パターンとは、少なくとも２つ以上の連続するノードである。
図９は、頻出パターンを他のノードに置き換える一例を説明する図である。
例えば、図９に示した例において、ノードＣからノードＢへのパターンが、他のレシピにも頻出する場合、符号Ｎ１で示す領域が示す図のようにノードＣからノードＢへの遷移を１つのパターンとする。そして、矢印ｇ１のように、このパターンを新たに１つのノードＤと定義する。この処理によって、確率モデル化部４２は、ノードＣとノードＢとの間に他のノードを挿入しないようにしてもよい。
【００４０】
図１０は、図６のフローグラフをＨＭＭに変換した結果を説明する図である。図１０に示すように、ノードＡの前には、ノードＣからノードＢへの遷移が確率モデル化部４２によって追加される。また、ノードＣからノードＢの前には、ノードＡが確率モデル化部４２によって追加される。この結果、図６のフローグラフは、図１０のようにＨＭＭに変換される。図１０に示す例においてＨＭＭは、ノードＣからノードＢ、ノードＢからノードＡ、ノードＡからノードＸへ遷移するルートと、ノードＡからノードＣ、ノードＣからノードＢ、ノードＢからノードＸへ遷移するルートの合流として表される。
上述したように、本実施形態において、確率モデル化部４２は、ノード間の重み付けの制約、および頻出パターンを新たな１つのパターンのとする制約のうち、少なくとも一方を行うことでフローグラフをＨＭＭに変換する。
【００４１】
図１１は、図５に示したフローグラフを調理工程ＨＭＭおよび調理イベントＨＨＭＭに変換した一例を説明する図である。符号ｇ１１で示した領域の図は、図５に示したフローグラフを調理工程ＨＭＭに変換した図である。符号ｇ１２で示した領域の図は、図５に示した作業手順３に対応するノードである。また、図１１では、各状態に留まることを示す自己遷移（例えば、符号ｇ１３）が、それぞれのノードに加えられている。符号ｇ１４で示す領域の図は、図５に示した作業手順１を、さらに階層化してＨＭＭを構築した図である。図１１の符号ｇ１１で示した領域の図において、図５に示した作業手順１は、ノード１に対応し、図５に示した作業手順２は、ノード２に対応する。図５に示した作業手順３は、図１１においてノード３−１−１〜３−１−３、ノード３−２−１〜３−２−３、およびノード３に対応する。図５に示した作業手順４は、図１１においてノード４−１およびノード４−２に対応する。図５に示した作業手順５は、図１１においてノード５に対応する。調理工程ＨＭＭにおいて、各状態である各ノードは、調理工程（作業工程）を表している。
なお、調理工程ＨＭＭの詳細な変換手順については後述する。
【００４２】
図１に戻って、レシピモデル構築部４０の説明を続ける。
階層化部４３は、確率モデル化部４２によって変換された調理工程ＨＭＭの１工程を、さらに名詞（Ｎ）と動詞（Ｖ）のペアで構成される状態に分割する。本実施形態では、名詞（Ｎ）と動詞（Ｖ）のペアを調理イベントともいう。このため、図１に示したノード３−１−１〜３−２−３、ノード３−２−１〜３−２−３などの調理工程も調理イベントである。階層化部４３は、各調理工程ＨＭＭを、調理イベントの階層的な状態遷移に変換する。そして、階層化部４３は、この調理イベントについて、確率モデル化部４２と同様にＨＭＭに変換する。この分割によって、図１１において、符号ｇ１４で示した領域の図のように、調理工程ＨＭＭの各状態が階層的なＨＭＭを含む形となる。図１１において符号ｇ１４で示した領域の図のように、ノード１「（Ｎ）玉葱、（Ｎ）キャベツ、（Ｎ）人参、（Ｖ）切る」は、名詞と動詞のペアである調理イベント「（Ｎ）玉葱、（Ｖ）切る」と「（Ｎ）人参、（Ｖ）切る」と「（Ｎ）キャベツ、（Ｖ）切る」に分解できる。そして、分解された複数の調理イベントをＨＭＭで表すと、符号ｇ１４で示した領域の図のように複数のルートで表すことができる。なお、図１１に示す例では、階層化部４３が、共起確率に基づいてノード１をＨＭＭに変換した例である。すなわち、ノードの階層化においても、階層化部４３は、共立確率による制約、または、他の調理（作業）にも出現する頻度の高いノードからノードへの遷移を１つのノードとみなす制約を用いるようにしてもよい。また、生成されたＨＨＭＭには、調理毎の調理イベントＨＨＭＭが含まれている。例えば、ＨＨＭＭには、野菜炒めの調理イベントＨＨＭＭ、焼きそばの調理イベントＨＨＭＭ、お好み焼きの調理イベントＨＨＭＭ等が含まれている。
【００４３】
図１１に示すような２階層のＨＭＭをＨＨＭＭ（工程モデル）という。図１１の符号ｇ１４で示す領域の図のように、ノード１は、ノード１−１−１〜１−１−３、ノード１−２−１〜１−２−３、ノード１−３−１〜１−３−３、・・・に分割される。
【００４４】
図１に戻って、環境理解装置１の説明を続ける。
収音部５０は、Ｍ（Ｍは１よりも大きい整数、例えば８）チャネルの音響信号を収録し、収録したＭチャネルの音響信号を音響信号取得部６０に送信する。収音部５０は、例えば周波数帯域（例えば２００Ｈｚ〜４ｋＨｚ）の成分を有する音波を受信するＭ個のマイクロホン５１−１〜５１−Ｍを備えている。以下、マイクロホン５１−１〜５１−Ｍのそれぞれを特定しない場合は、単にマイクロホン５１という。Ｍ個のマイクロホン５１は、それぞれ異なる位置に配置されている。収音部５０は、収録したＭチャネルの音響信号を無線で送信してもよいし、有線で送信してもよい。Ｍが１よりも大きい場合には、送信の際にチャネル間で音響信号が同期していればよい。なお、音源定位の処理を行わない場合、マイクロホン５１は、１つでよい。以下の説明では、収音部５０がマイクロホン５１を１つ備えている場合について説明する。
【００４５】
音響信号取得部６０は、収音部５０から入力されたアナログの音響信号を取得し、取得したアナログの音響信号をデジタルの音響信号に変換する。音響信号取得部６０は、変換した音響信号を区間検出部６５に出力する。
【００４６】
区間検出部６５は、音響信号取得部６０から入力された音響信号に対して、区間検出部２１と同様に調理区間を検出する。区間検出部６５は、検出した調理区間毎の音響信号を特徴量抽出部７０に出力する。
【００４７】
特徴量抽出部７０は、区間検出部６５から入力される調理区間毎の音響信号について、特徴量抽出部２２と同様にフレーム毎に音響特徴量として、例えばＭＦＣＣ特徴量を算出する。特徴量抽出部７０は、音響信号毎に、算出したＭＦＣＣ特徴量をＧＭＭ推定部７５に出力する。
【００４８】
ＧＭＭ推定部７５は、特徴量抽出部７０から入力されたＭＦＣＣ特徴量を音響モデル構築部２０によって生成されたＧＭＭを参照して、最も尤度が高いＧＭＭに対応する音響信号に対応する調理イベントを推定する。ＧＭＭ推定部７５は、推定した調理イベントを示す情報をＨＨＭＭ推定部８０に出力する。例えば、算出された「キャベツを切る」音響信号のＭＦＣＣ特徴量には、包丁がキャベツに接触したときの音響特徴量、キャベツが包丁で切られたときの音響特徴量、包丁がまな板にあたった時の音響特徴量などが含まれている。ＧＭＭ推定部７５は、これらの各状態（包丁がキャベツに接触した状態、キャベツが包丁で切られた状態、包丁がまな板にあたった状態）の出現確率、状態間の遷移確率等の最も尤度が高いＧＭＭを最も近い調理イベントとして推定する。
【００４９】
ＨＨＭＭ推定部８０は、ＧＭＭ推定部７５から入力された調理イベントを示す情報を時系列的に記憶部８５に記憶させる。ＨＨＭＭ推定部８０は、記憶部８５に記憶させた調理イベント含む調理イベントＨＨＭＭを、レシピモデル構築部４０によって構築されたＨＨＭＭを参照する。そして、ＨＨＭＭ推定部８０は、最も尤度が高い調理イベントＨＨＭＭを、調理に対応する調理イベントＨＨＭＭとして推定する。例えば、ＨＨＭＭ推定部８０は、調理イベントの候補に該当する調理イベントＨＨＭＭが１つの場合、その調理イベントＨＨＭＭを利用者が調理しようとしている調理イベントＨＨＭＭであると推定する。また、ＨＨＭＭ推定部８０は、１つの調理イベントだけでは調理イベントＨＨＭＭを絞り込めない場合、記憶部８５に記憶させた現在の調理イベントと過去の調理イベントとに基づいて、利用者が行っている調理に対応する調理イベントＨＨＭＭを推定する。
また、ＨＨＭＭ推定部８０は、調理イベントＨＨＭＭを推定できた場合、調理イベントＨＨＭＭを参照して、次に行われる調理イベントを推定する。そして、ＨＨＭＭ推定部８０は、次の調理イベントに対応する調理イベントを示す情報が所定の期間内に入力されたか否かを判別する。ＨＨＭＭ推定部８０は、次の調理イベントに対応する調理イベントを示す情報が所定の期間内に入力されない場合、次に行われる調理イベントの候補を示す情報を報知処理部９０に出力する。ＨＨＭＭ推定部８０は、抽出した調理イベントに対応する調理イベントを示す情報が所定の期間内に入力された場合、次に行われる調理イベントの候補を示す情報を報知処理部９０に出力しない。なお、ＨＨＭＭ推定部８０が行う処理については、後述する。
【００５０】
記憶部８５には、調理イベントを示す情報がＨＨＭＭ推定部８０によって時系列的に記憶される。なお、記憶部８５に記憶される情報は、例えば環境理解装置１の電源がオン状態にされたときに初期化されるようにしてもよい。
【００５１】
報知処理部９０は、ＨＨＭＭ推定部８０によって抽出された次に行われる調理イベントを周知の手法で文章化する。次に、報知処理部９０は、文章化した次に行われる調理イベントを、周知の音声合成技術を用いて音声信号に変換する。次に、報知処理部９０は、変換した音声信号を、出力部９５を介して出力する。
【００５２】
出力部９５は、報知処理部９０から入力された音声信号を発する。出力部９５は、例えばスピーカーである。
【００５３】
次に、環境理解装置１の処理手順について説明する。
図１２は、本実施形態に係る環境理解装置１の処理手順のフローチャートである。
（ステップＳ１）レシピモデル構築部４０は、予めレシピのフローグラフ化処理を行う。なお、レシピのフローグラフ化処理については後述する。
（ステップＳ２）レシピモデル構築部４０は、予めフローグラフをＨＭＭＭに変換することで、調理イベントＨＨＭＭを生成する。レシピモデル構築部４０は、複数の調理について、調理毎に調理イベントＨＨＭＭを生成する。このように生成された複数の調理イベントＨＨＭＭの集合をＨＨＭＭという。なお、調理イベントＨＨＭＭの生成処理については後述する。
【００５４】
（ステップＳ３）音響モデル構築部２０は、予め音響モデルであるＧＭＭを生成する。なお、ＧＭＭの生成処理については後述する。
（ステップＳ４）環境理解装置１は、予め生成されたＧＭＭおよびＨＨＭＭ、そして収録された音響信号に基づいて、レシピに関して推定する。なお、レシピに関する推定とは、作業や調理イベントの推定である。作業の推定とは、利用者が行っている調理の調理名の推定である。また、作業イベントの推定とは、利用者が行っている調理における調理工程または調理イベントの推定である。レシピに関する推定処理については、後述する。
【００５５】
次に、レシピのフローグラフ化処理について説明する。
図１３は、本実施形態に係るレシピのフローグラフ化処理手順のフローチャートである。
（ステップＳ１１）言語処理部４１は、レシピデータベース３０に格納されているレシピ情報を調理毎に取得する。
（ステップＳ１２）言語処理部４１は、取得したレシピ情報に対して、調理毎かつ作業手順毎に形態素解析および係り受け解析を周知の手法によって行う。次に、単語１つからなるノード、その係り受け関係が枝（エッジ）となる不図示の初期グラフを作成する。
【００５６】
（ステップＳ１３）言語処理部４１は、レシピ情報に含まれるリスト（図３参照）に含まれる名詞と動詞が含まれるノードのみを残し、それ以外のノードを初期グラフから除去する。
【００５７】
（ステップＳ１４）言語処理部４１は、ステップＳ１３で除去したノードの親から子へ新たに枝を追加する。
（ステップＳ１５）言語処理部４１は、動詞を持つノードに、その先祖ノードの持つ名詞を全て自分のノードの集合に加える。
【００５８】
（ステップＳ１６）言語処理部４１は、新たに加える名詞が無いか否かを判別する。言語処理部４１は、新たに加える名詞が無いと判別した場合（ステップＳ１６；ＹＥＳ）、処理を終了し、新たに加える名詞が有ると判別した場合（ステップＳ１６；ＮＯ）、ステップＳ１５の処理を新たに加える名詞が無くなるまで、全ての動詞を持つノードに関して繰り返し行う。
【００５９】
図１３に示したステップＳ１１〜Ｓ１５の手順により、図３および図４のレシピ情報をフローグラフ化すると、図５のようなフローグラフが得られる。
【００６０】
次に、調理工程ＨＭＭおよび調理イベントＨＨＭＭの生成処理について説明する。
図１４は、本実施形態に係る調理工程ＨＭＭおよび調理イベントＨＨＭＭの生成処理手順のフローチャートである。
（ステップＳ１０１）確率モデル化部４２は、言語処理部によって生成されたフローグラフの各ノードをＨＭＭの各ノードに対応させる。
（ステップＳ１０２）確率モデル化部４２は、枝をＨＭＭの状態遷移に対応させる。
【００６１】
（ステップＳ１０３）確率モデル化部４２は、各ノードに留まることを表す自己遷移を加える。
（ステップＳ１０４）確率モデル化部４２は、フローグラフの各作業手順に遷移するために、ｅｎｄノードから次の手順の親ノードのないノードへの遷移を追加する。
【００６２】
（ステップＳ１０５）確率モデル化部４２は、ステップＳ１０４までで作成した木（Ｔｒｅｅ）に合流ノードが存在するか否かを判別する。確率モデル化部４２は、作成した木に合流ノードが存在すると判別した場合（ステップＳ１０５；ＹＥＳ）、ステップＳ１０６に進み、作成した木に合流ノードが存在していないと判別した場合（ステップＳ１０５；ＮＯ）、ステップＳ１０７に進む。
【００６３】
（ステップＳ１０６）確率モデル化部４２では、合流ノードが存在する場合、合流ノードの親ノードに対応するノードを行う順番を任意であるとする。確率モデル化部４２は、合流ノードについて、全てのノードの遷移の組み合わせに展開して、フローグラフを調理工程ＨＭＭに変換する。ただし、確率モデル化部４２は、前述したように枝に共起確率に基づく重み付け、または頻出パターンを１つの新たなノードとみなして、展開を行う。
【００６４】
（ステップＳ１０７）階層化部４３は、調理工程ＨＭＭの１つの調理工程を、全てのノードの組み合わせについての状態遷移に分割し、ステップＳ１０６と同様に合流ノードに対して全てのノードの組み合わせの状態遷移を追加する。これにより、階層化部４３は、調理工程ＨＭＭを、調理イベントＨＨＭＭに変換する。
【００６５】
以上で、調理工程ＨＭＭおよび調理イベントＨＨＭＭの生成処理を終了する。
なお、フローグラフ化処理、調理工程ＨＭＭの生成処理、および調理イベントＨＨＭＭの生成処理は、レシピモデル構築部４０が予め行っておく。そして、レシピモデル構築部４０は、複数の調理について、調理毎に、フローグラフ化処理、調理工程ＨＭＭの生成処理、および調理イベントＨＨＭＭの生成処理を行う。この結果、ＨＨＭＭ推定部８０に出力されるＨＨＭＭは、複数の調理イベントＨＨＭＭを含むモデルである。
【００６６】
次に、ＧＭＭの生成処理について説明する。
図１５は、本実施形態に係るＧＭＭの生成処理手順のフローチャートである。
（ステップＳ２０１）区間検出部２１は、調理音データベース１０から音響信号を取得する。
（ステップＳ２０２）区間検出部２１は、調理音データベース１０に格納されている音響信号毎に調理区間を検出する。
【００６７】
（ステップＳ２０３）特徴量抽出部２２は、ステップＳ２０２で検出された調理区間毎の音響信号について、フレーム毎にＭＦＣＣ特徴量を算出する。
（ステップＳ２０４）学習部２３は、ステップＳ２０３で算出されたＭＦＣＣ特徴量を用いて学習して音響モデルであるＧＭＭを生成する。
以上で、ＧＭＭの生成処理を終了する。
【００６８】
次に、レシピに関する推定処理について説明する。
図１６は、本実施形態に係るレシピに関する推定処理手順のフローチャートである。
（ステップＳ３０１）音響信号取得部６０は、収音部５０によって収録された音響信号を取得する。
（ステップＳ３０２）区間検出部６５は、ステップＳ３０１で取得された音響信号毎に、調理区間と、調理区間の音響信号を検出する。
【００６９】
（ステップＳ３０３）特徴量抽出部７０は、ステップＳ３０２で検出された調理区間毎の音響信号について、フレーム毎にＭＦＣＣ特徴量を算出する。特徴量抽出部７０は、フレーム毎のＭＦＣＣ特徴量をＧＭＭ推定部７５に出力する。
【００７０】
（ステップＳ３０４）ＧＭＭ推定部７５は、ステップＳ３０３で算出されたＭＦＣＣ特徴量に対して最も尤度の高いＧＭＭに対応する調理イベントを抽出する。なお、音響モデル構築部２０は、生成したＧＭＭをＧＭＭ推定部７５に出力しなくてもよい。この場合、ＧＭＭ推定部７５は、音響モデル構築部２０に記憶されるＧＭＭを参照して、ＭＦＣＣ特徴量に対して最も尤度の高いＧＭＭに対応する調理イベントを抽出するようにしてもよい。
【００７１】
（ステップＳ３０５）ＨＨＭＭ推定部８０は、ステップＳ３０４で推定された調理イベントを示す情報を時系列的に記憶部８５に記憶させる。
（ステップＳ３０６）ＨＨＭＭ推定部８０は、記憶部８５に調理イベントを示す情報を所定の個数以上記憶させたか否かを判別する。ＨＨＭＭ推定部８０は、調理イベントを示す情報を所定の個数以上記憶させたと判別した場合（ステップＳ３０６；ＹＥＳ）、ステップＳ３０７に進み、調理イベントを示す情報を所定の個数以上記憶させていないと判別した場合（ステップＳ３０６；ＮＯ）、ステップＳ３０１に戻る。
【００７２】
（ステップＳ３０７）ＨＨＭＭ推定部８０は、調理に対応する調理イベントＨＨＭＭが抽出済みか否かを判別する。ＨＨＭＭ推定部８０は、調理に対応する調理イベントＨＨＭＭが抽出済みであると判別した場合（ステップＳ３０７；ＹＥＳ）、ステップＳ３０９に進み、調理に対応する調理イベントＨＨＭＭが抽出済みではないと判別した場合（ステップＳ３０７；ＮＯ）、ステップＳ３０８に進む。
【００７３】
（ステップＳ３０８）ＨＨＭＭ推定部８０は、ＨＨＭＭを参照し、記憶部８５に記憶させた複数の調理イベントを含む調理イベントＨＨＭＭを抽出する。
（ステップＳ３０９）ＨＨＭＭ推定部８０は、ステップＳ３０８で推定された調理イベントＨＨＭＭを参照して、現在の調理イベントの次に行われる調理イベントを推定する。
【００７４】
（ステップＳ３１０）ＨＨＭＭ推定部８０は、次の調理イベントの候補である音響データを取得済みであるか否かを判別する。ＨＨＭＭ推定部８０は、次の調理イベントの候補である音響データを取得済みであると判別した場合（ステップＳ３１０；ＹＥＳ）、ステップＳ３１１に進み、次の調理イベントの候補である音響データを取得済みではないと判別した場合（ステップＳ３１０；ＮＯ）、ステップＳ３０１に戻る。
【００７５】
（ステップＳ３１１）ＨＨＭＭ推定部８０は、次に行われる調理イベントの候補が所定の時間内に検出されたか否か判別する。ＨＨＭＭ推定部８０は、次に行われる調理イベントの候補が所定の時間内に検出されたと判別した場合（ステップＳ３１１；ＹＥＳ）、ステップＳ３１３に進み、次に行われる調理イベントの候補が所定の時間内に検出されていないと判別した場合（ステップＳ３１１；ＮＯ）、ステップＳ３１２に進む。
【００７６】
（ステップＳ３１２）報知処理部９０は、次に行われる調理イベントを、周知の手法で文章化する。次に、報知処理部９０は、文章化した次に行われる調理イベントを、周知の音声合成技術を用いて、音声信号に変換する。次に、報知処理部９０は、変換した音声信号を、出力部９５を介して出力する。報知処理部９０は、処理終了後、処理をステップＳ３０１に戻す。
【００７７】
（ステップＳ３１３）ＨＨＭＭ推定部８０は、調理イベントＨＨＭＭに含まれる全ての調理イベントが終了したか否かを判別することで、調理が終了したか否かを判別する。ＨＨＭＭ推定部８０は、調理が終了したと判別した場合（ステップＳ３１３；ＹＥＳ）、処理を終了し、調理が終了していないと判別した場合（ステップＳ３１３；ＮＯ）、ステップＳ３０１に戻る。
以上で、レシピに関する推定処理を終了する。
【００７８】
ここで、レシピに関する推定処理の一例を、図１１を参照しながら説明する。
以下の例では、最初に利用者がキャベツを切ったとする。
区間検出部６５は、音響信号取得部６０が取得した音響信号からキャベツが切られている調理区間と、その調理区間の音響信号を検出する。
次に、ＧＭＭ推定部７５は、特徴量抽出部７０によって算出されたＭＦＣＣ特徴量を、上述したような各状態に分離する。そして、ＧＭＭ推定部７５は、分離した各状態の遷移状態が、ＧＭＭの中で最も尤度の高いＧＭＭに対応する音響信号に対応する調理イベントが、キャベツが切られているときの音響信号であると推定する。次に、ＧＭＭ推定部７５は、推定した音響信号に対応する「キャベツ：切る」を、算出されたＭＦＣＣ特徴量に最も近い調理イベントであると推定する。
【００７９】
次に、ＨＨＭＭ推定部８０は、ＧＭＭ推定部７５によって推定された調理イベント「キャベツ：切る」を記憶部８５に記憶させる。
次に、利用者が玉葱を切ったとする。環境理解装置１は、上述した処理を繰り返し、ＨＨＭＭ推定部８０は、ＧＭＭ推定部７５によって推定された調理イベント「玉葱：切る」を「キャベツ：切る」の次に記憶部８５に記憶させる。
次に、利用者が人参を切ったとする。環境理解装置１は、上述した処理を繰り返し、ＨＨＭＭ推定部８０は、ＧＭＭ推定部７５によって推定された調理イベント「人参：切る」を「玉葱：切る」の次に記憶部８５に記憶させる。
【００８０】
例えば、図１６のステップＳ３０６における所定の個数が３個の場合、ＨＨＭＭ推定部８０は、記憶部８５に記憶されている３個の調理イベントを示す情報を用いて、この３個の調理イベントが時系列的に連続する調理イベントＨＨＭＭをレシピモデル構築部４０によって生成されたＨＨＭＭを探索する。この結果、ＨＨＭＭ推定部８０は、「野菜炒め」の調理イベントＨＨＭＭを抽出する。なお、所定の個数は、予め定められた数であってもよく、レシピデータベース３０に記憶されるレシピの総数やレシピの種類等に応じた数であってもよい。
【００８１】
次に、ＨＨＭＭ推定部８０は、ノード１の調理イベントの次に行われる調理イベントとして、ノード２の「（Ｎ）油、（Ｖ）熱する」を推定する。
次に、ＨＨＭＭ推定部８０は、次の調理イベントの候補の音響データが音響信号取得部６０によって所定の時間内に取得されたか否かを判別する。
【００８２】
所定の時間内に、例えば音響データが何も取得できない場合、報知処理部９０は、次に行われる調理イベントの候補に対応するノード２の「（Ｎ）油、（Ｖ）熱する」を音声信号「油を熱してください」に変換する。次に、報知処理部９０は、変換した音声信号を、出力部９５を介して出力する。これにより、本実施形態の環境理解装置１によれば、所定の時間内に次の作業が行われていない場合、調理しようとしている調理名等を利用者が入力しなくても、利用者へ次の手順を音声によって案内することができる。
【００８３】
また、所定の時間内に、例えば次の調理イベントの候補以外である「塩こしょう；入れる」に対応する音響データが取得できた場合、環境理解装置１は、利用者が作業手順を忘れていると判別する。この場合も、本来、次に行われる調理イベントの候補に対応するノード２の「（Ｎ）油、（Ｖ）熱する」に対応する音声信号「油を熱してください」を、報知処理部９０が出力部９５を介して出力する。これにより、本実施形態の環境理解装置１によれば、利用者が作業手順を忘れたり間違えたりした場合、利用者へ次の手順を音声によってガイドすることができる。
【００８４】
次に、ステップＳ３０６（図１６）処理後、該当する調理イベントＨＨＭＭが複数ある場合について説明する。
上述した例と同様に、最初に利用者によってキャベツが切られ、次に玉葱が切られ、続けて人参が切られたとする。
このように、調理イベントの「（Ｎ）キャベツ、（Ｖ）切る」、「（Ｎ）玉葱、（Ｖ）切る」、および「（Ｎ）人参、（Ｖ）切る」の連続する３つの調理イベントを含む調理イベントＨＨＭＭが、ＨＨＭＭに例えば１０件あったとする。この場合、調理イベントの「（Ｎ）人参、（Ｖ）切る」に行われる次の調理イベントの候補が、例えば調理イベントＨＨＭＭ毎に３個ずつあったとすると、次の調理イベントの候補の単純総数は３０個にもなる。３０個の中には、重複している調理イベントがあったとしても、次の調理イベントの候補の総数は多数である。このような状況において、ステップＳ３１２で次の調理イベントの全ての候補を報知すると、かえって利用者を混乱させかねない。
このため、環境理解装置１は、次の調理イベントの候補の総数が所定の数より多い場合、利用者によって作業がさらに進められ、次の調理イベントの候補の総数が所定の数以下になるまで、次の調理イベントの候補の報知を行わないようにしてもよい。
【００８５】
さらに、環境理解装置１が利用者によって調理イベントがさらに行われても調理イベントＨＨＭＭを絞り込めず、次の調理イベントの候補の総数が、所定の数以下にならない場合について説明する。この場合、環境理解装置１は、報知処理部９０によって、候補になっている調理名、例えば「調理するのは、野菜炒めですか  焼きそばですか  お好み焼きですか」に対応する音声信号を、出力部９５を介して報知することで、利用者への問いかけを行うようにしてもよい。そして、環境理解装置１は、利用者からの問いかけに対する回答に基づいて、調理される候補を絞り込むようにしてもよい。このように、本実施形態では、利用者によって作業が進んでも調理イベントＨＨＭＭを絞り込めず、次の調理イベントの候補の総数が所定の数以下にならない場合に、利用者へ問いかけを行い、この問いかけに対する回答に基づいて、調理イベントＨＨＭＭの候補を絞り込むことができる。これにより、本実施形態によれば、利用者が調理に関する情報を入力することなく、利用者と環境理解装置１とのコミュニケーションにより、次の調理イベントの候補を絞り込み、絞り込んだ結果の次の調理イベントの候補を案内に用いることで、利用者の調理を支援することができる。
【００８６】
図１７は、本実施形態に係る環境理解装置１と利用者とのコミュニケーションの一例を説明する図である。
図１７において、符号ｇ１０１が示す領域の図は、手順間違いの検出を説明する図である。符号ｇ１０１が示す領域の図のように、環境理解装置１は、利用者ｈｕが手順を間違えたことを検出し、正しい手順の作業内容ｇ１１１を利用者ｈｕに提示する。これにより、本実施形態によれば、利用者ｈｕによる手順間違いを検出して報知することができるので、手順間違いを防ぐことを支援できる。
【００８７】
また、符号ｇ１０２が示す領域の図のように、環境理解装置１は、利用者ｈｕから手順の問い合わせｇ１２１があった場合、調理イベントＨＨＭＭに従って、次に利用者ｈｕが行うべき手順ｇ１２２を利用者ｈｕに提示する。これにより、本実施形態によれば、利用者ｈｕが手順を忘れた場合であっても、利用者ｈｕがレシピを調べたり料理のガイドブックを調べたりしなくても、環境理解装置１が次の作業手順を報知することができる。この結果、本実施形態によれば、利用者ｈｕの手順忘れに対して支援することができる。
【００８８】
次に、環境理解装置１を用いて行った実験結果の一例を説明する。
図１８は、本実施形態に係る環境理解装置１のノイズに対する正答率を説明する図である。図１８において、横軸はノイズレート、縦軸は認識率である。実験では、レシピモデル構築部４０によって生成された調理イベントＨＨＭＭの各調理イベントに対して、確率ｒのノイズレートでランダムにイベントを置換するノイズを加えた。そして、このノイズレートを変化させたときの、調理イベントに対して推定した結果の正答率を実験により求めた。
【００８９】
実験では、１０個の調理イベントＨＨＭＭそれぞれから１０個ずつ、計１００個の調理イベント列データを生成し、正答率を計算した。そして、この実験を１セットとして、１０セットの認識実験を行った結果が、図１８に示す実験結果である。
図１８において符号ｇ２０１が示すノイズレートに対する正答率の図は、本実施形態のレシピモデル構築部４０によって生成された調理イベントＨＨＭＭを用いた場合の実験結果である。また、符号ｇ２０２が示すノイズレートに対する正答率の図は、階層化されていないＨＭＭを用いた場合の実験結果である。
【００９０】
図１８のように、ノイズレートが０．３以上のとき、階層化されていないＨＭＭに対して、本実施形態の方が、認識率が０．０２〜０．０６高い。
この実験で加えたノイズは、調理イベントの誤認識と対応する。このため、ノイズレートが０．３以上の意味合いは、ノイズを加えていない場合に調理イベントを正しく認識する割合が０．７より小さい状況であることを意味している。
なお、正答率は、調理イベントＨＨＭＭを生成するために用いるレシピデータの影響を受けることが実験により分かっている。このため、料理に関する情報として、料理解説本などのテキストデータなど、作業手順や作業内容が明確な情報を用いた場合、さらに正答率が高くなることが考えられる。
【００９１】
以上のように、本実施形態の（例えば環境理解装置１）は、作業に関する複数の作業工程を含む情報を解析してフローグラフ（例えば図５参照）を生成する言語処理部（例えば言語処理部４１）と、生成されたフローグラフに含まれる複数の作業工程を、所定の基準に従って、時系列的に並べた工程モデル（例えばＨＭＭ、ＨＨＭＭ）に変換するモデル化部（例えば確率モデル化部４２、階層化部４３）と、音響信号を収録する収音部（例えば収音部５０）と、作業工程毎に対応する音響信号に基づいて作成された音響モデル（例えばＧＭＭ）と、収録された音響信号から音響特徴量を抽出する特徴量抽出部（例えば特徴量抽出部２２）と、音響特徴量と音響モデルとに基づいて現在の作業工程である現作業工程を推測し、推測した現作業工程と、過去に推定した作業工程と、工程モデルとに基づいて、作業を推定する推定部（例えばＧＭＭ推定部７５、ＨＨＭＭ推定部８０）と、を備える。
【００９２】
この構成によって、本実施形態の環境理解装置１は、利用者が調理名や作業手順を入力することなく、フローグラフを所定の基準に従って調理イベントＨＨＭＭに変換して、さらに予め収録した音響信号を作業手順または調理イベントそれぞれに関連付けた音響モデルを生成するようにした。本実施形態によれば、収録された音響信号と、音響モデルとに基づいて現在の調理イベントを推定することができる。そして、本実施形態によれば、現在の調理イベントと、過去の調理イベントと、ＨＨＭＭに基づいて、環境理解装置が調理イベントＨＨＭＭを推定することで現在行われている調理を推定することができる。さらに、本実施形態によれば、フローグラフに含まれる複数の調理イベントを、所定の基準に従って、時系列的に並べた調理イベントＨＨＭＭに変換してモデルを生成したので、調理イベントの順序が入れ替わっても支障がない作業であっても、利用者が調理名や作業手順を入力することなく、環境理解装置が現在行われている調理を推定することができる。
【００９３】
また、本実施形態によれば、フローグラフの作業工程における１つの状態から他の状態への遷移に対して共起確率による制約を加えたので、フローグラフを実際に行われる可能性が高い調理イベントＨＨＭＭに変換することができる。また、本実施形態によれば、フローグラフの作業工程における１つの状態から他の状態への遷移が他の作業にも含まれている場合に、この複数の作業工程を１つの作業工程であるとみなす制約を加えたので、フローグラフを実際に行われる可能性が高い調理イベントＨＨＭＭに変換することができる。この結果、本実施形態によれば、変換された工程モデルを用いて、環境理解装置が現在行われている調理を精度良く推定することができる。
【００９４】
また、本実施形態によれば、変換された調理工程ＨＭＭをさらに階層化することができるので、さらに階層化された調理イベントＨＨＭＭを用いて、環境理解装置が利用者によって現在行われている作業工程や作業を、実験結果に示したようにＨＭＭのみの階層化されていないモデルを用いた場合よりさらに精度良く推定することができる。
【００９５】
また、本実施形態によれば、作業の候補を所定の値以内に絞れない場合、推定される調理名の候補を利用者へ報知を行い、この報知に対する利用者の応答を得るようにした。これにより、本実施形態によれば、利用者が行うとしている調理名を作業途中で絞ることができる。
また、本実施形態によれば、推定した作業と、収録した音響信号とを用いて、次に行われる調理イベントを推定することができる。これにより、本実施形態によれば、利用者が作業手順を間違えたときや、調理イベントを抜かして誤った調理イベントに進んだときなどに、正しい調理イベントを利用者へ報知することができるので、利用者の調理を支援することができる。
【００９６】
なお、本実施形態において、区間検出部２１および区間検出部６５は、ゼロクロスと振幅によって区間検出を行う例を説明したが、他の周知の手法を用いてもよい。
また、特徴量抽出部２２および特徴量抽出部７０は、音響特徴量としてＭＦＣＣ特徴量を抽出する例を説明したが、抽出する特徴量は他の周知の音響特徴量であってもよい。
【００９７】
また、本実施形態では、利用者に対する報知を音声信号で行う例を説明したが、これに限られない。環境理解装置１では、報知処理部９０が画像処理を行い、出力部が表示装置であってもよい。この場合、ステップＳ３１２（図１６）において、報知処理部９０は、次に行われる調理イベントを周知の手法で文章化し、文章化した次に行われる調理イベントを、周知の技術を用いてテキストデータに変換するようにしてもよい。次に、報知処理部９０は、変換したテキストデータを出力部９５に表示させるようにしてもよい。また、報知は、音声および画像のうち少なくとも一方であればよい。
【００９８】
また、出力部９５がタッチパネルを備える表示装置である場合、利用者によって作業が進んでも調理名を絞り込めず、次の調理イベントの候補の総数が所定の個数以下にならないときに、環境理解装置１は、候補になっている調理名に対応するテキストデータを、出力部９５を介して報知することで利用者への問いかけを行うようにしてもよい。そして、利用者は、候補の中から調理している料理名をタッチパネル上で選択することで、返答するようにしてもよい。
【００９９】
＜第２実施形態＞
第１実施形態では、収音部５０によって収録された音響信号を用いて、現在行われている作業である調理名や作業手順を推定する例を説明したが、本実施形態では、撮像された画像も用いる例を説明する。
図１９は、本実施形態に係る環境理解装置１Ａのブロック図である。なお、本実施形態でも、環境理解装置１Ａの一例として、調理ナビゲーション装置について説明する。
図１９に示すように、環境理解装置１Ａは、調理音データベース１０、音響モデル構築部２０、レシピデータベース３０、レシピモデル構築部４０、収音部５０、音響信号取得部６０、区間検出部６５、特徴量抽出部７０、ＧＭＭ推定部７５（推定部）、ＨＨＭＭ推定部８０Ａ（推定部）、記憶部８５、報知処理部９０、出力部９５、撮像部１００、画像取得部１１０、画像データベース１２０、および画像処理部１３０を含んで構成される。なお、第１実施形態で説明した環境理解装置１と同じ機能を有する機能部については、同じ符号を用いて説明を省略する。
【０１００】
撮像部１００は、所定の間隔毎に画像を撮像し、撮像した画像情報を画像取得部１１０に出力する。撮像部１００は、例えばＣＣＤ（電荷結合素子；Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）センサによるカメラ、ＣＭＯＳ（相補型ＭＯＳ；Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）センサによるカメラである。なお、撮像部１００は、２台のカメラ１０１−１と１０１−２とによるステレオカメラであってもよく、ＲＧＢ画像に加えて深度画像を得ることができるＲＧＢ−Ｄカメラであってもよい。以下、カメラが２台のときカメラ１０１−１と１０１−２とのそれぞれを特定しない場合は、単にカメラ１０１という。カメラ１０１は、利用者が調理を行う調理場全体を撮像できる場所に取り付けられている。２台のカメラ１０１の場合は、カメラ１０１それぞれが異なる位置に配置されている。撮像部１００は、撮像した画像情報を無線で送信してもよいし、有線で送信してもよく、送信の際に画像情報間で画像情報が同期していればよい。
【０１０１】
画像取得部１１０は、撮像部１００のカメラ１０１によって撮像されたアナログ画像情報を所定の時間毎に取得し、取得したアナログ画像情報をデジタル画像情報に変換する。画像取得部１１０は、変換した画像情報を画像処理部１３０に出力する。
【０１０２】
画像データベース１２０には、予め各食材の画像情報、および各調理器具の画像情報が格納されている。なお、画像データベース１２０には、各食材の画像から周知の画像処理技術によって算出した画像特徴、および各調理器具の画像から周知の画像処理技術によって算出した画像特徴が格納されていてもよい。
【０１０３】
画像処理部１３０は、画像取得部１１０から入力された画像情報と、画像データベース１２０に格納されている画像情報とに対してパターンマッチング処理を行うことで、画像情報の中から各食材および各調理器具の位置を推定する。画像処理部１３０は、推定した各食材および各調理器具の位置を示す情報を、ＨＨＭＭ推定部８０Ａに出力する。なお、食材の位置は、画像に写っている対象物または利用者を基準とした相対的な位置であってもよい。
【０１０４】
図２０は、本実施形態に係る撮像部１００によって撮像された画像情報の一例を説明する図である。図２１は、本実施形態に係る材料や調理器具の位置を示す情報の一例を説明する図である。
図２０に示すように、撮像された画像には、調理に用いる材料（含む調味料）および調理器具が撮像されている。材料として、例えば、塩こしょう、キャベツ、トマト、黄色のピーマン、オレンジが画像に写っている。また、調理器具として、片手鍋、ココット、ボール、コンロ等が画像に写っている。
また、図２１に示すように、材料や調理器具の位置を示す情報は、材料名または調理器具名と、その対象物の他を基準とした相対的な関係である。
なお、図２１に示した例は一例であり、これに限られない。移動しない物体をいくつかランドマークに決めておき、そのランドマークを基準にした位置関係であってもよい。例えば、キャベツとトマトの位置は、「自動皿洗い機の上」等であってもよい。
【０１０５】
ＨＨＭＭ推定部８０Ａは、第１実施形態と同様に、ＧＭＭ推定部７５から入力された調理イベントを示す情報を記憶部８５に時系列的に記憶させていく。ＨＨＭＭ推定部８０Ａは、記憶部８５に所定の個数以上の調理イベントを示す情報を記憶させた後、利用者が行っている調理（作業）に該当する調理イベントＨＨＭＭを、ＨＨＭＭ（工程モデル）を参照して推定する。そして、ＨＨＭＭ推定部８０Ａは、利用者が行っている調理に該当する調理イベントＨＨＭＭを用いて、次に行われる調理イベントを推定する。そして、ＨＨＭＭ推定部８０Ａは、推定した次に行われる調理イベントに対応する調理イベントを示す情報がＧＭＭ推定部７５から所定の期間内に入力されたか否かを判別する。
ＨＨＭＭ推定部８０Ａは、次に行われる調理イベントに対応する調理イベントを示す情報がＧＭＭ推定部７５から所定の期間内に入力されない場合、次の調理イベントの候補を示す情報に含まれる材料や調理器具の位置を、画像処理部１３０から入力された材料または調理器具の位置を示す情報から抽出する。そして、ＨＨＭＭ推定部８０Ａは、次に行われる調理イベントの候補を示す情報と、その情報に含まれる材料または調理器具の位置を示す情報とを報知処理部９０に出力する。
なお、ＨＨＭＭ推定部８０Ａは、抽出した調理イベントに対応する調理イベントを示す情報がＧＭＭ推定部７５から所定の期間内に入力された場合、報知処理部９０に次に行われる調理イベントの候補を示す情報と、その情報に含まれる材料または調理器具の位置を示す情報とを報知処理部９０に出力しない。
【０１０６】
図２２は、本実施形態に係る環境理解装置と利用者とのコミュニケーションの一例を説明する図である。
図２２において、符号ｇ１０３が示す領域の図は、手順の予測および推薦を説明する図である。ＨＨＭＭ推定部８０Ａは、収録された音響信号から推定された現在の調理イベントと調理イベントＨＨＭＭとに基づいて、次に行われる調理イベントを予測する。そして、ＨＨＭＭ推定部８０Ａは、予測した調理イベントに含まれる材料や調理器具を抽出する。そして、環境理解装置１Ａは、符号ｇ１３１が示す領域の図のように、予測した次の手順で用いる材料および調理器具の位置を示す情報を、利用者ｈｕに提示する。これにより、本実施形態によれば、利用者ｈｕに次の手順で用いると予測される材料や調理器具の位置を提示することができるので、利用者ｈｕの調理を支援することができる。
【０１０７】
次に、本実施形態のレシピに関する推定処理について説明する。なお、ＧＭＭおよびＨＨＭＭの構築の仕方は、第１実施形態と同じである。
図２３は、本実施形態に係るレシピに関する推定処理手順のフローチャートである。なお、図１６で説明した処理内容と同じ処理については、同じ符号を用いる。
【０１０８】
（ステップＳ４０１）画像取得部１１０は、撮像部１００によって撮像されたアナログ画像情報を所定の時間毎に取得し、取得したアナログ画像情報をデジタル画像情報に変換する。
（ステップＳ４０２）画像処理部１３０は、ステップＳ４０１で変換された画像情報と、画像データベース１２０に格納されている画像情報とのパターンマッチング処理を行って、画像情報の中から各食材および各調理器具の位置を推定する。画像処理部１３０は、推定後、処理をステップＳ３０１に進める。
【０１０９】
（ステップＳ３０１〜Ｓ３０９）環境理解装置１Ａは、ステップＳ３０１〜Ｓ３０９を図１６と同様に行う。環境理解装置１Ａは、ステップＳ３０９終了後、処理をステップＳ３１０Ａに進める。
（ステップＳ３１０Ａ）ＨＨＭＭ推定部８０Ａは、次の調理イベントの候補である音響データを取得済みであるか否かを判別する。ＨＨＭＭ推定部８０Ａは、次の調理イベントの候補である音響データを取得済みであると判別した場合（ステップＳ３１０Ａ；ＹＥＳ）、ステップＳ３１１Ａに進み、次の調理イベントの候補である音響データを取得済みではないと判別した場合（ステップＳ３１０Ａ；ＮＯ）、ステップＳ４０１に戻る。
【０１１０】
（ステップＳ３１１Ａ）ＨＨＭＭ推定部８０Ａは、次に行われる調理イベントの候補である調理イベントが所定の時間内に検出されたか否か判別する。ＨＨＭＭ推定部８０Ａは、次に行われる調理イベントの候補である調理イベントが所定の時間内に検出されたと判別した場合（ステップＳ３１１Ａ；ＹＥＳ）、ステップＳ３１３に進み、次に行われる調理イベントの候補である調理イベントが所定の時間内に検出されていないと判別した場合（ステップＳ３１１Ａ；ＮＯ）、ステップＳ４０３に進む。
【０１１１】
（ステップＳ４０３）ＨＨＭＭ推定部８０Ａは、次に行われる調理イベントの候補である調理イベントに含まれる材料（含む調味料）および調理器具の位置を、画像処理部１３０から入力された各食材および各調理器具の位置を示す情報から抽出することで推定する。ＨＨＭＭ推定部８０Ａは、処理をステップＳ４０４に進める。
【０１１２】
（ステップＳ４０４）報知処理部９０は、次に行われる調理イベントで用いられると予測される材料または調理器具の位置を、周知の手法で文章化する。次に、報知処理部９０は、文章化した次に行われる調理イベントを、周知の音声合成技術を用いて、音声信号に変換する。次に、報知処理部９０は、変換した音声信号を、出力部９５を介して出力する。報知処理部９０は、処理終了後、処理をステップＳ４０１に戻す。
【０１１３】
（ステップＳ３１３）ＨＨＭＭ推定部８０Ａは、調理イベントＨＨＭＭに含まれる全ての調理イベントが終了したか否かを判別することで、調理が終了したか否かを判別する。ＨＨＭＭ推定部８０Ａは、調理が終了したと判別した場合（ステップＳ３１３；ＹＥＳ）、処理を終了し、調理が終了していないと判別した場合（ステップＳ３１３；ＮＯ）、ステップＳ４０１に戻る。
以上で、レシピに関する推定処理を終了する。
【０１１４】
なお、上述した例では、ステップＳ４０３において、ＨＨＭＭ推定部８０Ａが、次に行われる調理イベントの候補である調理イベントに含まれる材料（含む調味料）および調理器具の位置を推定する例を説明したが、これに限られない。第１実施形態と同様に、ＨＨＭＭ推定部８０Ａは、推定した次に行われる調理イベントを示す情報も報知処理部９０に出力するようにしてもよい。そして、報知処理部９０は、次に行われる調理イベントで用いられると予測される材料および調理器具の位置に加えて、次に行われる調理イベントを、周知の手法で文章化するようにしてもよい。そして、報知処理部９０は、ステップＳ４０４において、次に行われる調理イベントで用いられると予測される材料および調理器具の位置を示す情報と、次に行われる調理イベントを示す情報とを変換した音声信号を、出力部９５を介して出力するようにしてもよい。
【０１１５】
なお、図２３に示す例では、調理イベントを示す情報を所定の個数以上記憶させていないと判別した場合（ステップＳ３０６；ＮＯ）、次の調理イベントの候補である音響データを取得済みではないと判別した場合（ステップＳ３１０Ａ；ＮＯ）、調理が終了していないと判別した場合（ステップＳ３１３；ＮＯ）、およびステップＳ４０４終了後、処理をステップＳ４０１に戻す例を説明したが、これに限られない。例えば、キッチンに利用者が立つ前に、撮像部１００は画像を撮像するようにして、以後、このとき撮像された画像を用いるようにしてもよい。この場合、（ステップＳ３０６；ＮＯ）、（ステップＳ３１０Ａ；ＮＯ）、（ステップＳ３１３；ＮＯ）、およびステップＳ４０４終了後、処理をステップＳ３０１に戻すようにしてもよい。これにより、利用者によって、材料や調理器具が撮像時に隠れてしまうことを防ぐことができる。
【０１１６】
以上のように、本実施形態の（例えば環境理解装置１Ａ）は、画像を撮像する撮像部（例えば撮像部１００）と、撮像部によって撮像された画像から、作業工程で用いられる対象物の位置を推定する画像処理部（例えば画像処理部１３０）と、を備え、推定部（例えばＧＭＭ推定部７５、ＨＨＭＭ推定部８０Ａ）は、画像処理部によって推定された対象物の位置を示す情報に基づいて、次の作業工程である次作業工程で用いる対象物の位置を示す情報を報知する。
【０１１７】
この構成によって、本実施形態の環境理解装置１Ａは、第１実施形態における環境理解装置１の効果に加えて、撮像された画像に基づいて、次に行われる作業工程で用いられる対象物の位置を推定することができる。ここで対象物とは、作業工程で用いられる材料、器具等である。これにより、本実施形態によれば、利用者が、次の作業工程で用いる対象物を見つけられずに次の作業工程を実行できないとき、次の作業工程で用いる対象物の位置を報知することができるので利用者の作業を支援することができる。
【０１１８】
また、撮像部１００のカメラ１０１を、キッチン全体を撮像できる位置に取り付けておく例を説明したが、これに限られない。複数のカメラ１０１を、キッチン全体を撮像できる位置、材料を置いておく位置（例えば、自動皿洗い機の上側）を撮像できる位置、コンロを撮像できる位置等に取り付けておいてもよい。この場合、画像処理部１３０は、カメラ１０１が取り付けられている位置に基づいて、材料や調理器具の位置を推定するようにしてもよい。これにより、利用者によって、材料や調理器具の画像が撮像時に利用者によって隠れてしまうことを防ぐことができる。
【０１１９】
また、本実施形態においても、作業手順が数工程進んだ後も作業（調理名）の候補が複数有り、次の調理イベントの候補が多数有り、次の調理イベントで使われる材料や調理器具の候補が所定の数より大きい場合、環境理解装置１Ａは、調理途中に利用者に対して調理名の候補を提示し、利用者からの回答にとって調理名を絞り込むようにしてもよい。
【０１２０】
なお、本実施形態では、ＧＭＭ推定部７５が、音響特徴量のみによって調理イベントを推定する例を説明したが、これに限られない。例えば、画像処理部１３０は、撮像された画像から各調理イベントで用いられる材料および調理器具の画像を抽出して、抽出した画像をＧＭＭ推定部７５に出力してもよい。ＧＭＭ推定部７５は、画像処理部１３０から入力された画像も用いて、調理イベントを推定するようにしてもよい。
【０１２１】
第１実施形態および第２実施形態によれば、作業を行う順番が入れ替わっても作業に支障がない調理イベントを含んでいても、上述したように共立確率等の制約を行って、これらの調理イベントの全ての組み合わせの調理工程ＨＭＭおよび調理イベントＨＨＭＭを生成するようにした。この結果、第１実施形態および第２実施形態によれば、利用者が作業手順をレシピ情報通りに行わなかった場合であっても、利用者が行っている調理を推定することができる。
【０１２２】
また、第１実施形態および第２実施形態で説明した環境理解装置（１または１Ａ）は、一般家庭のキッチンに限らず、ファーストフード店の調理場、ファミリーレストランの調理場、居酒屋の調理場等で使用するようにしてもよい。ファーストフード店の調理場、ファミリーレストランの調理場、居酒屋の調理場等の場合、使用されるレシピ情報は、店舗または企業毎に決まっているため、そのレシピ情報をレシピデータベース３０に格納するようにしてもよい。
【０１２３】
また、第１実施形態および第２実施形態では、調理音データベース１０および音響モデル構築部２０を備える例を説明したが、音響モデルを他の音響モデル生成装置で生成し、生成された音響モデルをＧＭＭ推定部７５や記憶部８５に記憶させておくようにしてもよい。記憶部８５に音響モデルが記憶されている場合、ＧＭＭ推定部７５は、収録された音響信号の音響特徴量を、記憶部８５に記憶されているＧＭＭを参照して、最も尤度の高いＧＭＭに対応する調理イベントを推定するようにしてもよい。
【０１２４】
＜第３実施形態＞
第１実施形態および第２実施形態では、環境理解装置（１または１Ａ）の例として、調理ナビゲーション装置について説明した。本実施形態では、環境理解装置の例として、製品を組み立てる現場における工程ナビゲーション装置について説明する。
図２４は、本実施形態に係る環境理解装置１Ｂのブロック図である。
図２４に示すように、環境理解装置１Ｂは、作業音データベース１０Ｂ、音響モデル構築部２０、工程データベース３０Ｂ、工程モデル構築部４０Ｂ、収音部５０、音響信号取得部６０、区間検出部６５、特徴量抽出部７０、ＧＭＭ推定部７５、ＨＨＭＭ推定部８０、記憶部８５、報知処理部９０、および出力部９５を含んで構成される。なお、第１実施形態で説明した環境理解装置１と同じ機能を有する機能部については、同じ符号を用いて説明を省略する。
【０１２５】
作業音データベース１０Ｂには、予め収録された作業行程毎に収録した音響信号と、部品名または作業工具名と、作業内容とが関連付けられて格納されている。部品とは、例えば、ネジ、ハーネス、プラグ、コネクタ、基板、ユニット等である。また作業工具とは、例えば、電動ドライバ、半田ごて、圧着器等である。作業内容とは、例えば、差し込む、接続する、固定する、取り付ける等である。なお、音響信号の特徴量を検出して比較するため、音響信号の収録には、後述する収音部５０または収音部５０と同等のものを用いることが好ましい。
【０１２６】
図２５は、本実施形態に係る作業音データベース１０Ｂに格納されている情報の一例を説明する図である。図２５に示すように、作業音データベース１０Ｂには、部品名または作業工具名と、作業内容と、作業に関する音響信号とが関連付けられて格納されている。例えば、部品名である「ハーネス」と、作業内容である「差し込む」と、音響信号である「音響信号１１」とが関連付けられている。また、本実施形態では、部品名または作業工具名の名詞と、作業内容の動詞との組み合わせを作業イベントと定義する。例えば、「（Ｎ）ハーネス、（Ｖ）差し込む」が、１つの作業イベントである。
【０１２７】
図２４に戻って、環境理解装置１Ｂの説明を続ける。
工程データベース３０Ｂには、予め製品の組み立てに関する作業情報が製品毎に格納されている。作業情報には、作業名、部品名、作業工具名、作業内容等を示す情報が含まれている。環境理解装置１Ｂは、例えばネットワークを介して複数の製品や部品やユニットの組み立てに関する作業情報を取得して、取得した作業情報を工程データベース３０Ｂに格納するようにしてもよい。
【０１２８】
図２６は、工程データベース３０Ｂに格納されている作業名とリストの一例を説明する図である。また、図２７は、工程データベース３０Ｂに格納されている制御ユニットの取り付けの作業手順を説明する図である。
図２６に示すように、作業名とリストとが関連付けられて格納されている。図２６に示す例は、作業名が「制御ユニットの取り付け」であり、その作業に必要な部品がリストに格納されている。
また、図２７に示すように、作業手順と作業項目とが、製品毎に関連付けられて格納されている。例えば、作業手順１の作業項目は、「制御ユニットを、ダッシュボード裏の所定の位置（図参照）に置く。」である。
【０１２９】
工程モデル構築部４０Ｂは、工程データベース３０Ｂに格納されている情報を、製品毎に読み出し、読み出した製品毎の作業情報を作業イベントＨＨＭＭ（工程モデル）に変換する。
工程モデル構築部４０Ｂは、言語処理部４１、確率モデル化部４２、および階層化部４３を含んで構成される。
【０１３０】
図２８は、作業情報から生成したフローグラフの一例を説明する図である。図２８において、（Ｎ）は名詞を表し、（Ｖ）は動詞を表す。またｅｎｄノードは、作業項目の終端を表すノードである。
作業手順１のノード「（Ｎ）制御ユニット、（Ｖ）置く」は、「制御ユニットを、ダッシュボード裏の所定の位置（図参照）に置く。」という作業項目を表している。なお、各ノードで検出する名詞は、第１実施形態と同様に図２６に示したリストに記載されている名詞である。
【０１３１】
作業手順２のノード「（Ｎ）ハーネスＡ、（Ｎ）ハーネスＢ、（Ｎ）ハーネスＣ、（Ｖ）差し込む」は、「ハーネスＡ、ハーネスＢ、およびハーネスＣを、制御ユニットに差し込む。」という作業項目を表している。また、作業手順２では、３つの親ノード「（Ｎ）ハーネスＡ、（Ｖ）差し込む」と「（Ｎ）ハーネスＢ、（Ｖ）差し込む」と「（Ｎ）ハーネスＣ、（Ｖ）差し込む」とが存在している。この３つの親ノードは、係り受け解析のみからでは、順序を決定できないものであり、親ノードのどちらの作業イベントを先に行っても良いが、必ず全ての行う工程であり、合流ノードである。
【０１３２】
作業手順３のノード「（Ｎ）ネジＡ、（Ｎ）ネジＣ、（Ｖ）固定する」は、「ネジＡを、制御ユニットのねじ穴Ａに固定し、ネジＣを、制御ユニットのねじ穴Ｃに固定する。」という作業項目を表している。作業手順４のノード「（Ｎ）ネジＢ、（Ｎ）ネジＤ、（Ｖ）固定する」は、「ネジＢを、制御ユニットのねじ穴Ｂに固定し、ネジＤを、制御ユニットのねじ穴Ｄに固定する。」という作業項目を表している。
【０１３３】
図２９は、図２８に示したフローグラフを作業工程ＨＭＭおよび作業イベントＨＨＭＭに変換した一例を説明する図である。符号ｇ２１で示した領域の図は、図２８に示したフローグラフを作業工程ＨＭＭ（工程モデル）に変換した図である。符号ｇ２２で示す領域の図は、図２８で示した作業手順３を、さらに階層化してＨＭＭを構築した図である。符号ｇ２３で示す領域の図は、図２８で示した作業手順４を、さらに階層化してＨＭＭを構築した図である。図２９の符号ｇ２１で示した領域の図において、図２８で示した作業手順１は、ノード１に対応し、図２８で示した作業手順２は、ノード２−１−１〜２−１−３、２−２−１〜２−２−３、２−３−１〜２−３−３、およびノード２に対応する。また、図２８で示した作業手順３は、図２９においてノード３に対応する。図２８で示した作業手順４は、図２９においてノード４に対応する。
【０１３４】
符号ｇ２２で示した領域の図のように、ノード３は、階層化部４３によって、さらに作業イベントの階層的なＨＭＭに変換される。すなわち、ノード３は、ノード３−１−１からノード３−１−２に遷移するルートと、ノード３−２−１からノード３−２−２に遷移するルートとが合流するＨＭＭに変換される。
符号ｇ２３で示した領域の図のように、ノード４は、階層化部４３によって、さらに作業イベントの階層的なＨＭＭに変換される。すなわち、ノード４は、ノード４−１−１からノード４−１−２に遷移するルートと、ノード４−２−１からノード４−２−２に遷移するルートとが合流するＨＭＭに変換される。
【０１３５】
次に、環境理解装置１Ｂの処理手順について説明する。
図３０は、本実施形態に係る環境理解装置１Ｂの処理手順のフローチャートである。
（ステップＳ４０１）工程モデル構築部４０Ｂは、予め作業工程のフローグラフ化処理を行う。なお、作業工程のフローグラフ化処理は、図１３のステップＳ１１においてレシピデータを工程データに置き換え、第１実施形態のステップＳ１１〜Ｓ１６の処理と同様に行う。
【０１３６】
（ステップＳ４０２）工程モデル構築部４０Ｂは、予めフローグラフをＨＭＭＭに変換して作業イベントＨＨＭＭを生成する。なお、作業イベントＨＨＭＭの生成処理は、図１４のステップＳ１０６およびＳ１０７において調理工程ＨＭＭを作業工程ＨＭＭに置き換え、第１実施形態のステップＳ１０１〜Ｓ１０７の処理と同様に行う。
【０１３７】
（ステップＳ４０３）音響モデル構築部２０は、予め音響モデルであるＧＭＭを生成する。なお、ＧＭＭの生成処理は、図１５のステップＳ２０１において調理音データを作業音データに置き換えて、第１実施形態のステップＳ２０１〜Ｓ２０４の処理と同様に行う。
【０１３８】
（ステップＳ４０４）環境理解装置１Ｂは、予め生成されたＧＭＭおよび作業イベントＨＨＭＭ、そして収録された音響信号に基づいて、作業に関して推定する。なお、作業に関する推定とは、何の製品を組み立てているかについての推定と、作業工程のどの過程であるかの推定である。作業に関して推定に関する推定処理は、図１６のステップＳ３０４〜Ｓ３０６とＳ３０８〜Ｓ３１２とにおいて調理イベントを作業イベントに置き換え、ステップＳ３０７とＳ３０８において調理イベントＨＨＭＭを作業イベントＨＨＭＭに置き換え、第１実施形態のステップＳ３０１〜Ｓ３１３の処理と同様に行う。
【０１３９】
なお、本実施形態では、第１実施形態で説明した環境理解装置１をベースにした構成例を説明したが、第２実施形態の環境理解装置１Ａをベースにした構成であってもよい。すなわち、工程ナビゲーション装置は、第２実施形態と同様に、撮像部１００（図１９）を備え、撮像部１００によって撮像された画像も用いて、次の作業イベントで使用される部品や作業工具の位置を推定するようにしてもよい。そして、工程ナビゲーション装置は、推定した次の作業イベントで使用される部品や作業工具の位置を、報知処理部９０が出力部９５を介して報知するようにしてもよい。
【０１４０】
また、本実施形態では、製品の組み立てを行う例を説明したが、これに限られない。組み立てるものは、製品に使われるユニットや部品等であってもよい。
【０１４１】
以上のように、第１実施形態で説明した環境理解装置１、および第２実施形態で説明した環境理解装置１Ａは、データベースに格納するデータを入れ替えることで、本実施形態で説明した環境理解装置１Ｂのように、工場などの製造現場で工程ナビゲーション装置として使用することができる。これにより、作業現場において、作業者の作業手順の間違えを検出して、正しい作業手順を提示することができる。また、作業現場において、作業者が作業手順を忘れた場合、環境理解装置１Ｂに作業手順を問い合わせることで、環境理解装置１Ｂが作業者へ次に行う作業を提示することができる。また、環境理解装置１Ｂが第２実施形態と同様に撮像部１００を有する構成の場合、次の作業工程で用いる部品や作業工具の位置を作業者へ伝えることができる。これにより、第１実施形態および第２実施形態と同様の効果を得ることができる。
【０１４２】
また、本実施形態において、収音部５０が２本以上のマイクロホン５１を有している場合、環境理解装置１Ｂは、不図示の音源定位部によって、音源方向を推定するようにしてもよい。例えば、図２８に示した作業手順３において、ネジＡとネジＣとを固定する順番が決まっている場合、環境理解装置１Ｂは、推定された音源方向に基づいて、ネジＡとネジＣとが正しい順番で固定されたか否かを判別するようにしてもよい。そして、環境理解装置１Ｂは、ネジＡとネジＣとの固定の順番が正しくないと判別した場合、作業手順が正しくなかったことを示す情報、正しい作業手順を示す情報のうち、少なくとも一方の情報を報知するようにしてもよい。なお、音源方向の推定には、環境理解装置１Ｂが撮像部１００を有している場合、撮像された画像情報も用いるようにしてもよい。
【０１４３】
なお、第１実施形態〜第３実施形態では、音響モデルの例として、ＧＭＭを例に説明したが、音響モデルは他の手法を用いて学習したモデルであってもよい。なお、音響モデルにＧＭＭを使用した場合、時間構造を考えなくてよいので、モデルの構造が簡単であるという効果を得ることができる。
【０１４４】
なお、第１実施形態〜第３実施形態では、環境理解装置（１、１Ａ、または１Ｂ）の例として調理を支援する装置、または製品等の組み立てを支援する装置を例に説明したが、これに限られない。作業工程中に特有の音が発生する工程であれば、そのような作業工程を支援する装置に用いてもよい。例えば、作業音を伴い、作業手順が定められている事務的な業務を支援する装置であってもよい。
また、本実施形態で説明した環境理解装置（１、１Ａ、または１Ｂ）は、人型ロボット、キッチンに設置される家電製品（例えば冷蔵庫）、工場で用いられる組み立てロボット等が備えるようにしてもよい。
【０１４５】
なお、本発明における環境理解装置（１、１Ａ、または１Ｂ）の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより作業イベント（調理イベント）の推定に対する処理や各モデル（ＧＭＭ、ＨＭＭ、およびＨＨＭＭ）の生成に対する処理等を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１４６】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１４７】
１、１Ａ、１Ｂ…環境理解装置、１０…調理音データベース、１０Ｂ…作業音データベース、２０…音響モデル構築部、２１…区間検出部、２２…特徴量抽出部、２３…学習部、３０…レシピデータベース、３０Ｂ…工程データベース、４０…レシピモデル構築部、４０Ｂ…工程モデル構築部、４１…言語処理部、４２…確率モデル化部、４３…階層化部、５０…収音部、６０…音響信号取得部、６５…区間検出部、７０…特徴量抽出部、７５…ＧＭＭ推定部、８０、８０Ａ…ＨＨＭＭ推定部、８５…記憶部、９０…報知処理部、９５…出力部、１００…撮像部、１１０…画像取得部、１２０…画像データベース、１３０…画像処理部
【図１】
2016051052.tif 000003
【図２】
2016051052.tif 000004
【図３】
2016051052.tif 000005
【図４】
2016051052.tif 000006
【図５】
2016051052.tif 000007
【図６】
2016051052.tif 000008
【図７】
2016051052.tif 000009
【図８】
2016051052.tif 000010
【図９】
2016051052.tif 000011
【図１０】
2016051052.tif 000012
【図１１】
2016051052.tif 000013
【図１２】
2016051052.tif 000014
【図１３】
2016051052.tif 000015
【図１４】
2016051052.tif 000016
【図１５】
2016051052.tif 000017
【図１６】
2016051052.tif 000018
【図１７】
2016051052.tif 000019
【図１８】
2016051052.tif 000020
【図１９】
2016051052.tif 000021
【図２０】
2016051052.tif 000022
【図２１】
2016051052.tif 000023
【図２２】
2016051052.tif 000024
【図２３】
2016051052.tif 000025
【図２４】
2016051052.tif 000026
【図２５】
2016051052.tif 000027
【図２６】
2016051052.tif 000028
【図２７】
2016051052.tif 000029
【図２８】
2016051052.tif 000030
【図２９】
2016051052.tif 000031
【図３０】
2016051052.tif 000032