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

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

▶ 日本放送協会の特許一覧

特許7586746発話制御装置、発話制御方法及び発話制御プログラム
<>
  • 特許-発話制御装置、発話制御方法及び発話制御プログラム 図1
  • 特許-発話制御装置、発話制御方法及び発話制御プログラム 図2
  • 特許-発話制御装置、発話制御方法及び発話制御プログラム 図3
  • 特許-発話制御装置、発話制御方法及び発話制御プログラム 図4
  • 特許-発話制御装置、発話制御方法及び発話制御プログラム 図5
  • 特許-発話制御装置、発話制御方法及び発話制御プログラム 図6
  • 特許-発話制御装置、発話制御方法及び発話制御プログラム 図7
  • 特許-発話制御装置、発話制御方法及び発話制御プログラム 図8
  • 特許-発話制御装置、発話制御方法及び発話制御プログラム 図9
  • 特許-発話制御装置、発話制御方法及び発話制御プログラム 図10
  • 特許-発話制御装置、発話制御方法及び発話制御プログラム 図11
  • 特許-発話制御装置、発話制御方法及び発話制御プログラム 図12
  • 特許-発話制御装置、発話制御方法及び発話制御プログラム 図13
  • 特許-発話制御装置、発話制御方法及び発話制御プログラム 図14
  • 特許-発話制御装置、発話制御方法及び発話制御プログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】発話制御装置、発話制御方法及び発話制御プログラム
(51)【国際特許分類】
   G06F 3/16 20060101AFI20241112BHJP
   G06F 3/01 20060101ALI20241112BHJP
   B25J 13/00 20060101ALI20241112BHJP
   G10L 21/0216 20130101ALI20241112BHJP
   G06Q 50/10 20120101ALI20241112BHJP
【FI】
G06F3/16 650
G06F3/16 610
G06F3/16 630
G06F3/16 690
G06F3/01 510
B25J13/00 Z
G10L21/0216
G06Q50/10
【請求項の数】 8
(21)【出願番号】P 2021049491
(22)【出願日】2021-03-24
(65)【公開番号】P2022147989
(43)【公開日】2022-10-06
【審査請求日】2024-02-26
(73)【特許権者】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】星 祐太
(72)【発明者】
【氏名】上村 真利奈
(72)【発明者】
【氏名】萩尾 勇太
(72)【発明者】
【氏名】金子 豊
(72)【発明者】
【氏名】山本 正男
【審査官】宮本 昭彦
(56)【参考文献】
【文献】特開2019-113696(JP,A)
【文献】特開2019-176332(JP,A)
【文献】国際公開第2019/187256(WO,A1)
【文献】特開2021-019966(JP,A)
【文献】特開2013-237124(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/16
G06F 3/01
B25J 1/00 - 21/02
G10L 13/00 - 99/00
G06Q 50/10
(57)【特許請求の範囲】
【請求項1】
ロボットの周囲を撮像した画像からユーザを検出するユーザ検出部と、
前記画像からテレビを検出するテレビ検出部と、
前記ユーザ及び前記テレビの位置情報を方向情報に変換する方向情報変換部と、
前記ロボットの周囲から収音した音声のうち、前記テレビの方向からの音声入力を減衰させたうえで、音源定位により前記ユーザごとの方向に分類された音声情報を取得する音声解析部と、
前記ユーザそれぞれの方向を撮像した時系列の複数の画像フレームに基づいて、当該ユーザの行動を学習モデルにより取得する行動推定部と、
前記ユーザごとに分類された音声情報に基づいて発話頻度を算出し、当該発話頻度が閾値以下のユーザを、前記ロボットが発話する対象ユーザとして決定する発話判定部と、
前記ユーザの行動ごとに予め定義された傾聴係数の値に応じて、所定の発話動作を前記ロボットに実行させる発話実行部と、を備える発話制御装置。
【請求項2】
複数の前記画像から、特徴点を重ねることでパノラマ画像を生成するパノラマ画像生成部を備え、
前記方向情報変換部は、前記パノラマ画像における座標を方向情報に変換する請求項1に記載の発話制御装置。
【請求項3】
前記音声解析部は、前記音源定位により得られた方向で前記ユーザの方向を補正する請求項1又は請求項2に記載の発話制御装置。
【請求項4】
前記発話実行部は、前記発話動作の初期動作として、発話の前に所定時間の発光を行う請求項1から請求項3のいずれかに記載の発話制御装置。
【請求項5】
前記発話実行部は、前記発話動作の初期動作として、発話の前に通知音の出力を行う請求項1から請求項4のいずれかに記載の発話制御装置。
【請求項6】
前記発話実行部は、前記初期動作の後、前記対象ユーザからの音声入力があった場合にのみ発話を行う請求項4又は請求項5に記載の発話制御装置。
【請求項7】
ロボットの周囲を撮像した画像からユーザを検出するユーザ検出ステップと、
前記画像からテレビを検出するテレビ検出ステップと、
前記ユーザ及び前記テレビの位置情報を方向情報に変換する方向情報変換ステップと、
前記ロボットの周囲から収音した音声のうち、前記テレビの方向からの音声入力を減衰させたうえで、音源定位により前記ユーザごとの方向に分類された音声情報を取得する音声解析ステップと、
前記ユーザそれぞれの方向を撮像した時系列の複数の画像フレームに基づいて、当該ユーザの行動を学習モデルにより取得する行動推定ステップと、
前記ユーザごとに分類された音声情報に基づいて発話頻度を算出し、当該発話頻度が閾値以下のユーザを、前記ロボットが発話する対象ユーザとして決定する発話判定ステップと、
前記ユーザの行動ごとに予め定義された傾聴係数の値に応じて、所定の発話動作を前記ロボットに実行させる発話実行ステップと、をコンピュータが実行する発話制御方法。
【請求項8】
請求項1から請求項6のいずれかに記載の発話制御装置としてコンピュータを機能させるための発話制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの発話動作を制御するための装置、方法及びプログラムに関する。
【背景技術】
【0002】
従来、家庭内でユーザと一緒にテレビ番組などの映像コンテンツを視聴するロボットがユーザの行動を妨げることなく、発話するためのタイミングを制御する手法が考案されている。
例えば、特許文献1では、ユーザの言動及び感情の少なくともいずれかを示す情報を用いて、発話決定テーブルに基づいて発話するか否かを決定する手法が提案されている。
また、特許文献2では、話かけ対象者の行動及び状態の推定結果から、対象者が話かけを許容する状態か否かを判定する手法が提案されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-140477号公報
【文献】国際公開第2019/187256号
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の手法では、ロボットが話しかける対象者は固定されており、複数人でコンテンツを視聴している場合に、話しかける対象者を決定して発話のタイミングを制御することはできなかった。
【0005】
本発明は、人と一緒にテレビを視聴するロボットが、複数のユーザの中から発話する対象者及びタイミングを決定できる発話制御装置、発話制御方法及び発話制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る発話制御装置は、ロボットの周囲を撮像した画像からユーザを検出するユーザ検出部と、前記画像からテレビを検出するテレビ検出部と、前記ユーザ及び前記テレビの位置情報を方向情報に変換する方向情報変換部と、前記ロボットの周囲から収音した音声のうち、前記テレビの方向からの音声入力を減衰させたうえで、音源定位により前記ユーザごとの方向に分類された音声情報を取得する音声解析部と、前記ユーザそれぞれの方向を撮像した時系列の複数の画像フレームに基づいて、当該ユーザの行動を学習モデルにより取得する行動推定部と、前記ユーザごとに分類された音声情報に基づいて発話頻度を算出し、当該発話頻度が閾値以下のユーザを、前記ロボットが発話する対象ユーザとして決定する発話判定部と、前記ユーザの行動ごとに予め定義された傾聴係数の値に応じて、所定の発話動作を前記ロボットに実行させる発話実行部と、を備える。
【0007】
前記発話制御装置は、複数の前記画像から、特徴点を重ねることでパノラマ画像を生成するパノラマ画像生成部を備え、前記方向情報変換部は、前記パノラマ画像における座標を方向情報に変換してもよい。
【0008】
前記音声解析部は、前記音源定位により得られた方向で前記ユーザの方向を補正してもよい。
【0009】
前記発話実行部は、前記発話動作の初期動作として、発話の前に所定時間の発光を行ってもよい。
【0010】
前記発話実行部は、前記発話動作の初期動作として、発話の前に通知音の出力を行ってもよい。
【0011】
前記発話実行部は、前記初期動作の後、前記対象ユーザからの音声入力があった場合にのみ発話を行ってもよい。
【0012】
本発明に係る発話制御方法は、ロボットの周囲を撮像した画像からユーザを検出するユーザ検出ステップと、前記画像からテレビを検出するテレビ検出ステップと、前記ユーザ及び前記テレビの位置情報を方向情報に変換する方向情報変換ステップと、前記ロボットの周囲から収音した音声のうち、前記テレビの方向からの音声入力を減衰させたうえで、音源定位により前記ユーザごとの方向に分類された音声情報を取得する音声解析ステップと、前記ユーザそれぞれの方向を撮像した時系列の複数の画像フレームに基づいて、当該ユーザの行動を学習モデルにより取得する行動推定ステップと、前記ユーザごとに分類された音声情報に基づいて発話頻度を算出し、当該発話頻度が閾値以下のユーザを、前記ロボットが発話する対象ユーザとして決定する発話判定ステップと、前記ユーザの行動ごとに予め定義された傾聴係数の値に応じて、所定の発話動作を前記ロボットに実行させる発話実行ステップと、をコンピュータが実行する。
【0013】
本発明に係る発話制御プログラムは、前記発話制御装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0014】
本発明によれば、人と一緒にテレビを視聴するロボットが、複数のユーザの中から発話する対象者を決定できる。
【図面の簡単な説明】
【0015】
図1】実施形態における発話制御装置を搭載したロボットの利用シーンを示す図である。
図2】実施形態における発話制御装置の機能構成を示す図である。
図3】実施形態における発話制御処理の流れを示すフローチャートである。
図4】実施形態におけるユーザ検出処理の詳細を示すフローチャートである。
図5】実施形態におけるパノラマ画像生成処理の詳細を説明する図である。
図6】実施形態におけるテレビ検出処理の詳細を示すフローチャートである。
図7】実施形態における方向情報変換処理の詳細を示すフローチャートである。
図8】実施形態における座標情報と方向情報との関係を例示する図である。
図9】実施形態における音声解析処理の詳細を示すフローチャートである。
図10】実施形態における行動推定処理の詳細を示すフローチャートである。
図11】実施形態における発話判定処理の詳細を示すフローチャートである。
図12】実施形態におけるユーザ情報テーブルを例示する図である。
図13】実施形態におけるロボット動作テーブルを例示する図である。
図14】実施形態における発話実行処理の詳細を示すフローチャートである。
図15】実施形態における発話文データベースを例示する図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施形態の一例について説明する。
本実施形態の発話制御装置は、ユーザと一緒にテレビ番組などの映像コンテンツを視聴するロボットに搭載され、特にユーザが複数いるときに、ユーザそれぞれの行動を推定し、発話するタイミングと対象者を決定する。これにより、ロボットは、ユーザの視聴行動を妨げることなく、ユーザ同士の会話のきっかけとなる発話を行う。
【0017】
図1は、本実施形態における発話制御装置1を搭載したロボットの利用シーンを示す図である。
テレビ番組などの映像コンテンツをユーザ(例えば、U1及びU2)が視聴する状況において、ユーザと一緒に映像コンテンツを視聴するロボットRがテーブルなどに設けられる。
【0018】
発話制御装置1の後述の処理により、例えば、ユーザらが視聴するコンテンツの内容を契機に会話を楽しんでいるときに、ロボットRは、自ら発話して会話を妨げることを避けることができる。また、ユーザの行動に応じてロボットRの発話動作を変更し、ユーザの反応を確認しながら発話するか否かを決定することで、発話制御装置1は、ロボットRの発話動作がユーザに飽きられることを防ぐ。
さらに、例えば、一方のユーザがコンテンツの視聴への興味が薄れてしまい、スマートフォンなどの電子機器を操作している状況では、ロボットRがこのようなユーザを選定して、話し相手になることができる。
【0019】
図2は、本実施形態における発話制御装置1の機能構成を示す図である。
発話制御装置1は、制御部10と、撮像部20と、音声入力部30と、駆動部40と、音声出力部50と、記憶部60と、時刻部70と、点灯部80とを備える。
【0020】
制御部10は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Acces Memory)を有するコンピュータであってよい。CPUがROMに記憶された動作プログラム(発話制御プログラム)を読み出してRAM上で実行することにより、制御部10は、発話制御装置1全体の動作を制御する。
【0021】
制御部10は、撮像部20で取得したロボット周囲の画像から、ユーザの方向とテレビの方向とを検出し、音声入力部30から入力されるテレビの方向の音声を減衰させて、ユーザの音声のみを入力とする。その後、制御部10は、会話中か、スマートフォンを操作中か、食事中かなど、ユーザ別に行動を推定し、ユーザの行動及び発話頻度から、ロボットが発話するか否か、及び発話する対象者を決定すると、発話動作を実行して音声出力部50から音声を出力させる。
なお、制御部10の詳細機能は後述する。
【0022】
撮像部20は、レンズ、及びCCD(Charge Coupled Device)又はCMOS(Complementaly Metal Oxide Semiconductor)などの撮像素子を備えるカメラであり、ロボットの周囲を撮像する。撮像部20は、図2のように、複数のカメラがロボットの円周上に搭載されたカメラアレイにより構成される。
なお、撮像部20は、1台のカメラが円周上を回転しつつ周囲を定期的に撮像するように構成されてもよい。この場合、撮像部20(カメラ)の向きは、ロボットの筐体の向き(顔の向き)と合致するように制御されてよい。
【0023】
音声入力部30は、マイク、A/D変換器などで構成され、ロボットの周囲の音声を集音する。音声入力部30は、集音した音声を増幅し、A/D変換、符号化などを施したデジタル信号データを制御部10へ出力する。
音声入力部30は、図1のように、ロボットの側面に設置され、複数のマイクがロボットの円周上に搭載されたマイクアレイにより構成される。
【0024】
駆動部40は、音声出力部50を搭載した架台又は筐体などに取り付けられたモータであり、音声出力部50のスピーカをユーザに向けてロボットの音声を出力させる。駆動部40は、回転角度により制御されてよいが、モータを取り付ける軸に対して、回転角度を抵抗値として取得するポテンショメータを取り付け、この抵抗値を制御値として利用してもよい。
【0025】
音声出力部50は、スピーカ、D/A変換器などで構成され、制御部10から転送された音声データに対して復号化、D/A変換、増幅などを施したアナログ音声信号を、例えば図1のように、ロボットの顔などに配置されたスピーカから出力する。
【0026】
記憶部60は、制御部10が必要なデータを記憶する記憶媒体であり、例えば、不揮発性のフラッシュメモリ、SSD(Solid State Drive)、又はハードディスクなどであってよい。記憶部60には、後述の顔情報、音声情報、発話文データベースなどのユーザに関する情報が格納される。
【0027】
時刻部70は、ユーザを検出した時の時刻とユーザの音声を取得した時の時刻の照合、及び後述するユーザの行動を推定する際に、複数の画像フレームを取得するときの時間の計測を行う。
【0028】
点灯部80は、ロボットが発話するとき、又は発話のためにユーザの反応を確認するときに点灯する。点灯部80は、LED(Light Emitting Diode)などの光源素子で構成され、例えば、図1のように、ロボットの全周が発光するように配置される。
【0029】
制御部10は、ユーザ検出部11と、パノラマ画像生成部12と、テレビ検出部13と、方向情報変換部14と、音声解析部15と、行動推定部16と、発話判定部17と、発話実行部18とを備える。
【0030】
図3は、本実施形態における発話制御装置1の制御部10による発話制御処理の流れを示すフローチャートである。
発話制御処理により、制御部10は、ロボットの周囲のテレビ及びユーザの方向を把握し、発話対象とするユーザと、このユーザに対して実際に発話するか否かを決定する。
【0031】
ステップS101において、制御部10は、撮像部20により撮像されたロボットの周囲の画像を取得する。
【0032】
ステップS102において、制御部10(ユーザ検出部11)は、ロボットの周囲のユーザを検出する(ユーザ検出処理)。ユーザ検出処理の詳細は、後述する。
【0033】
ステップS103において、制御部10は、ステップS102においてユーザを検出したか否かを判定する。この判定がYESの場合、処理はステップS104に移り、判定がNOの場合、処理はステップS101に戻る。ユーザが検出されるまで、ステップS101~S102の処理が繰り返し実行される。
【0034】
ステップS104において、制御部10(パノラマ画像生成部12)は、ロボットの周囲の画像からパノラマ画像を生成する(パノラマ画像生成処理)。パノラマ画像生成処理の詳細は、後述する。
【0035】
ステップS105において、制御部10は、ステップS104で生成されたパノラマ画像から、画像中のユーザの位置を示す画素情報を取得し、記憶部60へ保存する。
【0036】
ステップS106において、制御部10(テレビ検出部13)は、ロボットの周囲にあるテレビの位置を検出し、テレビの位置を示す画素情報を抽出して記憶部60へ保存する(テレビ検出処理)。テレビ検出処理の詳細は、後述する。
【0037】
ステップS107において、制御部10(方向情報変換部14)は、ユーザ及びテレビの位置を示す画素情報を、ロボットの周囲の方向情報に変換する(方向情報変換処理)。方向情報変換処理の詳細は、後述する。
【0038】
ステップS108において、制御部10は、音声入力部30より音声情報を取得する。
【0039】
ステップS109において、制御部10(音声解析部15)は、テレビの音声とユーザの音声とが同時に入力されることを防ぐために、テレビの音声入力を減衰させる。また、音声解析部15は、複数のユーザが存在した場合、音源定位し、音声方向からユーザを識別する(音声解析処理)。音声解析処理の詳細は、後述する。
【0040】
ステップS110において、制御部10(行動推定部16)は、識別されたユーザごとの行動を推定し、記憶部60へ保存する(行動推定処理)。行動推定処理の詳細は、後述する。
【0041】
ステップS111において、制御部10(発話判定部17)は、ユーザの発話頻度と推定された行動から、ロボットが発話する対象のユーザ(対象ユーザ)を決定する(発話判定処理)。発話判定処理の詳細は、後述する。
【0042】
ステップS112において、制御部10は、ユーザに発話することを決定したか否かを判定する。この判定がYESの場合、処理はステップS113に移り、判定がNOの場合、処理は終了する。
【0043】
ステップS113において、制御部10(発話実行部18)は、対象ユーザに対して発話動作を行う(発話実行処理)。発話実行処理の詳細は、後述する。
【0044】
図4は、本実施形態におけるユーザ検出処理(図3のステップS102)の詳細を示すフローチャートである。
【0045】
ステップS201において、ユーザ検出部11は、撮像部20より取得した画像から顔検出処理を行う。顔検出には、例えば、オープンソースのライブラリであるFaster R-CNNを用いるが、これに限らず、OpenCVなど、各種の手法を適用できる。
【0046】
ステップS202において、ユーザ検出部11は、検出した顔の特徴量を抽出し、抽出した特徴量を記憶部60へ保存する。
特徴量には、例えば、画像中の局所領域の明暗情報を扱うHaar-like特徴量を用いるが、これに限らず、画像勾配の強度を方向別ヒストグラムで表現したHOG(Histogram of Oriented Gradients)特徴量など、各種の特徴量を適用できる。
【0047】
ステップS203において、ユーザ検出部11は、ステップS201において複数の顔が検出されたか否かを判定する。この判定がYESの場合、処理はステップS204に移り、判定がNOの場合、処理は終了する。
【0048】
ステップS204において、ユーザ検出部11は、特徴量に基づいて、検出された複数のユーザを分類する。
例えば、時刻T1で顔1及び顔2の特徴量が抽出された場合、ユーザ検出部11は、それぞれの特徴量に顔1:ユーザ1、顔2:ユーザ2のように互いに異なるユーザIDを割り振り、記憶部60へ保存する。さらに、ユーザ検出部11は、時刻T2で顔3の特徴量が抽出された場合、この顔3の特徴量を記憶部60に保存されている顔1及び顔2の特徴量と比較し、例えば、顔2の特徴量との差が所定の基準よりも小さい場合、顔3をユーザ2と分類する。
【0049】
図5は、本実施形態におけるパノラマ画像生成処理(図3のステップS104)の詳細を説明する図である。
【0050】
パノラマ画像生成部12は、カメラアレイ(撮像部20)における方向1のカメラから画像1を取得し、方向2のカメラから画像2を取得した場合、画像1と画像2で特徴点が一致する部分を探索し、この一致する部分で画像1と画像2を重ねて合成する。パノラマ画像生成部12は、この処理を、ロボットの周囲の画像に渡って行うことで、パノラマ画像を生成する。
【0051】
特徴点の抽出には、例えば、画像上の局所特徴量を特徴ベクトルで表現するSURF(Speeded Up Robust Features)を用いてよいが、これに限らず、SIFT(Scale Invariant Feature Transform)など、各種の手法を適用できる。
【0052】
図6は、本実施形態におけるテレビ検出処理(図3のステップS106)の詳細を示すフローチャートである。
【0053】
ステップS301において、テレビ検出部13は、撮像部20から取得した画像からテレビの位置を検出する。テレビの検出には、例えば、オープンソースのライブラリFaster R-CNNを用いる。
【0054】
ステップS302において、テレビ検出部13は、テレビが存在するか否か、すなわちステップS301でテレビが検出されたか否かを判定する。この判定がYESの場合、処理はステップS303に移り、判定がNOの場合、処理は終了する。
【0055】
ステップS303において、テレビ検出部13は、画像中のテレビが存在する中心位置の画素情報(パノラマ画像上の座標)を取得し、記憶部60へ保存する。
【0056】
図7は、本実施形態における方向情報変換処理(図3のステップS107)の詳細を示すフローチャートである。
【0057】
ステップS401において、方向情報変換部14は、ユーザ検出部11により抽出されたユーザの位置の画素情報を取得する。
【0058】
ステップS402において、方向情報変換部14は、テレビ検出部13により抽出されたテレビの位置の画素情報を取得する。
【0059】
ステップS403において、方向情報変換部14は、ユーザ及びテレビの画素情報をロボットの周囲の方向情報に変換する。
【0060】
図8は、本実施形態における座標情報と方向情報との関係を例示する図である。
この例では、方向情報変換部14は、ユーザUの画素情報(x,y)、ユーザUの画素情報(x,y)、テレビの画素情報(xTV,yTV)を取得している。
例えば、パノラマ画像のサイズが(1800,360)、ユーザUの画素情報(500,200)、xが0の位置をロボットの正面の0度とした場合、角度分解能は1800/360=5(pixel/度)となり、ユーザUの方向までの角度θは、500/5=100度と算出できる。同様に、ユーザU及びテレビの位置の画素情報も、それぞれ方向情報θ,θTVに変換される。
【0061】
なお、この例では、方向情報は、ロボットの周囲を0度から360度の角度として表現されているが、これに限らず、例えば、駆動部40のポテンショメータから取得した抵抗値を方向情報として用いてもよい。
この場合、抵抗値と駆動部40の回転角度とは、予め対応付けられ、方向情報変換部14は、画像上の位置を角度へ、続いて、角度を抵抗値へ変換する。
【0062】
図9は、本実施形態における音声解析処理(図3のステップS109)の詳細を示すフローチャートである。
【0063】
ステップS501において、音声解析部15は、ユーザの音声とテレビの音声とが同時に入力されるのを防ぐために、テレビの方向から入力される音声を減衰させる。
【0064】
ステップS502において、音声解析部15は、テレビ方向からの音声が減衰されたユーザの方向のみからの音声を取得する。
【0065】
ステップS503において、音声解析部15は、複数のユーザが検出されているか否かを判定する。この判定がYESの場合、処理はステップS504に移り、判定がNOの場合、処理は終了する。
【0066】
ステップS504において、音声解析部15は、ユーザ別の音声を取得するため音源定位を行う。音源定位の手法は、例えば、オープンソースソフトウェアであるHARK(https://www.hark.jp/document/2.4.0/hark-document-ja/index.html)、MUSIC法(浅野 太,音を分ける,計測と制御,2004,43巻,4号,pp. 325-330)などを利用できる。
【0067】
ステップS505において、音声解析部15は、音源定位した方向を、検出されている各ユーザに対応付ける。例えば、音源定位された方向と、画像から取得されたユーザの方向とが所定以内にあれば、ユーザと音声とが対応付けられる。これにより、ユーザ別の音声が取得される。
【0068】
図10は、本実施形態における行動推定処理(図3のステップS110)の詳細を示すフローチャートである。
【0069】
ステップS601において、行動推定部16は、ユーザ別に、ユーザ方向の複数の画像フレームを取得する。
【0070】
ステップS602において、行動推定部16は、ユーザ別に行動を推定し、例えば、ユーザ1が「会話中」、ユーザ2が「スマートフォン操作」、ユーザ3が「食事中」といった結果を取得する。
【0071】
ここで、行動の推定には、行動にラベル付けした大規模な動画データセットで学習した学習モデルを用いる。例えば、学習用のデータセットには、Kinetics又はActivityNetなどを利用できる。
ユーザの行動は、畳み込みニューラルネットワーク(Convolution Neural Network: CNN)を用いて推定される。ただし、推定手法はこれに限られない。
【0072】
ステップS603において、行動推定部16は、推定した結果を、ユーザ行動としてユーザ別に記憶部60に保存する。
【0073】
図11は、本実施形態における発話判定処理(図3のステップS111)の詳細を示すフローチャートである。
【0074】
ステップS701において、発話判定部17は、ユーザ方向それぞれからの音声の入力回数を計測する。音声入力の回数は、取得した音声レベルが所定の閾値を越えたときに入力があったとして計測される。このとき、複数のユーザがいた場合、発話判定部17は、ユーザ別に音声の入力回数を計測する。
【0075】
ステップS702において、発話判定部17は、音声の入力回数をユーザの発話回数として、記憶部60に保存する。
【0076】
ステップS703において、発話判定部17は、所定の時間内のユーザの発話頻度を算出する。
なお、発話頻度は、1分以内の発話回数、5分以内の発話回数、10分以内の発話回数などと、適宜時間を設定でき、設定した時間に応じて、発話回数の所定の閾値が設定される。
【0077】
ステップS704において、発話判定部17は、ユーザの発話頻度が所定の閾値以下であるか否かを判定する。この判定がYESの場合、処理はステップS705に移り、判定がNOの場合、処理は終了する。
【0078】
ステップS705において、発話判定部17は、発話頻度が低くユーザが会話をしている可能性が低いと判定し、ロボットが発話する対象ユーザとして選定する。
つまり、発話判定部17は、発話頻度が閾値を超えていれば、ユーザが会話をしている可能性が高いと判定し、ロボットが発話する対象者を選定しない。
【0079】
例えば、ユーザ1の1分以内の発話頻度が5、閾値が20の場合、発話頻度が閾値以下となるため、発話判定部17は、ユーザ1を発話する対象ユーザとする。また、複数のユーザがおり、ユーザ1の1分以内の発話頻度30、ユーザ2の1分以内の発話頻度が5、閾値が20の場合、発話判定部17は、ユーザ2を発話する対象ユーザとする。
なお、発話頻度が低いユーザが複数存在する場合、発話判定部17は、例えば、この中で最も発話頻度が低いユーザ、あるいは、ランダムに選択したユーザを対象ユーザとして決定してよい。
【0080】
発話実行部18は、発話判定部17により選定された発話する対象ユーザに対して、記憶部60に格納されたロボット動作テーブルに基づいて、ユーザの行動に応じた発話動作を実行する。
ここで、推定されるユーザの行動には、それぞれ、ロボットの発話への傾聴しやすさの度合いを示す傾聴係数fuが予め設定されており、この値に応じてロボットの動作が規定される。
【0081】
図12は、本実施形態におけるユーザ情報テーブルを例示する図である。
ユーザ情報テーブルには、検出されたユーザごとに、パノラマ画像上での画像位置(座標)、方向(角度)、発話頻度、推定されたユーザ行動、及び行動に対応する傾聴係数fuが格納されている。
【0082】
図13は、本実施形態におけるロボット動作テーブルを例示する図である。
例えば、ユーザが会話中(fu=0.1)のときは、発話実行部18は、初期動作としてLEDを点灯させ、ユーザの反応があった場合に発話させる。また、ユーザがテレビ視聴中(fu=0.5)のときは、発話実行部18は、初期動作として通知音「あの~」とともにLEDを点灯させ、ユーザの反応があった場合に発話させる。ユーザがスマートフォンなどの電子機器を操作しているとき(fu=0.9)は、発話実行部18は、事前のLED点灯などの動作をさせずに発話させる。
【0083】
このように、発話実行部18は、ユーザの行動に対して予め設定された傾聴係数fuに応じて、ロボットの動作を変化させて発話させる。また、発話実行部18は、ユーザの反応がなくロボットに興味がなかったときは発話させないなど、発話し続けてユーザに飽きられることを避けるような動作を実行する。
【0084】
図14は、本実施形態における発話実行処理(図3のステップS113)の詳細を示すフローチャートである。
【0085】
ステップS801において、発話実行部18は、対象ユーザの行動に基づく傾聴係数fuを記憶部60から取得する。傾聴係数fuは、行動ごとに予め設定されており、ここでは、例えば、0から1.0までの値が0.1刻みで設定されているものとする。
【0086】
ステップS802において、発話実行部18は、傾聴係数fuが大きい(例えば、0.7~1.0)か否かを判定する。この判定がYESの場合、処理はステップS803に移り、判定がNOの場合、処理はステップS804に移る。
【0087】
ステップS803において、発話実行部18は、ロボット動作テーブルに規定された動作3、すなわち発話を実行し、処理は終了する。発話の内容は、例えば、発話文データベースに登録されている「ケーキを食べたいな」といった開示文や「京都の鴨川に行ったことある?」といった質問文がランダムに選択されてよい。
【0088】
ステップS804において、発話実行部18は、傾聴係数fuが中程度(例えば、0.3~0.6)か否かを判定する。この判定がYESの場合、処理はステップS805に移り、判定がNOの場合、処理はステップS807に移る。
【0089】
ステップS805において、発話実行部18は、ロボット動作テーブルに規定された動作2、すなわち通知音の出力及びLED点灯を実行する。
通知音の内容は、例えば、発話文データベースに登録されている「あの~」や「そういえば」などの言葉であってよい。また、LED点灯は、5秒間に5回だけ点滅する、10秒間に渡り点灯し続けるなど、ユーザに認知されやすいように適宜設定されてよい。
【0090】
ステップS806において、発話実行部18は、動作2に対してユーザの反応があったか否かを判定する。例えば、一定時間内にユーザから音声入力がない場合に反応なしと判定されてよい。この判定がYESの場合、処理はステップS803に移り、判定がNOの場合、処理はステップS807に移る。
【0091】
ステップS807において、発話実行部18は、傾聴係数fuが小さい(例えば、0~0.2)か否かを判定する。この判定がYESの場合、処理はステップS808に移り、判定がNOの場合、処理は終了する。
【0092】
ステップS808において、発話実行部18は、ロボット動作テーブルに規定された動作1、すなわちLED点灯を実行する。なお、点灯動作は、ステップS805と同様であってよい。
【0093】
ステップS809において、発話実行部18は、動作1に対してユーザの反応があったか否かを判定する。判定方法は、ステップS806と同様である。この判定がYESの場合、処理はステップS803に移り、判定がNOの場合、処理は終了する。
【0094】
図15は、本実施形態における発話文データベースを例示する図である。
発話文データベースには、例えば、ロボット動作テーブルの動作2で出力される通知音と、発話文の候補として開示文及び質問文とが登録されている。
【0095】
この例では、通知音には、「あの~」や「そういえば」といった発話する前にユーザの注意をひく言葉が登録されているが、これに限らず、例えば、「ピコーン」や「プルルル」など発話を知らせるロボット独自の音声でもよい。
【0096】
開示文は、ロボット自身の気持ちや感情を表出する言葉で、「食べたい」や「行きたい」などの単語を含んで構成された文章が登録されている。
質問文は、特定の場所に行ったことがあるか、食べ物を食べたことがあるかなどの質問文が登録されている。
なお、これらの発話文に使用される食べ物、場所などの単語は、視聴中のコンテンツの内容、例えば字幕情報又は画像情報などに応じて動的に更新されてもよい。
【0097】
本実施形態によれば、発話制御装置1は、検出したユーザのうち、発話頻度が低いユーザを対象として、行動に対応する傾聴係数に応じた発話動作をロボットに実行させる。
したがって、発話制御装置1を搭載し、ユーザと一緒にテレビを視聴するロボットは、ユーザ同士の会話を妨げることなく、複数のユーザの中から話し掛ける対象を決定することができ、かつ、ユーザの反応から話し掛けるか否かのタイミングを柔軟に決定することができる。
【0098】
発話制御装置1は、複数の画像の特徴点を抽出し、重ね合わせることでパノラマ画像を生成し、このパノラマ画像上の座標に基づいて、ユーザの位置する方向を容易に把握することができる。
【0099】
発話制御装置1は、収音した音声の音源定位により、音声の入力された方向、すなわちユーザの位置する方向を特定して、ユーザ情報を適切に補正できる。
【0100】
発話制御装置1は、発話動作の初期動作として、短時間の発光又は通知音の出力を行うことにより、対象ユーザの注意を引いたうえで、ロボットに適時に発話させることができる。
さらに、発話制御装置1は、これらの初期動作に対してユーザからの応答があった場合にのみロボットに発話させることで、ユーザが望まない無用なタイミングでの発話を抑制することができる。
【0101】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0102】
本実施形態では、主に発話制御装置1の構成と動作について説明したが、本発明はこれに限られず、各構成要素を備え、ロボットに発話させるための方法、又はプログラムとして構成されてもよい。
【0103】
さらに、発話制御装置1の機能を実現するためのプログラムをコンピュータで読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。
【0104】
ここでいう「コンピュータシステム」とは、OSや周辺機器などのハードウェアを含むものとする。また、「コンピュータで読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROMなどの可搬媒体、コンピュータシステムに内蔵されるハードディスクなどの記憶装置のことをいう。
【0105】
さらに「コンピュータで読み取り可能な記録媒体」とは、インターネットなどのネットワークや電話回線などの通信回線を介してプログラムを送信する場合の通信線のように、短時刻の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時刻プログラムを保持しているものも含んでもよい。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【符号の説明】
【0106】
1 発話制御装置
10 制御部
11 ユーザ検出部
12 パノラマ画像生成部
13 テレビ検出部
14 方向情報変換部
15 音声解析部
16 行動推定部
17 発話判定部
18 発話実行部
20 撮像部
30 音声入力部
40 駆動部
50 音声出力部
60 記憶部
70 時刻部
80 点灯部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15