(57)【特許請求の範囲】
【請求項１】
人型ロボット（１１０）であって、
ｉ）前記ロボットの少なくとも１人のユーザにより生成される事象の音響センサおよび視覚センサを備えるグループから選択される少なくとも１つのセンサ、
ｉｉ）前記少なくとも１つのセンサの出力における少なくとも１つの事象認識モジュール（６１０）、
ｉｉｉ）前記少なくとも１人の前記ユーザに向かって事象を生成する少なくとも１つのモジュール（６３０）、前記少なくとも１人の前記ユーザと対話するモジュール（６２０）であって、前記対話モジュールは、前記少なくとも１つの認識モジュールの出力を入力として受け取り、かつ、発話、動作、表情および感情を含むグループから選択される前記事象生成モジュールへの出力を作成するモジュールとを含み、前記ロボットは、対話の文脈および中立状態と最後の状態との間の一連の表情として前記ロボットの感情を定義する変数に従って前記事象生成モジュールの出力を制御するように構成される人工知能エンジン（６４０）をさらに含み、前記中立状態と前記最後の状態との間の展開が時間ならびに少なくともあるセンサ、事象認識モジュール、対話モジュールおよび事象生成モジュールの出力の１つまたは複数に応じて生成されるパルスによってトリガーされる、人型ロボット（１１０）。
【請求項２】
変数がロボットに利用可能な１つまたは複数のリソースまたはロボットに適用されるシステム制約をさらに定義する、請求項１に記載の人型ロボット。
【請求項３】
ロボットに利用可能な１つまたは複数のリソースまたはロボットに適用されるシステム制約をさらに定義する変数が、前記ロボットの電池レベルおよび温度を含む、請求項２に記載の人型ロボット。
【請求項４】
前記少なくとも１つの事象認識モジュールが少なくとも２つの異なる型に属する少なくとも２つのセンサから発出される入力を受け取り、かつ、前記対話モジュールの出力における前記少なくとも１つの事象生成モジュールが少なくとも２つの前記センサから発出される前記入力を考慮して出力として事象を作成することができる、請求項１〜３のいずれか一項に記載の人型ロボット。
【請求項５】
前記少なくとも１つの認識モジュールが前記入力を動的階層ツリーに従って観念の中に構築することができる、請求項１〜４のいずれか一項に記載の人型ロボット。
【請求項６】
前記少なくとも１つの認識モジュール中の入力が文章または音声の入力に適用され、かつ、前記対話モジュール中の文法を起動する、請求項１〜５のいずれか一項に記載の人型ロボット。
【請求項７】
前記少なくとも１つの認識モジュール中の入力が前記入力の認識を起動／停止する、請求項６に記載の人型ロボット。
【請求項８】
前記少なくとも１つの認識モジュールが第１および第２サブモジュールを含み、前記第１サブモジュールが少なくとも１つの観念に結合される閉鎖単語リスト上で動作し、かつ、前記第２サブモジュールが開放単語リスト上で動作する、請求項６または７に記載の人型ロボット。
【請求項９】
前記第１サブモジュールからの１つの出力のみ前記対話モジュールに供給される、請求項８に記載の人型ロボット。
【請求項１０】
前記第２サブモジュールからの出力のみ前記対話モジュールに供給される、請求項８に記載の人型ロボット。
【請求項１１】
前記第１サブモジュールからの出力および前記第２サブモジュールからの出力がともに前記対話モジュールに供給される、請求項８に記載の人型ロボット。
【請求項１２】
前記第１サブモジュールからの出力のみ先ず前記対話モジュールに供給され、前記第１サブモジュールからの前記出力が前記対話モジュールにおいて前記第２サブモジュールからの出力により確認される、請求項８に記載の人型ロボット。
【請求項１３】
前記第１および第２サブモジュールからの出力のいずれも前記対話モジュールからの出力を生成せず、かつ、前記ロボットが少なくとも１人の前記ユーザに少なくとも１つの出力を与える、請求項８〜１２のいずれか一項に記載の人型ロボット。
【請求項１４】
前記対話モジュールがさらにアプリケーションから発出される動的要素を入力として受け取る、請求項１〜１３のいずれか一項に記載の人型ロボット。
【請求項１５】
前記ロボットの少なくとも１つの表情を生成する機能、前記ロボットの少なくとも１つの挙動を生成することを決定する機能および前記ロボットの少なくとも１つの感情を生成する機能を含む機能のグループから選択される機能を遂行することができるモジュールに、前記対話モジュールからの少なくとも１つの出力が供給される、請求項１〜１４のいずれか一項に記載の人型ロボット。
【請求項１６】
機能のグループから選択される前記機能が少なくとも１つの挙動を生成する前記機能であり、
少なくとも１つの挙動を生成する前記機能が前記ロボットのシステム制約を考慮する、請求項１５に記載の人型ロボット。
【請求項１７】
機能のグループから選択される前記機能が少なくとも１つの感情を生成する前記機能であり、
少なくとも１つの感情を生成する前記機能が、中立状態とあらかじめ定められた状態との間の一連のあらかじめ定められた表情を入力事象に対応して生成することができる、請求項１５に記載の人型ロボット。
【請求項１８】
視覚認識モジュールをさらに備え、
前記視覚認識モジュールは、少なくとも１人の前記ユーザからの少なくとも１つの合図を対話シーケンスの開始または終了として解釈できる、請求項１〜１７のいずれか一項に記載の人型ロボット。
【請求項１９】
前記対話モジュールが字句解析サブモジュールと、前記字句解析サブモジュールの出力を解釈するサブモジュールであって、現在の対話の単語が結合される観念を生成することができるサブモジュールとを含む、請求項５〜１８のいずれか一項に記載の人型ロボット。
【請求項２０】
前記対話モジュールが、少なくとも１人の前記ユーザからのその物理的および／または論理的システムの状態に関する質問およびコマンドを処理することができる、請求項１〜１９のいずれか一項に記載の人型ロボット。
【請求項２１】
人型ロボットと少なくとも１人のユーザとの間の対話の方法であって、
ｉ）少なくとも１人の前記ユーザにより生成される事象の、音響センサおよび視覚センサを含むグループから選択される少なくとも１つのセンサから発出される入力を認識する少なくとも１つのステップと、
ｉｉ）少なくとも１人の前記ユーザに対する事象を生成するステップと、および
ｉｉｉ）少なくとも１人の前記ユーザと前記対話により対話するステップであって、前記対話ステップは、前記少なくとも１つの認識ステップの出力を入力として受け取り、かつ、発話、動作、表情および感情を含むグループから選択される事象を生成する前記ステップへの出力を作成するステップとを含み、前記方法は、人工知能エンジンにより対話の文脈および中立状態と最後の状態との間の一連の表情としてロボットの感情を定義する変数に従って前記事象生成モジュールの出力を制御するステップをさらに含み、前記中立状態と前記最後の状態との間の展開が時間ならびに少なくともあるセンサ、事象認識モジュール、対話モジュールおよび事象生成モジュールの出力の１つまたは複数に応じて生成されるパルスによってトリガーされる方法。
【請求項２２】
変数がロボットに利用可能な１つまたは複数のリソースまたはロボットに適用されるシステム制約をさらに定義し、前記ロボットの電池レベルおよび温度を含む、請求項２１に記載の対話の方法。
【請求項２３】
前記ロボットが少なくとも２人のユーザとの対話を行い、少なくとも２人の前記ユーザを特徴付けるパラメータが前記ロボットのメモリに格納されており、前記ロボットが少なくとも２人の前記ユーザのうちの１人を認識するときに使用される、請求項２１または２２に記載の対話方法。
【請求項２４】
人型ロボットに埋め込まれるコンピュータプログラムであって、前記プログラムがコンピュータ上で実行されたときに、前記人型ロボットと少なくとも１人のユーザとの間の対話の管理に適したプログラム・コード命令を含み、前記コンピュータプログラムは、
ｉ）少なくとも１人の前記ユーザにより生成される事象の、音響センサおよび視覚センサを含むグループから選択される少なくとも１つのセンサの出力における事象を認識する少なくとも１つのモジュールと、
ｉｉ）少なくとも１人の前記ユーザに対する事象を生成する少なくとも１つのモジュールと、
ｉｉｉ）少なくとも１人の前記ユーザとの対話のためのモジュールであって、前記対話モジュールは、前記少なくとも１つの認識モジュールの出力を入力として受け取り、かつ、発話、動作、表情および感情を含むグループから選択される事象を生成する前記モジュールへの出力を作成するモジュールとを含み、前記プログラムは、対話の文脈および中立状態と最後の状態との間の一連の表情としてロボットの感情を定義する変数に従って前記事象生成モジュールの出力を制御するように構成される人工知能エンジンをさらに含み、前記中立状態と前記最後の状態との間の展開が時間ならびに少なくともあるセンサ、事象認識モジュール、対話モジュールおよび事象生成モジュールの出力の１つまたは複数に応じて生成されるパルスによってトリガーされることを特徴とする、プログラム。
【請求項２５】
プログラム・コード命令は、ＣｈａｔＳｃｒｉｐｔ型インターフェース上で作成される、請求項２４に記載のコンピュータプログラム。
【請求項２６】
一連の表情は、定められた時間にわたって中立状態になる傾向にある、請求項１に記載の人型ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット・プログラミング・システムの分野に属する。より具体的には、それは、挙動を行う能力をすでに備えている人型ロボットに人間ユーザと対話する高度の機能を与えるために使用することができる。ロボットは、ある程度の人間の外観（頭、胴体、２本の腕、おそらく２つの手、２本の脚、２つの足等）および機能性の属性を有するや否や人型と表現され得る。しかし、本発明の場合、最も重要な人型特徴は、人間との対話における口頭表現の能力である。この能力は、ロボットの個性および感情の身振りによる表現および／または象徴的表現と可能な限り調整されなければならない。「ロボット・コンパニオン」型ロボットのアプリケーションが開発され得ると思われる。それは、とりわけ、依存状態にある人々のために日常生活における複数の支援機能を果たしつつ、これらの人々にとって人間補助者に情緒的に取って代わる準等価的存在と考えられる存在となる。このために、人間の振る舞いにできるだけ近い方法で人間と対話を交わす前記人型ロボットの能力を開発することが重要である。具体的には、ロボットが人間からの質問または発話を解釈し、かつ、人間からの表情の豊かさに対応する表現の豊かさおよび人間の通常の挙動と感情の類型と共同作用する表現方法により、会話モードで応答できることが必要である。
【背景技術】
【０００２】
この方法の初期のステップは、本特許出願の出願人により販売されたＮａｏＴＭブランドの人型ロボットをプログラミングする方法のおかげで達成された。この方法は、国際公開第２０１２／０００９２７号パンフレットとして公開されたプレーヤ・ロボットに関する国際特許出願および国際公開第２０１２／０１０４５１号パンフレットとして公開された自然対話インターフェース装備人型ロボットに関する国際特許出願において開示された。しかし、これらの文書により開示されたロボットは、あらかじめ決められた限定個数の対話要素を遂行するのみである。また、少しでも、前記の会話要素を増やして人間の通常の挙動に対応する多様性に近づけようとすると、その組み合わせ論は立ち所に近づきがたいものとなる。したがって、とりわけ前述の人々に支援サービスを提供することができるようにするために、人型ロボットに先行技術のロボットより豊かな会話機能を与える必要がある。これを行うために、本発明は、前記ロボットに、対話型エージェント、音声認識ツールおよびロボットの会話相手の人間の挙動を分析するツールを設ける。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１２／０００９２７号
【特許文献２】国際公開第２０１２／０１０４５１号
【発明の概要】
【課題を解決するための手段】
【０００４】
この目的のために、本発明は、以下を含む人型ロボットを開示する：ｉ）ロボットの少なくとも１人のユーザにより生成される事象の、少なくとも１つの第２型の、音声型の第１センサおよび第２センサを含むグループから選択される少なくとも１つのセンサ、ｉｉ）前記少なくとも１つのセンサの出力における少なくとも１つの事象認識モジュール、およびｉｉｉ）前記少なくとも１人のユーザに対して事象を生成する少なくとも１つのモジュール、少なくとも１人のユーザとの対話のためのモジュールであって、前記対話モジュールは前記少なくとも１つの認識モジュールの出力を入力として受け取り、かつ、会話、動作、表情および感情を含むグループから選択される前記事象生成モジュールに対する出力を生成するモジュール。ここで、前記ロボットは、事象生成モジュールの出力を制御するように構成される人工知能エンジンをさらに含む。
【０００５】
有利な結果をもたらすように、人工知能エンジンによる事象生成モジュールの制御は、対話の文脈ならびにロボットの現在および予測による構成を定義する変数に従って行われる。
【０００６】
有利な結果をもたらすように、前記少なくとも１つの事象認識モジュールは、少なくとも２つの別の型に属する少なくとも２つのセンサから発出される入力を受け取る。これに際して、前記対話モジュールの出力の前記少なくとも１つの事象生成モジュールは、少なくとも２つの前記センサから発出される前記入力を考慮して出力事象を作成することができる。
【０００７】
有利な結果をもたらすように、前記少なくとも１つの認識モジュールは、動的な階層ツリーに従って入力を観念の中に構造化することができる。
【０００８】
有利な結果をもたらすように、前記少なくとも１つの認識モジュール中の入力は、文章入力または音声入力に適用され、かつ、前記対話モジュール中の文法を起動する。
【０００９】
有利な結果をもたらすように、前記少なくとも１つの認識モジュール中の入力は、前記入力の認知を起動／停止する。
【００１０】
有利な結果をもたらすように、前記少なくとも１つの認識モジュールは、第１および第２サブモジュールを含む。この第１サブモジュールは、少なくとも１つの観念に結合されている単語の閉鎖リスト上で動作し、かつ、第２サブモジュールは単語の開放リスト上で動作する。
【００１１】
有利な結果をもたらすように、第１サブモジュールからの出力のみ対話モジュールに供給される。
【００１２】
有利な結果をもたらすように、第２サブモジュールからの出力のみ対話モジュールに供給される。
【００１３】
有利な結果をもたらすように、第１サブモジュールからの出力および第２サブモジュールからの出力の両方が対話モジュールに供給される。
【００１４】
有利な結果をもたらすように、第１サブモジュールからの出力のみ最初に対話モジュールに供給され、第１サブモジュールからの前記出力は対話モジュールにおいて第２サブモジュールからの出力により確認される。
【００１５】
有利な結果をもたらすように、第１および第２サブモジュールからの出力のいずれも対話モジュールからの出力を生成せず、かつ、前記ロボットは少なくとも１つの入力を少なくとも１人の前記ユーザに与える。
【００１６】
有利な結果をもたらすように、対話モジュールは、さらにアプリケーションから発出される動的要素を入力として受け取る。
【００１７】
有利な結果をもたらすように、前記ロボットの少なくとも１つの表情を生成する機能、前記ロボットの少なくとも１つの挙動を生成することを決定する機能および前記ロボットの少なくとも１つの感情を生成する機能のグループから選択される機能を果たすことができるモジュールに、対話モジュールからの少なくとも１つの出力が供給される。
【００１８】
有利な結果をもたらすように、少なくとも１つの挙動を生成する前記機能は、前記ロボットのシステム制約を考慮する。
【００１９】
有利な結果をもたらすように、少なくとも１つの感情を生成する前記機能は、入力事象に応じて中立状態とあらかじめ定められた状態との間の一連のあらかじめ定められた表情を生成することができる。
【００２０】
有利な結果をもたらすように、本発明の人型ロボットは、さらに視覚認識モジュールを含む。このモジュールは、少なくとも１人の前記ユーザからの少なくとも１つの合図を対話シーケンスの始まりまたは終わりとして解釈することができる。
【００２１】
有利な結果をもたらすように、前記対話モジュールは、現在の対話の単語の結合する観念を生成することができる字句解析サブモジュールおよびこの字句解析サブモジュールの出力を解釈するサブモジュールを含む。
【００２２】
有利な結果をもたらすように、前記対話モジュールは、少なくとも１人の前記ユーザからのその物理的および／または論理的システムの状態に関する質問および指令を処理することができる。
【００２３】
本発明は、以下を含む人型ロボットと少なくともとも１人のユーザとの間の対話の方法も開示する：ｉ）少なくとも１人の前記ユーザにより生成される事象の、少なくとも１つの第２型の、音響型の第１センサおよび第２センサを含むグループから選択される少なくとも１つのセンサから発出される入力を認識する１つのステップ、ｉｉ）少なくとも１人の前記ユーザに対して事象を生成するステップ、および、ｉｉｉ）少なくとも１人の前記ユーザと前記対話により対話するステップであって、この対話ステップは、前記少なくとも１つの認識ステップからの出力を入力として受け取り、かつ、会話、動作、表情および感情を含むグループから選択される事象を生成する前記ステップへの出力を作成するステップ。ここで、前記方法は、人工知能エンジンにより事象生成モジュールの出力を制御するステップをさらに含む。
【００２４】
有利な結果をもたらすように、人工知能エンジンによる事象生成モジュールの制御は、対話の文脈ならびにロボットの現在および予測による構成を定義する変数に従って行われる。
【００２５】
有利な結果をもたらすように、前記ロボットは、少なくとも２人のユーザと対話する。これらの少なくとも２人のユーザを特徴付けるパラメータが前記ロボットのメモリ中に格納されており、前記ロボットが少なくとも２人の前記ユーザの１人を認識するときに使用される。
【００２６】
本発明は、人型ロボット中に埋め込まれるコンピュータプログラムも開示する。それは、本発明の方法を実行するプログラム・コード命令を含んでおり、このプログラムがコンピュータ上で実行されるとき、前記プログラムは前記人型ロボットと少なくとも１人のユーザ間の対話を管理するのに適しており、前記コンピュータプログラムは、以下を含んでいる：ｉ）少なくとも１人の前記ユーザにより生成される事象の、少なくとも１つの第２型の、音響型の第１センサおよび第２センサを含むグループから選択される少なくとも１つのセンサの出力における事象を認識する少なくとも１つのモジュール、ｉｉ）少なくとも１人の前記ユーザに対する事象を生成するモジュール、および、ｉｉｉ）少なくとも１人の前記ユーザとの対話モジュールであって、この対話モジュールは、前記少なくとも１つの認識モジュールからの出力を入力として受け取り、かつ、会話、動作、表情および感情を含むグループから選択される事象を生成する前記モジュールへの出力を作成するモジュール。このプログラムは、事象生成モジュールの出力を制御するように構成される人工知能エンジンをさらに含むことにより特徴付けられる。
【００２７】
有利な結果をもたらすように、本発明は、本発明に従ってコンピュータプログラムを生成し、かつ、このコンピュータプログラムを少なくとも１つの人型ロボットに送り出すように構成されるプログラム・コード命令を含むコンピュータプログラムも開示する。ただし、前記命令は、ＣｈａｔＳｃｒｉｐｔ型インターフェース上で生成される。
【００２８】
本発明は、対話型エージェントの分野においてすでに使用されているプログラミング言語の使用を可能にする。これらの言語のシンタックスは、すでに多数のプログラマーにより知られており、したがって、これらの人々は本発明を利用して新しいアプリケーションを開発することができる。本発明の一部として使用された先行技術の対話型エージェントがその可能性を著しく向上したのは、高機能音声認識を組み込んだこと、およびロボットの他のセンサから発出される情報、特にロボットが対話の起動およびロボットの話し相手の状況を検知することを可能にする視覚認識情報を考慮していることによる。本発明の方法による対話は、ロボット・ユーザの好みに依存する種々のロボットの個性によりいろいろな種類の会話の要素に適合させることができる。このロボットは、会話の前記要素に一致する感情を表し、また、やはり前記要素と同期された挙動も示すことができる。これは、ユーザと１つまたは複数のロボットと間の交換の滑らかな筋書きの創作を可能にする。さらに、このロボットは、そのシステムの多数の要素の状態（たとえば残存電池寿命）に関する情報を与えること、およびユーザとの対話モードによるシステム・コマンドを受け取ることができるので、このロボットの人間工学的使用方法を著しく改善する。
【００２９】
以下のいくつかの実施形態例の記述およびそれらの添付図面により、本発明がよりよく理解され、また、その種々の特徴および長所が明らかとなるであろう。図面の内容は、以下のとおりである。
【図面の簡単な説明】
【００３０】
【図１】図１は、本発明のいくつかの実施形態において本発明を実施することができる人型ロボットを示す。
【図２】図２は、本発明のいくつかの実施形態による処理の概要流れ図を示す。
【図３】図３は、本発明のいくつかの実施形態による対話挙動管理モジュールおよび音声認識モジュールの処理装置を示す。
【図４】図４は、本発明のいくつかの実施形態によるいくつかのレベルの対話のツリー構造の例を示す。
【図４ａ】図４ａは、本発明のいくつかの実施形態による観念ツリーを示す。
【図５】図５は、本発明のいくつかの実施形態における音声認識モジュールの処理の単純化流れ図を示す。
【図６】図６は、本発明のいくつかの実施形態において本発明を実施するために構成されるいくつかのソフトウェア・モジュール間のデータの流れを示す。
【図６ａ】図６ａは、本発明の一定の実施形態における感情エンジンの動作を示す。
【図６ｂ】図６ｂは、本発明の一定の実施形態における決定エンジンの動作を示す。
【図７】図７は、本発明のいくつかの実施形態において本発明を実施する対話管理モジュールの入力および出力における種々の機能を示す。
【図８】図８は、本発明のいくつかの実施形態において本発明を実施する分析および対話解釈モジュールのデータ・モデルを示す。
【図９】図９は、本発明のいくつかの実施形態において本発明を実施するために構成されるロボットにインストールされるソフトウェア・モジュールのアーキテクチャを示す。
【発明を実施するための形態】
【００３１】
図１は、本発明のいくつかの実施形態において本発明を実施することができる人型ロボットを示す。
【００３２】
この人型ロボットは、本発明の１つの実施形態における図面において描かれている。かかるロボットは、特に、２００９年１０月１５日に公開された特許出願国際公開第２００９／１２４９５１号パンフレットにおいて開示されている。このプラットフォームは、本発明をもたらした改善の基礎として使用されている。以下、本明細書において、参照の一般性に影響を及ぼすことなく、この人型ロボットは、この一般的名称またはその商標ＮＡＯＴＭで呼ぶこととする。
【００３３】
このロボットは、関節を制御するセンサおよびアクチュエータのために約２ダースの電子制御回路基板を含んでいる。電子制御回路基板は、市販マイクロコントローラを含んでいる。これは、たとえば、Ｍｉｃｒｏｃｈｉｐ社からのＤＳＰＩＣＴＭでよい。これは、ＤＳＰに結合された１６ビットＭＣＵである。このＭＣＵは、１ｍｓのサーボ・ループ・サイクルを有している。このロボットは、その他の種類のアクチュエータ、特にＬＥＤ（発光ダイオード）も含むことができる。その色および強度によりロボットの感情を示すことができる。それは、その他の種類の位置センサ、特に慣性装置、ＦＳＲ（床圧力センサ）等も含むことができる。
【００３４】
頭１１０は、ロボットの知能、特に、ロボットが与えられた任務、とりわけ本発明においては、ユーザにより書かれた対話の実行のための任務を遂行することを可能にする高レベル機能を果たす回路基板を含んでいる。有利な結果をもたらすように、頭は、特に会話（統合および認知）または視覚の処理に特殊化した回路基板も含む。
【００３５】
会話認識に関して、現在使用されている音声信号処理アーキテクチャでは、前記音声信号は、４つのマイクロフォンにより捕捉され、ソフトウェアにより特殊化モジュール（図９の注釈により説明されている）中において処理される。音響源の方向は、４つのセンサにおける音響信号の到着の期日の相違を分析することにより決定することができる。会話は、文法エンジン（たとえば、ＮｕａｎｃｅＴＭ社により販売されているタイプなど）または自然言語インタプリタを備える音声認識ソフトウェアにより認識される。
【００３６】
頭は、広域ネットワーク（ＷＡＮ）経由の遠隔通信を設定するポートを開くために必要な符号化などのサービス入力／出力の処理に特殊化された１つ以上の回路基板も含む。この回路基板プロセッサは、市販ｘ８６プロセッサでよい。好ましくは、低消費プロセッサ、たとえばＩｎｔｅｌ  ＡＴＯＭＴＭ（３２ビット、１６００ＭＨｚ）を選択する。この回路基板は、１組のＲＡＭおよびフラッシュ・メモリも含んでいる。この回路基板は、通常はＷｉＦｉまたはＷｉＭａｘ伝送層経由であり、任意選択として標準プロトコル公衆移動データ通信ネットワーク）（任意選択としてＶＰＮ中にカプセル化される）経由のロボットと外部（挙動サーバ、他のロボット等）との通信も取り扱う。プロセッサは、通常、高レベル機能のプログラミングのための高レベル言語（Ｃ、Ｃ＋＋、Ｐｙｔｈｏｎ等）またはＵＲＢＩなどの特殊人工知能言語（特殊化されたロボットプログラミング言語）の使用を可能にする標準ＯＳにより制御される。
【００３７】
ロボットは、特に、すでに引用した国際公開第２０１２／０１０４５１号パンフレットとして公開された国際特許出願において開示された発明に従って生成されるコードにより、事前にロボットのためにプログラムされた挙動を遂行することができる。このコードは、プログラマーによりグラフィカル・インターフェース上ですでに作成されている。この発明によれば、本明細書においては、以下、挙動は、行為（動作、会話）と任意選択としての事象との組み合わせである。これらの挙動は、プロのプログラマーではないユーザにより特許出願国際公開第２０１１／００３６２８号パンフレットにおいて開示された発明を使用して作成されるスクリプトとして用意しておくこともできる。第１の場合、それは、ロボットの環境において発生する事象により挙動のシーケンスを条件付ける比較的複雑な論理で結合された挙動を含むことができる。この場合、ユーザは、必要最低限のプログラミング技量をもって、ＣｈｏｒｅｇｒａｐｈｅＴＭツールキットを使用することができる。その主な手順は、引用された出願中において記述されている。第２の場合、スクリプトの順序論理は、原理上、適応性をもたない。
【００３８】
本発明によると、プログラマーは、複雑なスクリプトを作成することができる。このスクリプトは、種々の身振りおよび動作、音響または視覚信号の発出、および特にロボットと人間または他のロボットと間の自然対話を含む複数組の挙動を含む。この対話は、ロボットの個性および感情ならびに会話の意味論的および事象的前後関係により調整される。
【００３９】
図２は、本発明のいくつかの実施形態による処理の概要流れ図を示す。
【００４０】
本発明によれば、ワークステーション、たとえばＰＣ上にインストールされた対話書込モジュール２１０は、ロボットとは別個であり、対話スクリプトのプログラミングを意図している。前記対話は、数人の登場人物、すなわち、１つ以上のロボットおよび１人以上の話し手を有することができる。有利な結果をもたらすように、前記モジュールは、ロボットの挙動をプログラムするために使用することができるＣｈｏｒｅｇｒａｐｈｅＴＭソフトウェア・ツールキットにインストールされ、それにより対話は、スクリプト内で、対話の要素に関してロボットにより行われるべき挙動と混合される。図１の説明で言及された特徴を持つ音声認識モジュール２２０は、ロボット上にインストールされる。その意図は、対話書込モジュール２１０において創作された対話の要素を解釈することであり、この対話要素は、図１の注釈において上述した手順に従って有線または無線通信インターフェース経由でロボットに送り出される。モジュール２２０に送り出される対話要素は、たとえば、ＢＮＦ（バッカス・ナウア記法）標準化シンタックスを使用する言語によりコンパイルされる。たとえば、一連の単語は、「論理積」、「論理和」として解釈されるが、これらは、異なった方法により、たとえば‘｜’により記号化されなければならない。
【００４１】
音声認識モジュール２２０の動作については、図５の注釈においてさらに詳しく説明する。
【００４２】
対話書き込みモジュール２１０から送り出される要素および音声認識モジュール２２０からの出力は、対話エンジン２３０に渡される。このエンジンは、モジュール２１０において創作された会話、感情、表情、挙動および事象を図６および７の注釈において説明される手順に従って生成する。挙動は、複合動作（立ち上がること、フットボールをすること等）を規定する一連の身振りである。表情は、会話／行為の対により与えられる対話について定義される特定の種類の挙動である。行為は、たとえば、ロボットのＬＥＤにより与えられる動作および／または合図の組み合わせであり得る。一連の表情から構成されるスクリプトを創作する方法は、国際公開第２０１１／００３６２８号パンフレットにより公開された国際出願により開示されている。感情は、最後の表情により定義される一連の表情であり、かつ、最後の表情につながる一連の表情である。例として、以下の感情、Ｅｉ，ｎを定義することができる：‘うれしい／悲しい’、‘飽きた’、‘怖い’、‘興奮した’、‘気になる’。Ｅｉ，ｎ（ｉは１からｎまで変化する）は、基準状態と表情Ｅｎ，ｎ間の中間表情である。ロボットが状態Ｅｊ，ｐ（ｐはｎと異なる）にある場合、感情ｎを引き起こすものとして定義された事象のリストは、ロボットを状態Ｅｊ，ｐから状態Ｅｊ，ｎに移行させる。
【００４３】
対話記述言語は、ＣｈａｔＳｃｒｉｐｔ言語（ｈｔｔｐ：／／ｃｈａｔｓｃｒｉｐｔ．ｓｏｕｒｃｅｆｏｒｇｅ．ｎｅｔ／）から導かれる。
【００４４】
ＣｈａｔＳｃｒｉｐｔシンタックスでは、スクリプトは、１組の規則のように記述される。たとえば：
？：肉（あなたは肉を好む）はい
【００４５】
完全な規則は、一般的に以下を含む：
−  タイプ、例の中の‘？：’、これは質問を示す。
−  ラベル、例の中の‘肉’、これは省略可能であるが、存在する場合、他の対話による要求を許容する。
−  括弧内に示されるパターンにより特徴付けられる入力、例の中の‘（あなたは肉を好む）’、この順序にこれらの３語を含む句が結合される句、しかし同様に他の単語：‘アルバート、あなたは肉を好む’、‘アルバート、あなたは赤肉を好む’等。
−  出力、例の中の‘はい’。
【００４６】
本発明によると、言語は、対話要素をロボットの挙動と混合するために適合される。本明細書において、以下、適合の非限定的例を示す。
【００４７】
たとえば、挙動は、一連の固有の文字列（たとえば、‘チェス’、‘フットボール’、‘太極拳’等）により定義される。感情も同じ−感情が問題であることをコードが示していることが了解されているであるから（たとえば、大文字の頭文字を使用することができる：‘Ｈａｐｐｙ／Ｓａｄ’、‘Ｔｉｒｅｄ’、‘Ｓｃａｒｅｄ’、‘Ｅｘｃｉｔｅｄ’、‘Ｃｕｒｉｏｕｓ’等）。使用される言語は、ユーザ語句のいくつかの表現を簡略化して書くことを可能にする（たとえば、‘やあ’の種々の表現）。入力は、ロボットとの対話を行う主体（人間であってよい‘ユーザ’または別のロボット）の語句、事象または両方でよい（私は、やあといって、ロボットに手を伸ばす）。１つのユーザ語句について、この言語を使用して語句、感情、事象または挙動の形態でいくつかの可能な応答を表すことができる。対話挙動は、たとえば、ロボットがその目でユーザを追跡し、ユーザの動作を分析してより自然な応答（たとえば、ユーザと同時に発話しない）を創作するタイプでよい。
【００４８】
対話言語の各要素は、音声認識エンジンを含むモジュール２２０においてその相当語句に再び書き直されるが、このエンジンは限られた個数の単語のみ確実に認識することができる。この変換のおかげで、認識された各語句が応答をもらうことが確実になる。実行においてではなく、対話書き込みにおいて、すべての対話およびすべての対話入力がこのように音声認識フォーマットで生成される。したがって、対話記述言語が音声認識において相当語句を有することが重要であるが、これは、ＣｈａｔＳｃｒｉｐｔ言語の使用の既知情況であるキーボード対話の場合にはなかったことである。
【００４９】
対話記述言語の文法は、特に以下の機能性を含む：
１）パターン認識（またはパターン整合）：
一部のパターンは、対話スクリプトにおいて合図により指示される：
−  ‘または’は、可能な単語のリストを受け入れる、たとえば：［やあ  こんにちは］
−  ‘および’は、単語の厳密なリストを探す、たとえば：「私は  しわあせ  です」
−  任意選択の単語、たとえば：やあ｛‘私のロボット’｝
−  禁止される単語、たとえば：私は  しあわせ  ！でない。この単語は、入力を確認しない。
−  未知の単語、たとえば：私の  名前は  ＊です。ユーザの名前は未知である。
【００５０】
２）対話中の文脈：トリガ語句を使用して１つの対話から別の対話に移行すること、たとえば：
−  Ｕｔ：（自動車に関する会話）、この語句は、自動車に関する対話を引き起こす。
【００５１】
３）下位対話：下位対話は一定の語句について開始され、順次継続可能である、たとえば：
−  Ｕ：（お元気ですか？）ええ元気です、であなたは？
Ａ：（私は健康ではありません）まあ、どうしたのですか？
Ｂ：（私は病気です）まあ、お気の毒です、なにか薬が必要ですか？
Ａ：（元気です）素晴らしい
【００５２】
この下位対話機能性は、たとえば、次のタイプの対話を生じさせ得る：
人間：お元気ですか？
ロボット：元気です、であなたは？
人間：私は健康ではありません
ロボット：まあ、どうしたのですか？
人間：私は病気です
【００５３】
４）事象：ロボットにより受け取られた会話と同じ方法により事象を対話のための入力として考慮することは、先行技術に存在しない可能性を本発明の会話エージェントに与える。具体的には、ロボットの視覚認識は、ロボットがその環境にある人間を検知し、人間がロボットに話しかける場合のように、やあと言うことを可能にする：
−  Ｕ：（［ｅ：ｆａｃｅＤｅｔｅｃｔｅｄ  やあ］）やあ、君
ロボットが人間を見たとき、またはだれかが‘やあ’と言ったとき、ロボットは、‘やあ、君’と応える。
事象は、対話の出力としても、開始され得る（任意選択としてアプリケーションを始めることにより）：
−  Ｕ：（私は空腹です）＄ユーザ状態＝‘空腹’
＄ユーザ状態＝‘空腹’は、空腹をユーザ状態に割り当てると同時に事象［ユーザ状態，空腹］を開始する（この事象にアプリケーションを接続することができる）
【００５４】
５）黙示的または明示的挙動の選択：
−  Ｕ：（私が誰だか分かりますか？）［＄ｆａｃｅＲｅｃｏｇｎｉｚｅｄ＝＝‘ｒｕｎ：ｆａｃｅＲｅｃｏｇｎｉｔｉｏｎ  私は、あなたが誰だか分かりませんが、この次には分かります］
【００５５】
６）提案：ユーザの言ったことをロボットが理解できないかまたは誤解した場合、ロボットは、これを明確にするために標準対話提案を使用する、たとえば：
−  提案：あなたはおいくつですか？
−  Ｕ：（私は［５  ６  ７  ８］才です）あなたは若いですね！
【００５６】
７）変数：対話は、ユーザ情報を格納することができる、たとえば：
−  Ｕ：私は＿［５  ６  ７  ８］才です）＄年齢＝＄１  あなたは若いですね！
【００５７】
８）動的要素：変数およびリスト（ｍｐ３、アプリケーション、好み等）を対話中に入力または出力として組み込むことができる、たとえば：
−  Ｕ：（あなたは何ができますか？）私は、〜アプリケーションができます
−  Ｕ：（あなたの名前は？）私の名前は＄名前です
−  Ｕ：（｛開始してください  読んで下さい  教えて下さい｝＊＿〜アプリケーション）はい、私は＄１を始めます
＄アプリケーションは、たとえば（‘三銃士’、‘ルモンド’）でよい
【００５８】
９）感情、「悲しい」、「うれしい」、「気になる」、「怖い」、「飽きた」、すなわち：
−  Ｕ：（私はあなたを愛さない！）それは私を「悲しませる」
【００５９】
１０）削除規則：応答中の繰り返し現象を避けるために、入力を停止または起動することができる、したがって同じ入力は、１つの対話またはいくつかの対話中で繰り返され得る。削除規則は、すべての入力が解釈されることを可能にする、たとえば：
−  Ｕ：削除（お元気ですか）私は元気です
−  Ｕ：（お元気ですか、ｎａｏ）私の名前を覚えているのですね！私は元気です
−  Ｕ：（お元気ですか）さきほどの私のように
【００６０】
１１）応答規則：いくつかの可能な出力がロボットにより作成され得るが、それらからの選択は、ロボットがユーザまたはユーザ群から受け取った入力により、確定的に（入力に関わらずに、常に同じ出力またはリスト中の所与のランクの出力）、無作為に、順番に（入力ｉが出力ｊを起動する場合、入力ｉ＋１は出力ｊ＋１を起動する）、または条件に従って決定される。対話モジュールは、ロボットのメモリのすべてを利用することができ、かつ、したがってロボットのメモリ中の値に応じて応答を与えることができる。出力は、対話に変化を加えるために使用された後に削除することができる。たとえば：
−  Ｕ：（お元気ですか）［‘私は元気です’  ‘先ほどあなたに言いました’］＃デフォルトにより順番に
−  Ｕ：（お元気ですか）＾無作為［‘私は元気です’  ‘私は非常に元気です’  ‘私は絶好調です’］
−  Ｕ：（あなたのお名前は何ですか）＾第１［‘私の名前は＄名前です’  ‘私には名前がありません’］＃ここでは、＄名前が存在する場合のみ‘私の名前は＄名前です’を表示することができる。
−  Ｕ：（お元気ですか）＾削除する  私は元気です  ＃応答を表示した後に規則を削除する。
【００６１】
１２）下位対話を開始する、主題：
−  Ｕ：（私は自動車について話したい）主題：自動車
【００６２】
図３は、本発明のいくつかの実施形態による対話挙動管理モジュールおよび音声認知モジュールの処理装置を示している。
【００６３】
ロボットに埋め込まれたランタイムにより対話が実行される場合、対話エンジン２３０は、ネットワーク３１０および対話リスト３３０の上と音声認識２２０の上の両方で動作する。
【００６４】
対話ネットワーク３１０は、対話同士を結合する方法を示す構造化対話群である：たとえば、最初に紹介、次に別の対話。ネットワークは、対話群に方向を与える。リスト３３０は、対話エンジン中と音声認識エンジン中の両方に存在するアクティブな対話群の非構造化リストである。
【００６５】
対話は、始動または停止することができる（それは、対話のすべての入力３４０に同時に影響を及ぼす）。始動／停止は、トリガ（ｕｔ：）により自動的に、またはユーザにより手動的に引き起こすことができる。任意の時刻においてアクティブな対話の数を最小化する方法を使用して品質および処理時間「に関する」音声認識性能を最適化することができる。対話のパラメータをエディタ中に設定することにより、新しい対話を開いた時にも対話をアクティブのままとすることができる。この際、デフォルトの解決方法は、新しい対話を開くと同時に前の対話を閉じることである。対話入力も、下位対話に接続することより、または進行中の対話要素の繰り返しを避けるために行われる削除により個別に起動／停止することができる。対話エンジン２３０は、パターン認識モジュール３２０を含んでいるが、その動作は図２の注釈においてすでに説明した（ポイント１）。それは、動的観念ツリー３５０も含んでいる。
【００６６】
観念は、所与の対話において意味的に相当語句として定義される単語のリストである。例として、語句‘私は住む’は、所与の対話において、‘私は住んでいる’、‘私は居住する’、‘私は住む’、‘私、私は住んでいる’、‘私、私は居住する’、‘私、私は住む’等の語句と意味的に等価と考えられる。したがって、観念（住むこと）および観念（私）は、次のように定義される：
観念：（住むこと）（住んでいる  居住する  住む  住むこと  居住すること）
観念：（私（Ｉ））（私（ｍｅ）  私（Ｉ）  私（Ｉ’ｖｅ））
この語句は、したがって、対話中のいくつかの場所に書かれる：
Ｕ：（〜私、〜住むこと）
【００６７】
動的観念ツリーは、複数の階層的に組織化された観念を含む。観念に結合された語句のリストを実行時に変更することも可能である。
【００６８】
例として、観念‘食料’は、‘果物’および‘肉’を含み、また、観念‘果物’は、‘バナナ’および‘オレンジ’を含む。
観念：（食料）（〜果物  〜肉）
観念：（果物）（バナナ  オレンジ）
【００６９】
対話中に新しい果物を追加することが可能である。したがって次の対話が創作される：
Ｕ：（知っていますか＿｛ｏｆ  ｔｈｅ｝＿〜食料）はい  私は＄１  ＄２を知っています。
【００７０】
これは、実行に以下を与える：
ユーザ：あなたはバナナを知っていますか？
ロボット：はい、私はバナナを知っています
Ｕ：（私に果物を示して下さい）〜果物は果物です
ユーザ：私に果物を示して下さい
ロボット：バナナは果物です。
【００７１】
リスト３３０の対話中の入力は、音声認識モジュール２２０の文法リスト３６０中の文法を起動する。音声認識モジュールの入力３７０のリストは、対話モジュールの入力リスト３４０と同期している方法で起動／停止される。対話モジュール２３０の動的観念ツリー３５０中の観念を変更することは、音声認識モジュールの動的入力３８０の適合をもたらす。
【００７２】
図４は、本発明のいくつかの実施形態によるいくつかのレベルの対話のツリー構造の例を示す。
【００７３】
いくつかの対話が図中に示されている。これらは、並列に走行できるが（優先度スタック付きで）、１つの対話が他の対話に取って代わることができる。
【００７４】
対話は、ロボット中に埋め込まれている対話エンジン・モジュール２３０中に３つの論理レベルを含んでいる：
−  デフォルトによりアクティブな対話を含むレベル４１０：一般的対話４１１０（挨拶、提示、気分）および１つのロボットの状態（電池、温度、構成等）を示すか、または基本コマンド（立ち上がる、歩く等）を与える‘システム’対話４１２０。ロボットの必須機能の状態に関する情報を取得するのみならず、それらの一部を制御し得る可能性（スタンバイ・モードに置く、電源出力に接続する等）を与えることにより、技術に親しくないユーザがロボットを扱う時に感じる心理的な障壁を低くすることができる。
−  ユーザからの入力に従って対話を選択するルーチンを含むレベル４２０。この選択は、トリガＵｔ：により開始することができる。たとえば、複数の選択、４２１０、４２２０、４２３０、４２４０をプログラムすることができる。
−  アプリケーション４３１０、４３２０、４３３０を含むレベル４３０。これらは、たとえば、対話またはファイルのシーケンスであり、自動的に、またはユーザにより手動的に開始され得る。
【００７５】
デフォルトにより、一般的情報およびシステム・コマンド（たとえば、もっと大きな声で話しなさい）を含む対話がロードされる。次にトリガ語句によりその他の対話のロードを起動することができる。たとえば：
−  討議の主題を変えること（自動車について、当日の活動について、等々）
−  ロボットができること（‘私は物語を語ることができる’）を説明すること。この部分は動的な要素を含む：インストールされるｍｐ３、インストールされるアプリケーション。音声認識経由で開始され得るアプリケーションは、以下の情報を含むべきである：そのテーマ（ゲーム、情報等）および任意選択としてそのアプリケーションを指定する対話（ロボットは、不思議な国のアリスは少女に関する物語です、などと言うことができる）。
−  アプリケーションの対話を開始すること（たとえば、対話式物語）。
【００７６】
選択を提供することができる：有名人を言い当てる、挙動を選択する、製品を選択する、職業人を見出す等。この選択は、ロボットによりなされるか（人間は、ロボットの意味することを理解しなければならない）または人間によりなされ得る（ロボットはロボットの選択を理解しなければならない）。
【００７７】
この選択は、上述した対話によりなされ得るが、しかしこの対話は、しばしば、同じ語句の繰り返しを含み、それがこの対話の作成を難しくする：
Ｕ：（私が考えているのは誰のことか当てて下さい）それは男性ですか？
Ａ：（はい）それは女性ですか？
Ｂ：（はい）等
Ｂ：（いいえ）等
Ａ：（いいえ）それは架空の人物ですか？
【００７８】
観念の概念を使用して可能な事柄のツリーを検索する。観念は、他の単語群、語句群または観念群に関係する単語である。
観念：（男性）［‘彼は呼吸する’  ‘それは人間である’］
観念：（スーパーマン）［〜男性スーパーヒーロー  〜飛ぶ  〜マント］
観念：（ハリディ）［〜歌手  〜男性］
観念：（すべて）［〜スーパーマン  〜ハリディ］
【００７９】
可能な事柄のツリーの階層性を上記例に関する図４Ａに示した。
【００８０】
単語は、ツリーの葉を表す。観念は、ツリーの節を表す。節および葉は、パターン整合（パターン認識）の要素である。
【００８１】
単一入力の場合：
Ｕ：（［‘彼は  できるか’  ‘それは  であるか’  〜スーパーマン）はい。
【００８２】
われわれは、以下の整合を試みることができる：
彼は飛ぶことができるか
それは男性であるか
それはスーパーマンであるか
【００８３】
われわれは、また、以下のように提案し得る：
Ｕ：（私を助けてください）〜スーパーマン
【００８４】
ここで、ツリーの葉の１枚が表示される。
ユーザ：私を助けてください
ロボット：それは呼吸する。
【００８５】
人間がスーパーマンを言い当てるためには、次のように書けば十分である：
Ｕ：（それはスーパーマンですか？）はい、あなたはできました！
Ｕ：（〜スーパーマン）はい
提案：いいえ、それは彼ではありません。
【００８６】
ロボットが人物を言い当てるためには、次のように書けば十分である：
Ｕ：（私が考えているのは誰のことか当てて下さい）？  〜すべて
【００８７】
図５は、本発明の１つの実施形態における音声認識モジュールの処理の簡略化流れ図を示す。
【００８８】
２レベルの音声認識が重畳されている：
−  第１レベル５１０は、限定された個数の認識可能な単語を含んでいる。認知された単語は、閉鎖リストに現れなければならない。この型の音声認識ソフトウェアの例は、ＮｕａｎｃｅＴＭ（ブランド名ＶｏｃｏｎＴＭ）、ＡｃａｐｅｌｌａＴＭおよび、自然言語を使用するソフトウェアとしては、ＤｒａｇｏｎＴＭにより供給されている。
−  音声認識の第２レベル５２０は開放型であり、すなわち、認知される単語の多様性は遙かに大きい。この型の音声認識ソフトウェアの例は、特にＮｕａｎｃｅＴＭによりブランド名ＮＭＳＰＴＭの下に供給されている。このソフトウェアを使用することにより、番号付きジョーカ＄ｘにより指定されるこれまで未知の単語を管理することができる。
【００８９】
２つのレベル、１つは閉鎖型５１０および他方は開放型の５２０（たとえば、音声口述型）を含むこの型の音声認識アーキテクトを使用して認識の速度／品質の対を最適化することができる。
【００９０】
図５は、２つの型の音声認識を混合する方法を示している：
−  ケース５３０：ロボットは、ユーザの情況と同じ情況にあり、ロボットの言ったことは限られた認識により認識される。この場合、この音声口述は必要でない。
−  ケース５４０：ロボットは、ユーザの情況と同じ情況にない（ユーザは自動車について話しているのにロボットは食料のことが会話されていると考えている）。この場合、音声口述により認識される語句が対話により近いであろう。
−  ケース５５０：型５２０の認識が型５１０の認識を補完する。
−  ケース５６０：開放認識が閉鎖認識の可能な選択を確認する。
−  ケース５７０：ロボットは、ユーザの言ったことを理解しない。ロボットは、対話の分野を確認する提案をするかまたは別の主題に切り換える。この場合、ロボットによるこの再出発に上記のケース５３０−５６０が後続することができる。
【００９１】
図６は、本発明のいくつかの実施形態において本発明を実施するために構成されたいくつかのソフトウェア・モジュール間のデータの流れを示す。
【００９２】
この図は、入力事象６１０、対話６２０、出力事象６３０およびロボット６４０に埋め込まれている人工知能エンジン間のデータの交換を示している。
−  対話６２０は、入力事象を待ち合わせている（たとえば、ユーザ６１２０からのほほえみ６１３０または会話）。
−  対話エンジンは、新しい対話６２４０または動的データ６２３０を動的にロードすることができる（たとえば、  にインストールされたｍｐ３ファイルまたはアプリケーション）。
−  それは、その応答を表現会話６３１０（言い換えると文章を解釈する方法に関する情報を含む会話−ロボットのためのト書き）、挙動６３２０、感情６３３０または事象６３４０の形態で形成する。
−  対話からの出力は、種々の人工知能モジュール６４０に送ることができる。
・  会話および表情は、表情処理エンジン６４１０、ナレータにより、国際公開第２０１１／００３６２８号パンフレットにより公示された国際特許出願において特に記述されているように、動作と音声の統合を使用して処理される。
・  感情は、感情エンジン６４２０により処理される。このエンジンは、ロボットの感情を時間の経過とともに安定化させるためにそれを推移させる。
・  決定エンジン６４３０は、挙動を開始させるか否か決定し、次にこの決定を事象の形態で対話エンジンに伝えることができる。ロボットは、立ち上がる条件が満たされていない場合、それを拒否することができる。
【００９３】
この挙動は、図４に関する注釈で上述したように、音声認識またはキーボード入力を使用する選択でもよい。この挙動は、ユーザの動作、たとえば、口を開く、立ち去る、頭を振る等に従う会話および会話の中断を引き起こす。
【００９４】
対話は、インタプリタ６２３０および対話モデル６２４０を含む。対話モデルは、以下を含む：
−  対話ネットワークおよびアクティブな対話
−  すべての対話入力およびアクティブな入力
−  すべての対話出力
−  すべての対話提案。
【００９５】
基準６３１０、６３２０、６３３０、６３４０は、事象の形態の対話エンジンからの出力を表す。
【００９６】
図６ａは、本発明の一定の実施形態における感情エンジンの動作を示す。
【００９７】
図２に関する注釈において前述したように、ロボットの感情は、感情の多次元空間（たとえば、「悲しい」、「うれしい」、「怒り」、「飽きた」等）における１つの点である。
【００９８】
対話エンジンのみならず、たとえば、その電池状態、遭遇する顔および時間も感情の変化の源泉であるが、対話エンジンは、感情エンジンにパルスを送り、それがロボットの現在の感情を変化させる。この感情は、時間とともに中立感情（０，０，０，０，０，０）に向かって安定化する。
【００９９】
図６ｂは、本発明の一定の実施形態における決定エンジンの動作を示す。
【０１００】
決定エンジンは、挙動の実行を求めるすべての要求および利用可能な資源の形態のロボットのすべての制約を考慮する。対話エンジンを実行する要求は、決定の１つの要素に過ぎない。ロボットのすべての変数／事象が決定に参加する（電池、温度、感情等）。
【０１０１】
図７は、本発明のいくつかの実施形態において本発明を実施するための対話管理モジュールの入力および出力における種々の機能を示す。
【０１０２】
この図は、対話７１０が会話認識７３０、キーボード入力７４０または事象７２０の結果を入力として等しく受け入れることを示している。ｍｐ３ファイルまたはアプリケーションなどの動的データ７５０も考慮され得る。有利な結果をもたらすように、ロボットに埋め込まれているカメラにより受け取られた映像の処理から、対話モジュールは、ロボットが話しかけられているか否か知るために会話者の頭の位置を分析する。同様に、それは、ユーザが話しているか否か知るために唇の位置を評価し、したがって耳を傾けなければならないか、または話しかけることができるか否か決定することができる（要素７６０）。
【０１０３】
また、現在話している人の名前を表示するために顔認識も会話自体と同じ方法で使用することができる。
【０１０４】
対話エンジンからの‘会話’応答は、ロボットからの音声により、または画面７Ａ０上で（または両方）与えられ得る。
【０１０５】
すでに述べたように、対話モジュールは、挙動の実行を引き起こすことができる（要素７Ｂ０）。
【０１０６】
図８は、本発明のいくつかの実施形態における本発明の実施のための分析および対話解釈モジュールのデータ・モデルを示す。
【０１０７】
アナライザ８１０は、対話８１２０中の用語集８１１０から単語群を検索し、これらの単語はそれに入力として供給される。入力対話は、データ・モデル８１４０を有している。対話の内容を構文解析する‘Ｌｉｂｐａｒｓｅｒ．ｓｏ’ライブラリ８１３０がこの機能を遂行する。これは、これらの対話からの対話モデルおよびすべての入力をインタプリタ８２０のメモリ中に構築することを可能にする。実行時、インタプリタは、アクティブな対話のスタック８２１０を各ユーザのためのすべてのアクティブ入力とともに維持する。インタプリタの入力において‘構文解析された’対話は、形式８２２０およびデータ・モデル８２４０を有している。インタプリタは、その解釈機能を果たす‘Ｌｉｂｉｎｔｅｒｐｒｅｔｅｒ．ｓｏ’ライブラリ８２４０を含んでいる。
【０１０８】
実際には、標準観念、変数および対話は、ユーザ依存とすることができる。
【０１０９】
したがって、次の規則を使用してユーザを変更することができる。
Ｕ：（ｅ：ｆａｃｅＲｅｃｏｇｎｉｔｉｏｎ）（＄名前＝＄ｆａｃｅＲｅｃｏｇｎｉｔｉｏｎ）
Ｕ：（私の名前は＿＊です）（＄名前＝＄１）
【０１１０】
この場合、ユーザに依存する変数（好み、年齢、身長等）は、自動的にリセットされるか、またはユーザの履歴に従って割り当てられる。
【０１１１】
挙動８３０は、状態変数のデータ・モデル８３１０を有している。
【０１１２】
図９は、本発明のいくつかの実施形態において本発明を実施するために構成されるロボットにインストールされるソフトウェア・モジュールのアーキテクチャを示す。
【０１１３】
ＮＡＯなどのロボットは、有利な結果をもたらすように、本発明の１つの実施形態におけるロボットの機能を制御する高いレベルのソフトウェアを備えている。ＮＡＯＱＩと呼ばれるこの種類のソフトウェア・アーキテクチャは、特に、２００９年１０月１５日に公示された特許出願国際公開第２００９／１２４９５５号パンフレットにおいて開示された。それは、ロボットとＰＣまたは遠隔サイト間の通信を管理する基本機能および本発明を実施するために必要なソフトウェア・インフラストラクチャを与えるソフトウェアを交換する基本機能を含んでいる。
【０１１４】
ＮＡＯＱＩは、ロボット・アプリケーションのために最適化されたフレームワークである。それは、複数の言語、特にＣ＋＋、Ｐｙｔｈｏｎ、Ｕｒｂｉ、Ｊａｖａおよびｍａｔｌａｂをサポートする。
【０１１５】
本発明の場合、以下のＮＡＯＱＩモジュールは、特に有益である：
−  ＡＬＭｅｍｏｒｙモジュール９１０、これは、種々のＮＡＯＱＩモジュール間で共用されるメモリを管理する。
−  ＡＬＭｏｔｉｏｎモジュール９２０、これは、ロボットの動作を管理する。
−  音声統合モジュール９３０、これは、ロボットの発話を作成する。
−  閉鎖認識モジュール９４０、これは、図５の基準５１０の機能を遂行する。
−  開放認識モジュール９５０、これは、図６の基準５２０の機能を遂行する。
−  ＡＬＤｉａｌｏｇモジュール９６０、これは、図２の基準２３０の対話エンジン・モジュールの機能を遂行する。
−  ナレータ［Ｎａｒｒａｔｅｕｒ］モジュール９７０、これは、図６の基準６４１０の機能を遂行する。
−  決定エンジン・モジュール９８０，これは、図６の基準６４２０の機能を遂行する。
−  感情エンジン・モジュール９９０、これは、図６の基準６４３０の機能を遂行する。
【０１１６】
これらのモジュールは、有利な結果をもたらすように、Ｃ＋＋でコード化される。図は、モジュール間のデータの流れも示している。
【０１１７】
図２の注釈において述べたように、対話は、標準コンピュータ上にインストールされた対話編集モジュール９Ａ０において生成される。対話は、Ｃｈｏｒｅｇｒａｐｈｅツールボックスにおいて生成することもできる。ＡＬＤｉａｌｏｇモジュール９６０の対話と編集モジュール９Ａ０の対話との間の整合性が確保される。対話エンジン９６０のアナライザ８１０とインタプリタ８２０（これらは図８に示されている）間のデータの流れは、編集時のコンピュータ上と実行時のロボット上の両方で生じる。
【０１１８】
アナライザは、対話記述ファイルｕ：（．．．．）を読むことができる。
【０１１９】
インタプリタは、アナライザの結果（シンタックス・エラーなしに書かれた対話）からメモリ中に対話モデルを構築する。
【０１２０】
上述した例は、本発明の実施形態の実例として示されている。これらは、以下の請求により定義される本発明の範囲を決して限定しない。
【図１】
0006367179.tif 000002
【図２】
0006367179.tif 000003
【図３】
0006367179.tif 000004
【図４】
0006367179.tif 000005
【図４ａ】
0006367179.tif 000006
【図５】
0006367179.tif 000007
【図６】
0006367179.tif 000008
【図６ａ】
0006367179.tif 000009
【図６ｂ】
0006367179.tif 000010
【図７】
0006367179.tif 000011
【図８】
0006367179.tif 000012
【図９】
0006367179.tif 000013