JP6701483B2 - アンドロイドロボットの制御システム、装置、プログラムおよび方法 - Google Patents

アンドロイドロボットの制御システム、装置、プログラムおよび方法 Download PDF

Info

Publication number
JP6701483B2
JP6701483B2 JP2015220049A JP2015220049A JP6701483B2 JP 6701483 B2 JP6701483 B2 JP 6701483B2 JP 2015220049 A JP2015220049 A JP 2015220049A JP 2015220049 A JP2015220049 A JP 2015220049A JP 6701483 B2 JP6701483 B2 JP 6701483B2
Authority
JP
Japan
Prior art keywords
joint
voice
actuator
lip
android robot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015220049A
Other languages
English (en)
Other versions
JP2017087344A (ja
Inventor
くりま 境
くりま 境
隆史 港
隆史 港
カルロス トシノリ イシイ
カルロス トシノリ イシイ
石黒 浩
浩 石黒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ATR Advanced Telecommunications Research Institute International
Original Assignee
ATR Advanced Telecommunications Research Institute International
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ATR Advanced Telecommunications Research Institute International filed Critical ATR Advanced Telecommunications Research Institute International
Priority to JP2015220049A priority Critical patent/JP6701483B2/ja
Publication of JP2017087344A publication Critical patent/JP2017087344A/ja
Application granted granted Critical
Publication of JP6701483B2 publication Critical patent/JP6701483B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Manipulator (AREA)

Description

この発明はアンドロイドロボットの制御システム、装置、プログラムおよび方法に関し、特にたとえば、発話するアンドロイドロボットの動作を制御する、アンドロイドロボットの制御システム、装置、プログラムおよび方法に関する。
発話に伴って身体動作を制御するロボットシステムの一例が、特許文献1に開示されている。特許文献1では発話をオン/オフの情報に変え、そのオン/オフパターンによってうなずくなどの身体動作のトリガとする。
特開2001‐246174号公報
特許文献1のシステムでは、パターンが単純なので、身体動作も単純である。
それゆえに、この発明の主たる目的は、新規な、アンドロイドロボットの制御システム、装置、プログラムおよび方法を提供することである。
この発明の他の目的は、発話に伴ってより人間らしい身体動作を生成できる、アンドロイドロボットの制御システム、装置、プログラムおよび方法を提供することである。
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
第1の発明は、胴体部と口唇を有する頭部とを、少なくとも1つの首関節アクチュエータによって動作される少なくとも1つの首関節を介して連結し、スピーカから発話するアンドロイドロボットを制御するシステムであって、発話の際の音声の基本周波数に基づいて動作方向を決定する方向決定手段、発話の際の口唇の開度および音声強度並びに動作方向に基づいて関節角を求める関節角計算手段、および関節角に従って少なくとも1つの首関節の少なくとも1つの首関節アクチュエータを駆動する第1駆動手段を備える、アンドロイドロボット制御システムである。
第1の発明では、アンドロイドロボット制御システム(10:実施例において対応する
部分を例示する参照符号。以下、同様)は、アンドロイドロボット(12)を制御し、アンドロイドロボットは、胴体部(24)と口唇を有する頭部(26)とを、少なくとも1つの首関節で連結している。首関節は少なくとも1つのアクチュエータ(A15)によって動作される。方向決定手段(36、S53)は、アンドロイドロボットが、スピーカから発話する際の発話音声の基本周波数(F0)に基づいて動作方向を決定する。そして、関節角計算手段(36、S51‐S57)が、発話の際の口唇の開度および音声強度ならびに動作方向に基づいて関節角(φ)を計算する。第1駆動手段(36、44)は、その関節角に従って少なくとも1つの首関節アクチュエータ(A15)を駆動する。そのため、発話に伴って、頭部が俯仰される。
第1の発明によれば、発話の際の口唇の開度および音声強度に基づいて頭部が俯仰されるので、発話に伴う自然な身体動作が生成できる。
第2の発明は、第1の発明に従属し、アンドロイドロボットは胴体部を傾動する腰関節および腰関節を動作させる腰関節アクチュエータを含み、さらに関節角に従って腰関節アクチュエータを駆動する第2駆動手段を備える、アンドロイドロボット制御システムである。
第2の発明では、第2駆動手段(36、44)が関節角に従って腰関節アクチュエータ(A18)を駆動する。そのため、発話に伴って頭部が俯仰されるのみならず胴体部も前屈または後傾されるので、身体動作が一層自然なものとなる。
第3の発明は、第1または第2の発明に従属し、関節角計算手段は、発話の際の口唇の開度および音声強度に基づいてトルクを計算するトルク計算手段、トルクおよび動作方向から、ばねダンパモデルを用いて動作角を計算する動作角計算手段、および動作角を関節角に変換する変換手段を含む、アンドロイドロボット制御システムである。
第4の発明は、第3の発明に従属し、トルク計算手段は口唇の開度および音声強度の加算に基づいてトルクを計算する、アンドロイドロボット制御システムである。
第4の発明では、トルクを計算する際に、口唇開度LipHeightと音声強度VoicePowerの加算に基づいて、後述の数1に従って、トルクT(t)を計算する。
第4の発明によれば、「あ」のように口を大きく開けるか、あるいは声が大きい場合に、首や腰を大きく動かすことができる。
第5の発明は、第3の発明に従属し、トルク計算手段は口唇の開度および音声強度の積算に基づいてトルクを計算する、アンドロイドロボット制御システムである。
第5の発明では、トルクを計算する際に、口唇開度LipHeightと音声強度VoicePowerの積算に基づいて、後述の数5に従って、トルクT(t)を計算する。
第5の発明によれば、「あ」のように口を大きく開けかつ声が大きい場合に、首や腰を大きく動かすことができる。
第6の発明は、胴体部と口唇を有する頭部とを、少なくとも1つの首関節アクチュエータによって動作される少なくとも1つの首関節を介して連結し、スピーカから発話するアンドロイドロボットを制御する装置であって、発話の際の音声の基本周波数に基づいて動作方向を決定する方向決定手段、発話の際の口唇の開度および音声強度並びに動作方向に基づいて関節角を求める関節角計算手段、および関節角に従って少なくとも1つの首関節の少なくとも1つの首関節アクチュエータを駆動する駆動手段を備える、アンドロイドロボット制御装置である。
第7の発明は、胴体部と口唇を有する頭部とを、少なくとも1つの首関節アクチュエータによって動作される少なくとも1つの首関節を介して連結し、スピーカから発話するアンドロイドロボットを制御するアンドロイドロボット制御システムのコンピュータによって実行されるプログラムであって、コンピュータを発話の際の音声の基本周波数に基づいて動作方向を決定する方向決定手段、発話の際の口唇の開度および音声強度並びに動作方向に基づいて関節角を求める関節角計算手段、および関節角に従って少なくとも1つの首関節の少なくとも1つの首関節アクチュエータを駆動する駆動手段として機能させるための、アンドロイドロボット制御プログラムである。
第8の発明は、胴体部と口唇を有する頭部とを、少なくとも1つの首関節アクチュエータによって動作される少なくとも1つの首関節を介して連結し、スピーカから発話するアンドロイドロボットの制御システムにおいて、システムが実行する制御方法であって、発話の際の音声の基本周波数に基づいて動作方向を決定する方向決定ステップ、発話の際の口唇の開度および音声強度並びに動作方向に基づいて関節角を求める関節角計算ステップ、および関節角に従って少なくとも1つの首関節の少なくとも1つの首関節アクチュエータを駆動する駆動ステップを含む、アンドロイドロボット制御方法である。
この発明によれば、アンドロイドロボットにおいて、発話に伴う自然な身体動作を生成できる。
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
図1はこの発明の一実施例のアンドロイドロボット制御システムを示す図解図である。 図2は図1実施例に用いられるアンドロイドロボットの一実施例を示す図解図である。 図3は図2のアンドロイドロボットの電気的な構成を示すブロック図である。 図4は図3に示すメモリのメモリマップの一例を示す図解図である。 図5は図1実施例におけるアンドロイドロボットの発話動作の一例を示すフロー図である。 図6は図5に示す口唇動作制御処理の一例を示すフロー図である。 図7は図5に示す身体動作制御処理の一例を示すフロー図である。 図8は身体動作制御処理に利用するばねダンパモデル一例を示す図解図である。 図9は身体動作制御処理の他の実施例を示す図解図である。 図10は身体動作制御処理のさらに他の実施例を示す図解図である。
図1を参照して、この実施例のアンドロイドロボット制御システム(以下、単に「システム」ということがある。)10は、アンドロイドロボット12を含む。アンドロイドロボット12は、人間に酷似した姿形(外観など)を有する人型ロボットであり、人間に酷似した動作(振り、振る舞い、発話)を行う。
アンドロイドロボット12は、インターネットや電話通信回線のようなネットワーク14を介して遠隔操作端末16に接続される。遠隔操作端末16は、PC、PDA、スマートフォン、タブレット端末のような汎用のコンピュータであり、この遠隔操作端末16には、スピーカ18、マイク20およびモニタ22が接続される。図示は省略するが、遠隔操作端末16には、タッチパネルやキーボードのような入力装置が含まれる。また、遠隔操作端末16の動作を制御するためのプログラムおよびデータは、遠隔操作端末16に内蔵しているメモリ(図示せず)に記憶されており、同じく内蔵のCPU(図示せず)によって遠隔操作端末16全体的な動作が制御される。
図2は図1の実施例に用いるアンドロイドロボット12の一例を示すが、他の外観、構造を持つ任意のアンドロイドロボットが利用可能であることを予め指摘しておく。
アンドロイドロボット12は、腰関節を有する胴体部24および首関節を介して胴体部24に連結される頭部26を含む。頭部26には、目(眼球)の上下に、上瞼28aおよび下瞼28bが形成され、それらの上瞼28aおよび下瞼28bの上下動を制御することによって、目を開けたり閉じたりする動作が可能となる。頭部26にはさらに口唇が形成され、それの両端が口角30となる。口角30も同様に上下動可能である。
胴体部24の上端(頭部の下方)が肩32であり、胴体部24の中ほどが腰34である。肩32は上下動可能であり、腰34は前屈および後傾が可能である。
アンドロイドロボット12の上述の各部分を動かすための以下に説明するアクチュエータは、この実施例では、いずれもパルス電力によって駆動されるステッピングモータであり、ステッピングモータの回転量はパルス数で決まる。パルス数が指令値として与えられる。なお、初期値とは、当該アクチュエータによって変位される対象部位を平常状態にするためのパルス数(指令値)である。
上述の上瞼28aの上下動を制御するのが、アクチュエータA1であり、このアクチュエータA1は「0−255」の指令値に応じて動作する。初期値は「64」である。アクチュエータA1は、指令値「0」で上瞼28aが一番上の位置(目を大きく見開いた状態)になり、指令値「255」で一番下の位置(目をきつく閉じた状態)になるように、設定されている。
アクチュエータA2、A3およびA4は眼球を左右上下に動かすためのアクチュエータである。
アクチュエータA5は、下瞼28bの上下動を制御するアクチュエータであり、「0−255」の指令値に応じて動作する。初期値は「0」である。アクチュエータA5は、指令値「255」で下瞼28bが一番上の位置(目をきつく閉じた状態)になり、指令値「0」で一番下の位置(目を大きく見開いた状態)になるように設定されている。
アクチュエータA6は額を動かすためのアクチュエータであり、アクチュエータA7は眉間を動かすためのアクチュエータである。
アクチュエータA8は、口角30を上げるためのアクチュエータであり、「0−255」の指令値に応じて動作する。初期値は「0」である。アクチュエータA8は、指令値「255」で口角30が一番上の位置に変位した状態となり、指令値「0」で一番下の位置になるように設定されている。
アクチュエータA9は舌を上下方に動かすためのアクチュエータである。
アクチュエータA10は口唇を左右に広げるアクチュエータであり、アクチュエータA11は口唇を前に突き出すためのアクチュエータである。アクチュエータA11は、「0−255」の指令値に応じて動作し、初期値は「0」である。アクチュエータA11の指令値「255」で口唇が一番上まで変位した状態となり、指令値「0」で口唇が最も下がった状態になるように設定されている。これらのアクチュエータA10、A11は後述の口唇動作の制御のために用いられる。
A13は顎を突き出したり引いたりするためのアクチュエータであり、「0−255」の指令値に応じて動作する。初期値は「32」である。アクチュエータA13は、指令値「0」で顎を最も上げた(つまり口を閉じた)状態にし、指令値「255」で顎を最も下げた(つまり口を開けた)状態とするように設定されている。アクチュエータA13は、後述の口唇動作の制御に用いられる。
アクチュエータA14は頭部26を左右に傾動させるためのアクチュエータである。
アクチュエータA15は頭部26を俯仰させるために、上記の首関節の関節角を制御するアクチュエータ(首関節アクチュエータ)であり、「0−255」の指令値で動作する。初期値は「128」である。アクチュエータA15は、指令値「255」で頭部26が最も仰向いた状態になり、指令値「0」で最も直立している状態になるように、首関節を制御する。
アクチュエータA16は頭部を左右に回動させるためのアクチュエータである。
アクチュエータA17は肩32を上下動するためのアクチュエータであり、「0−255」の指令値で動作する。初期値は「0」である。アクチュエータA17は、指令値「255」で肩32が一番上の位置になり、指令値「0」で一番下の位置になるように、設定されている。
アクチュエータA18は腰34を前屈させまたは後傾させるために、上記腰関節の関節角を制御するアクチュエータ(腰関節アクチュエータ)であり、「0−255」の指令値で動作する。初期値は「32」である。アクチュエータA18は、指令値「255」で腰34が最も前屈した状態になり、指令値「0」で最も後傾した状態になるように、腰関節を制御する。
アクチュエータA19は腰34を左右に回動(ひねる)ためのアクチュエータである。
アンドロイドロボット12は、図3に示すように、アンドロイドロボット12の全体制御を司るCPU36を備える。CPU36は、バス38を通して通信モジュール40に接続され、したがって、CPU36は通信モジュール40を介して、ネットワーク14すなわち遠隔操作端末16と、有線で、または無線で、通信可能に接続される。
CPU36はまた、バス38を通してメモリ42にアクセスでき、このメモリ42に設定されているプログラムやデータ(図4:後述)に従って、バス38を通してアクチュエータ制御回路44に上述のような指令値を与え、各アクチュエータA1‐Anの動作を制御する。アクチュエータ制御回路44は、CPU36から与えられる指令値に応じた数のパルス電力を生成し、それを該当するステッピングモータに与えることによって、各アクチュエータA1‐Anを駆動する。
ただし、アクチュエータとしてはこのようなステッピングモータを用いるものの他、サーボモータを用いるアクチュエータ、流体アクチュエータなど任意のアクチュエータが利用可能である。
センサI/F(インタフェース)46は、バス38を介して、CPU36に接続され、触覚センサ48および眼カメラ50からのそれぞれの出力を受ける。
触覚センサ48ないし皮膚センサは、たとえばタッチセンサであり、アンドロイドロボット12の触覚の一部を構成する。つまり、触覚センサ48は、人間や他の物体等がアンドロイドロボット12に触れたか否かを検出するために用いられる。触覚センサ48からの出力(検出データ)は、センサI/F46を介してCPU36に与えられる。したがって、CPU36は、人間や他の物体等がアンドロイドロボット12に触れたこと(およびその強弱)を検出することができる。
眼カメラ50は、イメージセンサであり、アンドロイドロボット12の視覚の一部を構成する。つまり、眼カメラ50は、アンドロイドロボット12の眼から見た映像ないし画像を検出するために用いられる。この実施例では、眼カメラ50の撮影映像(動画ないし静止画)に対応するデータ(画像データ)は、センサI/F46を介してCPU36に与えられる。CPU36は、撮影映像の変化を検出するのみならず、その画像データを、通信モジュール40およびネットワーク14(図1)を介して遠隔操作端末16に送信する。そして、遠隔操作端末16は、受信した画像データをモニタ22に出力する。したがって、眼カメラ50の撮影映像がモニタ22に表示される。
また、スピーカ54およびマイク56は、入出力I/F52に接続される。スピーカ54は、アンドロイドロボット12が発話を行う際に音声を出力する。遠隔操作端末16の操作者ないしオペレータ(以下、「遠隔オペレータ」ということがある。)が直接発話を行う場合、ネットワーク14、通信モジュール40および入出力I/F52を通して当該音声が出力される。具体的には、遠隔オペレータがマイク20を通して発話すると、対応する音声データが遠隔操作端末16からネットワーク14を介してCPU36に与えられる。そして、CPU36は、その音声データを、入出力I/F52を介してスピーカ54から出力する。
マイク56は、音センサであり、アンドロイドロボット12の聴覚の一部を構成する。このマイク56は、指向性を有し、主として、アンドロイドロボット12と対話(コミュニケーション)する人間(ユーザ)の音声を検出するために用いられる。
アンドロイドロボット12のメモリ42は、たとえばRAMやHDDであり、図4に示すように、プログラム領域58およびデータ領域60を含む。
プログラム領域58には、音声処理プログラム62が記憶される。音声処理プログラム62は、音声認識プログラムおよび音声合成プログラムを含む。音声認識プログラムは、マイク56を通して入力される、人間がアンドロイドロボット12に対して発話した内容をCPU36が認識するためのプログラムであり、CPU36は、たとえばDPマッチングや隠れマルコフ法(Hidden Markov Model:HMM)により、人間の発話内容を音声認識する。
CPU36は、その音声認識プログラムに従って、遠隔オペレータがマイク20を通して入力した発話を認識する。たとえば、上述のHMM法やディープニューラルネットワーク(Deep. Neural Network:DNN)のような音響モデルを用いて発話音声を検出できる。
遠隔オペレータの音声を直接スピーカ54から出力する外に、アンドロイドロボット12から音声合成によって発話させることができる。CPU36は、遠隔操作端末16から音声合成によってスピーカ54から発話する指示が入力されたとき、この遠隔操作端末16から与えられる音声合成データに従って合成した音声をスピーカ54に出力する。
口唇動作制御プログラム64は、アンドロイドロボット12がスピーカ54から発話するとき、その発話音声(遠隔オペレータの声または合成音声)に適合する口唇形状となるように、たとえば図2に示すアクチュエータA10‐A11を制御するためのプログラムである。
口唇動作制御プログラム64は、後述のように、遠隔オペレータからの発話の区間を検出するためのプログラムである。CPU36は、遠隔オペレータの音声信号から、所定周期毎に所定フレーム長の、たとえばMFCC係数(メル周波数ケプストラム係数:Mel Frequency Cepstrum Coefficient)、フォルマント周波数およびF0(基本周波数)などの音響特徴を検出する。
身体動作制御プログラム66は、この実施例に従ってアンドロイドロボット12の身体動作、特に首および腰の動作を制御するためのプログラムである。この身体動作制御プログラム66は、基本的には、アンドロイドロボット12によって発話に伴う自然な動作を自動的にかつリアルタイムに生成するためのプログラムである。
メモリ42のデータ領域60は、種々のデータを記憶するための領域である。音声データ領域68は、遠隔操作端末16から送られてくる遠隔オペレータの音声の音声データおよびマイク56から入力される音声データを一時的に記憶する。辞書データ領域70は、データベース領域として機能し、そこには前述の音声認識や音声合成のために必要な辞書などのデータが記憶される。その他、データ領域60は、CPU36の動作に必要な、タイマ、レジスタ、フラグなどの所要の領域72を含む。
アンドロイドロボット12は、人間に酷似した姿形を有して人間の動作に酷似した動作を行うロボットであるから、遠隔オペレータの発話音声を出力したり、音声合成した音声をスピーカ54から出力する際に、たとえば口唇を動かさなかったり単に音声に関係なく口唇を動かしたりするだけでは人間に強い違和感を与えてしまう。そこで、この実施例のシステム10では、アンドロイドロボット12が出力する発話音声に合わせてその口唇を主とした顔面動作を生成する。
さらに、人間が発話するとき、音声を発するだけでなく、顔の表情や身体的な表情も笑い声に合わせて変化するが、アンドロイドロボット12(遠隔オペレータ)が発話するときにできるだけ自然に見えるような、身体の動作を生成する。
このシステム10の動作を図5および図6、図7に示すフロー図を参照しながら説明する。
図5には、CPU36の発話処理の動作の一例が示される。CPU36は、この発話処理を一定時間ごとに繰り返し実行する。
図5のステップS1では、音声データを受信したか否かを判断する。遠隔オペレータが発話したとき、遠隔操作端末16からマイク20で取得された発話音声の音声データが送信されてくるので、この音声データをネットワーク14を介して受信したか否かが判断される。なお、遠隔操作端末16は、発話音声を所定のサンプリングレート(たとえば、8kHz)で音声データとして取得し、取得した音声データを所定のパケット長(たとえば20ms)で一定時間ごとに送信する。
ステップS1で“YES”であれば、ステップS3で、音声記憶処理を開始する。音声記憶処理はCPU36によって他の処理と並列的に実行される。この音声記憶処理によって、受信される音声データが順次メモリ42のデータ領域60の音声データ領域68に記憶される。音声記憶処理は、発話音声が検出されなくなって音声データが受信されなくなったときに終了される。
続いて、ステップS5で、口唇動作制御処理を開始する。口唇動作制御処理はCPU36によって他の処理と並列的に実行される。この口唇動作制御処理では、取得された発話音声の解析が行われて、当該音声に基づいて口唇動作が制御される。口唇動作制御処理の動作の一例は後述する図6に示される。
ステップS7で、身体動作制御処理を開始する。身体動作制御処理はCPU36によって他の処理と並列的に実行される。この身体動作制御処理では、取得された発話音声の解析が行われて、当該音声に基づいて身体動作、特に首および腰が制御される。身体動作制御処理の動作の一例は後述する図7に示される。
ステップS9では、音声取得から一定時間経過したか否かを判断する。この実施例では、取得した発話音声を一定量の遅延のもとに再生するようにしているので、この判定によって、音声データの取得(受信)から一定時間の経過を待つ。
ステップS9で“YES”であれば、ステップS11で、音声再生処理を開始する。音声再生処理はCPU36によって他の処理と並列的に実行される。この音声再生処理では、取得された音声データがメモリ42の音声データ領域68から読み出されて入出力I/F52に与えられ、これによって、アンドロイドロボット12のスピーカ54から当該音声が出力される。音声再生処理は、取得した音声データをすべて再生し終わったときに終了される。
なお、ステップS1で“NO”の場合、つまり、発話が行われていないときには、そのまま図5の発話処理を終了する。
ステップS5で開始される口唇動作制御処理の動作の一例を図6を参照して説明する。まず、ステップS21で、音響特徴の変動量を抽出する。
アンドロイドロボット12のような物体の場合、画像のようにフレームごとに口唇形状を制御することは困難である。従って、まず、遠隔オペレータの音声の周波数やケプストラムの解析を行い、音響特徴の変動が高い位置を検出する。音響特徴の変動量は、たとえば、ある時刻における前後所定時間(たとえば20ms程度)のフレームのパラメータ(たとえばMFCC)の平均二乗誤差として算出される。
次に、ステップS23で、この変動量(MFCC平均二乗誤差など)が閾値を超えたか否かを判断する。実験によって、音素の変化を表す程度に、この変動量に閾値を設定しておく。閾値を超えた変動量のピーク位置がアンドロイドロボット12の動作指令発行時点を決める際の基礎となる。
ステップS23で“NO”の場合、処理はステップS21へ戻り、次の時刻を基点とする音声データについて処理を繰り返す。
一方、ステップS23で“YES”の場合、ステップS25で、音響特徴の高い変動量が検出された時点の前後所定時間(たとえば100ms程度)の音声から音響特徴(たとえばMFCC)を抽出し、ステップS27で、非線形モデルを用いて口唇形状の推定を行う。推定の手法として、線形回帰分析、ニューラルネットワーク、HMM、KNN(ケイ近傍法:k-nearest neighbor algorithm)などが挙げられる。音響特徴と口唇形状の間には非線形な関係があるので、ニューラルネットワークのような非線形なモデルを用いることがある。そのためには、予め収録したビデオデータまたはモーションキャプチャによる口唇形状のデータベースによってモデル学習を行っておき、メモリ42の辞書データ領域70にモデル学習による非線形マッピングのための情報を記憶しておく必要がある。
続いて、ステップS29で、推定された口唇形状を形成するための制御情報を設定し、ステップS31で動作遅延を推定する。具体的には、アンドロイドロボット12のアクチュエータA10およびA11の制御情報に関しては、アクチュエータ制御の静的特徴と動的特徴を考慮する。つまり、静的特徴としては、特定の口唇形状に近づけるためのアンドロイドロボット12のアクチュエータA10およびA11の制御情報を予め手動的に取得しておき、口唇形状と制御情報とを対応付けたデータベースをメモリ42の辞書データ領域70に記憶しておく。また、動的特徴としては、特定の形状をターゲットとして口唇を動かした際に、指令を発行した時点からアンドロイドロボット12が実際にターゲットの形状に辿りつくまでにかかる時間(これを動作遅延と呼ぶ。)を実験により取得しておき、制御情報(口唇形状)と動作遅延とを対応付けたデータベースをメモリ42の辞書データ領域70に記憶しておく。後述のステップS37では、この動作遅延の情報を基に、音声と同期を取るために、動作指令を送る時点が早められたり遅くされたりする。
ステップS33では、所定時間の推定を行ったか否かを判断する。この実施例では、音響特徴を抽出した範囲よりも広い範囲、たとえば複数の音素や単語単位で、口唇動作の再構成をすることを想定しているので、このステップS33の判定を行う。ステップS33で“NO”の場合、ステップS21に戻って処理を繰り返す。
ステップS33で“YES”であれば、ステップS35で、区間を通じた口唇動作の最適化処理を行う。つまり、比較的短い期間の音声に関して、ステップS21やステップS25の処理を行い、これらの音声を束ねたより長い区間を通じて動作の最適化を試みる。推定された口唇形状は完全にはアンドロイドロボット12では再現できない場合もあるため、推定された口唇形状の時系列を元に、この口唇動作を簡略化するなど必要な変換を行う。
続いて、ステップS37で、動作遅延に基づいて、音声再生開始タイミングを基準として、各動作指令の発行タイミングを設定する。つまり、特定の口唇形状を形成するための動作指令の発行タイミングは、当該音声との同期をとるために、当該推定遅延に基づいて音声再生開始タイミングを基準として設定される。
そして、ステップS39で、動作指令発行処理を開始する。動作指令発行処理はCPU36によって他の処理と並列的に実行される。この動作指令発行処理では、各動作指令の発行タイミングになったと判断されたときに、アクチュエータA10およびA11の指令値が発行される。
ステップS41では、未処理の音声データが残っているか否かを判断し、“YES”であれば、ステップS21に戻って処理を繰り返す。このようにして、アンドロイドロボット12においては、遠隔オペレータの発話音声が当該音声に適合した口唇動作を伴って出力される。一方、ステップS41で“NO”であれば、この口唇動作制御処理を終了して、図5に戻る。
この実施例によれば、遠隔オペレータの発話音声の音響特徴から非線形モデルを用いて口唇形状を推定し、発話音声の再生開始タイミングを基準として当該口唇形状を形成するまでにかかる動作遅延を考慮してアクチュエータA10,A11の動作指令の発行タイミングを設定するようにしたので、アンドロイドロボット12において遠隔オペレータの発話音声に適合させた口唇動作を実現することができる。したがって、アンドロイドロボット12の応対する人間に対して違和感を与えることなく、自然な対話を行うことができる。
図5のステップS7での身体動作制御処理の一例が、図7のフロー図に示される。
最初のステップS51では、CPU36は、図5のステップS3でメモリ42の音声データ領域68に記憶された音声データに含まれる基本周波数(ピッチ)F0を抽出する。つまり、フレーム長32msの音声データを10msのフレーム間隔で解析し、音声の基本周波数F0を検出する。基本周波数F0を検出する、一般的な手法として、たとえばLPC(Linear Predictive Coding:線形予測符号化)の残差波形の自己相関関数のピーク探索によるものが挙げられるが、これに限定されるものではない。
それと共に、ステップS51では、CPU36は、同じ音声データが持つボイスパワー(音声強度)を検出する。たとえば、音声データが遠隔オペレータからマイク20(図1)を通して与えられたものであれば、その音声データが含むエネルギを音声強度として検出する。たとえば、図6のステップS25でMFCCを利用して、その派生パラメータとしてパワーを検出するようにしてもよい。
ただし、アンドロイドロボット12がスクリプトに従って自律的に発話するように設定されている場合、音声データのエネルギを検出することなく、そのスクリプトで設定された音声強度を採用すればよい。
さらにステップS51では、CPU36は、口唇形状を検出する。たとえば、ステップS29で推定されかつステップS35で最適化された口唇形状に従ってステップS39でアクチュエータA10およびA11の指令値を出力するが、そのときのアクチュエータA11に対する指令値に基づいて口唇形状を検出する。前述のように、アクチュエータA11は、指令値が「0」のとき口唇開度(「LipHeight」であらわす。)が最も小さく、「255」のとき最も大きくなる。したがって、そのときの指令値から口唇開度を検出することができる。
ただし、アンドロイドロボット12がスクリプトに従って自律的に発話するように設定されている場合、そのスクリプトで設定された指令値から口唇開度を検出すればよい。
そして、ステップS53で、図8に示すようなばねダンパモデル80に適用する、トルクTとそのトルクの方向Dirを計算する。
詳しく説明すると、まず、前回の口唇開度LipHeight(t-1)と今回の口唇開度LipHeight(t)とを比較し、今回の口唇開度LipHeight(t)が前回の口唇開度LipHeight(t-1)より大きいときには、今回の口唇開度LipHeight(t)を口唇開度として採用する。それ以外のとき、口唇開度LipHeightは0とする。
If LipHeight(t)>LipHeight(t-1) then LipHeight=LipHeight(t)、Otherwise LipHeight=0
ついで、同様にして、音声強度を決定する。つまり、前回の音声強度VoicePower(t-1)と今回の音声強度VoicePower(t)とを比較し、今回の音声強度VoicePower(t)が前回の音声強度VoicePower(t-1)より大きいときには、今回の音声強度VoicePower(t)を音声強度として採用する。それ以外のとき、音声強度VoicePowerは0とする。
If VoicePower(t)>VoicePower(t-1) then VoicePower=VoicePower(t)、Otherwise VoicePower=0
そして、このようにして決めた口唇開度LipHeightおよび音声強度VoicePowerに基づいて、数1に従ってトルクT(t)を計算する。
[数1]
T(t)=LipHeight+VoicePower …(1)
数1では、たとえば「あ」のように口を大きく開けるか、または声が大きいときに、トルクT(t)が大きくなる。
このステップS53ではさらに、先のステップS51で抽出した基本周波数F0に基づいて、上記トルクT(t)の方向を決定する。基本周波数F0が所定の閾値以上のとき、つまり、発話音声のピッチが高いとき、トルクT(t)の方向Dir(t)は「1」とされ、基本周波数F0が所定の閾値未満のとき、つまり、発話音声のピッチが低いとき、トルクT(t)の方向Dir(t)は「−1」とされる。後述のように、トルクT(t)の方向が「1」のときは、頭部26を上げようとする力が加わり,「−1」のときは、頭部26を下げようとするような力が加わる。したがって、首関節のアクチュエータA15は、図8の2点鎖線で示すように頭部26を上げる方向に制御され、トルクT(t)の方向が「−1」のときは、図8の点線で示すように頭部26を下げる方向に制御される。
次のステップS55で、CPU36は、図8に示すようなばねダンパモデル80に数1で求めたトルクT(t)を入力し、そのばねダンパモデルの変位から、実施例において制御する首の上下動作角θを数2すなわち数3に従って計算する。
なお、図8では、関節の回転角度に対してばね(渦巻きで描かれている部分)の弾力と、関節の回転速度に対して粘性抵抗(ピストンのように描かれているもの)が加わるばねダンパモデルを表している。よく知られているように、このばねダンパモデルにおいて、首が正面位置から大きく動けば動くほど、元に戻ろうとする力が大きく働き、首の動きが速くなればなるほど、動きの抵抗が大きくなって、速度が大きくなるのが抑えられる。
Figure 0006701483
Figure 0006701483
このようにして、角度θが算出され、ステップS57では、数4に従ってその角度θを首のアクチュエータA15の関節角φに変換する。
[数4]
φ(t)=αθ(t+β) …(4)
ただし、α、βは当該アンドロイドロボットに特有の係数である。
CPU36は、この関節角φに従ってアクチュエータA15のステッピングモータの指令値をアクチュエータ制御回路44に与える。それによって、アンドロイドロボット12の頭部26が、発話に伴って、数2および数3でトルクT(t)すなわち口唇開度LipHeightおよび音声強度VoicePowerの和に応じて、図8の点線または2点鎖線で示すように、上下動される。つまり、この実施例では、CPU36は、アンドロイドロボット12の発話の際の口唇開度LipHeightおよび音声強度VoicePowerなにびに上記の動作方向に基づいて関節角φを計算し、首関節がその関節角φになるように、アクチュエータA15に指令値を与えて、このアクチュエータA15を駆動する。
したがって、図1のような遠隔操作時においてこの実施例を適用すると、遠隔オペレータが動いていなくてもアンドロイドロボット12の動きを自動的に作り出すことができるため、そのアンドロイドロボット12と対話している対話相手に、対話している実感を持たせることができる。たとえば、アンドロイドロボット12のそのような動きによって、真剣に対話している感じや感情的に話している感じを伝えることができ、円滑な対話が実現できる。さらに、感情的な動き(たとえば大きな声を上げたときには、体が大きく動く)が自動的に生成でき、より自然な対話が実現できる。
なお、上述の実施例では、「あ」のように口を大きく開けるか、または声が大きいときに、トルクT(t)が大きくなり、それに従って、頭部26が大きく動くようにされた。これに対して、第2の実施例では、たとえば「あ」のように口を大きく開けかつ声が大きいときに、頭部を大きく動かすようにすることができる。
つまり、第2の実施例では、先の数1を変形した数5に従って、トルクT(t)を求める。先の数1が口唇開度LipHeightおよび音声強度VoicePowerの和からトルクを計算したのに対して、数5では口唇開度LipHeightおよび音声強度VoicePowerの積からトルクを計算する。
[数5]
T(t)=LipHeight×VoicePower …(5)
その他は、先の実施例と同様であり、数5で計算したトルクT(t)を用いて、数2以降に従って、動作角θおよび関節角φを求め、アクチュエータA15を制御する。
上述の2つの実施例では、数4で計算した関節角φで1つの首関節のアクチュエータA15だけを制御するようにした。この場合、図8に示すように、1つのアクチュエータA15によって頭部26が俯仰される。
ただし、図9に示す実施例のように、首関節を動作させるアクチュエータが上下に2つある場合、上記の角度θから2つの関節角度を算出することによって、2つのアクチュエータA15およびA15aを制御する。具体的には、上記の数4に従って、下記数6のようにして計算する。ただし,αとβは関節毎に異なる。2つの関節角度をφ1、φ2とすると、
ただし、α1,α2,β1,β2は関節に特有の係数として任意に決めることができる。
詳しくいうと、図7に示すステップS53では、基本周波数F0に基づいて、トルクT(t)の方向Dir(t)は「1」または「−1」が決定され、ステップS57において、数4で計算した関節角φに応じて、トルクの方向が示す方向に、アクチュエータA15およびA18の両方を同時に制御する。したがって、図10に示すように、発話音声のピッチに応じた方向に、口唇開度LipHeightおよび音声強度VoicePowerの和または積に従ったトルクT(t)の大きさに応じた関節角φで、頭部26が俯仰されると同時に、胴体部24が、前屈または後傾される。
つまり、この実施例では、CPU36は、アンドロイドロボット12の発話の際の口唇開度LipHeightおよび音声強度VoicePowerならびに発話音声の基本周波数F0で決まる動作方向に基づいて1つまたは複数の関節角φを計算し、首関節および/または腰関節がその関節角φになるように、アクチュエータA15およびA18に指令値を与えて、このアクチュエータA15およびA18を駆動する。
図10の実施例によれば、アンドロイドロボット12の発話に応じて頭部26および/または胴体部24が前後に動くので、感情表現が一層豊かになる。
つまり、複数の関節があれば、1つの角度θから複数の関節角φ1、...φnを、数7に従って計算し、それに基づいて対応の関節を制御するアクチュエータを制御すればよい。
[数7]
ただし、アンドロイドロボット12の発話の際の口唇開度LipHeightおよび音声強度VoicePowerに基づいて関節角を計算する方法は、ばねダンパモデルを用いる方法に限らず、他の方法が利用されてもよい。この場合も、発話音声の基本周波数F0によって、動作方向(すなわち関節角φの符号)を決めるようにすればよい。
なお、上で挙げた時間の長さなどの具体的数値はいずれも単なる一例であり、必要に応じて適宜変更可能である。
10 …アンドロイドロボット制御システム
12 …アンドロイドロボット
16 …遠隔操作端末
24 …胴体部
26 …頭部
36 …CPU
42 …メモリ
A15、A18…アクチュエータ

Claims (8)

  1. 胴体部と口唇を有する頭部とを、少なくとも1つの首関節アクチュエータによって動作される少なくとも1つの首関節を介して連結し、スピーカから発話するアンドロイドロボットを制御するシステムであって、
    前記発話の際の音声の基本周波数に基づいて動作方向を決定する方向決定手段、
    前記発話の際の前記口唇の開度および音声強度並びに前記動作方向に基づいて関節角を求める関節角計算手段、および
    前記関節角に従って前記少なくとも1つの首関節の前記少なくとも1つの首関節アクチュエータを駆動する第1駆動手段を備える、アンドロイドロボット制御システム。
  2. 前記アンドロイドロボットは前記胴体部を傾動する腰関節および前記腰関節を動作させる腰関節アクチュエータを含み、さらに
    前記関節角に従って前記腰関節アクチュエータを駆動する第2駆動手段を備える、請求項1記載のンドロイドロボット制御システム。
  3. 前記関節角計算手段は、
    前記発話の際の前記口唇の開度および音声強度に基づいてトルクを計算するトルク計算手段、
    前記トルクおよび前記動作方向から、ばねダンパモデルを用いて動作角を計算する動作角計算手段、および
    前記動作角を関節角に変換する変換手段を含む、請求項1または2記載のアンドロイドロボット制御システム。
  4. 前記トルク計算手段は前記口唇の開度および音声強度の加算に基づいてトルクを計算する、請求項3記載のアンドロイドロボット制御システム。
  5. 前記トルク計算手段は前記口唇の開度および音声強度の積算に基づいてトルクを計算する、請求項3記載のアンドロイドロボット制御システム。
  6. 胴体部と口唇を有する頭部とを、少なくとも1つの首関節アクチュエータによって動作される少なくとも1つの首関節を介して連結し、スピーカから発話するアンドロイドロボットを制御する装置であって、
    前記発話の際の音声の基本周波数に基づいて動作方向を決定する方向決定手段、
    前記発話の際の前記口唇の開度および音声強度並びに前記動作方向に基づいて関節角を求める関節角計算手段、および
    前記関節角に従って前記少なくとも1つの首関節の前記少なくとも1つの首関節アクチュエータを駆動する駆動手段を備える、アンドロイドロボット制御装置。
  7. 胴体部と口唇を有する頭部とを、少なくとも1つの首関節アクチュエータによって動作される少なくとも1つの首関節を介して連結し、スピーカから発話するアンドロイドロボットを制御するアンドロイドロボット制御システムのコンピュータによって実行されるプログラムであって、前記コンピュータを
    前記発話の際の音声の基本周波数に基づいて動作方向を決定する方向決定手段、
    前記発話の際の前記口唇の開度および音声強度並びに前記動作方向に基づいて関節角を求める関節角計算手段、および
    前記関節角に従って前記少なくとも1つの首関節の前記少なくとも1つの首関節アクチュエータを駆動する駆動手段
    として機能させるための、アンドロイドロボット制御プログラム。
  8. 胴体部と口唇を有する頭部とを、少なくとも1つの首関節アクチュエータによって動作される少なくとも1つの首関節を介して連結し、スピーカから発話するアンドロイドロボットの制御システムにおいて、前記システムが実行する制御方法であって、
    前記発話の際の音声の基本周波数に基づいて動作方向を決定する方向決定ステップ、
    前記発話の際の前記口唇の開度および音声強度並びに前記動作方向に基づいて関節角を求める関節角計算ステップ、および
    前記関節角に従って前記少なくとも1つの首関節の前記少なくとも1つの首関節アクチュエータを駆動する駆動ステップを含む、アンドロイドロボット制御方法。
JP2015220049A 2015-11-10 2015-11-10 アンドロイドロボットの制御システム、装置、プログラムおよび方法 Active JP6701483B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015220049A JP6701483B2 (ja) 2015-11-10 2015-11-10 アンドロイドロボットの制御システム、装置、プログラムおよび方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015220049A JP6701483B2 (ja) 2015-11-10 2015-11-10 アンドロイドロボットの制御システム、装置、プログラムおよび方法

Publications (2)

Publication Number Publication Date
JP2017087344A JP2017087344A (ja) 2017-05-25
JP6701483B2 true JP6701483B2 (ja) 2020-05-27

Family

ID=58769795

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015220049A Active JP6701483B2 (ja) 2015-11-10 2015-11-10 アンドロイドロボットの制御システム、装置、プログラムおよび方法

Country Status (1)

Country Link
JP (1) JP6701483B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW202009924A (zh) * 2018-08-16 2020-03-01 國立臺灣科技大學 音色可選之人聲播放系統、其播放方法及電腦可讀取記錄媒體

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001345906A (ja) * 2000-05-31 2001-12-14 Sanyo Electric Co Ltd 電話対応型ロボット
JP4296714B2 (ja) * 2000-10-11 2009-07-15 ソニー株式会社 ロボット制御装置およびロボット制御方法、記録媒体、並びにプログラム
EP1262844A1 (en) * 2001-06-01 2002-12-04 Sony International (Europe) GmbH Method for controlling a man-machine-interface unit
US7136818B1 (en) * 2002-05-16 2006-11-14 At&T Corp. System and method of providing conversational visual prosody for talking heads
JP2005199403A (ja) * 2004-01-16 2005-07-28 Sony Corp 情動認識装置及び方法、ロボット装置の情動認識方法、ロボット装置の学習方法、並びにロボット装置

Also Published As

Publication number Publication date
JP2017087344A (ja) 2017-05-25

Similar Documents

Publication Publication Date Title
JP6583815B2 (ja) アンドロイドロボットの制御システム、装置、プログラムおよび方法
JP4296714B2 (ja) ロボット制御装置およびロボット制御方法、記録媒体、並びにプログラム
Ishi et al. Evaluation of formant-based lip motion generation in tele-operated humanoid robots
US20030163320A1 (en) Voice synthesis device
WO2014025012A1 (ja) 音声認識方法及び音声認識装置
Ishi et al. Speech-driven lip motion generation for tele-operated humanoid robots
JP4599606B2 (ja) 頭部動作自動生成のための頭部動作学習装置及び頭部動作合成装置並びにコンピュータプログラム
Youssef et al. Articulatory features for speech-driven head motion synthesis
JP5055486B2 (ja) 遠隔操作アンドロイドの発話動作制御システム
WO2002082423A1 (fr) Dispositif d'elaboration de suites de mots
JP6701483B2 (ja) アンドロイドロボットの制御システム、装置、プログラムおよび方法
JP2002307349A (ja) ロボット装置、情報学習方法、プログラム及び記録媒体
JP2002268663A (ja) 音声合成装置および音声合成方法、並びにプログラムおよび記録媒体
Thangthai et al. Speech gesture generation from acoustic and textual information using LSTMs
JP2002258886A (ja) 音声合成装置および音声合成方法、並びにプログラムおよび記録媒体
Ishi et al. Evaluation of a formant-based speech-driven lip motion generation
JP6917611B2 (ja) ヒューマノイドロボットの驚き動作生成装置
JP3070136B2 (ja) 音声信号に基づく画像の変形方法
JP4656354B2 (ja) 音声処理装置および音声処理方法、並びに記録媒体
JP2006021273A (ja) テキストビジュアル音声(ttvs)合成方法及びコンピュータで実行可能なプログラム
JP2002318590A (ja) 音声合成装置および音声合成方法、並びにプログラムおよび記録媒体
JP2018063324A (ja) インタラクション装置及びインタラクションの表出方法
Vaz et al. Speech imitation with a child’s voice: addressing the correspondence problem
JP2002189497A (ja) ロボット制御装置およびロボット制御方法、記録媒体、並びにプログラム
JP2003271181A (ja) 情報処理装置および情報処理方法、並びに記録媒体およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181016

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191120

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200310

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200403

R150 Certificate of patent or registration of utility model

Ref document number: 6701483

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250