以下、図面を参照して、本発明の実施形態について説明する。
図1は、本実施形態におけるロボット(会話支援システム)100が備える機能構成の概略を示す図である。ロボット100は、一人又は複数人の利用者と会話を行うことができるロボットである。
図1に示すように、ロボット100は、マイク101と、カメラ102と、センサ103と、音声入力部104と、映像入力部105と、センサ入力部106と、発話区間検出部107と、利用者情報取得部108と、動作制御部109と、音制御部110と、口部制御部111と、視線制御部112と、頭部制御部113と、胴部制御部114と、スピーカ115と、口部駆動部116と、眼部駆動部117と、頭部駆動部118と、胴部駆動部119とを備える。
マイク101は、会話する利用者の音声等を含むロボット100の周囲の音を集音して、音声信号を含む音信号(以下の説明では単に音声信号という)を出力する。カメラ102は、会話する利用者の映像を撮影して、映像信号を出力する。センサ103は、会話する利用者の位置を感知するセンサであり、センサ信号を出力する。
音声入力部104は、マイク101からの音声信号が入力され、発話区間検出部107、利用者情報取得部108及び音制御部110に音声信号を出力する。音声入力部104は、マイク101からの音声信号を、ロボット100内で処理可能な信号形式の音声信号に変換する等の処理を行う。映像入力部105は、カメラ102からの映像信号を入力とし、利用者情報取得部108へ映像信号を出力する。映像入力部105は、カメラ102からの映像信号を、ロボット100内で処理可能な信号形式の映像信号に変換する等の処理を行う。センサ入力部106は、センサ103からのセンサ信号を入力とし、利用者情報取得部108へセンサ信号を出力する。センサ入力部106は、センサ103からのセンサ信号を、ロボット100内で処理可能な信号形式のセンサ信号に変換する等の処理を行う。
発話区間検出部107は、音声入力部104からの音声信号に基づいて、任意の窓幅を設けてその区間内の音声信号のパワー、ゼロ交差数、周波数などを、音声の特徴を示す値である音声特徴量として算出する。発話区間検出部107は、算出した音声特徴量と所定の閾値を比較して発話区間を検出する。発話区間検出部107は、検出した発話区間に関する情報である発話区間情報を利用者情報取得部108及び音制御部110へ出力する。なお、マイク101から取得される音声信号において、音声の存在する区間(発話区間)と音声の存在しない区間(非発話区間)を自動的に検出するVAD(Voice Activity Detection)技術は、以下の公知文献1に示すように公知の技術である。発話区間検出部107は、公知のVAD技術を用いて発話区間を検出する。
公知文献1:澤田 宏、外4名、"多人数多マイクでの発話区間検出〜ピンマイクでの事例〜"、日本音響学会 春季研究発表会、pp.679−680、2007年3月
利用者情報取得部108は、音声入力部104からの音声信号と、映像入力部105からの映像信号と、センサ入力部106からのセンサ信号と、発話区間検出部107からの発話区間情報とに基づいて、利用者に関する情報である利用者情報を取得する。利用者情報取得部108は、取得した利用者情報を動作制御部109へ出力する。利用者情報としては、例えば、利用者の位置に関する情報である位置情報及び利用者の中で発話中である現話者の位置を特定する現話者情報がある。
位置情報は、センサ103のセンサ信号に基づいて取得してもよいし、映像信号に基づいて取得してもよいし、センサ103のセンサ信号及び映像信号に基づいて取得してもよい。現話者情報は、位置情報と、発話区間検出部107からの発話区間情報と、映像信号とに基づいて取得する。なお、マイク101は、複数の各利用者それぞれに装着された複数のマイクで構成される。発話区間情報は、どのマイクからの音声信号に基づいた発話区間であるか識別するための情報を含む。利用者情報取得部108は、このマイクを識別することで、映像信号に基づいて識別したマイクを装着している現話者及び当該現話者の位置を特定して現話者情報を取得する。
動作制御部109は、利用者情報取得部108からの利用者情報を入力とし、音制御部110、口部制御部111、視線制御部112、頭部制御部113及び胴部制御部114に対して動作制御信号を出力する。
複数人が会話している際に、非話者である人が次話者として発話する直前に行う行動を解析した結果、以下の(1)〜(3)の行動が「次は私が話を始めます」ということを周囲に示す行動であると考えられる。
(1)吸気音又はフィラーを発声する
(2)現話者に視線向ける
(3)現話者の会話に頷く
上述した解析結果を参考にして、動作制御部109は、ロボット100の発話前に、ロボット100に上述した(1)〜(3)の動作(会話支援動作)を行わせるよう制御することで、ロボット100がもうすぐ発話を開始することを利用者に予見させることができる。ロボット100が行う発話開始を前もって周囲に伝える会話支援動作は、他の動作パターンもあり、その詳細については後述する。
利用者情報取得部108からの利用者情報を入力とし、音制御部110、口部制御部111、視線制御部112、頭部制御部113及び胴部制御部114に対して動作制御信号を出力する。動作制御部109は、音制御部110へ動作制御信号として音制御信号を出力する。動作制御部109は、口部制御部111へ動作制御信号として口部制御信号を出力する。動作制御部109は、視線制御部112へ動作制御信号として視線制御信号を出力する。動作制御部109は、頭部制御部113へ動作制御信号として頭部制御信号を出力する。動作制御部109は、胴部制御部114へ動作制御信号として胴部制御信号を出力する。
音制御部110は、音声入力部104からの音声信号と、発話区間検出部107からの発話区間情報と、動作制御部109からの音制御信号とに基づいて、スピーカ115に対して音信号を出力する。口部制御部111は、動作制御部109からの口部制御信号に基づいて、口部駆動部116に対して口部駆動信号を出力する。視線制御部112は、動作制御部109からの視線制御信号に基づいて、眼部駆動部117に対して眼部駆動信号を出力する。頭部制御部113は、動作制御部109からの頭部制御信号に基づいて、頭部駆動部118に対して頭部駆動信号を出力する。胴部制御部114は、動作制御部109からの胴部制御信号に基づいて、胴部駆動部119に対して胴部駆動信号を出力する。
ここで、本実施形態におけるロボット100の外観及び構成の一例について説明するとともに、口部駆動部116、眼部駆動部117、頭部駆動部118及び胴部駆動部119の各駆動部が駆動する対象について説明する。図2は、本実施形態におけるロボット100の外観及び構成の具体例を示す図である。図2に示すように、ロボット100は、例えば、人間の上半身をモデルとした形状のヒューマノイドロボット(人型ロボット)である。ロボット100は、発話を行う発話機能、人の音声を認識する音声認識機能、利用者を撮影するカメラ機能を少なくとも備える。ロボット100は、黒目を移動可能な右目21a及び左目21bと、開閉可能な口部22とが配置された顔を有する頭部23を備える。頭部23は、右目21a及び左目21bの黒目(視線)を移動させる眼部駆動部117と、口部22の開閉を行う口部駆動部116とを内蔵している。
ロボット100は、頭部23に対して所定の動き(例えば、頷かせたり、顔の方向を変えたりする動き)を行わせる頭部駆動部118を備え、頭部23を支持する頸部24と、頸部24を支える胴部25とを備える。胴部25は、右腕25aと左腕25bとが側面上部に設けられている。胴部25は、呼吸をしているかのように、肩を動かしたり、胸の部分を膨らませたりする胴部駆動部119を内蔵している。また、頭部23の右目21a、左目21bの間には、カメラ102が設置されている。以下の説明において、右目21a、左目21bをまとめて眼部21とする。
スピーカ115は、音制御部110からの音信号に基づいて発音する。スピーカ115は、例えば、口部22の内部に設置され、ロボット100が発話する音声を出力する。口部駆動部116は、口部制御部111からの口部駆動信号に基づいてロボット100の口部22の開閉を行う。眼部駆動部117は、視線制御部112からの眼部駆動信号に基づいてロボット100の眼部21における黒目の方向(=ロボット100の視線の方向)を制御する。
頭部駆動部118は、頭部制御部113からの頭部駆動信号に基づいてロボット100の頭部23の動きを制御する。胴部駆動部119は、胴部制御部114からの胴部駆動信号に基づいてロボット100の胴部25の形状を制御する。また、胴部駆動部119は、胴部制御部114からの胴部駆動信号に基づいてロボット100の右腕25a及び左腕25bの動きも制御する。
次に、本実施形態における動作制御部109の構成の詳細について一例を示して説明する。
図3は、本実施形態における動作制御部109の構成の詳細の具体例を示す図である。動作制御部109は、発話制御部301と、動作パターン情報格納部302と、動作制御信号生成部303とを備える。発話制御部301は、ロボット100の発話の開始タイミングを指示する発話タイミング信号を出力する。この発話タイミング信号は、所定秒数後または任意の秒数後にロボット100が発話を開始するよう音制御部110へ指示する信号である。
発話制御部301が、ロボット100においてどのタイミングで発話を行うかを判断する方法は、どのような方法であってもよく公知の技術を用いてよい。例えば、利用者が近づいてきた数秒後に発話を開始したり、利用者から特定の言葉をかけられた数秒後に発話を開始したり、利用者の発話が終わって数秒後に発話を開始したり、色々な方法が考えられる。図3には示していないが、発話制御部301は、必要に応じて、音声入力部104から音声信号を受信したり、映像入力部105から映像信号を受信したりする構成としてもよく、受信した音声信号や映像信号に基づいて発話の開始タイミングを制御してもよい。
動作パターン情報格納部302は、ロボット100が発話を開始する前に、これから発話を行うことを利用者に察知させるようロボット100に行わせる動作の動作パターンの情報である動作パターン情報を格納する。なお、動作パターン情報は、例えば、現話者に視線を移動させる動作パターン及び頭部23を頷かせる動作パターンを含む。動作制御信号生成部303は、発話制御部301からの発話タイミング信号と、利用者情報取得部108からの利用者情報とに基づいて、動作パターン情報格納部302から動作パターン情報を取得して、ロボット100が発話を開始する前に、これから発話を行うことを利用者に察知させる動作をロボット100に行わせるための動作制御信号を生成し、出力する。動作制御信号生成部303は、発話タイミング信号を動作制御信号に含めて出力する。
動作制御信号生成部303は、音制御部110からロボット100の発話する内容を含む会話情報を取得する。動作制御信号生成部303は、会話情報と発話タイミング信号とから、ロボット100の発話の終了時間を推定する。動作制御信号生成部303は、ロボット100が発話中に、推定した終了時間に基づいて発話の残り時間を定期的に監視し、残り時間が所定時間以上であれば、継続信号を生成し、動作制御信号に含めて出力する。動作制御信号生成部303は、終了時間を経過したと判断した場合は、非話者の動作を行う動作制御信号を生成し出力する。
次に、本実施形態における音制御部110の構成の詳細について一例を示して説明する。
図4は、本実施形態における音制御部110の構成の詳細の具体例を示す図である。音制御部110は、音声解析部401と、会話情報生成部402と、会話情報DB(データベース)403と、会話支援情報生成部404と、呼吸音情報格納部405と、フィラー情報格納部406と、発声情報生成部407と、音信号生成部408とを備える。ここで、フィラーとは、言い淀み時などに出現する場つなぎのための発声であり、例えば、「あのー」、「そのー」、「えっと」、等の音声である。
会話情報DB403は、ロボット100に会話させるための会話サンプル情報を格納する。会話サンプル情報とは、日常の会話でよく使われる名詞、「こんにちは」等の挨拶及び「ありがとうございます」、「大丈夫ですか」等の日常会話でよく利用するフレーズの音声信号を含む情報である。
呼吸音情報格納部405は、ロボット100に発音させる呼吸音の情報である呼吸音情報を格納する。呼吸音情報は、例えば、「スーッ」又は「シュー」という人が吸気する際に出す吸気音の音声信号を含む情報である。フィラー情報格納部406は、ロボット100に発音させるフィラーの情報であるフィラー情報を格納する。フィラー情報は、「あのー」、「そのー」、「えっと」等のフィラーの音声信号を含む情報である。
音声解析部401は、音声入力部104からの音声信号と、発話区間検出部107からの発話区間情報とに基づいて、音声を解析しその内容(言葉)を特定し、解析結果を出力する。音制御部110が動作制御部109から受信する音制御信号は、ロボット100の発話開始の発話タイミング信号又は継続信号を含む。
会話情報生成部402は、音声解析部401の解析結果に基づいて、ロボット100の発話内容となる会話情報を生成する。会話情報生成部402は、音声解析部401の解析結果に基づいて、会話する内容に応じた会話サンプル情報を会話情報DB403から取得する。会話情報生成部402は、取得した会話サンプル情報に基づいて、会話情報を生成する。会話情報生成部402は、動作制御部109からの音制御信号を受信したことに応じて、生成した会話情報を、動作制御部109及び発声情報生成部407へ出力する。
会話支援情報生成部404は、動作制御部109からの音制御信号に基づいて、呼吸音情報格納部405から呼吸音情報を取得し、フィラー情報格納部406からフィラー情報を取得する。会話支援情報生成部404は、取得した呼吸音情報及びフィラー情報の少なくとも一つを含む会話支援情報を生成し、発声情報生成部407へ出力する。この会話支援情報は、ロボット100が発話する前に発音する呼吸音及びフィラーの少なくとも一つを含む。
なお、会話支援情報生成部404は、動作制御部109からの音制御信号に基づいて、呼吸音情報及びフィラー情報を取得しない場合もあり、この場合は、会話支援情報を出力しない。なお、図4には示していないが、会話支援情報生成部404は、会話情報生成部402が生成した会話情報を受信して、受信した会話情報に基づいて呼吸音やフィラーの種類を決定する構成としてもよい。
発声情報生成部407は、会話情報生成部402からの会話情報と、会話支援情報生成部404からの会話支援情報とに基づいて、ロボット100が発声するための発声情報を生成する。発声情報生成部407は、生成した発声情報を音信号生成部408へ出力する。音信号生成部408は、発声信号に基づいてスピーカ115から発音させるための音信号を生成して、スピーカ115へ出力する。
以上の構成により、ロボット100は、発話を行う前に、動作制御信号に基づいて視線を利用者に向けたり、呼吸音やフィラーを発音したりすることができる。これにより、利用者は、ロボット100が発話を開始する前に、ロボット100がまもなく発話することを予見することができる。この予見により、利用者とロボット100との発話衝突を防ぎ、スムーズな会話を実現することができる。
図5は、本実施形態におけるロボット100の会話支援動作の具体例を示す図である。図5に示すとおり、ロボット100と発話中の利用者である現話者50とがいる場合の具体例について説明する。図5の左側は、現話者50の話をロボット100が聞いている状態を示している。図5の右側は、図5の左側の状態からロボット100が発話を開始する直前の動作を示している。図5の右側に示すとおり、ロボット100は、発話開始の直前に、頭部23を矢印51に示す方向に回転させることで、視線を現話者50に向ける。その頭部23の回転と同時又は前後して口部22内にあるスピーカ115から「スーッ」という吸気音52を発音する。これにより、現話者50は、ロボット100がもうすぐ発話することを予見することができる。
次に、本実施形態におけるロボット100の会話動作について説明する。
図6は、本実施形態におけるロボット100の会話動作を示すフロー図である。図6に示すように、ロボット100が会話モードに設定されることにより会話動作を開始する(ステップS100)。利用者の発話を集音したマイク101から音声信号が音声入力部104に入力され、利用者を撮影したカメラ102から映像信号が映像入力部105に入力され、利用者の位置を検出したセンサ103からセンサ信号がセンサ入力部106に入力される(ステップS101)。
なお、動作制御部109は、ステップS101において、ロボット100の動作を非話者の動作に制御する。ここで非話者とは、発話していない者のことであり、現話者の話を聞いている者のことでもある。また、非話者の動作とは、例えば、任意のタイミングで軽く頷いたり、任意のタイミングで瞬きしたり、任意のタイミングで相槌を打ったりする動作である。
発話区間検出部107は、音声入力部104からの音声信号に基づいて発話区間を検出する。利用者情報取得部108は、音声信号、映像信号、センサ信号及び発話区間情報に基づいて、利用者に関する情報であって現話者を特定する情報を含む利用者情報を取得する(ステップS102)。
ここで、動作制御部109内の発話制御部301が所定時間後の発話開始を指示する発話タイミング信号を出力した場合(ステップS103のYES)は、動作制御信号生成部303が発話開始前に行う会話支援動作を指示する動作制御信号を生成する。この動作制御信号に応じて音制御部110、口部制御部111、視線制御部112、頭部制御部113及び胴部制御部114は、ロボット100の各部を動かし、発話開始前の所定のタイミングで会話支援動作を行わせる(ステップS104)。また、動作制御部109内の発話制御部301が発話タイミング信号を出力していない場合(ステップS103のNO)は、ステップS101に戻る。
音制御部110は、発話タイミングに応じて発話するための音声信号を生成し、スピーカ115に出力する。これによりスピーカ115は、発話する。この時、動作制御部109は、発話に合わせて口部22を開閉したり、発話内容に合わせてロボット100の頭部23、右腕25a及び左腕25bを動かしたりする(ステップS105)。これにより、ロボット100は、発話に応じた動作である発話動作を行う。
動作制御部109は、所定時間内に発話が終了するか否かを判断する(ステップS108)。ここで所定時間内に発話が終了しないと判断した場合(ステップS108のNO)には、動作制御部109は、ロボット100に対して発話の継続を周囲に知らせる会話支援動作を行わせるように、継続信号を含む動作制御信号を出力する。これにより、ロボット100は、利用者から視線をそらす等の発話を継続することを周囲の利用者に知らせる会話支援動作を行う(ステップS107)。ステップS107の処理の後は、ステップS105に進む。また、所定時間内に発話が終了すると判断した場合(ステップS106のYES)には、動作制御部109は、発話が終了したか否かを判断する(ステップS108)。
発話が終了したと判断した場合(ステップS108のYES)には、動作制御部109は、会話動作を終了するか否かを判断する(ステップS109)。また、発話が終了していない判断した場合(ステップS108のNO)には、動作制御部109は、ステップS108に戻り、発話が終了するまで発話を続けるようロボット100を制御する。
会話動作を終了すると判断した場合(ステップS109のYES)には、動作制御部109は、会話動作を終了する(ステップS110)。会話動作を終了しないと判断した場合(ステップS109のNO)には、動作制御部109は、ステップS101に戻る。
以上に説明したように、本実施形態におけるロボット100は、会話動作として、発話前又は発話継続時に行う会話支援動作と、発話時に行う発話動作とを含む会話動作を行うことができる。また、本実施形態におけるロボット100は、発話を行う前に、動作制御信号に基づいて視線を利用者に向けたり、呼吸音やフィラーを発音したりすることができる。これにより、利用者は、ロボット100が発話を開始する前に、ロボット100がまもなく発話することを予見することができる。また、ロボット100は、発話中に、まだ発話が終わらないことを示す発話継続を周囲の利用者に予め知らせることができる。これにより、ロボット100の発話がまだ終わっていないのに、終わったと勘違いした利用者が発話を初めてしまうことを防ぐことができる。ロボット100は、上述したような会話支援動作を行うことで、利用者との発話衝突を防ぎ、利用者とのスムーズな会話を実現することができる。
次に、動作パターン情報格納部302格納する動作パターン情報の具体例について、視線の動作パターン情報及び頭部の動きの動作パターン情報のそれぞれについて説明する。
<視線の動作パターン情報>
たとえば、下記の公知文献2には、人間が現話者の発話末(次発話の直前)に行う視線移動のパターンについて調査結果が記載されている。図7は、公知文献2において、現話者が、話者継続時と話者交替時とで、どのような視線行動を行うかを、分析した結果を示す図である。
公知文献2:石井亮、外4名、“複数人対話における注視遷移パターンに基づく次話者と発話タイミングの予測”、人工知能学会研究会資料、SIG-SLUD-B301-06、pp.27-34、2013年
図7において、パターンなし(白色)の棒は、話者継続時に現話者がどのような視線行動をどれくらいの頻度で行うかを示している。斜線パターンの棒は、話者交替時に現話者がどのような視線行動をどれくらいの頻度で行うかを示している。また、図7における視線行動のラベルは下記のような意味を持つ。
X:人物以外を注視
L1〜L2:非話者を注視(相互注視無)
L1M〜L2M:非話者と相互注視
図8は、公知文献2において、非話者が、発話継続時と話者交替時とで、どのような視線行動を行うかを、分析した結果を示す図である。図8において、パターンなし(白色)の棒は、話者継続時に非話者がどのような視線行動をどれくらいの頻度で行うかを示している。斜線パターンの棒は、話者交替時に非話者がどのような視線行動をどれくらいの頻度で行うかを示している。また、図8における視線行動のラベルは下記のような意味を持つ。
S:現話者を注視(相互注視無)
SM:現話者と相互注視
L1〜L2:非話者を注視(相互注視無)
L1M〜L2M:非話者と相互注視
このような図7、図8の結果に基づいて、ロボット100の発話直前の視線行動を制御する動作パターン情報を生成し、動作パターン情報格納部302に格納する。具体的には、ロボット100が、現話者であり、次に発話を続けるとき(話者継続時)は、図7のパターン無しの棒で示される視線行動と発生頻度に基づいて、視線行動の動作パターン情報を生成する。ロボット100が、非話者であり、次の発話を始めるとき(話者交替時)は、図8の斜線パターンの棒で示される視線行動と発生頻度に基づいて、視線行動の動作パターン情報を生成する。このとき、SMと、L1M〜L2Mは、それぞれ現話者と非話者との相互注視を示しているが、人間の視線行動を計測しないとこの相互注視の判定はできない。よって、SMと、L1M〜L2Mは、それぞれ、Sと、L1〜L2に置き換えて考えても良い。また、各視線行動の開始タイミングは、例えば、早くとも発話開始の5秒前から始める。
<頭部の動きの動作パターン情報>
たとえば、下記の公知文献3には、人間の発話の直前に起こる頭部動作を分析した結果が記載されている。公知文献3では、人間の頭部の位置(X,Y,Z)、回転角(Azimuth, Elevation, Roll)を30Hzで計測している。また、現話者の発話末から前3秒間における、頭部の位置(X,Y,Z)及び回転角(Azimuth, Elevation, Roll)のそれぞれの1秒間の平均変化量(MO)、パラメータ変化を波系として捉えた時の平均振幅(AM)、1秒間の波形の平均周波数(FQ)を求めて分析している。
図9は、公知文献3において、現話者が、話者継続時と話者交替時とで、頭部の位置(X,Y,Z)及び回転角(Azimuth, Elevation, Roll)のそれぞれの1秒間の平均変化量(MO)、パラメータ変化を波系として捉えた時の平均振幅(AM)、1秒間の波形の平均周波数(FQ)の平均値を分析した結果を示す図である。
公知文献3:石井 亮、外3名、“複数人対話での話者交替に関する頭部動作の分析 〜次話者と発話開始タイミングの予測モデルの構築に向けて〜”、HCGシンポジウム、2014年
図9において、パターンなし(白色)の棒は、話者継続時における現話者の頭部の動きを示している。斜線パターンの棒は、話者交替時における現話者の頭部の動きを示している。図10は、公知文献3において、非話者が、話者継続時と話者交替時とで、頭部の位置(X,Y,Z)及び回転角(Azimuth, Elevation, Roll)のそれぞれの1秒間の平均変化量(MO)、パラメータ変化を波系として捉えた時の平均振幅(AM)、1秒間の波形の平均周波数(FQ)を分析した結果を示す図である。図10において、パターンなし(白色)の棒は、話者継続時における非話者の頭部の動きを示している。斜線パターンの棒は、話者交替時における非話者の頭部の動きを示している。縦線パターンの棒は、話者交替時における次話者の頭部の動きを示している。
このような図9、図10の結果に基づいて、ロボット100の発話直前の頭部の動きを制御する動作パターン情報を生成し、動作パターン情報格納部302に格納する。具体的には、ロボット100が、現話者であり、次に発話を続けるとき(話者継続時)は、図9のパターン無しの棒で示される頭部行動の結果に基づいて、頭部の位置(X,Y,Z)及び回転角(Azimuth, Elevation, Roll)のパラメータを規定する動作パターン情報を生成する。
具体的に、図9、図10に示す各棒は、各パラメータの発話末から前3秒間の平均値を示している。このため、実際にはこの平均値からある程度のばらつきを加味して、動作パターンのパラメータを設定する。例えば、これらの各パラメータが正規分布にのっとって現れるとして、正規分布の確率にのっとって、各パラメータが平均値からばらついた値を出力する。これにより、動作パターンのパラメータとして出力されるのは、3秒間の間に生成する頭部の位置(X,Y,Z)及び回転角(Azimuth, Elevation, Roll)のパラメータの1秒間の平均変化量(MO)、パラメータ変化を波系として捉えた時の平均振幅(AM)及び1秒間の波形の平均周波数(FQ)の各々に、正規分布に応じたばらつきが加味された値である。このパラメータを利用して、ロボット100が3秒間で行う頭部運動として、パラメータの条件を満たすような頭部運動となる動作パターンのパラメータを生成する。具体的な動作例として、(X,Y,Z)のパラメータについてのみ簡単に説明すると、(X,Y,Z)のパラメータのMOがそれぞれ30cm、(X,Y,Z)のパラメータのAMがそれぞれ2cm、(X,Y,Z)のパラメータFQが3Hzである場合は、3秒間の内に、(X,Y,Z)の各パラメータがそれぞれ90cm移動し、(X,Y,Z)の各パラメータの波形の振幅が平均して2cmに、(X,Y,Z)のパラメータが3秒間で9つの波を打つように頭部運動させる(X,Y,Z)の動作パターンの各パラメータを変化させる。
ロボット100が、非話者であり、次の発話を始めるとき(話者交替時)は、図10の斜線のパターンの棒で示される頭部行動の結果に基づいて、頭部の位置(X,Y,Z)及び回転角(Azimuth, Elevation, Roll)のパラメータを規定する動作パターン情報を生成する。また、頭部動作の開始タイミングは、例えば、早くとも発話開始の5秒前から始める。
次に、呼吸音動作の具体例について説明する。
たとえば、下記の公知文献4には、人間の発話の直前に起こる呼吸動作の特徴が明らかにされている。公知文献4に記載されているように、現話者は話者継続時に、発話終了直後すぐに、短く、急激に吸気する。またその吸気開始のタイミングは、次発話開始から平均350ミリ秒前である。話者交替時の次話者の発話直前の呼気は、多く、急激に、深く、吸気を行う。またその吸気開始のタイミングは、次発話開始から平均900ミリ秒前である。
よって、ロボット100が、発話を継続するときは、次発話開始から平均350ミリ秒前に、短い、急激な吸気を行っているような吸気音をスピーカ115から出力する動作パターン情報を生成する。また、ロボット100が、新たに発話を開始する際には、次発話開始から平均900ミリ秒前に、多く、急激に、深い吸気を行っているような吸気音を出力する動作パターン情報を生成する。例えば動作パターンの一例として、多く、急激に、深い吸気を行う場合は、通常の吸気音に比べて、音量が大きく、継続時間が長いような吸気音声の生成を行う。また、これに伴って、人間が吸気をした際と同じように、吸気時に胴部25における胸付近(人間であれば肺がある付近)を膨らませて、肩を少し上げる、頭部23の顎を上げるという動作の動作パターン情報を合わせて生成しても良い。
またより詳細な、呼吸動作の制御方法として、公知文献4に挙げられている人間の呼吸動作を再現するような呼吸動作を行う動作パターンを生成しても良い。公知文献4では、人間の腹部または胸部にバンド式の呼吸センサを装着し、腹部や胸部の長さを基に、肺気量(公知文献4ではRSP値と定義している)を計測している。そして、話者継続、交替時の現話者や次話者の吸気の特徴を分析的に明らかにしている。ここでいう肺気量を、各人物の平均肺気量を0、平均値+標準偏差の値が−1,1となるように正規化されている。具体的には、公知文献4に示す図4〜7は、話者継続時と交替時に、現在の話者(現話者)が発話終了直後にどのような吸気を行うかを、下記のパラメータを定義して、分析した結果(いくつかのサンプルから平均値を求めた結果)である。
・MIN: 息の吸い込み開始時のRSP値、すなわち、息の吸い込み区間のRSP値の最小値
・MAX: 息の吸い込み終了時のRSP値、すなわち、息の吸い込み区間のRSP値の最大値
・AMP: 息の吸い込み区間のRSP値の波形の振幅
・DUR: 息の吸い込み区間の長さ
・SLO: 息の吸い込み区間におけるRSP値の波形の1秒間当たりの傾きの平均値
・INT1: 現話者のIPU(Inter-Pausal Unit)末から息の吸い込みが開始されるまでの間隔
・INT2: 息の吸い込み開始時から次話者のIPUが開始されるまでの間隔
・INT3: 息の吸い込み終了時から次話者のIPUが開始されるまでの間隔
これらのパラメータを利用すれば、ロボット100の肺気量(胸部、腹部の長さ)を制御することが可能である。
具体的にロボット100が現話者であり続けて発話を行う際には、公知文献4の図4〜7の青い棒が人間の話者継続時の発話終了直後(次の発話の開始直前)に起こる吸気の各パラメータの分析結果であるから、ロボット100も同じ値を取るような吸気行動を行わせるような制御を行う。具体的には、胸部、腹部の長さをMIN、MAX、AMP、DUR、SLOの値にのっとって制御する。また、INT1、INT2、INT3のパラメータから、発話の終了時刻に対して、吸気の開始・終了時刻、次の発話の開始時刻を取得して、人間と同じようなタイミングで吸気と次の発話の制御を合わせて行うことも可能である。公知文献4に示された吸気の各パラメータは、頭部運動の際と同様に、あくまでも平均値であるから、ある程度ばらつきを考慮して、パラメータを生成しても良い。
次に、ロボット100以外の人物が発話者であり、ロボット100が非話者であって、新たに発話を行う際の動作パラメータについて説明する。公知文献4に示す図8〜図11の紫の棒は、人間の話者交替時の次話者が、現話者の発話終了付近で(次の発話の開始直前で)、どのような吸気を行うかを、上記の各パラメータを用いて分析をおこなった結果である。上述した吸気の動作と同様に、ロボット100は、人間の吸気行動と同じような吸気行動を行わせるような腹部・胸部の長さの制御を行うことで発話開始を合図することが可能である。具体的には、胸部、腹部の長さをMIN、MAX、AMP、DUR、SLOの値にのっとって制御する。また、INT1、INT2、INT3のパラメータから、発話の終了時刻に対して、吸気の開始・終了時刻と、次の発話の開始時刻を合わせて制御可能である。公知文献4に示された吸気の各パラメータは、頭部運動の際と同様に、あくまでも平均値であるから、ある程度ばらつきを考慮して、パラメータを生成しても良い。
公知文献4:石井 亮、外3名、“複数人対話での話者交替に関する呼吸動作の分析 〜次話者と発話開始タイミングの予測モデルの構築に向けて〜”、信学技報、vol.114、no189、HCS2014−49、pp.35−40、2014年
次に、フィラー動作の具体例について説明する。
公知文献5には、フィラーが発生する局面の一つとしてとして、発話の冒頭や、発話と発話の合間に現れることが記載されている。このようなフィラーは、発話の開始の合図や、発話の継続を周囲の利用者に知らせる機能を有することも記載されている。
公知文献5:山根智恵(2002)『日本語の談話におけるフィラー』、日本語研究叢書15、くろしお出版
ロボット100は、早くとも発話開始の5秒前にフィラーを発生することによって、発話開始を事前に通知する。
なお、本実施形態におけるロボット100は、マイク101、カメラ102、センサ103、音声入力部104、映像入力部105、センサ入力部106、発話区間検出部107、利用者情報取得部108及び動作制御部109を内蔵する構成としたが、それらを備える別装置を設ける構成としてもよい。例えば、ロボット100と通信可能な会話支援装置を設け、その会話支援装置が、マイク101、カメラ102、センサ103、音声入力部104、映像入力部105、センサ入力部106、発話区間検出部107、利用者情報取得部108及び動作制御部109を備える構成としてもよい。なお、会話支援装置は少なくとも動作制御部109を備える構成であればよい。すなわち、動作制御部109以外の構成については、会話支援装置内に備える構成しても、ロボット100内に備える構成としてもよい。
ロボット100は、その体の一部をディスプレイ等の表示部に体の一部を表示する構成であっても良く、全身が仮想的な人物であるエージェントとして表示部に表示されるものであってもよい。ロボット100の体の一部を表示部で表現するとは、例えば、顔全体が表示部となっており、その表示部に顔の画像を表示する構成等が考えられる。表示部に表示した顔の画像を変化させていろいろな表現を行うことができる。話者となるエージェントを表示部に表示する表示装置は、ロボット100と同様に、マイク101と、カメラ102と、センサ103と、音声入力部104と、映像入力部105と、センサ入力部106と、発話区間検出部107と、利用者情報取得部108と、動作制御部109と、音制御部110と、口部制御部111と、視線制御部112と、頭部制御部113と、胴部制御部114と、スピーカ115とを備える。エージェントは、例えば、口を含む口部及び目を含む眼部を有する顔があり、顔を含む頭部の下には手、腕、及び足を有する胴部がある人物である。表示装置は、口部制御部111、視線制御部112、頭部制御部113及び胴部制御部114からの制御信号に応じて、表示部に表示中のエージェントの口、目の視線、頭及び胴体(手、腕及び足等を含む)を動かす画像処理部をさらに備える。
上述した実施形態においては、センサ103等を用いて利用者の位置を特定したが、他の構成であってもよい。例えば、複数のマイクロホンから入力される音声情報から、話者の位置を特定する下記の公知文献6に記載の技術を用いてもよい。
公知文献6:特開2003−8974号公報
上述した本実施形態におけるロボット100の備える各機能部は、例えば、コンピュータで実現することができる。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。