IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 株式会社国際電気通信基礎技術研究所の特許一覧

特開2023-123999人物の間の関係構築を促進する方法及びコンピュータプログラム
<>
  • 特開-人物の間の関係構築を促進する方法及びコンピュータプログラム 図1
  • 特開-人物の間の関係構築を促進する方法及びコンピュータプログラム 図2
  • 特開-人物の間の関係構築を促進する方法及びコンピュータプログラム 図3
  • 特開-人物の間の関係構築を促進する方法及びコンピュータプログラム 図4
  • 特開-人物の間の関係構築を促進する方法及びコンピュータプログラム 図5
  • 特開-人物の間の関係構築を促進する方法及びコンピュータプログラム 図6
  • 特開-人物の間の関係構築を促進する方法及びコンピュータプログラム 図7
  • 特開-人物の間の関係構築を促進する方法及びコンピュータプログラム 図8
  • 特開-人物の間の関係構築を促進する方法及びコンピュータプログラム 図9
  • 特開-人物の間の関係構築を促進する方法及びコンピュータプログラム 図10
  • 特開-人物の間の関係構築を促進する方法及びコンピュータプログラム 図11
  • 特開-人物の間の関係構築を促進する方法及びコンピュータプログラム 図12
  • 特開-人物の間の関係構築を促進する方法及びコンピュータプログラム 図13
  • 特開-人物の間の関係構築を促進する方法及びコンピュータプログラム 図14
  • 特開-人物の間の関係構築を促進する方法及びコンピュータプログラム 図15
  • 特開-人物の間の関係構築を促進する方法及びコンピュータプログラム 図16
  • 特開-人物の間の関係構築を促進する方法及びコンピュータプログラム 図17
  • 特開-人物の間の関係構築を促進する方法及びコンピュータプログラム 図18
  • 特開-人物の間の関係構築を促進する方法及びコンピュータプログラム 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023123999
(43)【公開日】2023-09-06
(54)【発明の名称】人物の間の関係構築を促進する方法及びコンピュータプログラム
(51)【国際特許分類】
   G06F 16/90 20190101AFI20230830BHJP
   G06F 40/56 20200101ALI20230830BHJP
   G10L 15/22 20060101ALI20230830BHJP
   G10L 15/10 20060101ALI20230830BHJP
   G10L 13/00 20060101ALI20230830BHJP
   G06F 3/01 20060101ALI20230830BHJP
   G06F 3/16 20060101ALI20230830BHJP
   G06N 3/004 20230101ALI20230830BHJP
【FI】
G06F16/90 100
G06F40/56
G10L15/22 300U
G10L15/10 200W
G10L13/00 100M
G06F3/01 510
G06F3/16 650
G06F3/16 690
G06N3/00 140
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022027523
(22)【出願日】2022-02-25
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和2年度、国立研究開発法人科学技術振興機構、戦略的創造研究推進事業 特別重点期間「複数人の人間と自然に対話できるアンドロイドシステムの実現(石黒共生ヒューマンロボットインタラクションプロジェクト)」委託研究、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】393031586
【氏名又は名称】株式会社国際電気通信基礎技術研究所
(74)【代理人】
【識別番号】100099933
【弁理士】
【氏名又は名称】清水 敏
(72)【発明者】
【氏名】船山 智
(72)【発明者】
【氏名】港 隆史
(72)【発明者】
【氏名】境 くりま
(72)【発明者】
【氏名】内田 貴久
【テーマコード(参考)】
5B091
5B175
5E555
【Fターム(参考)】
5B091CB32
5B175EA01
5B175GA04
5E555AA46
5E555AA76
5E555BA02
5E555BA88
5E555BB02
5E555BC13
5E555CA47
5E555CB64
5E555EA14
5E555EA19
5E555FA00
(57)【要約】
【課題】ロボットにより容易に人物の間の関係構築を促進できるような方法を提供する。
【解決手段】人物の間の関係構築を促進する方法は、コンピュータが、ロボットを制御して、第1の人物に向かって、所定の方法により定められる話題に関する意見を促す発話を行うステップ232と、コンピュータが、第1の人物が意見を述べるまで待機する第1待機ステップと、コンピュータが、ロボットを制御して、第1の人物と異なる第2の人物に対して、第1の人物が述べた意見に関する説明を求めるための発話を行うステップ246とを含む。
【選択図】図5
【特許請求の範囲】
【請求項1】
コンピュータが、ロボットを制御して、第1の人物に向かって、所定の方法により定められる話題に関する意見を促す発話を行うステップと、
コンピュータが、前記第1の人物が意見を述べるまで待機する第1待機ステップと、
コンピュータが、前記ロボットを制御して、前記第1の人物と異なる第2の人物に対して、前記第1の人物が述べた前記意見に関する説明を求めるための発話を行うステップとを含む、人物の間の関係構築を促進する方法。
【請求項2】
コンピュータが、予め定められたシナリオに従って、前記話題を特定するステップをさらに含む、請求項1に記載の方法。
【請求項3】
コンピュータが、前記第1待機ステップに続き、前記第1の人物の発話の中に所定の品詞の単語があるか否かを判定するステップと、
コンピュータが、前記第1の人物の発話の中に前記単語があるか否かにしたがって、どのような聞き返し処理をするかを決定するステップと、
コンピュータが、前記決定するステップにおいて決定された前記聞き返し処理を行うよう前記ロボットを制御するステップとをさらに含む、請求項1又は請求項2に記載の方法。
【請求項4】
前記決定するステップは、前記第1の人物の発話の中に前記単語があると判定されたか否かに従って、コンピュータが、前記単語を含む聞き返し文を発話する処理と、既定の聞き返し行動を行う処理とのいずれを前記ロボットが実行するかを決定するステップを含む、請求項3に記載の方法。
【請求項5】
前記既定の聞き返し行動は、前記ロボットが前記第1の人物に対する聞き返しを省略する行動を含む、請求項4に記載の方法。
【請求項6】
前記既定の聞き返し行動は、前記ロボットが既定の聞き返し文を前記第1の人物に対して発話することを含む、請求項4に記載の方法。
【請求項7】
コンピュータが、前記第2の人物が前記意見に関する説明を述べるまで待機する第2待機ステップと、
コンピュータが、前記第2待機ステップに続き、前記第1の人物の前記意見を理解したことを示す行動を行うよう、前記ロボットを制御するステップとをさらに含む、請求項1から請求項6のいずれか1項に記載の方法。
【請求項8】
コンピュータが、前記ロボットを制御して、所定の方法により定められる新たな話題に関する意見を前記第2の人物に求めるステップと、
コンピュータが、前記第2の人物が意見を述べるまで待機する第3待機ステップと、
コンピュータが、前記ロボットを制御して、前記第1の人物に対して、前記第2の人物が述べた前記意見に関する説明を求めるための発話を行うステップとをさらに含む、請求項7に記載の方法。
【請求項9】
前記第1の人物が前記第2の人物の前記意見に関する説明を述べるまで待機する第4待機ステップと、
前記第4待機ステップに続き、コンピュータが、前記第2の人物の前記意見を理解したことを示す行動を行うよう、前記ロボットを制御するステップとをさらに含む、請求項8に記載の方法。
【請求項10】
前記意見を促す発話を行うステップに先立って、前記ロボットを基点とする前記第1の人物の方向を特定するステップをさらに含み、
前記意見を促す発話を行うステップは、
前記ロボットが前記第1の人物の方向を向くように、コンピュータが前記ロボットを制御するステップと、
前記話題に関する意見を促すための質問を発話するよう、コンピュータが前記ロボットを制御するステップとを含む、請求項1から請求項9のいずれか1項に記載の方法。
【請求項11】
前記意見に関する説明を求めるステップに先立って、コンピュータが、前記ロボットを基点とする前記第2の人物の方向を特定するステップをさらに含み、
前記意見に関する説明を求めるための発話を行うステップは、
前記ロボットが前記第2の人物の方向を向くように、コンピュータが前記ロボットを制御するステップと、
前記第1の人物が述べた前記意見に関する説明を求める発話を行うよう、コンピュータが前記ロボットを制御するステップとを含む、請求項1から請求項10のいずれか1項に記載の方法。
【請求項12】
コンピュータを、請求項1から請求項11のいずれか1項に記載の方法を実行するよう機能させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、人物の間の関係構築を促進する方法に関し、特に、ロボットにより初対面の人物の間の関係構築を促進する方法及びそのためのコンピュータプログラムに関する。
【背景技術】
【0002】
初対面の人間にとって、互いに対話を始めることには、目に見えない障壁がある。英語にも「break the ice」という言い回しがあるとおり、この障壁は言語、人種、国籍の壁を超えて存在する。こうした障壁があるために、初対面の人間が対話を初め、互いの間に関係を構築するのは難しい。
【0003】
他者との関係構築は、人々の充足感及び幸福感にとって重要である。他者との良好な関係を求めること(所属欲求)は、適応有利だとされている。孤立、他者からの拒絶などは不安感を引き起こす。つまり、他者との関係構築は、人間が充実した生活を送るために重要である。
【0004】
一方、ロボットの場合、相手が初対面でも上記したような障壁は存在しない。また人間にとっても、ロボットに対しては初対面でも相手が人間のときのような障壁は感じないと考えられる。
【0005】
ロボットのこうした性質を利用し、人同士の関係構築を促進する研究が行われている。この場合、その性格上、対話の最小単位はロボット1体と2人の人間とを含む3者のグループとなる。
【0006】
この3者の対話パターンとして、図1に示す、第1パターン50、第2パターン52、及び第3パターン54の3つが考えられる。第1パターン50は、ロボットRと第1人物H1のみが対話する状況である。第2パターン52は、ロボットRと第1人物H1、ロボットRと第2人物H2がそれぞれ対話するという状況である。第3パターン54は、ロボットRと第1人物H1及び第2人物H2がそれぞれ相互に対話するという状況である。図1において、左から右に行くほど第1人物H1及び第2人物H2の関係を促進する効果が高くなり、ロボットに求められる対話能力も高くなる。第3パターン54のような状況における対話をロボットに行わせるための研究として、後掲の非特許文献1に開示のものがある。非特許文献1においては、初対面の人同士を仲介するエージェントによるコミュニケーション場として4つの状態を定める。4つの状態は、挨拶状態と、話題提供状態と、話題掘り下げ状態と、会話促し状態である。なお、文献1に開示のエージェントは一種のロボットである。
【0007】
挨拶状態においては、エージェントが2人の初対面者に対して別々に発話誘導を行う。話題提供状態においては、エージェントは、初対面者の2人の情報を相互に伝え、共通の話題について2人に意見を述べさせる。その後、互いに向かい合って対話するよう初対面者の2人を誘導する。話題掘り下げ状態においては、エージェントは初対面者の2人に質問を投げかけて2人の初対面者のコミュニケーションに参入する。会話促し状態においては、エージェントは、初対面者の会話に同調して会話を盛り上げることを目指す。初対面者の会話が終了すると、話題提供状態に遷移する。
【先行技術文献】
【非特許文献】
【0008】
【非特許文献1】笹間 亮平 外4名、「コミュニケーション活性度に基づいて発話制御を行う初対面紹介エージェント」、研究報告ヒューマンコンピュータインタラクション、日本、情報処理学会、2009年5月8日、pp.1-8
【発明の概要】
【発明が解決しようとする課題】
【0009】
文献1に開示された技術は、図1の第3パターン54に相当する状態を目指すものである。しかし、この第3パターン54を実現するためにはロボットが高度な対話能力を持つ必要がある。また初対面同士の人間の場合、互いを知らないことによる心理的障壁、及び対話のきっかけが少ないことから、人間同士が自発的に対話を開始することは難しい。文献1には、上記4つの状態の各々においてエージェントがどのような動作をすべきかについての開示はあるものの、人間同士が自発的に対話を開始するために文献1に開示の状況においてエージェトが実現すべき機能は高度であり、そのような機能を持つエージェント(ロボット)を実現することはむずかしい。
【0010】
それ故にこの発明は、ロボットにより容易に人物の間の関係構築を促進できるような方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
この発明の第1の局面に係る人物の間の関係構築を促進する方法は、コンピュータが、ロボットを制御して、第1の人物に向かって、所定の方法により定められる話題に関する意見を促す発話を行うステップと、コンピュータが、第1の人物が意見を述べるまで待機する第1待機ステップと、コンピュータが、ロボットを制御して、第1の人物と異なる第2の人物に対して、第1の人物が述べた意見に関する説明を求めるための発話を行うステップとを含む。
【0012】
好ましくは、この方法は、コンピュータが、予め定められたシナリオに従って、話題を特定するステップをさらに含む。
【0013】
より好ましくは、この方法は、コンピュータが、第1待機ステップに続き、第1の人物の発話の中に所定の品詞の単語があるか否かを判定するステップと、コンピュータが、第1の人物の発話の中に所定の品詞の単語があるか否かに従って、どのような聞き返し処理をするかを決定するステップと、コンピュータが、決定するステップにおいて決定された聞き返し処理を行うようロボットを制御するステップとをさらに含む。
【0014】
さらに好ましくは、決定するステップは、第1の人物の発話の中に所定の品詞の単語があると判定されたか否かに従って、コンピュータが、単語を含む聞き返し文を発話する処理と、既定の聞き返し行動を行う処理とのいずれをロボットが実行するかを決定するステップを含む。
【0015】
好ましくは、既定の聞き返し行動は、ロボットが第1の人物に対する聞き返しを省略する行動を含む。
【0016】
より好ましくは、既定の聞き返し行動は、ロボットが既定の聞き返し文を第1の人物に対して発話することを含む。
【0017】
さらに好ましくは、この方法は、コンピュータが、第2の人物が意見に関する説明を述べるまで待機する第2待機ステップと、コンピュータが、第2待機ステップに続き、第1の人物の意見を理解したことを示す行動を行うよう、ロボットを制御するステップとをさらに含む。
【0018】
好ましくは、この方法は、コンピュータが、ロボットを制御して、所定の方法により定められる新たな話題に関する意見を第2の人物に求めるステップと、コンピュータが、第2の人物が意見を述べるまで待機する第3待機ステップと、コンピュータが、ロボットを制御して、第1の人物に対して、第2の人物が述べた意見に関する説明を求めるための発話を行うステップとをさらに含む。
【0019】
好ましくは、この方法は、第1の人物が第2の人物の意見に関する説明を述べるまで待機する第4待機ステップと、第4待機ステップに続き、コンピュータが、第2の人物の意見を理解したことを示す行動を行うよう、ロボットを制御するステップとをさらに含む。
【0020】
さらに好ましくは、この方法は、意見を促す発話を行うステップに先立って、ロボットを基点とする第1の人物の方向を特定するステップをさらに含み、意見を促す発話を行うステップは、ロボットが第1の人物の方向を向くように、コンピュータがロボットを制御するステップと、話題に関する意見を促すための質問を発話するよう、コンピュータがロボットを制御するステップとを含む。
【0021】
好ましくは、この方法は、意見に関する説明を求めるステップに先立って、コンピュータが、ロボットを基点とする第2の人物の方向を特定するステップをさらに含み、意見に関する説明を求めるための発話を行うステップは、ロボットが第2の人物の方向を向くように、コンピュータがロボットを制御するステップと、第1の人物が述べた意見に関する説明を求める発話を行うよう、コンピュータがロボットを制御するステップとを含む。
【0022】
この発明の第2の局面に係るコンピュータプログラムは、コンピュータを、上記したいずれかの方法の各ステップを実行するよう機能させる。
【0023】
この発明の上記及び他の目的、特徴、局面及び利点は、添付の図面と関連して理解されるこの発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【0024】
図1図1は、ロボットを含む3者対話の状況を示す図である。
図2図2は、この発明の第1実施形態において実現する、ロボットを含む3者対話の状況を示す図である。
図3図3は、この発明の第1実施形態においてロボットが実現する、初対面の人物の間の関係構築を促進する手法を説明するための模式図である。
図4図4は、この発明の第1実施形態において、コンピュータがロボットを制御して初対面の人物の間の関係構築を促進する方法の各段階を説明するためのフローチャートである。
図5図5は、この発明の第1実施形態において、コンピュータがロボットを制御して初対面の人物の間の関係構築を促進する方法の具体的な1例の各段階を説明するためのフローチャートである。
図6図6は、この発明の第1実施形態において、コンピュータがロボットを制御して初対面の人物の間の関係構築を促進する方法のさらに具体的な1例の各段階を説明するためのフローチャートである。
図7図7は、この発明の第1実施形態を実現する会話ロボットシステム350のハードウェア構成を示す概略ブロック図である。
図8図8は、この発明の第1実施形態を実現する会話ロボットシステム350の各機能の間の機能的関連を示す模式的ブロック図である。
図9図9は、この発明の第1実施形態に係る会話ロボットシステム350を実現するためのコンピュータプログラムの構成の一例の一部をグラフ形式により示す図である。
図10図10は、この発明の第1実施形態に係る会話ロボットシステム350により行われる対話制御における各機能の関係及びそれらの間のデータの流れを示すブロック図である。
図11図11は、この発明の第1実施形態に係る会話ロボットシステム350が相手に行った質問に対する応答が肯定の回答か否定の回答かを判定するための局所的肯定否定判定認識を実現するためのプログラムによる処理の流れを示すフローチャートである。
図12図12は、この発明の第1実施形態に係る会話ロボットシステム350が相手に行った質問に対する分析を行い、聞き返しを実行するためのプログラムによる処理の流れを示すフローチャートである。
図13図13は、図12に示す第1の発話文解析を実現するためのプログラムによる処理の流れを示すフローチャートである。
図14図14は、図12に示す第2の発話文解析を実現するためのプログラムによる処理の流れを示すフローチャートである。
図15図15は、図13及び図14に示す、聞き返しワードを使用した質問文発話生成を実現するプログラムによる処理の流れを示すフローチャートである。
図16図16は、この発明の第1実施形態の効果を確認するための実験における実施形態及び比較例の対話の進行を模式的に示す図である。
図17図17は、実験における3者対話に関する被験者の印象評価の結果を示すグラフである。
図18図18は、図7に示す動作制御PC(Personal Computer)の外観を示す図である。
図19図19は、図18に示す動作制御PCのハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【0025】
以下の説明及び図面においては、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰り返さない。
【0026】
第1 課題及びその解決手段
初対面の人同士を含む3者対話において問題となるのは、人間同士が対話しないことである。そのため、人間同士の関係構築が促進されにくい。そこでこの実施形態においては、実際は人間同士が対話していなくても、ロボットの介在により人間同士の関係構築が促進されるような対話戦略を採用する。
【0027】
人間の選好に対してロボットが平等な場合のほうが、不平等な場合よりも初対面の人間同士の印象を良くするとされている。一方、そのような対話において、人間の選好について互いの価値観をすり合わせると、人間同士の予測性を高めて互いの信頼感を構築することにつながると考えられる。すなわち、人間同士の関係を構築するためには、互いの選好を確認した後の対話設計が重要である。だとすれば、人間同士の選好の一致・不一致に依存せず、ロボットを交えた3者対話において人間関係の構築を促進する対話戦略が必要である。
【0028】
また、ロボットが人間同士の関係構築を推進することを目的とする場合、ロボット自身に関する発話(例えば人間と同様の事項に関する選好など)を行うことは必ずしも必要ではないと考えられる。一方、ロボットに関する情報を開示しない場合、ロボットに対する興味、関心、対話意欲などが喚起されない可能性がある。個人的な情報を他者に知らせる行為(自己開示)は、人間同士の親密化において重要である。3者対話においても、ロボットが自己開示を行うことによって、3者対話に参加する人間の対話満足度及びシステムに対する親しみが向上するという報告もある。したがってこの実施形態においては、ロボットが自身の選好を持ち、それを人間に対して示しながら人間同士の関係構築を促進する対話戦略を採用する。そこで、この実施形態においては、人間同士が直接に対話せずに、ロボットとの1対1対話を繰り返すことにより3者対話を実現する手法を採用する。その際、ロボットが自己の選好を相手に開示する。
【0029】
すなわち、図2を参照して、この実施形態においては、図1に示す第2パターン52と同じような手法を用いながら、第1人物H1及び第2人物H2が実質的に対話しているかのような第2パターン60を図1に示す第2パターン52に代えて実現する。この手法においては、ロボットRは一次には第1人物H1又は第2人物H2としか対話しない。そのため、非特許文献1に開示されたもの(第3パターン54)と比較すれば、この実施形態でロボットに要求される対話能力は高くない。
【0030】
この第2パターン60に採用したような手法により人同士の関係を構築するためには、第1人物H1及び第2人物H2が互いに共感し合うことが必要である。そのためには、第1人物H1及び第2人物H2が互いに視点を共有することが有効と考えられる。そのため、以下に説明するように、この実施形態においては、例えばロボットRが第1人物H1に対して行った質問に対する第1人物H1の意見について、第2人物H2にその代弁(説明又は要約)をロボットRが求める、という手法を採用する。
【0031】
より具体的には、図3を参照して、第1ステップ100において、ロボット110が第1人物112に対して質問し、第1人物112がその質問に対する意見130を述べる、という対話120を行う。このとき第2人物114は対話120には参加しない。次に第2ステップ102において、ロボット110が第1人物112の意見について理解できないというふりをして、第2人物114に対して第1人物112の意見に対する代弁(説明、要約)を求める質問132をする。この質問132に対して第2人物114が第1人物112の視点に立った思考134に基づいてロボット110に対して第1人物112を代弁する回答136を行う。すなわちロボット110及び第2人物114が対話122を行う。この対話122には第1人物112は参加しない。しかし、第2人物114の回答136を聞いた第1人物112は、第2人物114が第1人物112の立場になって考えているという印象138を持つ。こうして、第1人物112と第2人物114とは直接には対話しないが、あたかも互いに対話したかのような経験をする。こうした経験を繰り返すことにより、第1人物112及び第2人物114は互いを理解し、共感して自然な対話を始めることが期待される。
【0032】
後述するように、このような手法を採用することにより初対面の人物同士の関係構築を強化できるという効果が得られることが実験により確認できた。
【0033】
第2 シナリオ
以下、上記した手法を実現する具体的な実施形態について説明する。図4は、上記したシナリオに沿った会話の流れを示す。ロボットは概略このシナリオに沿って2人の人物と対話する。なお、このシナリオは、ロボットの動作を制御するスクリプトとして準備される。
【0034】
図4を参照して、この会話のシナリオは、ロボットが挨拶をするステップ200と、ロボットを含む3者が互いに自己紹介するような発話を行うステップ202とを含む。
【0035】
このシナリオはさらに、ロボットが3者対話の双方の参加者に対して最初の質問を行うステップ204を含む。このステップ204においては、ロボットは話題に対する参加者の選好を聞く。この実施形態においては、ここでは詳細には述べないが、話題に対する参加者の選好の組み合わせにより後に参加者に行う質問のパターンが異なってくる。したがってステップ204における参加者の回答をこの段階において理解し、記憶しておくことが必要である。
【0036】
このシナリオはさらに、ロボットが話題の対象に対するロボットの選好について開示するステップ206を含む。このような開示は、前述したとおり、ロボットが自己開示を行うことによって、3者対話に参加する人間の対話満足度及びシステムに対する親しみを向上させるためである。
【0037】
このシナリオはさらに、ロボットが参加者の一方(第1人物)に対して、第2の質問をするステップ208を含む。ここにおける第2の質問はステップ204において行うものと関連した質問である。ただし、ステップ208における質問は、ステップ204において第1人物が行った回答に応じて異なったものとなる。
【0038】
このシナリオはさらに、ステップ208における質問に対する第1人物の回答に基づいて第1の対話の発展を行うステップ210と、さらにステップ210の結果に基づいて、第2の対話の発展を行うステップ212と、最後に終わりの挨拶を行って3者対話を終了させるステップ214とを含む。ステップ210おいて、ロボットは例えば、第1人物の回答に対してその理由を尋ね、その理由が分からないという行動を行う。ステップ212においては、ロボットは、第2の人物の方を向いて、第1人物が述べた理由について、その代弁(説明、要約)を求める。すなわち、このシナリオは、ステップ208、210、及び212において、ロボットが第1人物と第2人物とに対し個別に対話しているにもかかわらず、あたかも第1人物と第2人物とが対話しているかのような効果を得ることをねらっている。
【0039】
図5に、図4のシナリオにしたがったロボットの動作の具体的な流れをフローチャート形式により示す。実際にはこのロボットの動作は、非常に短い一定時間を周期として繰り返されるプログラムの、各時間におけるリアルタイムな動作の積み重ねにより実現される。
【0040】
まずステップ230においてロボットは第1人物の方向を向く。この第1人物の方向とは、ロボットを基点とした第1人物の顔の中心を向いた方向である。ロボットにこのような動作をさせるためには、ロボットの制御回路は、ロボットの位置及び姿勢と、第1人物の位置(及び第2人物の位置)とを知り、ロボットの姿勢を所望の状態に変化させる必要がある。それら情報を得てロボットを制御するための構成、及び以下に述べる各ステップを実現するために必要な構成については後述する。
【0041】
続くステップ232においては、ロボットは第1人物に最初の質問をし、第1人物が回答するのを待機する。このときには、ロボットの制御回路は、発するべき質問のテキストを生成する自然言語処理回路と、そのテキストを音声信号に変換し、さらに音声として発話する発話回路とを備える必要がある。
【0042】
ステップ234においてロボットは、最初の質問に対する第1人物の回答を聞き、その理由を尋ねる。この時点においてロボットが必要とするのは、音声を音声信号に変換し音声認識してテキストに変換する仕組み、そのテキストから質問に対する回答を抽出する自然言語処理のための機構、そして回答に基づいて回答の理由を作成し発話する自然言語処理及び発話処理のための機構である。
【0043】
多くの場合、最初の質問はYES/NOにより答えられる質問を想定している。そうした質問であれば、例えば肯定又は否定を表す単語を回答中から抽出、それをもともとの質問に基づいて解釈することにより第1人物の回答が分かる。しかし、場合によっては、同じ肯定でも単純な肯定ではない形による回答だったり、肯定と否定とにおいて質問に対する回答としてその意味するところが反転したりする場合がある。そうした場合に備えて、この実施形態においては、後述するように局所的肯定否定認識を採用している。なお、ステップ234においてロボットが行う質問は、予め定められたシナリオにしたがい、予め準備された発話テンプレートに、第1人物の回答に従って所定のキーワードを挿入することにより生成される。以下においてロボットが行う質問の多くは同様に生成される。
【0044】
なお、ステップ234でロボットが第1人物に理由を尋ねた後、ロボットは第1人物が回答するまで待機する。
【0045】
続くステップ236においては、ステップ234における質問に対する第1人物の回答を聞き、分からないふりをして、最初の回答に対する理由についてさらに深掘りした質問をし、質問に対する回答があるまで待機する。もっとも、このステップは必須というわけではない。ステップ236をすることなく次のステップ238に遷移してもよい。この場合のロボットの行動はあくまで予めプログラムされていた筋書きに沿ったものとなる。
【0046】
さらに続くステップ238においてロボットは、ステップ236において行った深掘り質問(又はステップ234において行った質問)に対する第1人物の回答を待機する。回答があれば、ステップ240において、ロボットは、第1人物の回答がわからなかったふりをする。
【0047】
さらにステップ242においては、ロボットは第2人物の方を向く。さらにステップ246においてロボットは、第2人物に対し、第1人物の言っている事が分かるか聞く。これが本実施形態において重要な点である。なぜなら第2人物は、このロボットからの質問に対し、第1人物が何を考えていたかを想像し、第1人物の視点から、第1人物の考えを代弁するための回答を考えるからである。質問した後、ロボットは第2人物の回答があるまで待機する。
【0048】
続くステップ248においてロボットは、第2人物の回答を聞き、第1人物の回答について納得したかのような動作をし、処理を終了する。このように第2人物の回答を聞いて第1人物の回答に納得したかのような動作をすることにより、第1人物と第2人物との間に共感が生じ、あたかも両者の間に対話があったかのような効果を得ることができる。
【0049】
以上の処理を第1人物と第2人物とを入れ替えて繰り返すことによりさらに大きな効果が得られる。
【0050】
図6に、後述する実験において用いられたシナリオを示す。ロボットは、ステップ300において挨拶し、ステップ302において3者の自己紹介を実行する。さらにステップ304においてロボットは第1人物及び第2人物に対してお酒が好きかどうかについての質問をし、両者の回答を得てその内容を記憶する。さらに、後の処理は、第1人物及び第2人物の回答によって変化する。したがって、ここでは両者の回答に従って適切なシナリオを選択する。例えば第1人物と第2人物との回答が、お酒について好き/好き、好き/嫌い(嫌い/好き)、及び嫌い/嫌いのいずれかによって後の質問などの内容が変わってくる。
【0051】
さらにステップ306においてロボットは、飲み会が好きではないという自己開示を行う。あくまでこれは実験におけるシナリオであり、飲み会が好きだという自己開示も同様にあり得る。なお、実験において飲み会を話題に選んだのは、好き嫌いが人によって分かれやすいためである。実験においては、対話相手に他者の意見を代弁させる必要があるため、話題の内容も、対話の参加者の意見が明確に現れるようなものが望ましいという理由による。
【0052】
続くステップ310において、ロボットは飲み会についての愚痴に関する対話を試み、ステップ312において飲み会に参加すべきか否かの葛藤についての対話を試みる。最後にステップ314において、ロボットは終わりの挨拶をする。
【0053】
上記したシナリオによれば、ステップ308、310及び312のいずれかにおいて上記した深掘り質問、他者に対する代弁の依頼を行うことができる。実験においては、ステップ304における対話参加者の回答の組み合わせに基づいて、以下のように深掘り質問と代弁の依頼とを行うようにした。
【0054】
好き/好き→ステップ308及び312
好き/嫌い→ステップ308及び312
嫌い/嫌い→ステップ310及び312
シナリオは、上記3つの場合に分けて予め準備しておき、第1人物及び第2人物からの回答により適切なシナリオを選択すればよい。以下の説明においては、理解を容易にするよう、第1人物と第2人物との選好が好き/好きな場合を想定する。
【0055】
第3 構成
図7に、この実施形態に係る方法を実行する会話ロボットシステム350のハードウェア構成をブロック図形式により示す。図7を参照して会話ロボットシステム350は、ロボット360と、予め準備されたシナリオを実現するプログラムに従ってロボット360の各アクチュエータなどを制御してロボット360を動作させるための動作制御PC362とを含む。動作制御PC362はネットワーク364に接続される。
【0056】
会話ロボットシステム350はさらに、ネットワーク364を介して動作制御PC362と通信可能であり、対話の相手となる人物の発話に対する音声認識を行って文字列に変換し、テキスト形式により動作制御PC362に送信するための音声認識PC368と、音声認識PC368に接続され、音声を音声信号に変換して音声認識PC368に入力するためのマイクロフォン366とを含む。マイクロフォン366はロボット360の近傍に設置されている。マイクロフォン366は実際には複数設けられてマイクロフォンアレイを形成しており、動作制御PC362は、これらマイクロフォン366からの音声信号に基づいて、第1人物112及び第2人物114の音声を区別できる。
【0057】
会話ロボットシステム350はさらに、ネットワーク364に接続され、ネットワーク364を介して動作制御PC362から受信した発話テキストに基づいて音声合成を行い、音声信号を出力するための音声合成PC372と、音声合成PC372から出力される音声信号を音声に変換するためのスピーカ370とを含む。スピーカ370は理想的にはロボット360の頭部に設けられるが、ロボット360の近傍に配置するようにしてもよい。
【0058】
会話ロボットシステム350はさらに、第1人物112及び第2人物114の位置を検出するための人位置センサ374と、人位置センサ374の出力に基づいて、第1人物112及び第2人物114の位置を検出し、ネットワーク364を介して検出信号を動作制御PC362に送信するための人位置認識PC376とを含む。この実施形態においては、人位置センサ374としては、テレビゲームの入力装置として利用されることが多い市販のものを利用する。またロボット110と対話する人物が第1人物112と第2人物114との2人であること、またロボット110がこれら2人の人物と対話するためには、ロボット110を基点とする第1人物112と第2人物114との方向を知る必要があることに鑑み、会話ロボットシステム350は2台の人位置センサ374を使用して第1人物112と第2人物114との双方の位置を別々に検出する。
【0059】
図8を参照して、図7に示す各要素の間のデータの流れについて簡単に説明する。図7に示す音声認識PC368は、マイクロフォン366の出力に基づいて、第1人物112及び第2人物114の発話に対する音声認識402を行い、認識結果を出力する。図7に示す人位置認識PC376は、人位置センサ374の出力に基づいて第1人物112及び第2人物114の人位置認識400を行い、認識結果を出力する。
【0060】
図7に示す動作制御PC362は、前述したシナリオに従った対話制御404を実行している。動作制御PC362は、人位置認識400及び音声認識402からの認識結果に基づいて対話制御404を実行し、シナリオに従って発話するためのテキスト及び発話の指令を図7の音声合成PC372に、また同様にシナリオに従ってロボット360の各部を制御するための指令及び動作のためのパラメータを図7の人位置認識PC376に、それぞれ与える。
【0061】
音声合成PC372は、対話制御404からの指令に従って、与えられたテキストに対する音声合成406を行い、音声信号をスピーカ370に出力する。動作制御408は、対話制御404から与えられる指令に従い、対話制御404から与えられるパラメータを用いてロボット360の各アクチュエータを制御し、ロボット360に対してシナリオに従った動作を行わせる。
【0062】
図9に簡単なシナリオの例を示す。図9に示すシナリオ450は、例えば図6のステップ304の冒頭におけるロボット360の動きを制御するためのものである。このシナリオは、開始ノード460と終了ノード472とに配置された複数のノード462、464、466、468及び470を含む。これら各ノードにはそれぞれ機能が割り当てられる。シナリオ450はさらに、シナリオに従ってロボット360が所定の順序により動作するようにノードを連結する1又は複数のエッジを含む。
【0063】
例えばノード462は発話ブロックである。この発話ブロックは、発話内容、発話中のロボットの動作及び感情などに関する情報を含む。ノード464は質問ブロックである。この質問ブロックは、質問の相手、質問内容、質問時のロボット360の動作などに関する情報を含む。ここにおける質問は基本的にYES/NOにより回答可能なものを想定している。ノード466は音声認識ブロックである。このノードにおいては、ノード464においてロボット360が発話した質問に対する人物(例えば第1人物112)の回答に対する音声認識が行われる。ノード466においてはさらに、音声認識した結果に基づき、第1人物112の回答が質問に対する肯定の回答か、否定の回答かに関する判定が行われる。その結果が、後続するノード468に与えられる。ノード466においてはさらに、第1人物112の回答に基づいてロボット360がどのような反応をすべきかが決定され、そのためにロボット360の各アクチュエータを制御するためのパラメータが決定される。これらパラメータはノード470に与えられる。
【0064】
ノード468の処理及びノード470の処理は並列に行われる。ロボット360が発話するときには、顔の各部と体の各部を制御する必要がある。発話中のロボット360の頭部、特に口については細かい制御が必要である。この例においては、ノード468における発話とノード470によるロボット360の制御とが同期するように、経時的な動きが466において計算され、ノード468及び470に与えられる。ノード468における発話及びノード470におけるロボットの動作が終了するとこのシナリオの実行が終了する。
【0065】
この実施形態においては、以上のようなシナリオは、図9に示すようなグラフ形式により定義される。グラフの各ノードの実行時に、そのノードに関する情報を解釈することによりスクリプトが生成される。しかし、逆にスクリプトからその制御の経過を図9に示すようなグラフ形式により視覚的に理解できるように表してもよい。グラフとスクリプトとの間でシナリオの作成が交代的に行われるようにしてもよい。
【0066】
図10は、図8に示す対話制御404の機能的構成を説明するための図である。図10を参照して、対話制御404は図7に示す動作制御PC362により実現される処理である。対話制御404は、動作制御PC362のハードディスク又はSSD(Solid State Drive)などにより実現される、対話シナリオを定義する対話シナリオデータを記憶した記憶装置510と、記憶装置510から対話シナリオデータ530を読み出し、ノードごとに処理内容を解釈して、ロボット360の感情状態532及び音声合成のためのパラメータ指令534を算出する対話シナリオ制御512とを含む。
【0067】
対話制御404はさらに、対話シナリオ制御512から感情状態532を受けてロボット360の感情状態を管理し、ロボット360の感情状態に応じた音声合成のためのパラメータ指令515とロボット360の表情を変化させるアクチュエータなどを制御するための表情指令538とを出力するための感情状態管理514と、対話シナリオ制御512から音声合成のためのパラメータ指令534を、感情状態管理514から感情状態に応じたパラメータ指令515を、それぞれ受けて最終的な音声合成を制御する音声合成指令540を出力する音声合成パラメータ制御516とを含む。
【0068】
音声合成パラメータ制御516からの音声合成指令540は図7に示す音声合成PC372において動作している音声合成モジュール504に与えられる。音声合成モジュール504はこの音声合成指令540に従って、シナリオとロボット360の感情状態とに応じた音声合成を行う。対話シナリオ制御512からの視線・動作指令536及び感情状態管理514からの表情指令538はいずれも図7の動作制御PC362において動作している動作制御モジュール502に与えられる。動作制御モジュール502は、これら指令に基づいてロボット360の各アクチュエータを制御し、ロボット360をシナリオに従って動作させる。
【0069】
図11は、図5のステップ234に関する説明において言及した、局所的肯定否定認識を実現するプログラムの制御構造を示す。この実施形態においては、ロボット360が行った質問に対する、ユーザ発話が質問に対する肯定の応答か否定の応答かによりシナリオの進行が定まる。この実施形態においては、ユーザ発話はスクリプトに沿ったキーワードマッチングにより判定している。したがって、ロボット360がユーザ発話を聞き取れない場合には、ロボット360が聞き返すなどのリカバリーのためのシステムを組み込んである。
【0070】
また、ロボット360の質問に対するユーザ発話が肯定か否定かを認識する場合、ユーザが「はい」又は「そうです」など、肯定及び否定を表すものとして汎用的に使用される単語(汎用的肯定否定ワード)を使用する場合だけではない。例えば「…とおもいますか?」という質問に対して「思います」という応答は肯定であり、「思いません。」という応答は否定である。つまり、ユーザは汎用的肯定否定ワードだけではなく、相手の発話文という局所的情報に応じ、相手の発話文に対して動詞の変化を含めた局所的肯定否定ワードを使用する場合がある。図11のプログラムはそのような局所的肯定否定ワードを認識するためのものである。
【0071】
図11を参照して、局所的肯定否定認識においては、まずユーザ発話の音声認識結果の文字列中に肯定キーワードがあるか否かを判定する(ステップ562)。この場合の肯定キーワードとは、文脈に応じて各ノードにおいて質問ごとに準備されている単語である。
【0072】
ステップ562における判定が肯定の場合、ステップ564において発話文中に否定語が含まれているか否かを判定する。否定語が含まれている場合にはステップ574においてユーザ発話が質問に対する否定の応答だと判定しこの処理を終了する。ステップ564における判定が否定の場合にはステップ572においてユーザ発話が質問に対する肯定の応答だと判定しこの処理を終了する。
【0073】
ステップ562における判定が否定の場合、ステップ566において発話文中に否定キーワードがあるか否かを判定する。否定キーワードがあればステップ568においてさらに発話文中に否定語が含まれているか否かを判定する。判定が否定ならステップ574においてユーザ発話が質問に対する否定の応答だと判定してこの処理を終了する。ステップ568における判定が肯定なら、否定の否定ということで、ステップ572においてユーザ発話が質問に対する肯定の応答だと判定してこの処理を終了する。
【0074】
ステップ566における判定が否定のときには、ステップ570において発話文中に局所的肯定否定のキーワードがないと判定してこの処理を終了する。
【0075】
こうした処理をロボットが質問した後のユーザ発話を分析するときに処理として組み込んでおく。その結果、ユーザが汎用的肯定否定キーワードを使用せずに質問に対する応答をしたときにもロボット360はその応答の肯定否定を正しく判定できる。したがって、後の処理をシナリオに従ってスムーズに実行できる。
【0076】
図12は、図4のステップ208、図5のステップ236、図6のステップ308などにおいて、ロボット360がした質問に対する第1人物112の応答を聞いたときにロボット360が実行する、第1人物112の発話に対する発話文解析の流れを示すフローチャートである。まずロボット360は第1人物112の発話に対する音声認識処理を実行する(ステップ600)。さらにロボット360は、音声認識処理により得られた文字列に対して形態素解析を行う(ステップ602)。さらにロボット360は、質問がその回答として形容詞を想定したものか否かを判定し、その結果に応じて制御の流れを分岐させる(ステップ604)。このステップ604は、話題によって、また質問の仕方によって、回答が主として形容詞が想定される場合と、主として名詞が想定される場合とが存在するためである。すなわち、シナリオによって、このステップ604の判定結果が異なってくる。
【0077】
ステップ604の判定が肯定のときには、形容詞の回答を想定した第1の発話文解析処理が実行される(ステップ606)。ステップ604の判定が否定のときには、後述するように名詞の回答を想定した第2の発話文解析が実行される(ステップ608)。ステップ606及びステップ608においては、基本的にはいずれも聞き返し文が生成される。続くステップ610においては、生成された聞き返し文を第1人物112に対して発することになる。ただし、場合によっては聞き返し文が生成されないこともある。そうした場合には、所定のデフォルトの聞き返し文を使用したり、聞き返しを行わなかったりする場合もあり得る。
【0078】
図13は、図12のステップ606における処理の流れをより詳細に示す。図13を参照して、形容詞を回答として想定したときの発話文解析においては、最初に発話文中に形容詞があるか否かを判定する(ステップ632)。発話文中に形容詞があれば、その形容詞の中に「楽しい」があるか否かを判定する(ステップ634)。これは、上記した図6に示したように3者対話の話題として飲み会を選択したため、高い頻度をもって使用される形容詞として特別に挿入した判定である。形容詞の中に「楽しい」があれば、「楽しい」を聞き返しワード(聞き返し用の質問発話文テンプレート中に挿入される単語)に設定する(ステップ636)。そして、予め準備された聞き返し用の質問発話文テンプレートの、聞き返しワード用のスロットに聞き返しワードを挿入して質問発話文を生成する(ステップ646)。ステップ646の後、この処理を終了する。
【0079】
ステップ634の判定が否定のとき、すなわち第1人物112の発話文中に「楽しい」がないときは、発話文中の形容詞のうち、最もIDF(Inverse Document Frequency)値が高い形容詞を聞き返しワードに設定する(ステップ638)。この後、ステップ646の処理を実行する。IDF値は、単語が使用される頻度が低いか否かを示す尺度と考えられる。IDF値が高いということは、使用される頻度が低いということであり、ありふれた単語ではないということである。したがってIDF値が高い単語を使用して質問発話文を作ることにより、後に第2人物114に第1人物112の意見を代弁させるときに、第2人物114が第1人物112の視点から考えるという効果が強く得られると考えられる。
【0080】
なお、この処理を行うためにはIDF値を単語ごとに記憶しておく必要がある。この実施形態においては、例えば図7に示す動作制御PC362がこのIDF値のテーブルを記憶している。
【0081】
ステップ632の判定が否定のときには、発話文中に動詞があるか否かを判定する(ステップ640)。動詞があればその動詞のうち、最もIDF値が高いものを聞き返しワードに設定し(ステップ642)、ステップ646において聞き返しワードを使用した質問発話文を生成して処理を終了する。
【0082】
なおこの実施形態においては、ステップ640の判定が否定のときには聞き返し質問なしとし(ステップ644)、ロボット360が第1人物112に対して聞き返し質問はしないものとする。
【0083】
図14は、図12のステップ608における処理の流れをより詳細に示す。図14を参照して、名詞を回答として想定したときのこの発話文解析においては、まずステップ662において発話文中に名詞があるか否かを判定する。判定が肯定のときにはステップ664において、その名詞のうち最もIDF値が高い名詞を聞き返しワードに設定する。その後、ステップ672において、その聞き返しワードを使用した質問発話文を生成してこの処理を終了する。ステップ672の処理は、図13のステップ646と実質的に同じ処理である。
【0084】
ステップ662の判定が否定のとき、すなわち発話文中に名詞が存在しないときには、ステップ666において発話文中に動詞があるか否かを判定する。発話文中に動詞があるときには、ステップ668においてその動詞のうち最もIDF値が高い動詞を聞き返しワードに設定する。その後、ステップ672においてその聞き返しワードを使用した質問発話文を生成しこの処理を終了する。
【0085】
ステップ666の判定が否定のとき、すなわち発話文中に名詞も動詞もないときには、ステップ670が実行される。ステップ670においては、聞き返しワードを持たないデフォルトの質問発話文を使用することに決定し、この処理を終了する。
【0086】
図15は、図13のステップ646及び図14のステップ672における処理の流れを示すフローチャートである。図15を参照して、この処理においては、まず、ステップ702において、ロボット110が発話した質問が、相手の回答として名詞を想定したものか否かを判定する。この判定が肯定のときには制御はステップ704に進む。ステップ704においては、聞き返しワードが名詞か否かが判定される。この聞き返しワードは、図13又は図14の処理において決定された単語である。この判定が肯定であれば処理はステップ714に進む。ステップ714においては、予め準備されていた名詞用の質問テンプレートに、聞き返しワードを当てはめてこの処理を終了する。質問テンプレートとは、質問文の一部に、聞き返しワードが挿入されるスロットが設けられたものである。このスロットに聞き返しワードを挿入することにより質問発話文が生成できる。
【0087】
一方、ステップ704における判定が否定のときには処理はステップ708に進む。ステップ708において行われる処理については後述する。
【0088】
ステップ702の判定が否定のときには制御はステップ706に進む。ステップ706においては、想定された聞き返しワードが形容詞か否かが判定される。判定が肯定なら、ステップ710において、予め準備されていた形容詞用の質問テンプレートに、聞き返しワードを当てはめることにより質問発話文が生成され、この処理を終了する。ステップ706の判定が否定のときには処理はステップ708に進む。
【0089】
ステップ708においては、聞き返しワードが動詞か否かを判定する。判定が肯定のときには処理はステップ712に進み、否定のときには処理はステップ716に進む。ステップ712においては動詞用の質問テンプレートに聞き返しワードを当てはめて質問発話文を生成し、この処理を終了する。ステップ716においては質問発話文なしとしてこの処理を終了する。質問発話文なしの場合には、ロボット110は聞き返しをしない。
【0090】
第4 動作
以上のように構成された会話ロボットシステム350(図7)は以下のように動作する。なお、各ロボットの動作の制御の詳細は公知なので以下では繰り返さない。
【0091】
図4を参照して、ステップ200において、ロボット110は、第1人物112及び第2人物114とともに互いに挨拶をする。ステップ202において、ロボット110は最初に自分の自己紹介の発話を行い、さらに第1人物112及び第2人物114に自己紹介を促す。
【0092】
互いの自己紹介が終わると、ロボット110は、ステップ204以下において第1人物112と第2人物114との間の関係を促進するための処理を行う。まずステップ204において第1ステップ100(図3)は、第1人物112及び第2人物114に対して最初の質問を行う。この質問は、話題に対する参加者の選好を聞くものである。例えば図6のステップ304に示すように、ロボット110は参加者がお酒を好きか否かについて聞き、第1人物112と第2人物114との双方についてその回答を聞きその情報を記憶する。前述したように、話題に対する参加者の選好の組み合わせにより後に参加者に行う質問のパターンが異なってくる。したがってロボット110は、ステップ204における参加者の回答をここで理解し、記憶しておく。このとき、ロボット110は、第1人物112と第2人物114の各々の回答について、図11に示した局所的肯定否定認識を行い、それぞれの回答を正しく理解する。以下の説明においては、第1人物112及び第2人物114の双方がお酒を好きと回答したものとする。
【0093】
次に、ロボット110は、ステップ206においてお酒に関するロボットの選好について開示する。ここではロボット110は例えばお酒は飲めないこと、飲み会などが苦手なことを開示する。この開示の後、ロボット110はステップ208以降において、第1人物112及び第2人物114の関係構築を促進するための処理を実行する。その具体的な例について、図5を参照して説明する。
【0094】
図5を参照して、まずステップ230においてロボット110は第1人物112の方を向く。この動作によりロボット110が第1人物112に対して質問しようとしていることが第1人物112(ここでは「Aさん」と呼ぶものとする。)及び第2人物114に分かる。続くステップ232において、ロボット110は、第1人物112に対して、第2の質問をする。この例における第2の質問は、例えば「Aさんはお酒が好きだそうですけれど、やっぱり飲み会とか、好きですか?」のような質問である。ただし図4に示すステップ204において第1人物112の回答が「否定」のときには、ここでの質問は予め準備された別のものとなる。どのような質問を使用するかについてはシナリオにより予め準備されている。第1人物112はこの質問に対して回答する。第1人物112の回答としては例えば「はい好きです。」のようなものである。このときもロボット110は、第1人物112の回答に対して局所的肯定否定認識を行う。ステップ234においては、ロボット110はさらに、第1人物112に対してその理由を聞く質問(例えば「そうなんですか?なんでですか?」)をする。この質問も予めシナリオにより準備されていたものであり、回答として形容詞を含むものを想定している。この質問に対して第1人物112は何らかの回答をする。
【0095】
第1人物112の回答が例えば「楽しいからです」だったものとする。すると、ステップ236においてロボット110はこの回答に対し、回答が分からないふりをしてさらに理由について深掘り質問をする。
【0096】
より具体的には、このときロボット110は、図12に示される処理を実行する。すなわち、図12を参照して、ロボット110はステップ600において第1人物112の回答に対して音声認識をする。さらにロボット110は、ステップ602において音声認識により得られた文字列に対して形態素解析をする。その結果、ロボット110は認識された発話中に「楽しい」という形容詞を検出する。もとの質問が回答として形容詞を想定したものだったため、ステップ604の判定は肯定となり、ステップ606において第1の発話文解析が行われる。
【0097】
図13を参照して、第1の発話文解析のステップ632の判定は肯定であり、ステップ634の判定も肯定である。したがってステップ638が実行される。この例においては第1人物112の発話には形容詞が1つしか含まれていない。したがって発話に含まれていたただ1つの形容詞である「楽しい」が聞き返しワードに設定される。さらにステップ646においては、この聞き返しワードである「楽しい」を使用した質問発話文が生成される。ここでは、例えば「うん、<スロット>?何が<スロット>ですか?」が質問テンプレートとして準備されていたものとする。
【0098】
ステップ646においては図15の処理が行われる。より具体的には、この例においてはステップ702、706、710がこの順序により実行される。その結果、ロボット110の聞き返し質問発話は「うん、楽しい?何が楽しいんですか?」というものとなる。
【0099】
図12に戻り、ステップ610においてロボット110は第1人物112に対して「うん、楽しい?何が楽しいんですか?」という聞き返しを実行する。この「何が楽しいんですか?」という質問は、回答として名詞を想定した質問である。そして、それに対して第1人物112が何らかの回答、例えば「会話が楽しいからです。」のような回答をすることになる。
【0100】
再び図5を参照して、ロボット110は、ステップ236における深掘り質問に対する第1人物112の回答をステップ238において聞き、ステップ240においてその回答を聞いてもわからないようなふりをする。例えばロボット110が首を横に振る動作をしながら、第1人物112の発言が理解できないような発話をする。
【0101】
このとき、ロボット110はステップ236における処理と同様、第1人物112の発話に対して図12に示す処理を実行する。すなわちロボット110は、まず第1人物112の発話に対する音声認識を行い(ステップ600)、形態素解析をして(ステップ602)、第1人物112の発話に含まれる単語とその品詞を特定する。ステップ236において行われた深掘り質問は、名詞を想定したものである。したがって、ステップ604の判定は否定となり、ステップ608の処理が実行される。
【0102】
ステップ608においては、図14の処理が行われる。図14を参照して、この例においてはステップ662の判定が肯定となる。したがってステップ664が実行される。第1人物112の発話に含まれる名詞は1つだけ(「会話」)なので「会話」が聞き返しワードに設定される。ステップ672において聞き返しワードを使用した質問発話文が生成される。
【0103】
図15において実行される処理については繰り返さない。ここでは、質問発話文が「会話?うーーーん。ちょっとよくわからないんですけど、」というものだとする。第1人物112の回答を聞いてもよく理解できないことを強調するために、質問発話文の前に「うんうん。えーーー?」のような発話を挿入してもよい。この後、図12に戻り、ステップ610において聞き返しが実行される。
【0104】
再び図5に戻り、ステップ240において第1人物112の回答を来てもわからなかったふりをした後、ステップ242においてロボット110は第2人物114の方を向く。この動作の結果、ロボット110が今度は第2人物114に話しかけることが第2人物114に分かる。
【0105】
続くステップ246においてロボット110は、第2人物114(「Bさん」とする。)に対して、第1人物112の言っていることが分かるか聞く。ロボット110のこのときの発話は、例えば単に「Bさん、分かりますか?」のようなものでよい。
【0106】
こうした処理の結果、第2人物114がロボット110の問に対して、第1人物112の発話についての意味を第1人物112の視点から考え、ロボット110に対して説明をする。ロボット110は、第2人物114の回答を聞いて、第1人物112の発話について納得した動作をする。
【0107】
こうした一連の処理が終了した後、図4に示すステップ214の処理が実行され、3者対話が終了する。
【0108】
5 要素技術
上記実施形態を実現するためには、ロボットの制御において細かい技術が必要である。以下、主な技術について説明する。
【0109】
上記実施形態においては、必要な認識を行うために用いたセンサは、実際には、アンドロイドや対話する人間の周囲に設置した複数の深度センサ、マイクロフォンアレイ、カメラを含む。これらセンサからの情報を統合することにより、人間検出、追跡、話者認識、話者ごとの音声分離・音声認識を実現している。なお、上記実施形態においては人間の位置が検知できるのであればカメラは必須ではない。しかし、ロボットと人間との対話をする上ではカメラを用いた方が好ましい。
【0110】
ロボット110の発話音声について、感情的な発話を行う際に音声のピッチと速度を指定している。具体的には、速度については、ネガティブな感情の場合でもポジティブな感情の場合でも覚醒度が高まっている様子を表現するため速くしている。ピッチについては、ネガティブな感情の場合は低くし、ポジティブな感情の場合は高くしている。また、ロボット110の表情については、ポジティブな感情の場合は笑顔、ネガティブな感情の場合は「悲しみ」「嫌悪」などを表現する表情を生成する。感情に基づく表情生成については既存のものを使用した。
【0111】
今回のシナリオにおいては、ロボット110について以下のような感情状態を想定した。つまり、好きではない飲み会について話す際はネガティブな感情、飲み会が好きではない人物に共感し(必然的に、相手が2人共飲み会好きの場合、ポジティブな感情は出ない)話す際はポジティブな感情となる。
【0112】
上記実施形態においては、3者による対話を行うため、視線対象の切り替えが必要になる。ロボット110が2人に向かって話しかける場合、1個又は2個の発話区切りをもって視線をいずれかの相手に切り替え、どちらかに向かって話しかける場合、その人の方を向いて話す。
【0113】
ロボット110の動作生成においては、意識的動作と無自覚的動作、自動的動作を実現している。意識的動作においては、注意や指示の対象位置を指定することにより動きを生成する。今回の対話スクリプトにおいては、初対面の相手に名前を聞く際に、2人のうちどちらに聞いているのかを明示するために、対象者を向くとともに対象者に手を差し出すようなジェスチャを生成した。無自覚的動作においては、ロボットの感情状態を指定することによりそれらを表出する姿勢、表情、及び動きを生成する。自動的動作においては、身体的な拘束により自動的に生ずる動作を自動生成する。具体的には、ロボットの発話に伴う自動的な口唇や頭部動作、生理的に生じる動作(瞬きなど)である。
【0114】
第5 実験と効果
この発明の効果を確認するために以下のような実験を行った。この実験の目的は、一方の人間の意見について、他方の人間に代弁を求めることにより、人間同士の関係構築が促進されるかを検証することである。具体的には、ロボットしては人によく似たアンドロイドを用い、シナリオとしては図6に示すシナリオを用いた。そのために、実験においては、上記実施の形態に従った対話を行う実施形態条件と、意見を聞いた相手に直接聞き返すコントロール条件の2条件を用意した。
【0115】
すなわち、図16を参照して、実施形態条件740においては、まず第1パターン750においてアンドロイド780が被験者782と対話790する。その後、被験者782からの意見について第2パターン752においてアンドロイド780が実験者784と対話792して被験者782の代弁を求める。さらに対話を進め、第n-1パターン754においてはアンドロイド780が実験者784と対話794し、続く第nパターン756においてアンドロイド780が被験者782と対話796して第n-1パターン754における実験者784の意見の代弁を求めるようにした。
【0116】
一方、コントロール条件742の第1パターン760は実施形態条件740の第1パターン750と同じとし、第n-1パターン764は実施形態条件740の第n-1パターン754と同じとした。ただしコントロール条件742の第2パターン762においては、第1パターン760における被験者782の意見に関してアンドロイド780が被験者782とさらに対話800してその説明を求めるようにした。またコントロール条件742の第nパターン766においては、アンドロイド780が実験者784とさらに対話802してその説明を求めるようにした。
【0117】
なお、被験者と実験者との選好が好き/好き、好き/嫌い、嫌い/嫌いのいずれかに応じて、深掘り質問を行う場面をステップ308及び312、ステップ308及び312、並びにステップ310及び312に設定した。ステップ308、310及び312においける、深掘り質問が可能な質問は以下のとおりである。
【0118】
ステップ308:どうして飲み会好き?
ステップ310:飲み会で嫌だったことは何?
ステップ312:どうして飲み会で仲良くなった?
5-1 実験手順
この実験においては、アンドロイド1体を用い、人間2人(被験者1名と実験者1名)の計3名により3者対話を行う。この実験には、22名の被験者(男性7名、女性15名、平均年齢39.6歳、標準偏差12.3)が参加した。被験者間計画とし、実施形態条件に11名、コントロール条件に11名を割り当てた。話題は上において説明したような「飲み会」に対する選好と設定した。被験者には、もう一方の人間の対話参加者も、同じように採用された被験者であることを伝えた。これは、片方が実験者であることを知った状態で被験者が対話すると、実際の状況と異なる思考により対話する可能性があり、これを排除するためである。実験が終了した後、もう一方の対話参加者は、実際には実験者であることを開示した。被験者はまず、アンドロイドと実験者との対話を行う。その後、被験者は質問紙に記載された各質問に回答する。
【0119】
被験者への教示として、実験実施者は、「これから他の被験者の方といっしょにロボットと会話をしていただきます。ロボットから好き嫌いについて質問されることがあるかもしれませんが、できるだけ好きか嫌いかのどちらかでお答えください。どちらでもない、興味がない場合でも強いて言えばどちらかでお答えください。座ったらロボットから話しかけて来ます。」という文章を読み上げた。
【0120】
実験者の話し方に関する注意事項として、名前は「山田」とし、好き嫌いについてはどちらを答えてもかまわないこととした。また、好き嫌いのどちらにしても、実験者は曖昧ではなくはっきりとした意見を持って答えることとした。アンドロイドにもうひとりの意見について聞かれた際は、何でもよいので自分の考え・意見を言うこと、よくわからないといった回答はしないようにした。また、アンドロイドからの質問であってYES/NOで答えられるような質問には、実験者はYESと答えるようにした。
【0121】
5-2 評価項目(質問紙)
実験においては、対話に関する印象を評価する質問紙と、アンドロイド自体の印象を評価する質問紙の2種類を用意した。ただしここでは対話に関する印象を評価する質問についてのみ紹介する。
【0122】
対話に関する評価を行うために、下記12個の質問項目を用意した。1~4はアンドロイドとの対話に関する評価、5~9はもう一人の人間に関する評価、10~12は3者による対話全体に関する評価である。

質問1.アンドロイドは自分の言ったことを理解していると感じましたか?(アンドロイドの理解力)
質問2.アンドロイドと盛り上がったと感じましたか? (アンドロイドとの対話満足度)
質問3.アンドロイドと仲良くなったと感じましたか? (アンドロイドとの関係構築)
質問4.アンドロイドとまた話したいと感じましたか? (アンドロイドとの対話意欲)
質問5.もうひとりの被験者は自分の言ったことを理解していると感じましたか?(人間の理解力)
質問6.もうひとりの被験者と盛り上がったと感じましたか? (人間との対話満足度)
質問7.もうひとりの被験者と仲良くなったと感じましたか? (人間との関係構築)
質問8.もうひとりの被験者と会話したと感じましたか? (人間と対話した感覚)
質問9.もうひとりの被験者とまた話したいと感じましたか? (人間との対話意欲)
質問10.三人で盛り上がったと感じましたか? (3者での対話満足度)
質問11.三人で会話したと感じましたか? (3者で対話した感覚)
質問12.三人でまた話したいと感じましたか?(3者での対話意欲)

これら質問に対して、「1(まったくそう思わない)~7(とてもそう思う)」の7段階により被験者に選択させた。
【0123】
5-3 結果
この実験において得られた結果は以下のとおりである。
【0124】
実験者の発言について被験者にその代弁をするよう尋ねた際、代弁できないと述べた被験者はいなかった。被験者と実験者の選好の分布について、「好き・好き」(8)、「好き・嫌い」(6)、「嫌い・好き」(3)、「嫌い・嫌い」(5)の4パターンが考えられる。ただし、()内の数字は実験における分布を示す。この実験においては、被験者の選好によって必ずしも選好のパターンをコントロールできない(例えば、「好き・好き」を想定しても被験者が「嫌い」と言った場合は、想定通りにならない)。しかし、これらのバランスが可能な限り取れるように実験者の選好をコントロールした。
【0125】
対話に関する印象評価の結果を図17に示す。図17においてハッチングをしたグラフが実施形態条件の結果を示し、白抜きのグラフがコントロール条件の結果を示す。図17において各グラフ対の上に示す「*」は両者の間にp<0.05で有意差があることを示し、「†」はp<0.1で有意差があることを示す。各グラフのエラーバーは標準誤差を示す。
【0126】
t検定を各質問項目に対して行った結果、アンドロイドとの対話満足度(p=0.019)、アンドロイドとの対話意欲(p=0.022)、人間との対話満足度(p=0.031)、人間との関係構築(p=0.043)、人間との対話意欲(p=0.033)、3者での対話満足度(p=0.006)、3者での対話した感覚(p=0.049)、3者での対話意欲(p=0.007)において有意差が確認された。一方、p<0.05では、アンドロイドの理解能力(p=0.078)、人間の理解能力(p=0.066)、人間と対話した感覚(p=0.054)に関し、有意差は確認されなかった。
【0127】
実験の結果、まず、アンドロイドとの対話に対する印象評価について、実施形態による手法はアンドロイドとの対話を盛り上げ(対話満足度)、また話したい(対話意欲)という印象を有意に向上させることができた。また、もう一人の被験者(実際は実験者)との対話に対する印象評価について、実施形態による手法はもう一人の被験者(実験者)との対話を盛り上げ(対話満足度)、仲良くなった(関係構築)という印象を有意に向上させることができた。そして、3人での対話に対する印象について、実施形態による手法は対話の盛り上がり(対話満足度)、会話した感覚、また話したい(対話意欲)という印象を向上させることができた。
【0128】
第6 コンピュータのハードウェア構成
図18は、例えば図7に示す動作制御PC362として動作するコンピュータシステムの外観図である。図19は、図18に示すコンピュータシステムのハードウェアブロック図である。図7に示す音声認識PC368、音声合成PC372、及び人位置認識PC376についても動作制御PC362とほぼ同様の構成のコンピュータシステムにより実現できる。ここでは動作制御PC362の構成についてのみ述べることとし、他のPCの構成の詳細については述べない。
【0129】
図18を参照して、このコンピュータシステム950は、DVD(Digital Versatile Disc)ドライブ1002を有するコンピュータ970と、いずれもコンピュータ970に接続された、ユーザと対話するためのキーボード974、マウス976、及びモニタ972とを含む。もちろんこれらはユーザ対話が必要となったときのための構成の一例であって、ユーザ対話に利用できる一般のハードウェア及びソフトウェア(例えばタッチパネル、音声入力、ポインティングデバイス一般)であればどのようなものも利用できる。
【0130】
図19を参照して、コンピュータ970は、DVDドライブ1002に加えて、CPU(Central Processing Unit)990と、GPU(Graphics Processing Unit)992と、CPU990、GPU992、DVDドライブ1002に接続されたバス1010と、バス1010に接続され、コンピュータ970のブートアッププログラムなどを記憶するROM(Read-Only Memory)996と、バス1010に接続され、プログラムを構成する命令、システムプログラム、及び作業データなどを記憶するRAM(Random Access Memory)998と、バス1010に接続された不揮発性メモリであるSSD1000とを含む。SSD1000は、CPU990及びGPU992が実行するプログラム、並びにCPU990及びGPU992が実行するプログラムが使用するデータなどを記憶するためのものである。コンピュータ970はさらに、他端末との通信を可能とするネットワーク986(図7に示すネットワーク364)への接続を提供するネットワークI/F(Interface)1008と、USB(Universal Serial Bus)メモリ984が着脱可能で、USBメモリ984とコンピュータ970内の各部との通信を提供するUSBポート1006とを含む。
【0131】
コンピュータ970はさらに、マイクロフォン982及びスピーカ980とバス1010とに接続され、CPU990により生成されRAM998又はSSD1000に保存された音声信号、映像信号及びテキストデータをCPU990の指示に従って読み出し、アナログ変換及び増幅処理をしてスピーカ980を駆動したり、マイクロフォン982からのアナログの音声信号をデジタル化し、RAM998又はSSD1000の、CPU990により指定される任意のアドレスに保存したりする機能を持つ音声I/F1004を含む。
【0132】
上記実施形態においては、動作制御PC362、音声認識PC368、音声合成PC372、及び人位置認識PC376などの機能を実現するプログラムなどは、いずれも例えば図19に示すSSD1000、RAM998、DVD978又はUSBメモリ984、若しくはネットワークI/F1008及びネットワーク986を介して接続された図示しない外部装置の記憶媒体などに格納される。典型的には、これらのデータ及びパラメータなどは、例えば外部からSSD1000に書込まれコンピュータ970の実行時にはRAM998にロードされる。
【0133】
このコンピュータシステムを、図7に示す動作制御PC362、音声認識PC368、音声合成PC372、及び人位置認識PC376並びにその各構成要素の機能を実現するよう動作させるためのコンピュータプログラムは、DVDドライブ1002に装着されるDVD978に記憶され、DVDドライブ1002からSSD1000に転送される。又は、これらのプログラムはUSBメモリ984に記憶され、USBメモリ984をUSBポート1006に装着し、プログラムをSSD1000に転送する。又は、このプログラムはネットワーク986を通じてコンピュータ970に送信されSSD1000に記憶されてもよい。
【0134】
プログラムは実行のときにRAM998にロードされる。もちろん、キーボード974、モニタ972及びマウス976を用いてソースプログラムを入力し、コンパイルした後のオブジェクトプログラムをSSD1000に格納してもよい。上記実施形態のようにスクリプト言語の場合には、キーボード974などを用いて入力したスクリプトをSSD1000に格納してもよい。仮想マシン上において動作するプログラムの場合には、仮想マシンとして機能するプログラムを予めコンピュータ970にインストールしておく必要がある。音声認識及び音声合成などにはニューラルネットワークが使用される。訓練済のニューラルネットワークを使用してもよいし、会話ロボットシステム350において訓練を行ってもよい。
【0135】
CPU990は、その内部のプログラムカウンタと呼ばれるレジスタ(図示せず)により示されるアドレスに従ってRAM998からプログラムを読み出して命令を解釈し、命令の実行に必要なデータを命令により指定されるアドレスに従ってRAM998、SSD1000又はそれ以外の機器から読み出して命令により指定される処理を実行する。CPU990は、実行結果のデータを、RAM998、SSD1000、CPU990内のレジスタなど、プログラムにより指定されるアドレスに格納する。アドレスによってはロボットのアクチュエータへの指令、音声信号などとしてコンピュータから出力される。このとき、プログラムカウンタの値もプログラムによって更新される。コンピュータプログラムは、DVD978から、USBメモリ984から、又はネットワーク986を介して、RAM998に直接にロードしてもよい。なお、CPU990が実行するプログラムの中で、一部のタスク(主として数値計算)については、プログラムに含まれる命令により、又はCPU990による命令実行時の解析結果に従って、GPU992にディスパッチされる。
【0136】
コンピュータ970により上記した実施形態に係る各部の機能を実現するプログラムは、それら機能を実現するようコンピュータ970を動作させるように記述され配列された複数の命令を含む。この命令を実行するのに必要な基本的機能のいくつかはコンピュータ970上において動作するオペレーティングシステム(OS)若しくはサードパーティのプログラム、コンピュータ970にインストールされる各種ツールキットのモジュール又はプログラムの実行環境により提供される場合もある。したがって、このプログラムはこの実施形態のシステム及び方法を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令の中で、所望の結果が得られるように制御されたやり方によって適切な機能又はモジュールなどを静的にリンクすることにより、又は動的に呼出すことにより、上記した各装置及びその構成要素としての動作を実行する命令のみを含んでいればよい。そのためのコンピュータ970の動作方法は周知なので、ここでは繰り返さない。
【0137】
なお、GPU992は並列処理を行うことが可能であり、機械学習に伴う多量の計算を同時並列的又はパイプライン的に実行できる。例えばプログラムのコンパイル時にプログラム中に発見された並列的計算要素、又はプログラムの実行時に発見された並列的計算要素は、随時、CPU990からGPU992にディスパッチされ、実行され、その結果が直接に、又はRAM998の所定アドレスを介してCPU990に返され、プログラム中の所定の変数に代入される。
【0138】
第7 変形例
上記実施形態においては、会話ロボットシステム350が複数のPCを含み、互いにネットワークを介して通信している。しかしこの発明はそのような実施形態には限定されない。例えば十分に高い性能を持つPCであれば1台のみにより会話ロボットシステム350を実現することも可能である。また小型のコンピュータなら、必要な1又は複数のコンピュータを全てロボットの本体に組み込むこともできる。上記実施形態では、3者対話により初対面の人間の関係構築を試みている。しかしこの発明はそのような実施形態には限定されない。4者以上の場合であっても、ロボットを中心とする3者対話を核として組み合わせれば、3者対話と同様の効果を得ることができると考えられる。
【0139】
また、上記実験ではロボットとしてアンドロイドを用いた。アンドロイドは人間にそっくりであり、したがって3者対話に適したものと考えられる。しかし、ロボットはアンドロイドに限定されるわけではない。例えば小型で人型のエージェントロボットを使用してもよい。またロボットとしては人型に限らず、動物の形をしたものでもよい。さらに、広い意味で、映像として実現されモニタに表示される人物、アンドロイド、エージェント等もロボットと同様のものと考えることができる。
【0140】
さらに、上記実施形態及び実験では、ロボットは聞き返しを1度だけ行っている。しかしこの発明はそのような実施形態には限定されない。聞き返しを2度以上行ってもよい。
【0141】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。
【符号の説明】
【0142】
R、110、360 ロボット
350 会話ロボットシステム
362 動作制御PC
364、986 ネットワーク
366、982 マイクロフォン
368 音声認識PC
370、980 スピーカ
372 音声合成PC
374 人位置センサ
376 人位置認識PC
400 人位置認識
402 音声認識
404 対話制御
406 音声合成
408 動作制御
450 シナリオ
502 動作制御モジュール
504 音声合成モジュール
510 記憶装置
512 対話シナリオ制御
514 感情状態管理
516 音声合成パラメータ制御
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19