(57)【要約】【課題】ロボットの動作シナリオの作成にかかる労力を軽減する。【解決手段】実施形態におけるロボット制御装置は、ロボットの発話内容と、非言語動作の識別情報とを含むログ情報から、発話内容の意図を示す対話行為を推定する第１の推定手段と、対話行為とともに実施される非言語動作の共起確率を計算する計算手段と、ロボットの新たな発話内容の発話時間および新たな発話内容の対話行為を推定する第２の推定手段と、推定した発話時間、新たな発話内容の対話行為、および共起確率に基づいて、新たな発話内容の対話行為とともに実施されて推定した発話時間に適した非言語動作を決定する決定手段と、決定した非言語動作および新たな発話内容に基づいて、ロボットの動作シナリオを生成する生成手段とを有する。【選択図】図１
2019030949.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの発話内容と、前記ロボットの非言語動作の識別情報とを含むログ情報から、前記発話内容の意図を示す対話行為を推定する第１の推定手段と、
前記第１の推定手段により推定された対話行為に対する、当該対話行為とともに実施される非言語動作の共起確率を計算する計算手段と、
前記ロボットの新たな発話内容を取得し、この取得した発話内容の音声発話に要する時間である発話時間、および、前記取得した発話内容の意図を示す対話行為をそれぞれ推定する第２の推定手段と、
前記第２の推定手段により推定された発話時間、前記第２の推定手段により推定された対話行為、および前記計算手段により計算された共起確率に基づいて、前記第２の推定手段により推定された対話行為とともに実施される動作で、かつ動作に要する時間である動作時間の長さが前記第２の推定手段により推定された発話時間に対応した長さである非言語動作を決定する決定手段と、
前記決定手段により決定された非言語動作および前記新たな発話内容に基づいて、前記ロボットの動作シナリオを生成する生成手段と
を備えたロボット制御装置。
【請求項２】
前記計算手段は、
前記第１の推定手段により推定された対話行為に基づいて、当該対話行為とともに実施される非言語動作の共起確率を複数種類の非言語動作についてそれぞれ計算し、
前記決定手段は、
前記複数種類の非言語動作のうち共起確率が最も高い非言語動作を選択し、
前記選択した非言語動作に要する時間である動作時間と前記第２の推定手段により推定された発話時間との間に差分があるときに、前記複数種類の非言語動作のうち前記選択した非言語動作以外の非言語動作であって前記共起確率が最も高い非言語動作の選択を繰り返す
請求項１に記載のロボット制御装置。
【請求項３】
前記非言語動作を示す情報を、この非言語動作が、動作完了まで繰り返し継続する動作であるか否かを示す属性情報と対応付けて記憶する非言語動作記憶手段をさらに備え、
前記決定手段は、
前記決定手段により選択された非言語動作に対応する属性情報を前記非言語動作記憶手段から読み出し、当該属性情報が前記繰り返し継続する動作を示すときに、前記決定手段により選択された非言語動作を、前記決定手段により選択された非言語動作に要する時間である動作時間が前記第２の推定手段により推定された発話時間に達するまで繰り返した動作として、当該動作を、前記第２の推定手段により推定された対話行為とともに実施される動作で、かつ前記動作時間の長さが前記第２の推定手段により推定された発話時間に対応した長さである非言語動作として決定する
請求項２に記載のロボット制御装置。
【請求項４】
前記決定手段は、
前記決定手段により選択された非言語動作が、同一の部分的な動作を反復した動作を含むときに、前記決定手段により選択された非言語動作を、前記同一の部分的な動作を反復した動作を繰り返す動作に更新する
請求項２に記載のロボット制御装置。
【請求項５】
ロボット制御装置が行なうロボット制御方法であって、
ロボットの発話内容と、前記ロボットの非言語動作の識別情報とを含むログ情報から、前記発話内容の意図を示す第１の対話行為を推定し、
前記推定された対話行為に対する、当該対話行為とともに実施される非言語動作の共起確率を計算し、
前記ロボットの新たな発話内容を取得し、この取得した発話内容の音声発話に要する時間である発話時間、および、前記取得した発話内容の意図を示す第２の対話行為をそれぞれ推定し、
前記推定した発話時間、前記推定された前記第２の対話行為、および前記計算された共起確率に基づいて、前記推定された前記第２の対話行為とともに実施される動作で、かつ動作に要する時間である動作時間の長さが前記推定された発話時間に対応した長さである非言語動作を決定し、
前記決定された非言語動作および前記新たな発話内容に基づいて、前記ロボットの動作シナリオを生成するロボット制御方法。
【請求項６】
請求項１乃至４のいずれか１つにおけるロボット制御装置の前記各手段としてプロセッサを機能させるロボット制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ロボット制御装置、ロボット制御方法およびロボット制御プログラムに関する。
【背景技術】
【０００２】
受付や接客などの分野で、発話機能を有するロボットを用いたサービスが行われている。この種のサービスの一例としては、企業による来訪者の受付において、来訪時の手続き手順や施設案内などをユーザ（来訪者）と対話しながら説明し、受付をロボットで自動化するものがある。
【０００３】
このようなロボットを用いたサービスでユーザとの対話を円滑に進めるには、ロボットによる発話内容だけではなく、ロボットの顔の向きや手や体の動きなど、非言語動作の表現が必要不可欠となる。例えば、企業による来訪者の受付においてロボットが施設案内をする際に、ロボットによる音声発話だけではなく、ロボットの手の動きで案内の方向を指し示すことで、ユーザに分かりやすく案内を実施できる。
【０００４】
また、ロボットに対して受付や接客を効果的に実施させるためには、シナリオ作成者がロボットの表現として、発話内容に加えて、非言語動作（顔向きや体の動き）を適切に決定し、ロボットが実行する動作シナリオを作成する必要がある。
【０００５】
この発話内容と非言語動作の２種類の情報を、シナリオ作成者は同時並行的に検討し、発話長に合わせた長さの動作を設定しながら、シナリオ作成を行う必要があり、労力が大きくなることが１つの課題となっていた。
【０００６】
そこで、ロボットの動作シナリオを簡易に作成する手法として、従来技術では、プログラム言語による動作シナリオの作成ではなく、GUI（グラフィカルユーザインタフェース）を用いたグラフィカルプログラミングによる手法が用いられてきた。例えばロボット単体に対する動作シナリオの作成ツールとして非特許文献１で示されているChoregrapheが挙げられる。また、複数のロボットやIoT（Internet of Things）機器を連携させる動作シナリオ作成のツールとして、非特許文献２で示されているクラウド型統合開発環境などが挙げられる。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】E.Pot, J.Monceaux, R.Gelin and B.Maisonnier等，“Choregraphe: a Graphical Tool for Humanoid Robot Programming”，Robot and Human Interactive Communication, 2009, pp.46-51.
【非特許文献２】松元崇裕，松村成宗，細淵貴司，“インタラクションロボットサービスのためのクラウド型総合開発環境”，電子情報通信学会技術研究報告，pp33-36, 2015．
【発明の概要】
【発明が解決しようとする課題】
【０００８】
非特許文献１の手法は、プログラム言語を書くことができない人が、GUIツールを利用してロボットを細かく制御することが可能であるが、GUIツールを使ってロボットが向けるべき視線方向、実施するべきジェスチャ、および、これらを実施するタイミングなど非言語動作を設定していく作業が必要なことは変わらず、一方でGUIツールの使い方自体も習得する必要がある。
【０００９】
また、非特許文献２の手法は、プリミティブ（primitive）な非言語動作（手を上げる、視線を向けるなど）の組み合わせパターンをあらかじめ定義しておき、ロボットの非言語動作をGUI画面上で選択しながら、ロボットの動作シナリオを記述することができる点で、非特許文献１に記載された手法と比べて容易に実施可能ではある。しかしながら、制御対象のロボットに対して、ロボットが向けるべき視線方向、実施するべきジェスチャ、およびこれらを実施するタイミングを記述する必要がある点は同様で、シナリオ作成に労力が大きくかかる点では改善の余地があった。
【００１０】
本発明の目的は、ロボットの動作シナリオの作成にかかる労力を軽減することができるロボット制御装置、ロボット制御方法およびロボット制御プログラムを提供することである。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、この発明の一実施形態におけるロボット制御装置の第１の態様は、ロボットの発話内容と、前記ロボットの非言語動作の識別情報とを含むログ情報から、前記発話内容の意図を示す対話行為を推定する第１の推定手段と、前記第１の推定手段により推定された対話行為に対する、当該対話行為とともに実施される非言語動作の共起確率を計算する計算手段と、前記ロボットの新たな発話内容を取得し、この取得した発話内容の音声発話に要する時間である発話時間、および、前記取得した発話内容の意図を示す対話行為をそれぞれ推定する第２の推定手段と、前記第２の推定手段により推定された発話時間、前記第２の推定手段により推定された対話行為、および前記計算手段により計算された共起確率に基づいて、前記第２の推定手段により推定された対話行為とともに実施される動作で、かつ動作に要する時間である動作時間の長さが前記第２の推定手段により推定された発話時間に対応した長さである非言語動作を決定する決定手段と、前記決定手段により決定された非言語動作および前記新たな発話内容に基づいて、前記ロボットの動作シナリオを生成する生成手段とを有する装置を提供する。
【００１２】
上記構成のロボット制御装置の第２の態様は、第１の態様において、前記計算手段は、前記第１の推定手段により推定された対話行為に基づいて、当該対話行為とともに実施される非言語動作の共起確率を複数種類の非言語動作についてそれぞれ計算し、前記決定手段は、前記複数種類の非言語動作のうち共起確率が最も高い非言語動作を選択し、前記選択した非言語動作に要する時間である動作時間と前記第２の推定手段により推定された発話時間との間に差分があるときに、前記複数種類の非言語動作のうち前記選択した非言語動作以外の非言語動作であって前記共起確率が最も高い非言語動作の選択を繰り返す装置を提供する。
【００１３】
上記構成のロボット制御装置の第３の態様は、第２の態様において、前記非言語動作を示す情報を、この非言語動作が、動作完了まで繰り返し継続する動作であるか否かを示す属性情報と対応付けて記憶する非言語動作記憶手段をさらに備え、前記決定手段は、前記決定手段により選択された非言語動作に対応する属性情報を前記非言語動作記憶手段から読み出し、当該属性情報が前記繰り返し継続する動作を示すときに、前記決定手段により選択された非言語動作を、前記決定手段により選択された非言語動作に要する時間である動作時間が前記第２の推定手段により推定された発話時間に達するまで繰り返した動作として、当該動作を、前記第２の推定手段により推定された対話行為とともに実施される動作で、かつ前記動作時間の長さが前記第２の推定手段により推定された発話時間に対応した長さである非言語動作として決定する装置を提供する。
【００１４】
上記構成のロボット制御装置の第４の態様は、第２の態様において、前記決定手段は、前記決定手段により選択された非言語動作が、同一の部分的な動作を反復した動作を含むときに、前記決定手段により選択された非言語動作を、前記同一の部分的な動作を反復した動作を繰り返す動作に更新する装置を提供する。
【００１５】
本発明の一実施形態におけるロボット制御方法の態様は、ロボット制御装置が行なうロボット制御方法であって、ロボットの発話内容と、前記ロボットの非言語動作の識別情報とを含むログ情報から、前記発話内容の意図を示す第１の対話行為を推定し、前記推定された対話行為に対する、当該対話行為とともに実施される非言語動作の共起確率を計算し、前記ロボットの新たな発話内容を取得し、この取得した発話内容の音声発話に要する時間である発話時間、および、前記取得した発話内容の意図を示す第２の対話行為をそれぞれ推定し、前記推定した発話時間、前記推定された前記第２の対話行為、および前記計算された共起確率に基づいて、前記推定された前記第２の対話行為とともに実施される動作で、かつ動作に要する時間である動作時間の長さが前記推定された発話時間に対応した長さである非言語動作を決定し、前記決定された非言語動作および前記新たな発話内容に基づいて、前記ロボットの動作シナリオを生成する方法を提供する。
【００１６】
本発明の一実施形態におけるロボット制御プログラムの態様は、第１乃至第４の態様のいずれか１つにおけるロボット制御装置の前記各手段としてプロセッサを機能させるプログラムを提供する。
【発明の効果】
【００１７】
本発明によれば、ロボットの動作シナリオの作成にかかる労力を軽減することが可能になる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態におけるロボット制御装置の構成例を示すブロック図。
【図２】本発明の一実施形態におけるロボット制御装置の動作シナリオログ記憶部での記憶内容の一例を示す図。
【図３】本発明の一実施形態におけるロボット制御装置の共起確率記憶部での記憶内容の一例を示す図。
【図４】本発明の一実施形態におけるロボット制御装置の非言語動作記憶部での記憶内容の一例を示す図。
【図５】本発明の一実施形態におけるロボット制御装置の部分動作記憶部での記憶内容の一例を示す図。
【図６】本発明の一実施形態におけるロボット制御装置の付与動作記憶部での記憶内容の一例を示す図。
【図７】本発明の一実施形態におけるロボット制御装置による共起確率計算の手順の一例を示すフローチャート。
【図８】本発明の一実施形態におけるロボット制御装置の発話情報取得部による発話情報取得の手順の一例を示すフローチャート。
【図９】本発明の一実施形態におけるロボット制御装置による動作付与の手順の一例を示すフローチャート。
【図１０】本発明の一実施形態におけるロボット制御装置による動作シナリオ生成の手順の一例を示すフローチャート。
【発明を実施するための形態】
【００１９】
以下、図面を参照しながら、この発明に係わる一実施形態を説明する。  
一実施形態では、ロボットの過去の動作シナリオ作成ログと、ロボットの発話内容テキストとから、ロボットへの自動的な非言語動作付与を実現する。
【００２０】
図１は、本発明の一実施形態におけるロボット制御システムの構成例を示すブロック図である。  
図１に示すように、本発明の一実施形態におけるロボット制御システムは、ロボット制御装置１０、発話内容入力部２００、ロボット３０１を有する。  
また、ロボット制御装置１０は、外部の制御対象としてのロボット３０１と接続可能である。  
一例として、ロボット制御システムは、ロボット制御装置１０をスマートフォン、タブレット型端末、パーソナルコンピュータ（ＰＣ）などのコンピュータデバイスとした装置とすることにより実現される。例えば、コンピュータデバイスは、ＣＰＵ（Central Processing Unit）などのプロセッサと、プロセッサに接続されるメモリと、ロボット３０１と（例えば無線で）通信するための通信インタフェースと、を備える。なお、ロボット制御システムの実現形態は、この例に限定されるものではない。以下では、ロボット制御装置１０は、ロボット３０１と別の構成であるとして説明するが、ロボット制御装置１０がロボット３０１に組み込まれる構成であってもよい。
【００２１】
本実施形態におけるロボット対話制御システムは下記の構成を含む。  
（１）ログ中の発話内容のテキストから発話内容の対話行為を推定する、対話行為推定部１０１（第１の推定手段）
（２）推定した対話行為に対する、この対話行為と一緒に実施される非言語動作の共起確率を複数種類の非言語動作についてそれぞれ求める、共起確率計算部１０２
（３）ロボットの新たな発話内容のテキストを入力する発話内容入力部２００
（４）入力した新たな発話内容のテキストから、ロボットが音声発話する場合の発話時間（発話内容の音声発話に要する時間）や対話行為を発話情報として推定する、発話情報取得部２０１（第２の推定手段）
（５）共起確率や発話情報（発話時間、対話行為）をもとに、この発話情報における対話行為とともに実施されて、動作時間（動作開始から動作終了までに要する時間）の長さが発話時間に対応した長さである非言語動作を、新たな発話内容に付与する非言語動作として決定する、付与動作決定部２０３
（６）付与した非言語動作と入力された発話内容とからロボットの動作シナリオを自動生成する、動作シナリオ生成部３００
発話内容を入力するために、発話内容入力部２００は、事前に作成したテキストファイルを読み込ませても良いし、Webブラウザなどで動作するアプリケーションのユーザインターフェースにテキストを逐次入力しても良い。
【００２２】
ロボット３０１は、NW（ネットワーク）接続機能、音声発話機能（音声合成または音声ファイル再生）や非言語動作実施機能を有し、動作シナリオ生成部３００で生成したシナリオに従って、音声発話や非言語動作を実行する。このロボットは複数台存在しても良く、動作シナリオ生成部３００がロボット毎に動作シナリオを生成する。
【００２３】
また、本実施形態で対象とする動作シナリオは、非特許文献２に記載されたように、状態遷移図のノード上に発話内容や非言語動作などのロボット制御内容を記述し、ノード間のリンクに「発話完了」や「一定時間経過」などの遷移条件を記述したものとすることができる。  
さらに、本実施形態で対象とする非言語動作は、非言語動作を構成する部分的な動作としてのプリミティブな動作を複数組み合わせた動作パターンとしてあらかじめ定義しておくことができる。非言語動作は、「継続」と「単発」でなる２種類の属性のいずれかを有する。  
属性が「継続」である非言語動作は、「動作完了」の命令が設定されるまで、上記のプリミティブな動作を組み合わせた動作を繰り返し継続する動作である。また、属性が「単発」である非言語動作は、プリミティブな動作の組み合わせを全て実行したら終了する動作である。
【００２４】
（対話行為推定部１０１）
本実施形態において、ロボットの非言語動作を自動で付与するために、まず、対話行為推定部１０１は、過去に作成された動作シナリオログを読み込む。そして、対話行為推定部１０１は、動作シナリオ中の各ノード情報として、発話内容と非言語動作を取得し、各発話内容の対話行為DAiを決定する。対話行為は発話の意図を示す分類ラベルの１つであり、質問・挨拶・フィラー（filler）などの分類要素から構成される。
【００２５】
（共起確率計算部１０２）
次に、共起確率計算部１０２は、対話行為とロボットの非言語動作との共起確率を、全ての対話行為と複数種類の非言語動作とについてそれぞれ求める。ここで、ロボットのジェスチャ（非言語動作）集合をM={mo1,mo2,…,mok}とし、ある対話行為αの発話と一緒に非言語動作mo1が実施される共起確率をpα1とすると、対話行為αに対する各非言語動作の共起確率の離散分布は、pα={pα1, pα2,…,pαk}(このとき
【００２６】
【数１】
2019030949.tif 000003
【００２７】
)と表せる。
【００２８】
本実施形態では、このようにして求めた共起確率を利用して、新たな発話内容テキストが入力された際に、非言語動作を自動的に付与する手法を提案する。
【００２９】
（発話情報取得部２０１）
この手法では、発話情報取得部２０１が発話内容入力部２００を介して入力した発話内容テキストTiから発話情報として、音声合成時の発話時間tiと対話行為DAiをそれぞれ推定する。
【００３０】
（付与動作決定部２０３）
次に、ここで取得した対話行為DAiをもとに、付与動作決定部２０３は、事前に共起確率計算部１０２が計算した、発話内容に基づく対話行為と非言語動作との共起確率を参照して、該当する共起確率の離散分布
【００３１】
【数２】
2019030949.tif 000004
【００３２】
を求める。付与動作決定部２０３は、この求めた離散分布から、共起確率の高い順に非言語動作moj'を自動的に選択し、この非言語動作の動作時間tallと発話時間tiとを比較しながら、発話時間tiを満たす時間にわたって動作する非言語動作moj'を１個以上付与する。
【００３３】
付与された非言語動作moj'の属性が「継続」である場合には、発話時間tiまでこの動作を繰り返し実行し、発話完了時に、継続していた動作を完了する。付与された非言語動作moj'の属性が「単発」である場合には、この非言語動作moj'内で反復しているプリミティブな動作部分のみを１回以上(事前設定したn回まで)繰り返してなる、新たな非言語動作moj''を生成し、これを付与する。
【００３４】
（動作シナリオ生成部３００）
上記の手順を経て、発話内容テキストTiに対して付与された非言語動作集合から、動作シナリオ生成部３００は、ロボットの動作シナリオを自動生成する。ロボット３０１は、この動作シナリオに従って、音声発話と非言語動作とをそれぞれ実行する。
次に、本発明の実施例について示す。本実施例では、発話内容の入力に沿って非言語動作を付与したロボットの動作シナリオを自動で生成し、１台のロボットの制御を実現することができる。
本実施例におけるロボット制御システムが有する機能は、（１）ロボットの過去の動作シナリオから、発話内容と非言語動作との共起確率をあらかじめ計算する共起確率計算機能、（２）共起確率にもとづき、発話時間と動作時間を考慮して、入力された発話内容から非言語動作を付与する非言語動作付与機能、（３）発話内容への非言語動作の付与結果から、ロボット制御プラットフォームに合わせて動作シナリオを生成する機能、に大別できる。
【００３５】
図１に示すように、ロボット制御システムのロボット制御装置１０は、５つの制御モジュールと、６つの情報記憶装置を有する。
【００３６】
制御モジュールは、対話行為推定部１０１、共起確率計算部１０２、発話情報取得部２０１、付与動作決定部２０３、動作シナリオ生成部３００を含む。
【００３７】
情報記憶装置は、例えば不揮発性メモリなどにより実現され、動作シナリオログ記憶部１００、共起確率記憶部１０３、発話情報記憶部２０２、非言語動作記憶部２０４、部分動作記憶部２０５、付与動作記憶部２０６を含む。
【００３８】
共起確率計算機能について説明する。この機能は、動作シナリオログ記憶部１００と、対話行為推定部１０１と、共起確率計算部１０２と、共起確率記憶部１０３とで実現される。
【００３９】
動作シナリオログ記憶部１００は、過去に作成された、ロボットの動作シナリオログを保存する。対話行為推定部１０１は、動作シナリオ中のロボットの発話内容からロボットの対話行為を推定する。  
共起確率計算部１０２は、対話行為推定部１０１により推定した対話行為と非言語動作とが共起する確率を計算する。共起確率記憶部１０３は、共起確率計算部１０２により計算した、各対話行為における非言語動作の共起確率を保存する。
【００４０】
図２は、本発明の一実施形態におけるロボット制御装置の動作シナリオログ記憶部１００での記憶内容の一例を示す図である。
【００４１】
図２に示すように、動作シナリオログ記憶部１００に記憶される動作シナリオログは、１行がロボットの動作シナリオの状態遷移図（以下、状態遷移図と称することがある）の１ノードに含まれる情報に対応し、（１）ノードID、（２）ノード内に記述された発話内容、（３）非言語動作ID、（４）次ノードへの遷移条件、（５）遷移先のノードID、を含む。  
非言語動作IDは、後述する非言語動作記憶部２０４にも保存された情報であり、対となるノードIDに該当するノードでロボットに設定される非言語動作のIDである。
【００４２】
例えば、図２に示したノードID「１」に対応する行では、ノード「１」（ノードIDが「１」であるノード）で「こんにちは」との発話内容をロボットに発話させながら、非言語動作「１」（非言語動作IDが「１」である非言語動作）と非言語動作「２」（非言語動作IDが「２」である非言語動作）をそれぞれ実行する動作シナリオが記述されている。また、動作シナリオログ記憶部１００には、他センサやデバイスの動作情報などを同時に保存してもよい。
【００４３】
図３は、本発明の一実施形態におけるロボット制御装置の共起確率記憶部１０３での記憶内容の一例を示す図である。図４は、本発明の一実施形態におけるロボット制御装置の非言語動作記憶部２０４での記憶内容の一例を示す図である。図５は、本発明の一実施形態におけるロボット制御装置の部分動作記憶部２０５での記憶内容の一例を示す図である。図６は、本発明の一実施形態におけるロボット制御装置の付与動作記憶部２０６での記憶内容の一例を示す図である。  
図３に示すように、共起確率記憶部１０３は、各対話行為に対して、非言語動作毎の共起確率を保存する。図３に示した例では、対話行為「挨拶」に対して、非言語動作「１」（非言語動作IDが「１」である非言語動作）が0.5の確率（０から１の範囲内）で、非言語動作「２」（非言語動作IDが「２」である非言語動作）が「0.2」の確率で、非言語動作「３」（非言語動作IDが「３」である非言語動作）が「0.05」の確率でそれぞれ共起することを表す。
【００４４】
図７は、本発明の一実施形態におけるロボット制御装置による共起確率計算の手順の一例を示すフローチャートである。  
図７に示すように、対話行為推定部１０１は、ロボットの動作シナリオの状態遷移図における各ノードに含まれるノード情報（ノードID、発話内容、非言語動作ID、遷移条件、遷移先ノード）を、動作シナリオログ記憶部１００に記憶される動作シナリオログから読み出す（Ｓ１１）。対話行為推定部１０１は、読み出したノード情報から発話内容のテキストと非言語動作IDとを取得し、この発話内容のテキストから対話行為を推定する（Ｓ１２）。共起確率計算部１０２は、推定した各対話行為と非言語動作との共起確率をそれぞれ計算する（Ｓ１３）。共起確率計算部１０２は、計算した、対話行為ごとの共起確率を共起確率記憶部１０３へ保存する。
【００４５】
次に、非言語動作付与機能について説明する。この機能は、発話情報取得部２０１と、発話情報記憶部２０２と、付与動作決定部２０３と、非言語動作記憶部２０４と、部分動作記憶部２０５と、付与動作記憶部２０６とで実現される。
【００４６】
発話情報取得部２０１は、シナリオ作成者が入力した、新たな発話内容のテキストから、対話行為や発話時間を推定したりすることで、発話情報を得る。発話情報記憶部２０２は、発話情報取得部２０１が取得した発話情報（発話時間と対話行為）を記憶する。  
付与動作決定部２０３は、共起確率と発話時間に合わせて、ロボットの非言語動作を付与する。
【００４７】
非言語動作記憶部２０４は、ロボットに設定可能なプリミティブな動作（非言語動作を構成する部分的な動作）の組み合わせにより作成した非言語動作一覧を保存する。  
部分動作記憶部２０５は、プリミティブな動作の情報を部分動作一覧として保存する。付与動作記憶部２０６は、発話内容に合わせて付与動作決定部２０３が、発話内容に自動的に付与した非言語動作の一覧を付与動作一覧として保存する。
【００４８】
図４に示すように、非言語動作一覧の１行が一つの非言語動作の情報を表し、（１）非言語動作ID、（２）非言語動作の動作名称、（３）非言語動作の属性、（４）非言語動作を構成する部分動作（例えば部分動作「１」〜「x」）を含む。  
部分動作は、ロボットを制御する際の最もプリミティブな動作である。図５に示すように、部分動作記憶部２０５では、（１）各種の部分動作を一意に識別す部分動作ID、（２）部分動作をさせたいロボット関節の指定部分、（３）指定した関節をどの角度まで動かすかを示すパラメータ、（４）指定した角度までの遷移時間を示す動作時間、を対応付けて部分動作一覧として保存する。  
図５に示した例では、部分動作ID「１」の動作は、ロボットの右手の関節を４０°に３００ｍｓの遷移時間で動かすことを表し、また、部分動作ID「２」の動作は、ロボットの右手の関節を０°に４００ｍｓの遷移時間で動かすことを表す。この部分動作ID「１」の動作と部分動作ID「２」の動作とを組み合わせて、図４に示した例では「手を振る」（動作名称）という非言語動作を設定可能としている。  
また、図４に示した例では、特殊な非言語動作として非言語動作「end」（非言語動作IDが「end」である非言語動作）を設定することができる。これは、「継続」の属性を持つ非言語動作に対して、この動作を完了する命令に相当し、非言語動作「end」を実施すると、ロボットの全ての関節を初期状態に戻すことができる。
【００４９】
図６に示すように、付与動作一覧では、（１）新たな発話内容のテキスト、（２）この発話内容に付与された非言語動作に対応する非言語動作ID、（３）発話内容に付与された非言語動作を構成する複数の部分動作に対応する部分動作ID、が記述される。また、この付与動作一覧では、発話時間に応じて、１種類の発話内容のテキストに複数の非言語動作が付与されることもある。  
図６の例では、１、２行目における「こんにちは」という発話内容テキストに対して、１行目の非言語動作（部分動作IDが動作順に３、４、３、４である４つの部分動作でなる非言語動作）と２行目の非言語動作（部分動作IDが動作順に１、２である２つの部分動作でなる非言語動作）とがそれぞれ付与されている。
【００５０】
図８は、本発明の一実施形態におけるロボット制御装置の発話情報取得部２０１による発話情報取得の手順の一例を示すフローチャートである。  
まず、発話情報取得部２０１は、シナリオ作成者の発話内容のテキスト入力が終了しないときに（Ｓ２１のＮ）、発話内容入力部２００から入力された発話内容Tiのテキストから対話行為Daiを推定する。また、発話情報取得部２０１は、発話内容Tiのテキストを音声合成し、この音声ファイルを再生する際の発話時間tiを取得し、これらの対話行為Daiと発話時間tiとを発話情報として発話情報記憶部２０２へ保存する（Ｓ２２）。以後は、Ｓ２１に戻り、シナリオ作成者の発話内容のテキスト入力が終了する（Ｓ２１のＹ）まで、Ｓ２２を繰り返す。
【００５１】
図９は、本発明の一実施形態におけるロボット制御装置による動作付与の手順の一例を示すフローチャートである。ここでは、新たな発話内容に非言語動作を付与する手順について説明する。  
まず、付与動作決定部２０３は、新たな発話内容Tiから上記のように推定された対話行為Daiおよび発話時間tiを発話情報記憶部２０２に記憶される発話情報からそれぞれ読み出す（Ｓ３１）。  
あわせて、付与動作決定部２０３は、Ｓ３１で読み出した対話行為Daiにおける各非言語動作の共起確率を共起確率記憶部１０３（図３参照）からそれぞれ読み出す（Ｓ３２）。  
次に、付与動作決定部２０３は、Ｓ３１で読み出した対話行為Daiにおける非言語動作の集合M’(={mo1’,mo2,…,mok’}を共起確率記憶部１０３（図３参照）から取得する（Ｓ３３）。
【００５２】
次に、付与動作決定部２０３は、発話内容に付与する非言語動作の全動作時間（以下で選択する非言語動作の実行に要する時間で総実行時間と称することもある）tallのカウンタの値を初期値の０に設定する（Ｓ３４）。
【００５３】
以後は、非言語動作の付与を進めていく。ここでは、部分動作記憶部２０５の記憶内容（図５参照）は、非言語動作記憶部２０４に記憶されているものとする。具体的には、付与動作決定部２０３は、Ｓ３３で取得した非言語動作の集合M’(={mo1’,mo2,…,mok’}のうち、選択前であって、Ｓ３２で読み出した共起確率が最も高い非言語動作moj’の非言語動作IDを選択する（Ｓ３５）。
【００５４】
付与動作決定部２０３は、この選択した非言語動作moj’の動作に要する時間である動作時間tmojを計算する（Ｓ３６）。具体的には、付与動作決定部２０３は、非言語動作一覧（図４参照）における、Ｓ３５で選択した非言語動作IDに対応付けられる各部分動作の部分動作IDを特定し、非言語動作記憶部２０４に記憶される部分動作一覧（図５参照）における、当該特定した各部分動作IDに対応付けられる動作時間を参照することで、Ｓ３５で選択した非言語動作moj’を構成する各部分動作の動作時間の和を動作時間tmojとして求める。
【００５５】
付与動作決定部２０３は、Ｓ３６で計算した動作時間tmojを、全動作時間tallのカウンタの現在の値に追加する（Ｓ３７）。
【００５６】
付与動作決定部２０３は、Ｓ３１で取得した発話時間tiと、Ｓ３７での追加後の全動作時間tallのカウンタの現在の値とを比較する（Ｓ３８）。
【００５７】
Ｓ３８での比較の結果、Ｓ３７での追加後の全動作時間tallのカウンタの現在の値が、Ｓ３１で取得した発話時間ti以上であるとき（Ｓ３８のＹ）は、付与動作決定部２０３は、Ｓ３５で選択した非言語動作moj’を付与動作記憶部２０６に保存して（Ｓ３９）、動作付与にかかる処理フローを終了する。図６で示すように、ここで付与する非言語動作moj’は、（１）Ｓ３１で取得した新たな発話内容のテキスト、（２）非言語動作一覧（図４）における、Ｓ３５で選択した非言語動作moj’（新たな発話内容に付与される非言語動作）の非言語動作ID、（３）非言語動作一覧（図４）における、この非言語動作IDと対となる属性、（４）非言語動作一覧（図４）における、上記の（２）で特定した非言語動作IDと対となる各部分動作の部分動作ID、を含む。
【００５８】
一方、Ｓ３７での追加後の全動作時間のカウンタの現在の値tallがＳ３１で取得した発話時間tiより小さいとき（Ｓ３８のＮ）は、付与動作決定部２０３は、Ｓ３５で選択された非言語動作moj’の属性に合わせて、必要に応じて全動作時間のカウンタの現在の値tallを延長する処理を行なう。  
具体的には、Ｓ３５で選択された非言語動作moj’の属性が「継続」であるときは（Ｓ４０のＹ）、発話が終了する（非言語動作moj’にかかる時間の累積が発話時間tiに達する）まで、この非言語動作moj’を継続すればよく、発話終了後に当該非言語動作moj’を完了するように、付与動作決定部２０３は、非言語動作IDが「end」である非言語動作を付与動作記憶部２０６に保存して（Ｓ４１）、動作付与にかかる処理フローを終了する。
【００５９】
ここで付与動作記憶部２０６に保存される非言語動作は、（１）Ｓ３１で取得した発話内容のテキスト、（２）非言語動作ID「end」、（３）属性「単発」、（４）この非言語動作ID「end」と対となる各部分動作の部分動作ID、を含む。  
つまり、Ｓ３５で選択した非言語動作の属性が「継続」であるときに、Ｓ３５で選択した非言語動作を、非言語動作に要する時間である動作時間が発話時間に達するまで繰り返してなる動作として求め、この求めた動作が、発話時間に対応した（動作時間の長さが発話時間に対応した長さである）非言語動作として決定される。例えば、Ｓ３５で選択した非言語動作の１回の動作時間が発話時間の３分の１であるときは、この動作を３回繰り返してなる動作が、上記対応した非言語動作として決定される。
【００６０】
また、Ｓ３５で選択された非言語動作moj’の属性が「単発」であるときは（Ｓ４０のＮ）、発話時間tiに合わせて、更なる非言語動作を付与するか、付与動作の内で反復するプリミティブな動作の繰り返し回数を増やす。  
具体的には、Ｓ３５で選択された非言語動作moj’内に、反復するプリミティブな動作が存在しないときには（Ｓ４２のＮ）、Ｓ３５で選択した非言語動作moj’をＳ３９と同様に付与動作記憶部２０６に保存した上で（Ｓ４３）、Ｓ３５に戻る。  
このようにＳ３５に戻ることで、先にＳ３５で選択した非言語動作moj’と比較して、Ｓ３２で取得した各非言語動作のうち未選択の非言語動作であって、共起確率が最も高い新たな非言語動作moj’を選択して、この動作に要する動作時間を反映した全動作時間と発話時間とが再度比較される。このように、選択した非言語動作に要する時間である動作時間と発話時間との間に差分があるときに、必要に応じ、複数種類の非言語動作（Ｓ３２で取得した各非言語動作）のうち既に選択した非言語動作以外の非言語動作であって共起確率が最も高い非言語動作の選択が繰り返される。
【００６１】
一方で、Ｓ３５で選択された非言語動作moj’内に、反復するプリミティブな動作（例えば図６に示す１行目の発話内容テキスト「こんにちは」に対する、部分動作ID「３」、「４」が反復する動作）が存在するときは（Ｓ４２のＹ）、この反復するプリミティブな動作を１〜ｎ回（ｎ回は繰り返し回数の上限）繰り返したときの非言語動作moj’’を生成する（Ｓ４４）。例えば、Ｓ３５で選択した非言語動作に対し、上記の反復する動作をｘ回（ｎ回が上限）繰り返した動作を追加した動作の動作時間が発話時間に達するときは、Ｓ３５で選択した非言語動作が、この反復する動作を上記のｘ３回繰り返してなる動作を追加した動作に更新される。
【００６２】
この、反復するプリミティブな動作は、１つの部分動作IDに対応する部分動作が反復する動作であってもよいし、上記のように、複数の部分動作IDに対応する部分動作の集合を１まとまりの動作として、この動作が反復する動作であってもよい。
【００６３】
なお、上記のようにＳ４４での繰り返し回数の最大値（ｎ回）を事前に設定することで、Ｓ３５で選択された非言語動作moj’内に反復するプリミティブな動作が過剰に繰り返されないようにすることができる。
【００６４】
付与動作決定部２０３は、Ｓ４４で生成した非言語動作moj’’に要する動作時間を全動作時間tallのカウンタの現在の値に追加する（Ｓ４５）。付与動作決定部２０３は、Ｓ４４で生成した非言語動作moj’’を付与動作記憶部２０６に保存して（Ｓ４６）、Ｓ３１で取得した発話時間tiと、Ｓ４５での追加後の全動作時間tallのカウンタの現在の値とを比較する（Ｓ４７）。  
Ｓ４７の比較で、Ｓ４５での追加後の全動作時間tallのカウンタの現在の値が、Ｓ３１で取得した発話時間ti以上であるとき（Ｓ４７のＹ）は、付与動作決定部２０３は、動作付与にかかる処理フローを終了する。  
一方、Ｓ４５での追加後の全動作時間のカウンタの現在の値tallがＳ３１で取得した発話時間tiより小さいとき（Ｓ４７のＮ）は、Ｓ３５に戻る。
【００６５】
次に、非言語動作の付与結果からの動作シナリオ生成機能について説明する。この機能は動作シナリオ生成部３００で実現することができる。
【００６６】
図１０は、本発明の一実施形態におけるロボット制御装置による動作シナリオ生成の手順の一例を示すフローチャートである。  
まず、動作シナリオ生成部３００は、付与動作記憶部２０６に記憶される付与動作一覧（図６参照）の最初の行を選択し、この選択した行から（１）発話内容のテキストと、（２）付与された非言語動作IDを読み出し、これら読み出した発話内容と非言語動作IDを状態遷移図のノード内に記述する（Ｓ５１）。  
動作シナリオ生成部３００は、付与動作一覧（図６参照）における、Ｓ５１で選択した行の次の行を読み出す（Ｓ５２）。この行に、Ｓ５１で選択した行から読み出した発話内容のテキストと同一の発話内容のテキストが存在する場合で（Ｓ５３のＹ）、この行で記述される非言語動作IDが「end」でない場合は（Ｓ５４のＮ）、動作シナリオ生成部３００は、この非言語動作IDを同一のノード内に記述する。（Ｓ５５）。
【００６７】
一方、Ｓ５１で選択した行から読み出した発話内容のテキストと同一の発話内容のテキストが、Ｓ５２で選択した行に存在しない場合には（Ｓ５３のＮ）、動作シナリオ生成部３００は、ノード間の遷移条件を「発話完了」と設定し、Ｓ５１でノードに記述された発話内容のテキストとを非言語動作IDを、このノードの次の新しいノードに設定する（Ｓ５６）。
【００６８】
また、「継続」の属性を有する非言語動作IDが付与された場合の対応として、Ｓ５４にて、非言語動作IDが「end」である場合には（Ｓ５４のＹ）、動作シナリオ生成部３００は、ノード間の遷移条件を「発話完了」と設定し、Ｓ５１でノードに記述された発話内容のテキストとを非言語動作IDを、このノードの次の新しいノードに設定する（Ｓ５６）。
【００６９】
以上説明したように、本発明の一実施形態におけるロボット制御装置は、過去に作成された、ロボットの動作シナリオ中の発話内容と非言語動作との共起関係を利用して、シナリオ作成者が入力した、ロボットの新たな発話内容のテキストをもとに、非言語動作を自動的にすることができる。これにより、動作シナリオを作成するための労力が少なくなり、かつ、ロボットに何を話させるかを示す文章を書くだけで、ロボットの制御を行えることができるようになるため、動作シナリオの作成に習熟した人でなくとも、ロボットサービスを実現することができるようになる。
【００７０】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の発明が含まれており、開示される複数の構成要件から選択された組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、課題が解決でき、効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【００７１】
また、各実施形態に記載した手法は、計算機（コンピュータ）に実行させることができるプログラム（ソフトウエア手段）として、例えば磁気ディスク（フロッピー（登録商標）ディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯ等）、半導体メモリ（ＲＯＭ、ＲＡＭ、フラッシュメモリ等）等の記録媒体に格納し、また通信媒体により伝送して頒布することもできる。なお、媒体側に格納されるプログラムには、計算機に実行させるソフトウエア手段（実行プログラムのみならずテーブルやデータ構造も含む）を計算機内に構成させる設定プログラムをも含む。本装置を実現する計算機は、記録媒体に記録されたプログラムを読み込み、また場合により設定プログラムによりソフトウエア手段を構築し、このソフトウエア手段によって動作が制御されることにより上述した処理を実行する。なお、本明細書でいう記録媒体は、頒布用に限らず、計算機内部あるいはネットワークを介して接続される機器に設けられた磁気ディスクや半導体メモリ等の記憶媒体を含むものである。
【符号の説明】
【００７２】
１０…ロボット制御装置、１００…動作シナリオログ記憶部、１０１…対話行為推定部、１０２…共起確率計算部、１０３…共起確率記憶部、２００…発話内容入力部、２０１…発話情報取得部、２０２…発話情報記憶部、２０３…付与動作決定部、２０４…非言語動作記憶部、２０５…部分動作記憶部、２０６…付与動作記憶部、３００…動作シナリオ生成部、３０１…ロボット。
【図１】
2019030949.tif 000005
【図２】
2019030949.tif 000006
【図３】
2019030949.tif 000007
【図４】
2019030949.tif 000008
【図５】
2019030949.tif 000009
【図６】
2019030949.tif 000010
【図７】
2019030949.tif 000011
【図８】
2019030949.tif 000012
【図９】
2019030949.tif 000013
【図１０】
2019030949.tif 000014