特許第6367179号(P6367179)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アルデバラン ロボティクスの特許一覧

特許6367179ユーザとの自然対話をロボットの挙動に組み込むことができるロボットならびに前記ロボットをプログラムする方法および使用する方法
<>
  • 特許6367179-ユーザとの自然対話をロボットの挙動に組み込むことができるロボットならびに前記ロボットをプログラムする方法および使用する方法 図000002
  • 特許6367179-ユーザとの自然対話をロボットの挙動に組み込むことができるロボットならびに前記ロボットをプログラムする方法および使用する方法 図000003
  • 特許6367179-ユーザとの自然対話をロボットの挙動に組み込むことができるロボットならびに前記ロボットをプログラムする方法および使用する方法 図000004
  • 特許6367179-ユーザとの自然対話をロボットの挙動に組み込むことができるロボットならびに前記ロボットをプログラムする方法および使用する方法 図000005
  • 特許6367179-ユーザとの自然対話をロボットの挙動に組み込むことができるロボットならびに前記ロボットをプログラムする方法および使用する方法 図000006
  • 特許6367179-ユーザとの自然対話をロボットの挙動に組み込むことができるロボットならびに前記ロボットをプログラムする方法および使用する方法 図000007
  • 特許6367179-ユーザとの自然対話をロボットの挙動に組み込むことができるロボットならびに前記ロボットをプログラムする方法および使用する方法 図000008
  • 特許6367179-ユーザとの自然対話をロボットの挙動に組み込むことができるロボットならびに前記ロボットをプログラムする方法および使用する方法 図000009
  • 特許6367179-ユーザとの自然対話をロボットの挙動に組み込むことができるロボットならびに前記ロボットをプログラムする方法および使用する方法 図000010
  • 特許6367179-ユーザとの自然対話をロボットの挙動に組み込むことができるロボットならびに前記ロボットをプログラムする方法および使用する方法 図000011
  • 特許6367179-ユーザとの自然対話をロボットの挙動に組み込むことができるロボットならびに前記ロボットをプログラムする方法および使用する方法 図000012
  • 特許6367179-ユーザとの自然対話をロボットの挙動に組み込むことができるロボットならびに前記ロボットをプログラムする方法および使用する方法 図000013
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6367179
(24)【登録日】2018年7月13日
(45)【発行日】2018年8月1日
(54)【発明の名称】ユーザとの自然対話をロボットの挙動に組み込むことができるロボットならびに前記ロボットをプログラムする方法および使用する方法
(51)【国際特許分類】
   G10L 15/22 20060101AFI20180723BHJP
   G10L 15/00 20130101ALI20180723BHJP
   G10L 15/10 20060101ALI20180723BHJP
   G10L 13/00 20060101ALI20180723BHJP
   G06F 3/16 20060101ALI20180723BHJP
   B25J 5/00 20060101ALI20180723BHJP
【FI】
   G10L15/22 300U
   G10L15/00 200H
   G10L15/10 500T
   G10L13/00 100M
   G06F3/16 650
   G06F3/16 610
   B25J5/00 F
【請求項の数】26
【全頁数】23
(21)【出願番号】特願2015-503871(P2015-503871)
(86)(22)【出願日】2013年4月3日
(65)【公表番号】特表2015-524934(P2015-524934A)
(43)【公表日】2015年8月27日
(86)【国際出願番号】EP2013057043
(87)【国際公開番号】WO2013150076
(87)【国際公開日】20131010
【審査請求日】2016年3月10日
(31)【優先権主張番号】1253073
(32)【優先日】2012年4月4日
(33)【優先権主張国】FR
(73)【特許権者】
【識別番号】311003754
【氏名又は名称】ソフトバンク・ロボティクス・ヨーロッパ
【氏名又は名称原語表記】SOFTBANK ROBOTICS EUROPE
(74)【代理人】
【識別番号】110001173
【氏名又は名称】特許業務法人川口國際特許事務所
(72)【発明者】
【氏名】ウーサン,ダビド
(72)【発明者】
【氏名】ガト,グェナエル
【審査官】 上田 雄
(56)【参考文献】
【文献】 特開2004−090109(JP,A)
【文献】 特開2007−017990(JP,A)
【文献】 特開2004−240150(JP,A)
【文献】 特開2005−342862(JP,A)
【文献】 特開2009−122598(JP,A)
【文献】 特開2004−109323(JP,A)
【文献】 特開2010−094799(JP,A)
【文献】 国際公開第2011/003628(WO,A2)
【文献】 特開2003−305677(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 15/00−15/34
G10L 13/00−13/10
B25J 5/00
G06F 3/16
(57)【特許請求の範囲】
【請求項1】
人型ロボット(110)であって、
i)前記ロボットの少なくとも1人のユーザにより生成される事象の音響センサおよび視覚センサを備えるグループから選択される少なくとも1つのセンサ、
ii)前記少なくとも1つのセンサの出力における少なくとも1つの事象認識モジュール(610)、
iii)前記少なくとも1人の前記ユーザに向かって事象を生成する少なくとも1つのモジュール(630)、前記少なくとも1人の前記ユーザと対話するモジュール(620)であって、前記対話モジュールは、前記少なくとも1つの認識モジュールの出力を入力として受け取り、かつ、発話、動作、表情および感情を含むグループから選択される前記事象生成モジュールへの出力を作成するモジュールとを含み、前記ロボットは、対話の文脈および中立状態と最後の状態との間の一連の表情として前記ロボットの感情を定義する変数に従って前記事象生成モジュール出力を制御するように構成される人工知能エンジン(640)をさらに含み、前記中立状態と前記最後の状態との間の展開が時間ならびに少なくともあるセンサ、事象認識モジュール、対話モジュールおよび事象生成モジュールの出力の1つまたは複数に応じて生成されるパルスによってトリガーされる、人型ロボット(110)。
【請求項2】
変数がロボットに利用可能な1つまたは複数のリソースまたはロボットに適用されるシステム制約をさらに定義する、請求項1に記載の人型ロボット。
【請求項3】
ロボットに利用可能な1つまたは複数のリソースまたはロボットに適用されるシステム制約をさらに定義する変数が、前記ロボットの電池レベルおよび温度を含む、請求項に記載の人型ロボット。
【請求項4】
前記少なくとも1つの事象認識モジュールが少なくとも2つの異なる型に属する少なくとも2つのセンサから発出される入力を受け取り、かつ、前記対話モジュールの出力における前記少なくとも1つの事象生成モジュールが少なくとも2つの前記センサから発出される前記入力を考慮して出力として事象を作成することができる、請求項1〜3のいずれか一項に記載の人型ロボット。
【請求項5】
前記少なくとも1つの認識モジュールが前記入力を動的階層ツリーに従って観念の中に構築することができる、請求項1〜のいずれか一項に記載の人型ロボット。
【請求項6】
前記少なくとも1つの認識モジュール中の入力が文章または音声の入力に適用され、かつ、前記対話モジュール中の文法を起動する、請求項1〜のいずれか一項に記載の人型ロボット。
【請求項7】
前記少なくとも1つの認識モジュール中の入力が前記入力の認識を起動/停止する、請求項に記載の人型ロボット。
【請求項8】
前記少なくとも1つの認識モジュールが第1および第2サブモジュールを含み、前記第1サブモジュールが少なくとも1つの観念に結合される閉鎖単語リスト上で動作し、かつ、前記第2サブモジュールが開放単語リスト上で動作する、請求項またはに記載の人型ロボット。
【請求項9】
前記第1サブモジュールからの1つの出力のみ前記対話モジュールに供給される、請求項に記載の人型ロボット。
【請求項10】
前記第2サブモジュールからの出力のみ前記対話モジュールに供給される、請求項に記載の人型ロボット。
【請求項11】
前記第1サブモジュールからの出力および前記第2サブモジュールからの出力がともに前記対話モジュールに供給される、請求項に記載の人型ロボット。
【請求項12】
前記第1サブモジュールからの出力のみ先ず前記対話モジュールに供給され、前記第1サブモジュールからの前記出力が前記対話モジュールにおいて前記第2サブモジュールからの出力により確認される、請求項に記載の人型ロボット。
【請求項13】
前記第1および第2サブモジュールからの出力のいずれも前記対話モジュールからの出力を生成せず、かつ、前記ロボットが少なくとも1人の前記ユーザに少なくとも1つの出力を与える、請求項12のいずれか一項に記載の人型ロボット。
【請求項14】
前記対話モジュールがさらにアプリケーションから発出される動的要素を入力として受け取る、請求項1〜13のいずれか一項に記載の人型ロボット。
【請求項15】
前記ロボットの少なくとも1つの表情を生成する機能、前記ロボットの少なくとも1つの挙動を生成することを決定する機能および前記ロボットの少なくとも1つの感情を生成する機能を含む機能のグループから選択される機能を遂行することができるモジュールに、前記対話モジュールからの少なくとも1つの出力が供給される、請求項1〜14のいずれか一項に記載の人型ロボット。
【請求項16】
機能のグループから選択される前記機能が少なくとも1つの挙動を生成する前記機能であり、
少なくとも1つの挙動を生成する前記機能が前記ロボットのシステム制約を考慮する、請求項15に記載の人型ロボット。
【請求項17】
機能のグループから選択される前記機能が少なくとも1つの感情を生成する前記機能であり、
少なくとも1つの感情を生成する前記機能が、中立状態とあらかじめ定められた状態との間の一連のあらかじめ定められた表情を入力事象に対応して生成することができる、請求項15に記載の人型ロボット。
【請求項18】
視覚認識モジュールをさらに備え
前記視覚認識モジュールは、少なくとも1人の前記ユーザからの少なくとも1つの合図を対話シーケンスの開始または終了として解釈できる、請求項1〜17のいずれか一項に記載の人型ロボット。
【請求項19】
前記対話モジュールが字句解析サブモジュールと、前記字句解析サブモジュールの出力を解釈するサブモジュールであって、現在の対話の単語が結合される観念を生成することができるサブモジュールとを含む、請求項18のいずれか一項に記載の人型ロボット。
【請求項20】
前記対話モジュールが、少なくとも1人の前記ユーザからのその物理的および/または論理的システムの状態に関する質問およびコマンドを処理することができる、請求項1〜19のいずれか一項に記載の人型ロボット。
【請求項21】
人型ロボットと少なくとも1人のユーザとの間の対話の方法であって、
i)少なくとも1人の前記ユーザにより生成される事象の、音響センサおよび視覚センサを含むグループから選択される少なくとも1つのセンサから発出される入力を認識する少なくとも1つのステップと、
ii)少なくとも1人の前記ユーザに対する事象を生成するステップと、および
iii)少なくとも1人の前記ユーザと前記対話により対話するステップであって、前記対話ステップは、前記少なくとも1つの認識ステップの出力を入力として受け取り、かつ、発話、動作、表情および感情を含むグループから選択される事象を生成する前記ステップへの出力を作成するステップとを含み、前記方法は、人工知能エンジンにより対話の文脈および中立状態と最後の状態との間の一連の表情としてロボットの感情を定義する変数に従って前記事象生成モジュールの出力を制御するステップをさらに含み、前記中立状態と前記最後の状態との間の展開が時間ならびに少なくともあるセンサ、事象認識モジュール、対話モジュールおよび事象生成モジュールの出力の1つまたは複数に応じて生成されるパルスによってトリガーされる方法。
【請求項22】
変数がロボットに利用可能な1つまたは複数のリソースまたはロボットに適用されるシステム制約をさらに定義し、前記ロボットの電池レベルおよび温度を含む、請求項21に記載の対話の方法。
【請求項23】
前記ロボットが少なくとも2人のユーザとの対話を行い、少なくとも2人の前記ユーザを特徴付けるパラメータが前記ロボットのメモリに格納されており、前記ロボットが少なくとも2人の前記ユーザのうちの1人を認識するときに使用される、請求項21または22に記載の対話方法。
【請求項24】
人型ロボットに埋め込まれるコンピュータプログラムであって、前記プログラムがコンピュータ上で実行されたときに、前記人型ロボットと少なくとも1人のユーザとの間の対話の管理に適したプログラム・コード命令を含み、前記コンピュータプログラムは、
i)少なくとも1人の前記ユーザにより生成される事象の、音響センサおよび視覚センサを含むグループから選択される少なくとも1つのセンサの出力における事象を認識する少なくとも1つのモジュールと、
ii)少なくとも1人の前記ユーザに対する事象を生成する少なくとも1つのモジュールと、
iii)少なくとも1人の前記ユーザとの対話のためのモジュールであって、前記対話モジュールは、前記少なくとも1つの認識モジュールの出力を入力として受け取り、かつ、発話、動作、表情および感情を含むグループから選択される事象を生成する前記モジュールへの出力を作成するモジュールとを含み、前記プログラムは、対話の文脈および中立状態と最後の状態との間の一連の表情としてロボットの感情を定義する変数に従って前記事象生成モジュールの出力を制御するように構成される人工知能エンジンをさらに含み、前記中立状態と前記最後の状態との間の展開が時間ならびに少なくともあるセンサ、事象認識モジュール、対話モジュールおよび事象生成モジュールの出力の1つまたは複数に応じて生成されるパルスによってトリガーされることを特徴とする、プログラム。
【請求項25】
ログラム・コード命令は、ChatScript型インターフェース上で作成される、請求項24に記載のコンピュータプログラム。
【請求項26】
一連の表情は、定められた時間にわたって中立状態になる傾向にある、請求項1に記載の人型ロボット。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット・プログラミング・システムの分野に属する。より具体的には、それは、挙動を行う能力をすでに備えている人型ロボットに人間ユーザと対話する高度の機能を与えるために使用することができる。ロボットは、ある程度の人間の外観(頭、胴体、2本の腕、おそらく2つの手、2本の脚、2つの足等)および機能性の属性を有するや否や人型と表現され得る。しかし、本発明の場合、最も重要な人型特徴は、人間との対話における口頭表現の能力である。この能力は、ロボットの個性および感情の身振りによる表現および/または象徴的表現と可能な限り調整されなければならない。「ロボット・コンパニオン」型ロボットのアプリケーションが開発され得ると思われる。それは、とりわけ、依存状態にある人々のために日常生活における複数の支援機能を果たしつつ、これらの人々にとって人間補助者に情緒的に取って代わる準等価的存在と考えられる存在となる。このために、人間の振る舞いにできるだけ近い方法で人間と対話を交わす前記人型ロボットの能力を開発することが重要である。具体的には、ロボットが人間からの質問または発話を解釈し、かつ、人間からの表情の豊かさに対応する表現の豊かさおよび人間の通常の挙動と感情の類型と共同作用する表現方法により、会話モードで応答できることが必要である。
【背景技術】
【0002】
この方法の初期のステップは、本特許出願の出願人により販売されたNaoTMブランドの人型ロボットをプログラミングする方法のおかげで達成された。この方法は、国際公開第2012/000927号パンフレットとして公開されたプレーヤ・ロボットに関する国際特許出願および国際公開第2012/010451号パンフレットとして公開された自然対話インターフェース装備人型ロボットに関する国際特許出願において開示された。しかし、これらの文書により開示されたロボットは、あらかじめ決められた限定個数の対話要素を遂行するのみである。また、少しでも、前記の会話要素を増やして人間の通常の挙動に対応する多様性に近づけようとすると、その組み合わせ論は立ち所に近づきがたいものとなる。したがって、とりわけ前述の人々に支援サービスを提供することができるようにするために、人型ロボットに先行技術のロボットより豊かな会話機能を与える必要がある。これを行うために、本発明は、前記ロボットに、対話型エージェント、音声認識ツールおよびロボットの会話相手の人間の挙動を分析するツールを設ける。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】国際公開第2012/000927号
【特許文献2】国際公開第2012/010451号
【発明の概要】
【課題を解決するための手段】
【0004】
この目的のために、本発明は、以下を含む人型ロボットを開示する:i)ロボットの少なくとも1人のユーザにより生成される事象の、少なくとも1つの第2型の、音声型の第1センサおよび第2センサを含むグループから選択される少なくとも1つのセンサ、ii)前記少なくとも1つのセンサの出力における少なくとも1つの事象認識モジュール、およびiii)前記少なくとも1人のユーザに対して事象を生成する少なくとも1つのモジュール、少なくとも1人のユーザとの対話のためのモジュールであって、前記対話モジュールは前記少なくとも1つの認識モジュールの出力を入力として受け取り、かつ、会話、動作、表情および感情を含むグループから選択される前記事象生成モジュールに対する出力を生成するモジュール。ここで、前記ロボットは、事象生成モジュールの出力を制御するように構成される人工知能エンジンをさらに含む。
【0005】
有利な結果をもたらすように、人工知能エンジンによる事象生成モジュールの制御は、対話の文脈ならびにロボットの現在および予測による構成を定義する変数に従って行われる。
【0006】
有利な結果をもたらすように、前記少なくとも1つの事象認識モジュールは、少なくとも2つの別の型に属する少なくとも2つのセンサから発出される入力を受け取る。これに際して、前記対話モジュールの出力の前記少なくとも1つの事象生成モジュールは、少なくとも2つの前記センサから発出される前記入力を考慮して出力事象を作成することができる。
【0007】
有利な結果をもたらすように、前記少なくとも1つの認識モジュールは、動的な階層ツリーに従って入力を観念の中に構造化することができる。
【0008】
有利な結果をもたらすように、前記少なくとも1つの認識モジュール中の入力は、文章入力または音声入力に適用され、かつ、前記対話モジュール中の文法を起動する。
【0009】
有利な結果をもたらすように、前記少なくとも1つの認識モジュール中の入力は、前記入力の認知を起動/停止する。
【0010】
有利な結果をもたらすように、前記少なくとも1つの認識モジュールは、第1および第2サブモジュールを含む。この第1サブモジュールは、少なくとも1つの観念に結合されている単語の閉鎖リスト上で動作し、かつ、第2サブモジュールは単語の開放リスト上で動作する。
【0011】
有利な結果をもたらすように、第1サブモジュールからの出力のみ対話モジュールに供給される。
【0012】
有利な結果をもたらすように、第2サブモジュールからの出力のみ対話モジュールに供給される。
【0013】
有利な結果をもたらすように、第1サブモジュールからの出力および第2サブモジュールからの出力の両方が対話モジュールに供給される。
【0014】
有利な結果をもたらすように、第1サブモジュールからの出力のみ最初に対話モジュールに供給され、第1サブモジュールからの前記出力は対話モジュールにおいて第2サブモジュールからの出力により確認される。
【0015】
有利な結果をもたらすように、第1および第2サブモジュールからの出力のいずれも対話モジュールからの出力を生成せず、かつ、前記ロボットは少なくとも1つの入力を少なくとも1人の前記ユーザに与える。
【0016】
有利な結果をもたらすように、対話モジュールは、さらにアプリケーションから発出される動的要素を入力として受け取る。
【0017】
有利な結果をもたらすように、前記ロボットの少なくとも1つの表情を生成する機能、前記ロボットの少なくとも1つの挙動を生成することを決定する機能および前記ロボットの少なくとも1つの感情を生成する機能のグループから選択される機能を果たすことができるモジュールに、対話モジュールからの少なくとも1つの出力が供給される。
【0018】
有利な結果をもたらすように、少なくとも1つの挙動を生成する前記機能は、前記ロボットのシステム制約を考慮する。
【0019】
有利な結果をもたらすように、少なくとも1つの感情を生成する前記機能は、入力事象に応じて中立状態とあらかじめ定められた状態との間の一連のあらかじめ定められた表情を生成することができる。
【0020】
有利な結果をもたらすように、本発明の人型ロボットは、さらに視覚認識モジュールを含む。このモジュールは、少なくとも1人の前記ユーザからの少なくとも1つの合図を対話シーケンスの始まりまたは終わりとして解釈することができる。
【0021】
有利な結果をもたらすように、前記対話モジュールは、現在の対話の単語の結合する観念を生成することができる字句解析サブモジュールおよびこの字句解析サブモジュールの出力を解釈するサブモジュールを含む。
【0022】
有利な結果をもたらすように、前記対話モジュールは、少なくとも1人の前記ユーザからのその物理的および/または論理的システムの状態に関する質問および指令を処理することができる。
【0023】
本発明は、以下を含む人型ロボットと少なくともとも1人のユーザとの間の対話の方法も開示する:i)少なくとも1人の前記ユーザにより生成される事象の、少なくとも1つの第2型の、音響型の第1センサおよび第2センサを含むグループから選択される少なくとも1つのセンサから発出される入力を認識する1つのステップ、ii)少なくとも1人の前記ユーザに対して事象を生成するステップ、および、iii)少なくとも1人の前記ユーザと前記対話により対話するステップであって、この対話ステップは、前記少なくとも1つの認識ステップからの出力を入力として受け取り、かつ、会話、動作、表情および感情を含むグループから選択される事象を生成する前記ステップへの出力を作成するステップ。ここで、前記方法は、人工知能エンジンにより事象生成モジュールの出力を制御するステップをさらに含む。
【0024】
有利な結果をもたらすように、人工知能エンジンによる事象生成モジュールの制御は、対話の文脈ならびにロボットの現在および予測による構成を定義する変数に従って行われる。
【0025】
有利な結果をもたらすように、前記ロボットは、少なくとも2人のユーザと対話する。これらの少なくとも2人のユーザを特徴付けるパラメータが前記ロボットのメモリ中に格納されており、前記ロボットが少なくとも2人の前記ユーザの1人を認識するときに使用される。
【0026】
本発明は、人型ロボット中に埋め込まれるコンピュータプログラムも開示する。それは、本発明の方法を実行するプログラム・コード命令を含んでおり、このプログラムがコンピュータ上で実行されるとき、前記プログラムは前記人型ロボットと少なくとも1人のユーザ間の対話を管理するのに適しており、前記コンピュータプログラムは、以下を含んでいる:i)少なくとも1人の前記ユーザにより生成される事象の、少なくとも1つの第2型の、音響型の第1センサおよび第2センサを含むグループから選択される少なくとも1つのセンサの出力における事象を認識する少なくとも1つのモジュール、ii)少なくとも1人の前記ユーザに対する事象を生成するモジュール、および、iii)少なくとも1人の前記ユーザとの対話モジュールであって、この対話モジュールは、前記少なくとも1つの認識モジュールからの出力を入力として受け取り、かつ、会話、動作、表情および感情を含むグループから選択される事象を生成する前記モジュールへの出力を作成するモジュール。このプログラムは、事象生成モジュールの出力を制御するように構成される人工知能エンジンをさらに含むことにより特徴付けられる。
【0027】
有利な結果をもたらすように、本発明は、本発明に従ってコンピュータプログラムを生成し、かつ、このコンピュータプログラムを少なくとも1つの人型ロボットに送り出すように構成されるプログラム・コード命令を含むコンピュータプログラムも開示する。ただし、前記命令は、ChatScript型インターフェース上で生成される。
【0028】
本発明は、対話型エージェントの分野においてすでに使用されているプログラミング言語の使用を可能にする。これらの言語のシンタックスは、すでに多数のプログラマーにより知られており、したがって、これらの人々は本発明を利用して新しいアプリケーションを開発することができる。本発明の一部として使用された先行技術の対話型エージェントがその可能性を著しく向上したのは、高機能音声認識を組み込んだこと、およびロボットの他のセンサから発出される情報、特にロボットが対話の起動およびロボットの話し相手の状況を検知することを可能にする視覚認識情報を考慮していることによる。本発明の方法による対話は、ロボット・ユーザの好みに依存する種々のロボットの個性によりいろいろな種類の会話の要素に適合させることができる。このロボットは、会話の前記要素に一致する感情を表し、また、やはり前記要素と同期された挙動も示すことができる。これは、ユーザと1つまたは複数のロボットと間の交換の滑らかな筋書きの創作を可能にする。さらに、このロボットは、そのシステムの多数の要素の状態(たとえば残存電池寿命)に関する情報を与えること、およびユーザとの対話モードによるシステム・コマンドを受け取ることができるので、このロボットの人間工学的使用方法を著しく改善する。
【0029】
以下のいくつかの実施形態例の記述およびそれらの添付図面により、本発明がよりよく理解され、また、その種々の特徴および長所が明らかとなるであろう。図面の内容は、以下のとおりである。
【図面の簡単な説明】
【0030】
図1図1は、本発明のいくつかの実施形態において本発明を実施することができる人型ロボットを示す。
図2図2は、本発明のいくつかの実施形態による処理の概要流れ図を示す。
図3図3は、本発明のいくつかの実施形態による対話挙動管理モジュールおよび音声認識モジュールの処理装置を示す。
図4図4は、本発明のいくつかの実施形態によるいくつかのレベルの対話のツリー構造の例を示す。
図4a図4aは、本発明のいくつかの実施形態による観念ツリーを示す。
図5図5は、本発明のいくつかの実施形態における音声認識モジュールの処理の単純化流れ図を示す。
図6図6は、本発明のいくつかの実施形態において本発明を実施するために構成されるいくつかのソフトウェア・モジュール間のデータの流れを示す。
図6a図6aは、本発明の一定の実施形態における感情エンジンの動作を示す。
図6b図6bは、本発明の一定の実施形態における決定エンジンの動作を示す。
図7図7は、本発明のいくつかの実施形態において本発明を実施する対話管理モジュールの入力および出力における種々の機能を示す。
図8図8は、本発明のいくつかの実施形態において本発明を実施する分析および対話解釈モジュールのデータ・モデルを示す。
図9図9は、本発明のいくつかの実施形態において本発明を実施するために構成されるロボットにインストールされるソフトウェア・モジュールのアーキテクチャを示す。
【発明を実施するための形態】
【0031】
図1は、本発明のいくつかの実施形態において本発明を実施することができる人型ロボットを示す。
【0032】
この人型ロボットは、本発明の1つの実施形態における図面において描かれている。かかるロボットは、特に、2009年10月15日に公開された特許出願国際公開第2009/124951号パンフレットにおいて開示されている。このプラットフォームは、本発明をもたらした改善の基礎として使用されている。以下、本明細書において、参照の一般性に影響を及ぼすことなく、この人型ロボットは、この一般的名称またはその商標NAOTMで呼ぶこととする。
【0033】
このロボットは、関節を制御するセンサおよびアクチュエータのために約2ダースの電子制御回路基板を含んでいる。電子制御回路基板は、市販マイクロコントローラを含んでいる。これは、たとえば、Microchip社からのDSPICTMでよい。これは、DSPに結合された16ビットMCUである。このMCUは、1msのサーボ・ループ・サイクルを有している。このロボットは、その他の種類のアクチュエータ、特にLED(発光ダイオード)も含むことができる。その色および強度によりロボットの感情を示すことができる。それは、その他の種類の位置センサ、特に慣性装置、FSR(床圧力センサ)等も含むことができる。
【0034】
頭110は、ロボットの知能、特に、ロボットが与えられた任務、とりわけ本発明においては、ユーザにより書かれた対話の実行のための任務を遂行することを可能にする高レベル機能を果たす回路基板を含んでいる。有利な結果をもたらすように、頭は、特に会話(統合および認知)または視覚の処理に特殊化した回路基板も含む。
【0035】
会話認識に関して、現在使用されている音声信号処理アーキテクチャでは、前記音声信号は、4つのマイクロフォンにより捕捉され、ソフトウェアにより特殊化モジュール(図9の注釈により説明されている)中において処理される。音響源の方向は、4つのセンサにおける音響信号の到着の期日の相違を分析することにより決定することができる。会話は、文法エンジン(たとえば、NuanceTM社により販売されているタイプなど)または自然言語インタプリタを備える音声認識ソフトウェアにより認識される。
【0036】
頭は、広域ネットワーク(WAN)経由の遠隔通信を設定するポートを開くために必要な符号化などのサービス入力/出力の処理に特殊化された1つ以上の回路基板も含む。この回路基板プロセッサは、市販x86プロセッサでよい。好ましくは、低消費プロセッサ、たとえばIntel ATOMTM(32ビット、1600MHz)を選択する。この回路基板は、1組のRAMおよびフラッシュ・メモリも含んでいる。この回路基板は、通常はWiFiまたはWiMax伝送層経由であり、任意選択として標準プロトコル公衆移動データ通信ネットワーク)(任意選択としてVPN中にカプセル化される)経由のロボットと外部(挙動サーバ、他のロボット等)との通信も取り扱う。プロセッサは、通常、高レベル機能のプログラミングのための高レベル言語(C、C++、Python等)またはURBIなどの特殊人工知能言語(特殊化されたロボットプログラミング言語)の使用を可能にする標準OSにより制御される。
【0037】
ロボットは、特に、すでに引用した国際公開第2012/010451号パンフレットとして公開された国際特許出願において開示された発明に従って生成されるコードにより、事前にロボットのためにプログラムされた挙動を遂行することができる。このコードは、プログラマーによりグラフィカル・インターフェース上ですでに作成されている。この発明によれば、本明細書においては、以下、挙動は、行為(動作、会話)と任意選択としての事象との組み合わせである。これらの挙動は、プロのプログラマーではないユーザにより特許出願国際公開第2011/003628号パンフレットにおいて開示された発明を使用して作成されるスクリプトとして用意しておくこともできる。第1の場合、それは、ロボットの環境において発生する事象により挙動のシーケンスを条件付ける比較的複雑な論理で結合された挙動を含むことができる。この場合、ユーザは、必要最低限のプログラミング技量をもって、ChoregrapheTMツールキットを使用することができる。その主な手順は、引用された出願中において記述されている。第2の場合、スクリプトの順序論理は、原理上、適応性をもたない。
【0038】
本発明によると、プログラマーは、複雑なスクリプトを作成することができる。このスクリプトは、種々の身振りおよび動作、音響または視覚信号の発出、および特にロボットと人間または他のロボットと間の自然対話を含む複数組の挙動を含む。この対話は、ロボットの個性および感情ならびに会話の意味論的および事象的前後関係により調整される。
【0039】
図2は、本発明のいくつかの実施形態による処理の概要流れ図を示す。
【0040】
本発明によれば、ワークステーション、たとえばPC上にインストールされた対話書込モジュール210は、ロボットとは別個であり、対話スクリプトのプログラミングを意図している。前記対話は、数人の登場人物、すなわち、1つ以上のロボットおよび1人以上の話し手を有することができる。有利な結果をもたらすように、前記モジュールは、ロボットの挙動をプログラムするために使用することができるChoregrapheTMソフトウェア・ツールキットにインストールされ、それにより対話は、スクリプト内で、対話の要素に関してロボットにより行われるべき挙動と混合される。図1の説明で言及された特徴を持つ音声認識モジュール220は、ロボット上にインストールされる。その意図は、対話書込モジュール210において創作された対話の要素を解釈することであり、この対話要素は、図1の注釈において上述した手順に従って有線または無線通信インターフェース経由でロボットに送り出される。モジュール220に送り出される対話要素は、たとえば、BNF(バッカス・ナウア記法)標準化シンタックスを使用する言語によりコンパイルされる。たとえば、一連の単語は、「論理積」、「論理和」として解釈されるが、これらは、異なった方法により、たとえば‘|’により記号化されなければならない。
【0041】
音声認識モジュール220の動作については、図5の注釈においてさらに詳しく説明する。
【0042】
対話書き込みモジュール210から送り出される要素および音声認識モジュール220からの出力は、対話エンジン230に渡される。このエンジンは、モジュール210において創作された会話、感情、表情、挙動および事象を図6および7の注釈において説明される手順に従って生成する。挙動は、複合動作(立ち上がること、フットボールをすること等)を規定する一連の身振りである。表情は、会話/行為の対により与えられる対話について定義される特定の種類の挙動である。行為は、たとえば、ロボットのLEDにより与えられる動作および/または合図の組み合わせであり得る。一連の表情から構成されるスクリプトを創作する方法は、国際公開第2011/003628号パンフレットにより公開された国際出願により開示されている。感情は、最後の表情により定義される一連の表情であり、かつ、最後の表情につながる一連の表情である。例として、以下の感情、Ei,nを定義することができる:‘うれしい/悲しい’、‘飽きた’、‘怖い’、‘興奮した’、‘気になる’。Ei,n(iは1からnまで変化する)は、基準状態と表情En,n間の中間表情である。ロボットが状態Ej,p(pはnと異なる)にある場合、感情nを引き起こすものとして定義された事象のリストは、ロボットを状態Ej,pから状態Ej,nに移行させる。
【0043】
対話記述言語は、ChatScript言語(http://chatscript.sourceforge.net/)から導かれる。
【0044】
ChatScriptシンタックスでは、スクリプトは、1組の規則のように記述される。たとえば:
?:肉(あなたは肉を好む)はい
【0045】
完全な規則は、一般的に以下を含む:
− タイプ、例の中の‘?:’、これは質問を示す。
− ラベル、例の中の‘肉’、これは省略可能であるが、存在する場合、他の対話による要求を許容する。
− 括弧内に示されるパターンにより特徴付けられる入力、例の中の‘(あなたは肉を好む)’、この順序にこれらの3語を含む句が結合される句、しかし同様に他の単語:‘アルバート、あなたは肉を好む’、‘アルバート、あなたは赤肉を好む’等。
− 出力、例の中の‘はい’。
【0046】
本発明によると、言語は、対話要素をロボットの挙動と混合するために適合される。本明細書において、以下、適合の非限定的例を示す。
【0047】
たとえば、挙動は、一連の固有の文字列(たとえば、‘チェス’、‘フットボール’、‘太極拳’等)により定義される。感情も同じ−感情が問題であることをコードが示していることが了解されているであるから(たとえば、大文字の頭文字を使用することができる:‘Happy/Sad’、‘Tired’、‘Scared’、‘Excited’、‘Curious’等)。使用される言語は、ユーザ語句のいくつかの表現を簡略化して書くことを可能にする(たとえば、‘やあ’の種々の表現)。入力は、ロボットとの対話を行う主体(人間であってよい‘ユーザ’または別のロボット)の語句、事象または両方でよい(私は、やあといって、ロボットに手を伸ばす)。1つのユーザ語句について、この言語を使用して語句、感情、事象または挙動の形態でいくつかの可能な応答を表すことができる。対話挙動は、たとえば、ロボットがその目でユーザを追跡し、ユーザの動作を分析してより自然な応答(たとえば、ユーザと同時に発話しない)を創作するタイプでよい。
【0048】
対話言語の各要素は、音声認識エンジンを含むモジュール220においてその相当語句に再び書き直されるが、このエンジンは限られた個数の単語のみ確実に認識することができる。この変換のおかげで、認識された各語句が応答をもらうことが確実になる。実行においてではなく、対話書き込みにおいて、すべての対話およびすべての対話入力がこのように音声認識フォーマットで生成される。したがって、対話記述言語が音声認識において相当語句を有することが重要であるが、これは、ChatScript言語の使用の既知情況であるキーボード対話の場合にはなかったことである。
【0049】
対話記述言語の文法は、特に以下の機能性を含む:
1)パターン認識(またはパターン整合):
一部のパターンは、対話スクリプトにおいて合図により指示される:
− ‘または’は、可能な単語のリストを受け入れる、たとえば:[やあ こんにちは]
− ‘および’は、単語の厳密なリストを探す、たとえば:「私は しわあせ です」
− 任意選択の単語、たとえば:やあ{‘私のロボット’}
− 禁止される単語、たとえば:私は しあわせ !でない。この単語は、入力を確認しない。
− 未知の単語、たとえば:私の 名前は *です。ユーザの名前は未知である。
【0050】
2)対話中の文脈:トリガ語句を使用して1つの対話から別の対話に移行すること、たとえば:
− Ut:(自動車に関する会話)、この語句は、自動車に関する対話を引き起こす。
【0051】
3)下位対話:下位対話は一定の語句について開始され、順次継続可能である、たとえば:
− U:(お元気ですか?)ええ元気です、であなたは?
A:(私は健康ではありません)まあ、どうしたのですか?
B:(私は病気です)まあ、お気の毒です、なにか薬が必要ですか?
A:(元気です)素晴らしい
【0052】
この下位対話機能性は、たとえば、次のタイプの対話を生じさせ得る:
人間:お元気ですか?
ロボット:元気です、であなたは?
人間:私は健康ではありません
ロボット:まあ、どうしたのですか?
人間:私は病気です
【0053】
4)事象:ロボットにより受け取られた会話と同じ方法により事象を対話のための入力として考慮することは、先行技術に存在しない可能性を本発明の会話エージェントに与える。具体的には、ロボットの視覚認識は、ロボットがその環境にある人間を検知し、人間がロボットに話しかける場合のように、やあと言うことを可能にする:
− U:([e:faceDetected やあ])やあ、君
ロボットが人間を見たとき、またはだれかが‘やあ’と言ったとき、ロボットは、‘やあ、君’と応える。
事象は、対話の出力としても、開始され得る(任意選択としてアプリケーションを始めることにより):
− U:(私は空腹です)$ユーザ状態=‘空腹’
$ユーザ状態=‘空腹’は、空腹をユーザ状態に割り当てると同時に事象[ユーザ状態,空腹]を開始する(この事象にアプリケーションを接続することができる)
【0054】
5)黙示的または明示的挙動の選択:
− U:(私が誰だか分かりますか?)[$faceRecognized==‘run:faceRecognition 私は、あなたが誰だか分かりませんが、この次には分かります]
【0055】
6)提案:ユーザの言ったことをロボットが理解できないかまたは誤解した場合、ロボットは、これを明確にするために標準対話提案を使用する、たとえば:
− 提案:あなたはおいくつですか?
− U:(私は[5 6 7 8]才です)あなたは若いですね!
【0056】
7)変数:対話は、ユーザ情報を格納することができる、たとえば:
− U:私は_[5 6 7 8]才です)$年齢=$1 あなたは若いですね!
【0057】
8)動的要素:変数およびリスト(mp3、アプリケーション、好み等)を対話中に入力または出力として組み込むことができる、たとえば:
− U:(あなたは何ができますか?)私は、〜アプリケーションができます
− U:(あなたの名前は?)私の名前は$名前です
− U:({開始してください 読んで下さい 教えて下さい}*_〜アプリケーション)はい、私は$1を始めます
$アプリケーションは、たとえば(‘三銃士’、‘ルモンド’)でよい
【0058】
9)感情、「悲しい」、「うれしい」、「気になる」、「怖い」、「飽きた」、すなわち:
− U:(私はあなたを愛さない!)それは私を「悲しませる」
【0059】
10)削除規則:応答中の繰り返し現象を避けるために、入力を停止または起動することができる、したがって同じ入力は、1つの対話またはいくつかの対話中で繰り返され得る。削除規則は、すべての入力が解釈されることを可能にする、たとえば:
− U:削除(お元気ですか)私は元気です
− U:(お元気ですか、nao)私の名前を覚えているのですね!私は元気です
− U:(お元気ですか)さきほどの私のように
【0060】
11)応答規則:いくつかの可能な出力がロボットにより作成され得るが、それらからの選択は、ロボットがユーザまたはユーザ群から受け取った入力により、確定的に(入力に関わらずに、常に同じ出力またはリスト中の所与のランクの出力)、無作為に、順番に(入力iが出力jを起動する場合、入力i+1は出力j+1を起動する)、または条件に従って決定される。対話モジュールは、ロボットのメモリのすべてを利用することができ、かつ、したがってロボットのメモリ中の値に応じて応答を与えることができる。出力は、対話に変化を加えるために使用された後に削除することができる。たとえば:
− U:(お元気ですか)[‘私は元気です’ ‘先ほどあなたに言いました’]#デフォルトにより順番に
− U:(お元気ですか)^無作為[‘私は元気です’ ‘私は非常に元気です’ ‘私は絶好調です’]
− U:(あなたのお名前は何ですか)^第1[‘私の名前は$名前です’ ‘私には名前がありません’]#ここでは、$名前が存在する場合のみ‘私の名前は$名前です’を表示することができる。
− U:(お元気ですか)^削除する 私は元気です #応答を表示した後に規則を削除する。
【0061】
12)下位対話を開始する、主題:
− U:(私は自動車について話したい)主題:自動車
【0062】
図3は、本発明のいくつかの実施形態による対話挙動管理モジュールおよび音声認知モジュールの処理装置を示している。
【0063】
ロボットに埋め込まれたランタイムにより対話が実行される場合、対話エンジン230は、ネットワーク310および対話リスト330の上と音声認識220の上の両方で動作する。
【0064】
対話ネットワーク310は、対話同士を結合する方法を示す構造化対話群である:たとえば、最初に紹介、次に別の対話。ネットワークは、対話群に方向を与える。リスト330は、対話エンジン中と音声認識エンジン中の両方に存在するアクティブな対話群の非構造化リストである。
【0065】
対話は、始動または停止することができる(それは、対話のすべての入力340に同時に影響を及ぼす)。始動/停止は、トリガ(ut:)により自動的に、またはユーザにより手動的に引き起こすことができる。任意の時刻においてアクティブな対話の数を最小化する方法を使用して品質および処理時間「に関する」音声認識性能を最適化することができる。対話のパラメータをエディタ中に設定することにより、新しい対話を開いた時にも対話をアクティブのままとすることができる。この際、デフォルトの解決方法は、新しい対話を開くと同時に前の対話を閉じることである。対話入力も、下位対話に接続することより、または進行中の対話要素の繰り返しを避けるために行われる削除により個別に起動/停止することができる。対話エンジン230は、パターン認識モジュール320を含んでいるが、その動作は図2の注釈においてすでに説明した(ポイント1)。それは、動的観念ツリー350も含んでいる。
【0066】
観念は、所与の対話において意味的に相当語句として定義される単語のリストである。例として、語句‘私は住む’は、所与の対話において、‘私は住んでいる’、‘私は居住する’、‘私は住む’、‘私、私は住んでいる’、‘私、私は居住する’、‘私、私は住む’等の語句と意味的に等価と考えられる。したがって、観念(住むこと)および観念(私)は、次のように定義される:
観念:(住むこと)(住んでいる 居住する 住む 住むこと 居住すること)
観念:(私(I))(私(me) 私(I) 私(I’ve))
この語句は、したがって、対話中のいくつかの場所に書かれる:
U:(〜私、〜住むこと)
【0067】
動的観念ツリーは、複数の階層的に組織化された観念を含む。観念に結合された語句のリストを実行時に変更することも可能である。
【0068】
例として、観念‘食料’は、‘果物’および‘肉’を含み、また、観念‘果物’は、‘バナナ’および‘オレンジ’を含む。
観念:(食料)(〜果物 〜肉)
観念:(果物)(バナナ オレンジ)
【0069】
対話中に新しい果物を追加することが可能である。したがって次の対話が創作される:
U:(知っていますか_{of the}_〜食料)はい 私は$1 $2を知っています。
【0070】
これは、実行に以下を与える:
ユーザ:あなたはバナナを知っていますか?
ロボット:はい、私はバナナを知っています
U:(私に果物を示して下さい)〜果物は果物です
ユーザ:私に果物を示して下さい
ロボット:バナナは果物です。
【0071】
リスト330の対話中の入力は、音声認識モジュール220の文法リスト360中の文法を起動する。音声認識モジュールの入力370のリストは、対話モジュールの入力リスト340と同期している方法で起動/停止される。対話モジュール230の動的観念ツリー350中の観念を変更することは、音声認識モジュールの動的入力380の適合をもたらす。
【0072】
図4は、本発明のいくつかの実施形態によるいくつかのレベルの対話のツリー構造の例を示す。
【0073】
いくつかの対話が図中に示されている。これらは、並列に走行できるが(優先度スタック付きで)、1つの対話が他の対話に取って代わることができる。
【0074】
対話は、ロボット中に埋め込まれている対話エンジン・モジュール230中に3つの論理レベルを含んでいる:
− デフォルトによりアクティブな対話を含むレベル410:一般的対話4110(挨拶、提示、気分)および1つのロボットの状態(電池、温度、構成等)を示すか、または基本コマンド(立ち上がる、歩く等)を与える‘システム’対話4120。ロボットの必須機能の状態に関する情報を取得するのみならず、それらの一部を制御し得る可能性(スタンバイ・モードに置く、電源出力に接続する等)を与えることにより、技術に親しくないユーザがロボットを扱う時に感じる心理的な障壁を低くすることができる。
− ユーザからの入力に従って対話を選択するルーチンを含むレベル420。この選択は、トリガUt:により開始することができる。たとえば、複数の選択、4210、4220、4230、4240をプログラムすることができる。
− アプリケーション4310、4320、4330を含むレベル430。これらは、たとえば、対話またはファイルのシーケンスであり、自動的に、またはユーザにより手動的に開始され得る。
【0075】
デフォルトにより、一般的情報およびシステム・コマンド(たとえば、もっと大きな声で話しなさい)を含む対話がロードされる。次にトリガ語句によりその他の対話のロードを起動することができる。たとえば:
− 討議の主題を変えること(自動車について、当日の活動について、等々)
− ロボットができること(‘私は物語を語ることができる’)を説明すること。この部分は動的な要素を含む:インストールされるmp3、インストールされるアプリケーション。音声認識経由で開始され得るアプリケーションは、以下の情報を含むべきである:そのテーマ(ゲーム、情報等)および任意選択としてそのアプリケーションを指定する対話(ロボットは、不思議な国のアリスは少女に関する物語です、などと言うことができる)。
− アプリケーションの対話を開始すること(たとえば、対話式物語)。
【0076】
選択を提供することができる:有名人を言い当てる、挙動を選択する、製品を選択する、職業人を見出す等。この選択は、ロボットによりなされるか(人間は、ロボットの意味することを理解しなければならない)または人間によりなされ得る(ロボットはロボットの選択を理解しなければならない)。
【0077】
この選択は、上述した対話によりなされ得るが、しかしこの対話は、しばしば、同じ語句の繰り返しを含み、それがこの対話の作成を難しくする:
U:(私が考えているのは誰のことか当てて下さい)それは男性ですか?
A:(はい)それは女性ですか?
B:(はい)等
B:(いいえ)等
A:(いいえ)それは架空の人物ですか?
【0078】
観念の概念を使用して可能な事柄のツリーを検索する。観念は、他の単語群、語句群または観念群に関係する単語である。
観念:(男性)[‘彼は呼吸する’ ‘それは人間である’]
観念:(スーパーマン)[〜男性スーパーヒーロー 〜飛ぶ 〜マント]
観念:(ハリディ)[〜歌手 〜男性]
観念:(すべて)[〜スーパーマン 〜ハリディ]
【0079】
可能な事柄のツリーの階層性を上記例に関する図4Aに示した。
【0080】
単語は、ツリーの葉を表す。観念は、ツリーの節を表す。節および葉は、パターン整合(パターン認識)の要素である。
【0081】
単一入力の場合:
U:([‘彼は できるか’ ‘それは であるか’ 〜スーパーマン)はい。
【0082】
われわれは、以下の整合を試みることができる:
彼は飛ぶことができるか
それは男性であるか
それはスーパーマンであるか
【0083】
われわれは、また、以下のように提案し得る:
U:(私を助けてください)〜スーパーマン
【0084】
ここで、ツリーの葉の1枚が表示される。
ユーザ:私を助けてください
ロボット:それは呼吸する。
【0085】
人間がスーパーマンを言い当てるためには、次のように書けば十分である:
U:(それはスーパーマンですか?)はい、あなたはできました!
U:(〜スーパーマン)はい
提案:いいえ、それは彼ではありません。
【0086】
ロボットが人物を言い当てるためには、次のように書けば十分である:
U:(私が考えているのは誰のことか当てて下さい)? 〜すべて
【0087】
図5は、本発明の1つの実施形態における音声認識モジュールの処理の簡略化流れ図を示す。
【0088】
2レベルの音声認識が重畳されている:
− 第1レベル510は、限定された個数の認識可能な単語を含んでいる。認知された単語は、閉鎖リストに現れなければならない。この型の音声認識ソフトウェアの例は、NuanceTM(ブランド名VoconTM)、AcapellaTMおよび、自然言語を使用するソフトウェアとしては、DragonTMにより供給されている。
− 音声認識の第2レベル520は開放型であり、すなわち、認知される単語の多様性は遙かに大きい。この型の音声認識ソフトウェアの例は、特にNuanceTMによりブランド名NMSPTMの下に供給されている。このソフトウェアを使用することにより、番号付きジョーカ$xにより指定されるこれまで未知の単語を管理することができる。
【0089】
2つのレベル、1つは閉鎖型510および他方は開放型の520(たとえば、音声口述型)を含むこの型の音声認識アーキテクトを使用して認識の速度/品質の対を最適化することができる。
【0090】
図5は、2つの型の音声認識を混合する方法を示している:
− ケース530:ロボットは、ユーザの情況と同じ情況にあり、ロボットの言ったことは限られた認識により認識される。この場合、この音声口述は必要でない。
− ケース540:ロボットは、ユーザの情況と同じ情況にない(ユーザは自動車について話しているのにロボットは食料のことが会話されていると考えている)。この場合、音声口述により認識される語句が対話により近いであろう。
− ケース550:型520の認識が型510の認識を補完する。
− ケース560:開放認識が閉鎖認識の可能な選択を確認する。
− ケース570:ロボットは、ユーザの言ったことを理解しない。ロボットは、対話の分野を確認する提案をするかまたは別の主題に切り換える。この場合、ロボットによるこの再出発に上記のケース530−560が後続することができる。
【0091】
図6は、本発明のいくつかの実施形態において本発明を実施するために構成されたいくつかのソフトウェア・モジュール間のデータの流れを示す。
【0092】
この図は、入力事象610、対話620、出力事象630およびロボット640に埋め込まれている人工知能エンジン間のデータの交換を示している。
− 対話620は、入力事象を待ち合わせている(たとえば、ユーザ6120からのほほえみ6130または会話)。
− 対話エンジンは、新しい対話6240または動的データ6230を動的にロードすることができる(たとえば、 にインストールされたmp3ファイルまたはアプリケーション)。
− それは、その応答を表現会話6310(言い換えると文章を解釈する方法に関する情報を含む会話−ロボットのためのト書き)、挙動6320、感情6330または事象6340の形態で形成する。
− 対話からの出力は、種々の人工知能モジュール640に送ることができる。
・ 会話および表情は、表情処理エンジン6410、ナレータにより、国際公開第2011/003628号パンフレットにより公示された国際特許出願において特に記述されているように、動作と音声の統合を使用して処理される。
・ 感情は、感情エンジン6420により処理される。このエンジンは、ロボットの感情を時間の経過とともに安定化させるためにそれを推移させる。
・ 決定エンジン6430は、挙動を開始させるか否か決定し、次にこの決定を事象の形態で対話エンジンに伝えることができる。ロボットは、立ち上がる条件が満たされていない場合、それを拒否することができる。
【0093】
この挙動は、図4に関する注釈で上述したように、音声認識またはキーボード入力を使用する選択でもよい。この挙動は、ユーザの動作、たとえば、口を開く、立ち去る、頭を振る等に従う会話および会話の中断を引き起こす。
【0094】
対話は、インタプリタ6230および対話モデル6240を含む。対話モデルは、以下を含む:
− 対話ネットワークおよびアクティブな対話
− すべての対話入力およびアクティブな入力
− すべての対話出力
− すべての対話提案。
【0095】
基準6310、6320、6330、6340は、事象の形態の対話エンジンからの出力を表す。
【0096】
図6aは、本発明の一定の実施形態における感情エンジンの動作を示す。
【0097】
図2に関する注釈において前述したように、ロボットの感情は、感情の多次元空間(たとえば、「悲しい」、「うれしい」、「怒り」、「飽きた」等)における1つの点である。
【0098】
対話エンジンのみならず、たとえば、その電池状態、遭遇する顔および時間も感情の変化の源泉であるが、対話エンジンは、感情エンジンにパルスを送り、それがロボットの現在の感情を変化させる。この感情は、時間とともに中立感情(0,0,0,0,0,0)に向かって安定化する。
【0099】
図6bは、本発明の一定の実施形態における決定エンジンの動作を示す。
【0100】
決定エンジンは、挙動の実行を求めるすべての要求および利用可能な資源の形態のロボットのすべての制約を考慮する。対話エンジンを実行する要求は、決定の1つの要素に過ぎない。ロボットのすべての変数/事象が決定に参加する(電池、温度、感情等)。
【0101】
図7は、本発明のいくつかの実施形態において本発明を実施するための対話管理モジュールの入力および出力における種々の機能を示す。
【0102】
この図は、対話710が会話認識730、キーボード入力740または事象720の結果を入力として等しく受け入れることを示している。mp3ファイルまたはアプリケーションなどの動的データ750も考慮され得る。有利な結果をもたらすように、ロボットに埋め込まれているカメラにより受け取られた映像の処理から、対話モジュールは、ロボットが話しかけられているか否か知るために会話者の頭の位置を分析する。同様に、それは、ユーザが話しているか否か知るために唇の位置を評価し、したがって耳を傾けなければならないか、または話しかけることができるか否か決定することができる(要素760)。
【0103】
また、現在話している人の名前を表示するために顔認識も会話自体と同じ方法で使用することができる。
【0104】
対話エンジンからの‘会話’応答は、ロボットからの音声により、または画面7A0上で(または両方)与えられ得る。
【0105】
すでに述べたように、対話モジュールは、挙動の実行を引き起こすことができる(要素7B0)。
【0106】
図8は、本発明のいくつかの実施形態における本発明の実施のための分析および対話解釈モジュールのデータ・モデルを示す。
【0107】
アナライザ810は、対話8120中の用語集8110から単語群を検索し、これらの単語はそれに入力として供給される。入力対話は、データ・モデル8140を有している。対話の内容を構文解析する‘Libparser.so’ライブラリ8130がこの機能を遂行する。これは、これらの対話からの対話モデルおよびすべての入力をインタプリタ820のメモリ中に構築することを可能にする。実行時、インタプリタは、アクティブな対話のスタック8210を各ユーザのためのすべてのアクティブ入力とともに維持する。インタプリタの入力において‘構文解析された’対話は、形式8220およびデータ・モデル8240を有している。インタプリタは、その解釈機能を果たす‘Libinterpreter.so’ライブラリ8240を含んでいる。
【0108】
実際には、標準観念、変数および対話は、ユーザ依存とすることができる。
【0109】
したがって、次の規則を使用してユーザを変更することができる。
U:(e:faceRecognition)($名前=$faceRecognition)
U:(私の名前は_*です)($名前=$1)
【0110】
この場合、ユーザに依存する変数(好み、年齢、身長等)は、自動的にリセットされるか、またはユーザの履歴に従って割り当てられる。
【0111】
挙動830は、状態変数のデータ・モデル8310を有している。
【0112】
図9は、本発明のいくつかの実施形態において本発明を実施するために構成されるロボットにインストールされるソフトウェア・モジュールのアーキテクチャを示す。
【0113】
NAOなどのロボットは、有利な結果をもたらすように、本発明の1つの実施形態におけるロボットの機能を制御する高いレベルのソフトウェアを備えている。NAOQIと呼ばれるこの種類のソフトウェア・アーキテクチャは、特に、2009年10月15日に公示された特許出願国際公開第2009/124955号パンフレットにおいて開示された。それは、ロボットとPCまたは遠隔サイト間の通信を管理する基本機能および本発明を実施するために必要なソフトウェア・インフラストラクチャを与えるソフトウェアを交換する基本機能を含んでいる。
【0114】
NAOQIは、ロボット・アプリケーションのために最適化されたフレームワークである。それは、複数の言語、特にC++、Python、Urbi、Javaおよびmatlabをサポートする。
【0115】
本発明の場合、以下のNAOQIモジュールは、特に有益である:
− ALMemoryモジュール910、これは、種々のNAOQIモジュール間で共用されるメモリを管理する。
− ALMotionモジュール920、これは、ロボットの動作を管理する。
− 音声統合モジュール930、これは、ロボットの発話を作成する。
− 閉鎖認識モジュール940、これは、図5の基準510の機能を遂行する。
− 開放認識モジュール950、これは、図6の基準520の機能を遂行する。
− ALDialogモジュール960、これは、図2の基準230の対話エンジン・モジュールの機能を遂行する。
− ナレータ[Narrateur]モジュール970、これは、図6の基準6410の機能を遂行する。
− 決定エンジン・モジュール980,これは、図6の基準6420の機能を遂行する。
− 感情エンジン・モジュール990、これは、図6の基準6430の機能を遂行する。
【0116】
これらのモジュールは、有利な結果をもたらすように、C++でコード化される。図は、モジュール間のデータの流れも示している。
【0117】
図2の注釈において述べたように、対話は、標準コンピュータ上にインストールされた対話編集モジュール9A0において生成される。対話は、Choregrapheツールボックスにおいて生成することもできる。ALDialogモジュール960の対話と編集モジュール9A0の対話との間の整合性が確保される。対話エンジン960のアナライザ810とインタプリタ820(これらは図8に示されている)間のデータの流れは、編集時のコンピュータ上と実行時のロボット上の両方で生じる。
【0118】
アナライザは、対話記述ファイルu:(....)を読むことができる。
【0119】
インタプリタは、アナライザの結果(シンタックス・エラーなしに書かれた対話)からメモリ中に対話モデルを構築する。
【0120】
上述した例は、本発明の実施形態の実例として示されている。これらは、以下の請求により定義される本発明の範囲を決して限定しない。
図1
図2
図3
図4
図4a
図5
図6
図6a
図6b
図7
図8
図9