(57)【要約】【課題】ロボットへの人の発話に対する応答を迅速かつ適切に行う。【解決手段】対象に対して応答可能なロボットの制御装置であって、対象の発話を取得する音声取得部２１と、対象が発話しているときに音声取得部２１により取得された発話を部分的に解析する部分解析部２３と、ロボットによる応答であって対象に対する非言語的な挙動を用いた第１応答を、部分解析部２３による解析結果に応じて制御するジェスチャ応答制御部２４と、音声取得部２１により取得された対象の発話を、部分解析部２３により解析される発話の区間よりも長い区間で解析する発話解析部２５と、発話解析部２５による解析結果に応じて、対象の発話に対する応答文を生成する応答文生成部２６と、応答文生成部２６により生成された応答文に基づいて、ロボットによる言語を用いた第２応答を制御する言語応答制御部２７と、を備える。【選択図】図２
2020190587.tif 000002
【特許請求の範囲】
【請求項１】
対象に対して応答可能なロボットの制御装置であって、
前記対象の発話を取得する取得手段と、
前記対象が発話しているときに前記取得手段により取得された前記発話を部分的に解析する第１解析手段と、
前記ロボットによる応答であって、前記対象に対する非言語的な挙動を用いた第１応答を、前記第１解析手段による解析結果に応じて制御する第１制御手段と、
前記取得手段により取得された前記対象の発話を、前記第１解析手段により解析される発話の区間よりも長い区間で解析する第２解析手段と、
前記第２解析手段による解析結果に応じて、前記対象の前記発話に対する応答文を生成する生成手段と、
前記生成手段により生成された前記応答文に基づいて、前記ロボットによる言語を用いた第２応答を制御する第２制御手段と、
を備えることを特徴とするロボットの制御装置。
【請求項２】
前記第１解析手段が解析する前記発話の音素列の長さは、前記第２解析手段が解析する前記発話の音素列の長さよりも短く設定されていることを特徴とする、請求項１に記載のロボットの制御装置。
【請求項３】
前記第１応答は複数の第１応答から成り、
前記複数の第１応答に対応する複数の参照音素列を記憶する記憶手段を更に備え、
前記第１解析手段は、前記対象が発話しているときに前記取得手段により取得された前記発話の一部の音素列が前記複数の参照音素列の何れかに一致するか否かを判別し、
前記第１制御手段は、前記第１解析手段により前記一部の音素列が前記複数の参照音素列の前記何れかに一致すると判別されたときには、前記複数の第１応答のうち、当該一致すると判別された前記複数の参照音素列の前記何れかに対応する第１応答を前記ロボットに実行させることを特徴とする、請求項１又は２に記載のロボットの制御装置。
【請求項４】
前記複数の参照音素列の各々は、前記対象の発話の内容を特定可能な最短の音素列に設定されていることを特徴とする、請求項３に記載のロボットの制御装置。
【請求項５】
前記ロボットは、前記対象として互いに異なる複数の対象に対して、前記第１応答及び前記第２応答を実行可能であり、
前記複数の対象の各々を識別する識別手段を更に備え、
前記取得手段は、前記識別された対象ごとに、当該対象の発話を取得し、
前記取得された対象の発話の内容を解析する解析手段と、
前記複数の第１応答から、前記解析手段による解析結果に応じた第１応答を特定する特定手段と、
前記解析手段による解析結果に基づいて、当該解析結果に対応する前記対象の発話の内容を特定可能な最短の音素列を前記参照音素列として、前記特定された第１応答に対応付けて、前記識別された対象ごとに学習する学習手段と、を更に備えることを特徴とする、請求項３に記載のロボットの制御装置。
【請求項６】
前記ロボットは、駆動可能な可動部を有し、
前記第１応答は、前記ロボットの前記可動部を駆動することによって実現されるジェスチャ動作による応答であり、前記第２応答は、前記対象に対して前記応答文を発話する応答であることを特徴とする、請求項１から５の何れか１項に記載のロボットの制御装置。
【請求項７】
対象に対して、前記第１応答と、前記第２応答とを実行可能に構成され、請求項１から６の何れか１項に記載のロボットの制御装置を備えたロボット。
【請求項８】
対象に対して応答可能なロボットの制御装置が実行するロボットの制御方法であって、
前記対象の発話を取得する取得ステップと、
前記対象が発話しているときに前記取得ステップにより取得された前記発話を部分的に解析する第１解析ステップと、
前記ロボットによる応答であって、前記対象に対する非言語的な挙動を用いた第１応答を、前記第１解析ステップによる解析結果に応じて制御する第１制御ステップと、
前記取得ステップにより取得された前記対象の発話を、前記第１解析ステップにより解析される発話の区間よりも長い区間で解析する第２解析ステップと、
前記第２解析ステップでの解析結果に応じて、前記対象の前記発話に対する応答文を生成する生成ステップと、
前記生成ステップで生成された前記応答文に基づいて、前記ロボットによる言語を用いた第２応答を制御する第２制御ステップと、
を備えることを特徴とするロボットの制御方法。
【請求項９】
対象に対して応答可能なロボットを制御するコンピュータを、
前記対象の発話を取得する取得手段、
前記対象が発話しているときに前記取得手段により取得された前記発話を部分的に解析する第１解析手段、
前記ロボットによる応答であって、前記対象に対する非言語的な挙動を用いた第１応答を、前記第１解析手段による解析結果に応じて制御する第１制御手段、
前記取得手段により取得された前記対象の発話を、前記第１解析手段により解析される発話の区間よりも長い区間で解析する第２解析手段、
前記第２解析手段による解析結果に応じて、前記対象の前記発話に対する応答文を生成する生成手段、及び
前記生成手段により生成された前記応答文に基づいて、前記ロボットによる言語を用いた第２応答を制御する第２制御手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの制御装置、ロボット、ロボットの制御方法及びプログラムに関する。
【背景技術】
【０００２】
自律型で動作し、人と対話を行うロボットが提案されている。例えば、特許文献１には、人間との対話が適切に行えるようにする自然言語処理装置が記載されている。特許文献１の自然言語処理装置は、解析可能な単位の自然言語文の一部が入力するごとに、各解析処理部で逐次的かつ並列的に解析処理を実行する逐次解析処理部と、逐次解析処理部の各解析処理部での解析結果に基づいて、対話応答文などの出力を得る出力部とを備える。逐次解析処理部に用意された各処理部は、自らの処理部での直前又はそれより前の過去の解析結果と、他の処理部での直前又はそれより前の過去の解析結果とを取得し、取得した解析結果を参照しながら先読みをしつつ解析結果を得る。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１０２７７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
人と対話を行うロボットでは一般に、人の話す内容を聞き終えてから、応答文を生成し発話するため、発話途中ではロボットがなんら応答せず、話者にはロボットがなんら聞いていないように感じられる。特許文献１の自然言語処理装置では、文の一部が入力するごとに、各解析処理部で逐次的かつ並列的に解析処理を行い、早く応答を返そうとする。
【０００５】
しかし、この自然言語処理装置を、ユーザと対話可能に構成されたロボットに適用した場合には、次の入力データを先読みする先読み処理で予測した結果を用いて解析処理が行われるので、この解析処理の結果が誤っている可能性がある。解析結果が誤っている場合には、ユーザによる入力文に対して不適当な応答文が生成されてしまい、ひいては、ユーザの発話に対する応答を適切に行うことができない。
【０００６】
本発明は、上述の事情に鑑みてなされたもので、ロボットへの人の発話に対する応答を迅速かつ適切に行うことを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明に係るロボットの制御装置は、
対象に対して応答可能なロボットの制御装置であって、
前記対象の発話を取得する取得手段と、
前記対象が発話しているときに前記取得手段により取得された前記発話を部分的に解析する第１解析手段と、
前記ロボットによる応答であって、前記対象に対する非言語的な挙動を用いた第１応答を、前記第１解析手段による解析結果に応じて制御する第１制御手段と、
前記取得手段により取得された前記対象の発話を、前記第１解析手段により解析される発話の区間よりも長い区間で解析する第２解析手段と、
前記第２解析手段による解析結果に応じて、前記対象の前記発話に対する応答文を生成する生成手段と、
前記生成手段により生成された前記応答文に基づいて、前記ロボットによる言語を用いた第２応答を制御する第２制御手段と、
を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ユーザの発話に対する応答を迅速かつ適切に行うことができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態に係る制御装置が適用されるロボットの概略構成を示す図である。
【図２】実施の形態に係るロボットの制御装置の機能構成を示すブロック図である。
【図３Ａ】実施の形態に係る制御装置がロボットに実行させるジェスチャ番号２の動作を示す正面図である。
【図３Ｂ】実施の形態に係る制御装置がロボットに実行させるジェスチャ番号３の動作を示す正面図である。
【図３Ｃ】実施の形態に係る制御装置がロボットに実行させるジェスチャ番号４の動作を示す正面図である。
【図３Ｄ】実施の形態に係る制御装置がロボットに実行させるジェスチャ番号５の動作を示す正面図である。
【図３Ｅ】実施の形態に係る制御装置がロボットに実行させるジェスチャ番号６の動作を示す正面図である。
【図４】実施の形態に係る制御装置の会話記録処理を示すフローチャートである。
【図５】図４に示す会話記録処理で記録される会話記録の例を示す図である。
【図６】実施の形態に係る制御装置の分析学習処理を示すフローチャートである。
【図７】会話記録から所定の対象に対応するすべての発話文を読み出した例を示す図である。
【図８】ユニーク音素列テーブルの例を示す図である。
【図９】文とジェスチャの対応の例を示す図である。
【図１０】実施の形態に係る制御装置の応答ジェスチャデータベース登録処理を示すフローチャートである。
【図１１】発話文の発話された時間の例を示すタイミングチャートである。
【図１２】図１０に示す応答ジェスチャデータベース登録処理で用いられる応答ジェスチャデータベースの例を示す図である。
【図１３】実施の形態に係る制御装置の予測応答制御処理を示すフローチャートである。
【図１４】応答時間リストの例を示す図である。
【図１５】実施の形態に係る制御装置の言語応答制御処理を示すフローチャートである。
【図１６】実施の形態に係るロボットの応答例を示すタイミングチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について、図面を参照して説明する。なお、図中同一又は相当する部分には同一の符号を付す。
【００１１】
実施の形態．
図１は、本発明の実施の形態に係る制御装置２が適用されたロボット１の概略構成を示す図である。ロボット１は、外観的には人（子供）を模した立体的な形状を有する。ロボット１は、頭部１０１と、胴体部１０２と、腕部１０３と、を備える。頭部１０１及び腕部１０３は、ロボット１に内蔵された駆動装置であるジェスチャ作動部７によって動かすことができる部位である。頭部１０１は、首の関節５によって、屈曲・伸展、回旋及び側屈が可能に胴体部１０２に取り付けられている。腕部１０３は、肩の関節６によって、屈曲・伸展及び内転・外転が可能に胴体部１０２に取り付けられている。
【００１２】
ロボット１は、音声を収音するためのマイクロフォン３、音声を出力するためのスピーカ４、頭部１０１及び腕部１０３を動かすためのジェスチャ作動部７、ならびに、制御装置２を備える。このロボット１は、所定の対象の発話を音声認識し、発話に対する応答文を生成し、音声合成で応答文を発話して、人と会話できる。ロボット１はまた、所定の対象との会話の際に、非言語的な挙動で、すなわち、頭部１０１及び腕部１０３の動きで応答を行うことができる。ロボット１では、このような非言語的な挙動として、互いに異なる複数のジェスチャ動作が設定されており、これらの複数のジェスチャ動作には、頷いたり、腕を上げたり降ろしたりする動作が含まれる。
【００１３】
ロボット１は、自装置の外部に存在する所定の対象からの呼び掛け、接触等の外部からの刺激に反応して、様々に動作する。これによって、ロボット１は、所定の対象とコミュニケーションをとり、所定の対象と交流することができる。所定の対象とは、ロボット１の外部に存在し、且つ、ロボット１とコミュニケーション及び交流する相手となる対象である。所定の対象とは、例えば、ロボット１の所有者であるユーザ、ユーザの周囲の人間（ユーザの親近者もしくは友人等）、及び発話可能な他のロボットである。所定の対象は、コミュニケーション対象、コミュニケーション相手、交流対象、交流相手等とも言うことができる。
【００１４】
図２は、上記の制御装置２の機能構成を示すブロック図である。制御装置２は、マイクロフォン３及びスピーカ４に電気的に接続されており、マイクロフォン３から音声信号を取得し、スピーカ４から応答文を発話する。また、制御装置２は、ロボット１に上記のジェスチャ動作を実行させるために、ジェスチャ作動部７を制御する。ジェスチャ作動部７はアクチュエータを備え、例えば、図１に示すロボット１の頭部１０１及び腕部１０３を駆動する。
【００１５】
ロボット１は、頭部１０１の屈曲・伸展、回旋及び側屈それぞれの回転角度を検出するセンサ（ポテンショメータ）を関節５に備え、ジェスチャ作動部７は、関節５のセンサの検出値を用いたフィードバック制御によって、頭部１０１に所定の動きをさせる。同様に、ロボット１は、腕部１０３の屈曲・伸展及び内転・外転それぞれの回転角度を検出するセンサ（ポテンショメータ）を関節６に備え、ジェスチャ作動部７は、関節６のセンサの検出値を用いたフィードバック制御によって、腕部１０３に所定の動きをさせる。
【００１６】
図３Ａ〜図３Ｅは、ロボット１に実行させるジェスチャ動作の例を示す正面図である。図３Ａは、所定の対象の発話「おはよう」に応答するための、ジェスチャ番号２のジェスチャ動作を示す。ジェスチャ番号２のジェスチャ動作は、関節５及びジェスチャ作動部７により、頭部１０１を正面（又は正面の少し上方）に向け、関節６及びジェスチャ作動部７により、左右の腕部１０３を肩よりも上に挙げる動作である。
【００１７】
図３Ｂは、所定の対象の発話「こんにちは」に応答するための、ジェスチャ番号３のジェスチャ動作を示す。ジェスチャ番号３のジェスチャ動作は、関節５及びジェスチャ作動部７により、頭部１０１を正面（又は正面の少し上方）に向け、関節６及びジェスチャ作動部７により、左右の腕部１０３を頭部１０１の前に挙げる動作である。
【００１８】
図３Ｃは、所定の対象の発話「ばいばい」、「さようなら」又は「さよなら」に応答するための、ジェスチャ番号４のジェスチャ動作を示す。ジェスチャ番号４のジェスチャ動作は、関節５及びジェスチャ作動部７により、頭部１０１を少し左に傾け、関節６及びジェスチャ作動部７により、左の腕部１０３を下にさげたまま、右の腕部１０３を頭部１０１の近くまで挙げる動作である。ジェスチャ番号４のジェスチャ動作では、右の腕部１０３を挙げた状態で、左右に振ってもよい。
【００１９】
図３Ｄは、所定の対象の発話「ただいま」に応答するための、ジェスチャ番号５のジェスチャ動作を示す。ジェスチャ番号５のジェスチャ動作は、関節５及びジェスチャ作動部７により、頭部１０１を正面（又は正面の少し上方）に向け、関節６及びジェスチャ作動部７により、左右の腕部１０３を肩の高さまで挙げる動作である。
【００２０】
図３Ｅは、所定の対象の発話「おやすみ」に応答するための、ジェスチャ番号６のジェスチャ動作を示す。ジェスチャ番号６のジェスチャ動作は、関節６及びジェスチャ作動部７により、左右の腕部１０３を下におろしたまま、関節５及びジェスチャ作動部７により、頭部１０１を下に向ける動作である。
【００２１】
図２に示すように制御装置２は、制御部２０、記憶部３０並びにマイクロフォン３、スピーカ４及びジェスチャ作動部７と信号を入出力するＩ／Ｏインタフェースを備える。制御部２０は、ＣＰＵ（Central Processing Unit）等で構成され、記憶部３０に記憶されたプログラムを実行することにより、後述する各部（音声取得部２１、識別部２２、部分解析部２３、ジェスチャ応答制御部２４、発話解析部２５、応答文生成部２６、言語応答制御部２７、学習部２８及び特定部２９）の機能を実現し、ロボット１の動作を制御する。また、記憶部３０は、ＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）等で構成され、ＲＯＭの一部又は全部は電気的に書き換え可能なメモリ（フラッシュメモリ等）で構成されている。なお、ロボット１は、例えば所定の対象の顔を認識するための撮像装置を備えていてもよく、制御部２０はＩ／Ｏインタフェースを介して当該撮像装置と通信して画像データ等を取得してもよい。
【００２２】
取得手段として機能する音声取得部２１は、所定の対象によってマイクロフォン３から入力された音声信号を、所定の周波数でサンプリングすることによりＡ／Ｄ変換し、例えばリニアＰＣＭ（Ｐｕｌｓｅ  Ｃｏｄｅ  Ｍｏｄｕｌａｔｉｏｎ）によるデジタルデータを生成する。音声取得部２１はさらに、当該デジタルデータを短時間フーリエ変換（ＳＴＦＴ：Ｓｈｏｒｔ−Ｔｉｍｅ  Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍ）により変換してスペクトログラムを取得する。音声取得部２１は、取得したスペクトログラムを識別部２２に送る。
【００２３】
また、音声取得部２１は、スペクトログラムを逐次解析して、発声内容を示す音素の列を取得する。音素は、分節音ラベリングで得られる。分節音ラベリングは、音声信号を構成すると考えられる子音、母音などの構成要素に分解して、それぞれの構成要素を表現するラベルを付与することである。音声取得部２１は、スペクトログラムから得られるフォルマントの遷移と、スペクトログラムのパターン及びその変化から、音声信号を構成要素に分解し、構成要素のパターンに適合するラベルを選択して付与する。なお、音素の列を取得する（音声データを音素単位にラベル付けする）処理は、例えばオープンソースのＪｕｌｉｕｓ音素セグメンテーションキットを用いて行うことができる。音声取得部２１は、分節音ラベルから音素に変換し、得られた音素と、音素間の時間もしくは音素の発声された時刻とを逐次、学習部２８及び発話解析部２５に送る。
【００２４】
識別部２２は、音声取得部２１から送られたスペクトログラムから、例えばｉ−ｖｅｃｔｏｒなどの音声特徴データを抽出し、抽出した音声特徴データが、記憶部３０に記憶されている複数の所定の対象の音声特徴データの何れと照合するかを判定することによって、所定の対象を識別し、識別した所定の対象の対象ＩＤを取得する。識別部２２は、取得した対象ＩＤを、学習部２８及び発話解析部２５に送る。
【００２５】
学習手段として機能する学習部２８は、所定の対象ごとに、音声取得部２１から送られた音素の列と発話解析部２５による音声認識結果の文章とから、マイクロフォン３から入力された発話の内容を特定できる最短の音素列を学習する。第１解析手段として機能する部分解析部２３は、所定の対象から入力された発話を部分的に解析し、当該発話内の一部の音素列に、学習部２８で学習された音素列（後述する最短音素列）に一致する音素列があった場合には、その旨をジェスチャ応答制御部２４に送る。また、特定手段として機能する特定部２９は、発話解析部２５による音声認識結果に応じて、入力された発話に応じたジェスチャ動作を特定する。ジェスチャ応答制御部２４では、入力された発話内の一部の音素列に、最短音素列に一致する音素列があった場合には、この一致する最短音素列に対応するジェスチャ動作を選択し、その応答をジェスチャ作動部７に行わせる。
【００２６】
ジェスチャ応答制御部２４は、例えば、図３Ａ〜図３Ｅのジェスチャ動作に対応する、頭部１０１の屈曲・伸展、回旋及び側屈、ならびに腕部１０３の屈曲・伸展及び内転・外転それぞれの、動作開始角度、動作角速度、動作角加速度、停止角度及び停止時間などを記述した動作シーケンスをジェスチャ作動部７に送る。ジェスチャ作動部７は、ジェスチャ応答制御部２４から送られた動作シーケンスに従って、頭部１０１及び腕部１０３を駆動するための制御信号を、関節５及び関節６のセンサの検出値に応じて生成し、生成した信号をアクチュエータに入力することによって、頭部１０１及び腕部１０３を駆動する。
【００２７】
第２解析手段として機能する発話解析部２５は、音声取得部２１から送られた音素の列を用いて、入力された発話を、第１解析手段として機能する部分解析部２３により解析される発話の区間よりも長い区間で解析し、音声認識する。その際、発話解析部２５は、記憶部３０に記憶されている辞書データベースを参照し形態素解析等を行って、音声取得部２１から送られた音声データを音声認識する。発話解析部２５は、解析した結果を、応答文生成部２６に送る。応答文生成部２６は、発話した話者ごとに発話された内容に適した応答文を生成する。応答文生成部２６は、生成した応答文を言語応答制御部２７に送り、言語応答制御部２７は、音声合成によって応答文をスピーカ４から発声させる。
【００２８】
制御部２０は、ユーザの発話に対して、できるだけ早く、ジェスチャ動作による非言語的な応答を返すために、会話記録処理、分析学習処理及び予測応答制御処理を実行する。以下、これらの会話記録処理、分析学習処理及び予測応答制御処理について、順に説明する。
【００２９】
図４は、実施の形態に係る会話記録処理を示すフローチャートである。会話記録処理において、制御装置２は、ロボット１に登録されている所定の対象ごとに、ロボット１と所定の対象との会話の内容及び認識した短文を記録する。会話記録処理は、一連の会話が行われるごとに繰り返され、会話記録データを蓄積する。
【００３０】
制御部２０は、ロボット１と所定の対象との会話が開始されるのと同時に会話記録処理を開始する。制御部２０は、例えば、音声取得部２１で所定の閾値を超える音声レベルの音声を検出したときに、音声認識処理を開始し、音声認識を行うことができたら、会話が開始されたと判定する。また音声中にノイズが多い場合は、音声認識結果を分かち書きして１単語認識できたら、会話が開始されたと判定するようにしてもよい。
【００３１】
まず識別部２２で、前述のように所定の対象を識別する（ステップＳ４０１）。
【００３２】
次いで、発話解析部２５は、会話が終了しているか否かを判別する（ステップＳ４０２）。会話の終了は、例えば、無音時間の長さが所定の長さを超えたことの判定、コンテクストの終結の判定、もしくはカメラを用いて顔認識を行う場合には話者の顔が認識できなくなったことの判定 、又はこれらの組み合わせで判別できる。コンテクストの終結の判定については、発話解析部２５が、例えば、質問に対して回答が発話されたのち、所定の時間、所定の対象から次の発話がない場合、あるいは、「ばいばい」もしくは「またね」のように、所定の対象が会話の終了を宣言する発話があったことを検出した場合に、コンテクストの終結と判定できる。
【００３３】
会話が終了していないとき（ステップＳ４０２；Ｎ）には、発話解析部２５は、所定の対象の発話から音声取得部２１で取得した音声データを、記憶部３０に記憶されている辞書データベースを参照し形態素解析等を行って音声認識する（ステップＳ４０３）。そして発話解析部２５は、認識結果と音声のデータを対応づけた会話記録を会話記録データベースとして記憶部３０に記録し（ステップＳ４０４）、ステップＳ４０２に戻る。会話記録は、図５に示すように、時刻、会話の相手（対象ＩＤ）、会話時の所定の対象の発話文、会話時の所定の対象の発話に含まれる音素列及び音声データを含む。ここで、時刻は、その会話が開始された時刻又は終了された時刻である。発話文は、発声された文の内容を表す文字列である。音素列は、発話文の音素の列である。音声データの欄は、音声データそのもの、又は音声データが記録されているファイルを指定する情報である。音声データは後に音素列の発話された長さを解析するために用いられる。
【００３４】
一方、発話解析部２５は、会話が終了しているとき（ステップＳ４０２；Ｙ）には、会話記録処理を終了する。以上のようにして、発話解析部２５は、所定の対象の発話の認識結果と音声データとを対応づけた会話記録を会話記録データベースとして、記憶部３０に記憶させる。
【００３５】
次に、図６を参照しながら、分析学習処理について説明する。この分析学習処理は、ジェスチャ動作を制御する際に用いられる応答ジェスチャデータベースを生成して記憶部３０に記録するための処理である。分析学習処理は、例えば、所定の数の会話が新たに会話記録データベースに記憶されたとき、又は、所定の期間を経過するごとに、実行される。
【００３６】
学習部２８は、まず、前回の分析学習処理で生成された応答ジェスチャデータベースをクリアする（Ｓ６００）。分析学習は、ロボット１に登録されているすべての所定の対象について、所定の対象ごとに行う。次いで、図５に示される会話記録データベースのうち、図７に示すように、登録されている最初の所定の対象の対象ＩＤ（ＩＤ＝１）に対応する複数の発話文をすべて読み出し、読み出した複数の発話文を、ＲＡＭの所定の記憶領域に記憶させる（ステップＳ６０１）。
【００３７】
次いで学習部２８は、すべての所定の対象について、後述するジェスチャ動作の制御のための分析学習が終了しているか否かを判別する（ステップＳ６０２）。すべての所定の対象について分析学習が終了していないとき（ステップＳ６０２；Ｎ）には、ステップＳ６０１で記憶された（図７に示すような）複数の発話文から、重複する発話文（例えば「おはよう」）のうちの最初の１つ（例えば、２０１８／９／９  ９：０１の「おはよう」）を残して他の当該発話文（例えば、２０１８／９／１２  ８：００、２０１８／９／１４  ８：００及び２０１８／９／１４  ９：００の「おはよう」）を削除したテーブル（ユニーク音素列テーブル）を作成して、ＲＡＭの所定の記憶領域に記憶させる（ステップＳ６０３）。このユニーク音素列テーブルは、１つの対象ＩＤについて分析学習するための一時的なものであり、時刻及び音声データは不要で、所定の対象ごとに対象ＩＤが番号付けされているから、図８に示すように、発話文と音素列との対応があればよい。そして、学習部２８は、ユニーク音素列テーブルのうちの最初の発話文を読み出す（ステップＳ６０４）。
【００３８】
次に、上記のユニーク音素列テーブルから発話文がすべて読み出されたか否かを判別する（ステップＳ６０５）。ユニーク音素列テーブルから発話文がすべて読み出されていないときには（ステップＳ６０５；Ｎ）、特定部２９は、ステップＳ６０４で読み出された発話文に対応するジェスチャ動作を、記憶部３０に記憶されている図９に示すジェスチャ動作データベースを用いて特定する（ステップＳ６０６）。図９に示すように、このジェスチャ動作データベースは、ジェスチャ対応文と、ジェスチャ動作の番号とを対応付けて記憶するものであり、ステップＳ６０６では、ステップＳ６０４で読み出された発話文と一致するジェスチャ対応文に対応するジェスチャ動作の番号が、上記の対応するジェスチャ動作を表す番号として特定される。例えば、ジェスチャ対応文「おはよう」に対して、図３Ａに示すジェスチャ動作を表すジェスチャ番号“２”が特定される。
【００３９】
次いで、学習部２８は、上記のステップＳ６０６で対応するジェスチャ動作を特定できたか否かを判別する（ステップＳ６０７）。ステップＳ６０６でジェスチャ動作を特定できたとき（ステップＳ６０７；Ｙ）には、後述する（図１０に示す）応答ジェスチャデータベース登録処理を実行する（ステップＳ６０８）。そして、ユニーク音素列テーブルから、ステップＳ６０４で読み出した発話文の次に続く発話文を読み出し（ステップＳ６０９）、上記のステップＳ６０５〜Ｓ６０８を再度、実行する。一方、上記のステップＳ６０６で対応するジェスチャ動作を特定できないとき（ステップＳ６０７；Ｎ）には、上記のステップＳ６０８をスキップし、応答ジェスチャデータベース登録処理を実行せずに、ステップＳ６０９以降を実行する。
【００４０】
そして、ステップＳ６０５〜Ｓ６０９を繰り返し実行した結果、上記のユニーク音素列テーブルから発話文がすべて読み出されたとき（ステップＳ６０５；Ｙ）には、図５に示される会話記録データベースに記憶された発話文のうち、ステップＳ６０１で読み出す対象になった最初の対象ＩＤの次の対象ＩＤに対応する複数の発話文をすべて読み出し、読み出した複数の発話文を、ＲＡＭの所定の記憶領域に記憶させる（ステップＳ６１０）。次いで、前記ステップＳ６０２以降を再度、実行する。以上により、すべての所定の対象について、上述したステップＳ６０３〜Ｓ６０９による分析学習が終了すると（ステップＳ６０２；Ｙ）、分析学習処理が終了される。
【００４１】
次に、図１０を参照しながら、図６のステップＳ６０８の応答ジェスチャデータベース登録処理について説明する。学習部２８は、この応答ジェスチャデータベース登録処理により、図６のステップＳ６０４又はＳ６０９で読み出された発話文を特定できる最低限の（最も短い）音素列として、最短音素列を特定する。例えば、「おはよう」の文に対して、ｏｈａの音素列を特定する。
【００４２】
まず、学習部２８は、ローカル変数としてのカウンタＮに１をセットして（ステップＳ１０００）、図６のステップＳ６０４又はＳ６０９で読み出された発話文の音素列の、先頭からＮ番目までを読み出す（ステップＳ１００１）。そして、着目している発話文の音素列の長さが、読み出した音素列の長さＮに等しいか否かを判別する（ステップＳ１００２）。発話文の音素列の長さが、読み出した音素列の長さＮに等しいとき（ステップＳ１００２；Ｙ）には、発話文を特定できる最短音素列がなかったとして、応答ジェスチャデータベースには何も記憶せずに図６のフローチャート（ステップＳ６０９）に戻る。
【００４３】
発話文の音素列の長さが、読み出した音素列の長さＮに等しくないとき（ステップＳ１００２；Ｎ）には、学習部２８は、ユニーク音素列テーブルに、着目する発話文以外の発話文で、先頭からの音素列が、読み出した音素列に一致するものがあるか検索する（ステップＳ１００３）。
【００４４】
そして、学習部２８は、ステップＳ１００３で一致する音素列があったか否かを判別する（ステップＳ１００４）。一致する音素列があったとき（ステップＳ１００４；Ｙ）には、カウンタＮに１を加算して（ステップＳ１００５）、着目している発話文の音素列の、先頭からＮ番目までを読み出す（ステップＳ１００６）。そして、ステップＳ１００２に戻り、ステップＳ１００２からの処理を再度、実行する。
【００４５】
ステップＳ１００２〜Ｓ１００６を繰り返し実行した結果、上述のユニーク音素列テーブルに、着目する発話文以外の発話文で、先頭からの音素列が、読み出した音素列に一致するものがなかったとき（ステップＳ１００４；Ｎ）には、読み出したＮ番目までの音素列を、着目している発話文の内容を特定可能な最短の音素列（以下「最短音素列」という）として記憶部３０のＲＡＭに記録する（ステップＳ１００７）。
【００４６】
次に、学習部２８は、図６のステップＳ６０１又はステップＳ６１０で読み出された、所定の対象の対象ＩＤに対応する（図７に示すような）複数の発話文が記憶されている所定の領域を参照し、着目している発話文と同じ発話文すべての、Ｎ番目までの該当する音素列（最短音素列）の発話された平均的な長さを計測する（ステップＳ１００８）。このとき、同じ発話文の出現回数をカウントする。
【００４７】
ステップＳ１００８では、着目している発話文と同じ発話文の音声データをすべて取り出し、ステップＳ１００７で特定した最短音素列の音素の区間の長さ（最初から最短音素列の終了までの時間）をそれぞれ取り出して、その平均時間を計算する。例えば、発話文「おはよう」の最短音素列が“ｏｈａ”になったとする。図１１は、異なる時刻に発話された同じ所定の対象の同じ発話文「おはよう」の音声データを、開始タイミングを一致させて、上下に並べて示す。学習部２８は、図７に示す所定の対象の対象ＩＤに対応する複数の発話文の音声データから、図１１に示すように、発話文「おはよう」の音声データを取り出し、音声データの開始から“ａ”の音素の終了までの時間、例えば図１１のｔ１及びｔ２を平均して、最短音素列“ｏｈａ”の発話された平均の長さを計測する。
【００４８】
そして、学習部２８は、発話文、ステップＳ１００７で特定した最短音素列、ステップＳ１００８で計測した最短音素列の発話された時間（最短音素列の発話された時間に検出時間（例えば２０ｍｓ）を加算した時間でもよい）、図６のステップＳ６０６で特定したジェスチャ動作の番号、及び、当該発話文の出現回数を、図１２に示す応答ジェスチャデータベースに記憶し（ステップＳ１００９）、図６のフローチャート（ステップＳ６０９）に戻る。
【００４９】
図５、図９及び図１２では、「おはよう」などの挨拶のことばを例に記載しているが、発話文及びジェスチャ対応文にはそれぞれ「あのー」、「えーと」、「おや」、「まあ」などの感動詞、間投詞もしくは感嘆詞を含めてもよい。
【００５０】
次に、図１３を参照しながら、予測応答制御処理について説明する。予測応答制御処理は、例えば、音声取得部２１で、所定の閾値を超える音声レベルの音声を検出したときに開始される。制御部２０は、予測応答制御を開始したら、まず、識別部２２で所定の対象を識別する（ステップＳ１３００）。次に、部分解析部２３は、識別された所定の対象について、応答ジェスチャデータベースから最短音素列長さを読み出し、読み出した最短音素列長さを用いて、図１４に示すような応答時間リストを生成する（ステップＳ１３０１）。図１４に示す応答時間リストでは、応答時間は、短いものから順にリストされている。
【００５１】
そして、制御部２０は、所定の対象とロボット１との会話が終了したか否かを判別する（ステップＳ１３０２）。会話の終了は会話記録処理（図４）のステップＳ４０２と同様に判別できる。会話が終了していないとき（ステップＳ１３０２；Ｎ）には、所定の対象が発話し始めたか否かを判別し（ステップＳ１３０３）、発話し始めるまで待機する（ステップＳ１３０３；Ｎ）。発話し始めは、例えば、音声レベルが閾値以上になったこと、あるいはカメラを用いて顔認識を行う場合には所定の対象の顔認識で検出する。所定の対象が発話し始めたとき（ステップＳ１３０３；Ｙ）には、ステップＳ１３０４以降の処理を実行する。
一方、会話が終了したとき（ステップＳ１３０２；Ｙ）には、予測応答制御処理を終了する。以上により、ステップＳ１３０４以降の処理は、所定の対象による１回の発話が開始されるごとに実行される。
ステップＳ１３０４以降で、制御部２０は、予測応答時間リストに記録された予測応答時間の数だけ、以下のような処理を行う。
【００５２】
部分解析部２３は、ステップＳ１３０１で生成された応答時間リストから、最初の応答時間を読み出し（ステップＳ１３０４）、当該応答時間が、ステップＳ１３０３で所定の対象の発話が開始されたと判別されてから経過したか否かを判別し（ステップＳ１３０５）、当該応答時間が経過するまで待機する（ステップＳ１３０５；Ｎ）。当該応答時間が経過したとき（ステップＳ１３０５；Ｙ）には、部分解析部２３は、所定の対象の発話が開始されてから当該応答時間が経過するまでにマイクロフォン３から入力された所定の対象の音声を切り出す（ステップＳ１３０６）。そして、部分解析部２３は、切り出した音声に無音声が検出されるか否かを判別する（ステップＳ１３０７）。切り出した所定の対象の音声に一定時間（例えば１００ｍｓ）以上連続して、例えばレベルが閾値以下の無音が含まれていたら（ステップＳ１３０７；Ｙ）、ステップＳ１３０２に戻る。
【００５３】
一方、切り出した所定の対象の音声に無音声が含まれていないとき（ステップＳ１３０７；Ｎ）には、部分解析部２３は、ステップＳ１３０６で切り出した音声を音素列に変換する（ステップＳ１３０８）。そして、部分解析部２３は、ステップＳ１３００で識別された所定の対象に対応する応答ジェスチャデータベースに記憶された複数の最短音素列の中に、ステップＳ１３０８で変換した音素列と一致する音素列が存在するか否かを判別する（ステップＳ１３０９）。変換した音素列と一致する最短音素列が存在するとき（ステップＳ１３０９；Ｙ）には、この一致する最短音素列に対応するジェスチャ動作をロボット１に実行させ（ステップＳ１３１２）、ステップＳ１３０２に戻る。
【００５４】
例えば、ステップＳ１３０８で変換した音素列が“ｏｈａ”であったする。部分解析部２３は、音素列“ｏｈａ”を、図１２に示す応答ジェスチャデータベースの最短音素列の中から検索すると、最短音素列“ｏｈａ”が一致するので、それに対応するジェスチャ番号“２”を取得して、ジェスチャ応答制御部２４に送る。そして、ジェスチャ応答制御部２４は、図３Ａに示すジェスチャ番号２に対応するジェスチャ動作を、ロボット１に実行させる。
【００５５】
一方、変換した音素列と一致する最短音素列が存在しないとき（ステップＳ１３０９；Ｎ）には、応答時間リストから応答時間をすべて読み出したか否かを判別する（ステップＳ１３１０）。応答時間リストから応答時間をすべて読み出していないとき（ステップＳ１３１０；Ｎ）には、部分解析部２３は、応答時間リストから次の応答時間を読み出し（ステップＳ１３１１）、ステップＳ１３０５以降を再度、実行する。そして、応答時間リストから応答時間がすべて読み出されたとき（ステップＳ１３１０；Ｙ）には、ステップＳ１３０２に戻る。
【００５６】
以上、予測応答制御処理について説明した。制御部２０は、この予測応答制御処理でジェスチャ動作を行うのと並行して、次に説明する言語応答制御処理を行う。この言語応答制御処理について、図１５を参照して説明する。言語応答制御処理は、予測応答制御処理と同様、例えば、制御部２０の音声取得部２１で、所定の閾値を超える音声レベルの音声を検出したときに開始される。制御部２０は、言語応答制御処理を開始したら、まず、識別部２２で所定の対象を識別する（ステップＳ１５０１）。次に、制御部２０は、所定の対象とロボット１との会話が終了したか否かを、会話記録処理（図４）のステップＳ４０２と同様に判別する（ステップＳ１５０２）。
【００５７】
会話が終了していないとき（ステップＳ１５０２；Ｎ）には、予測応答制御処理（図１３）のステップＳ１３０３と同様に、所定の対象が発話し始めたか否かを判別し（ステップＳ１５０３）、発話し始めるまで待機する（ステップＳ１５０３；Ｎ）。一方、会話が終了したとき（ステップＳ１５０２；Ｙ）には、言語応答制御処理を終了する。
【００５８】
所定の対象が発話を開始したとき（ステップＳ１５０３；Ｙ）には、発話解析部２５は、対象の発話音素を音声取得部２１から取得して（ステップＳ１５０４）、所定の対象の発話が終了したか否かを判別する（ステップＳ１５０５）。発話が終了したか否かは、例えば、音声取得部２１で取得する音声データの音声レベルが所定の閾値以下である状態が所定の時間（例えば６００ｍｓ）継続したか否かにより判別できる。発話が終了していない間は（ステップＳ１５０５；Ｎ）、発話音素の取得（ステップＳ１５０４）を繰り返す。
【００５９】
所定の対象の発話が終了したとき（ステップＳ１５０５；Ｙ）には、発話解析部２５は、取得した音素の列を発話文に変換し（ステップＳ１５０６）、変換した発話文から、記憶部３０に記憶されている辞書データベースを参照し、構文解析して、発話文に含まれている単語と構文を取得する（ステップＳ１５０７）。
【００６０】
次に、応答文生成部２６は、発話文の単語と構文に基づいて、記憶部３０に記憶されている応答文データベースを参照して、所定の対象の発話に対する応答文を生成する（ステップＳ１５０８）。そして、言語応答制御部２７は、音声合成によって応答文をスピーカ４から発声させ（ステップＳ１５０９）、ステップＳ１５０２に戻る。
【００６１】
以上、言語応答制御処理について説明した。次に、予測応答制御処理の動作例を図１６を参照して説明する。図１６は、図１４の応答時間リストから読み出した応答時間に従って切り出した音声の音素列が、図１２の応答ジェスチャデータベースの最短音素列に一致し、一致した最短音素列に対応するジェスチャ動作を実行した場合の動作例を示す。この例では、所定の対象により「おはよう」という発話が入力されている。
【００６２】
そして、所定の対象が発話を開始してから（時点：Ｔ０〜）、応答時間リストの最初の応答時間（１００ｍｓ）が経過するまで（時点：Ｔ１）に入力された所定の対象の音声を切り出し（図１３のステップＳ１３０６）、切り出した音声を音素列に変換すると（図１３のステップＳ１３０８）、“ｏｈａ”であった場合を想定している。この変換した“ｏｈａ”の音素列は、図１２の応答ジェスチャデータベースの発話文「おはよう」の最短音素列“ｏｈａ”に一致する（ステップＳ１３０９：Ｙ）。そこで、この最短音素列“ｏｈａ”に対応するジェスチャ番号“２”のジェスチャ動作をロボット１に実行させる（ステップＳ１３１２）。
【００６３】
その後、所定の対象からの音声がない状態（音声取得部２１で取得する音声データの音声レベルが所定の閾値以下である状態）が一定時間（例えば６００ｍｓ）経過すると（図１５のステップＳ１５０５；Ｙ）、言語応答制御部２７は、ロボット１を制御して、言語を用いた発話応答をロボット１に実行させる（ステップＳ１５０６〜Ｓ１５０９）。上記の一定時間（例えば６００ｍｓ）は、所定の対象が発話し終えたのを確認して応答文を生成するための時間である。このように、ロボット１に発話応答を実行させる前に、所定の対象の発話文、すなわち発話の内容を最短音素列を用いて予測し、それに応じてジェスチャ動作をロボット１に実行させるので、ロボット１の発話応答が実行される前に、所定の対象はロボット１が自分の発話を聞いているという実感を持つことができる。
【００６４】
制御装置２がロボット１に行わせる非言語的な応答は、頭部１０１及び腕部１０３の動きに限らない。非言語的な応答として、ジェスチャ動作には、頭部１０１及び腕部１０３の動きだけではなく、顔の表情、例えば、瞼の開閉、眉の上げ下げ、目、鼻もしくは口の動きなどの動作、あるいは、手を振る、又は手の形を変えて示す、例えば、手を握るもしくは手を開いて上に挙げる、などを含む。その他、非言語的な応答としては、ロボット１に備えられるディスプレイ式の目の表示態様を変えるものでもよい。
【００６５】
分析学習の対象の会話記録は、少なくとも直近に記録された発話文を含むが、この会話記録が記録された期間は一定の期間である必要はない。例えば、分析学習を行う時の直近の所定の期間として、直近の１日、直近の１週間、直近の１ヶ月等、任意の期間の会話記録でもよい。分析学習ごとに対象とする会話記録の期間を変化させる場合、前回の分析学習の対象の会話記録と、新たな分析学習の対象の会話記録とは、対象とする期間の一部が重複していてもよいし、全く重複しなくてもよい。
【００６６】
以上説明したとおり、本実施の形態によれば、所定の対象の発話の部分的な一致によって、当該発話に対応する非言語的な挙動をロボットに行わせることができるので、少なくとも、発話終了検出、音声認識及び応答文生成の時間をかけずに応答することができ、所定の対象の発話に対する応答を迅速かつ適切に行うことができる。
【００６７】
また、所定の対象に対して非言語的な挙動を用いた所定の応答を返すので、所定の対象の会話を邪魔しない（会話自体は通常に進行する）。そのため、発話に対して応答文で早く反応を返す場合に比べて、誤った反応を行う可能性が小さい。また仮に、ロボット１が行う非言語的な挙動（ジェスチャ動作等）が、所定の対象の発話文に対する応答として適切でなかったとしても、会話には大きな影響を与えない。
【００６８】
実施の形態に係る分析学習処理では、ジェスチャ動作に対応づけられている発話文について、会話記録の重複を除去したユニーク音素列テーブルで先頭からの音素列が一致しない最短の音素列について、その音素列の長さが当該発話文の長さよりも短い場合に、当該発話文を特定する最短音素列として記録するので、当該発話文全体を解析してから応答するのに比べて、短時間で応答することができる。
【００６９】
制御装置２は、所定の対象を識別する識別部２２を備え、発話記録の発話文に、識別した所定の対象の対象ＩＤを対応づけ、分析学習処理で所定の対象ごとに、ジェスチャ動作に対応づけられた発話文を特定する最短音素列を特定して記録し、所定の対象ごとに応答ジェスチャデータベースを作成する。そして、所定の対象との会話において、所定の対象を識別して、その所定の対象の応答ジェスチャデータベースを用いて、発話文を最短音素列で特定するので、所定の対象の発話に合わせたジェスチャ応答が可能で、素早くジェスチャ応答を返すことができる。
【００７０】
例えば実施の形態では、図８に示すように、発話文に「おはよう」と「おやすみ」が存在する場合は、「おはよう」を特定する最短音素列は”ｏｈａ”となるため、最短音素列の例として主に”ｏｈａ”を用いて説明した。しかし、識別した所定の対象が、標準語の「おはよう」の代わりに「はやえなっす」という方言を話す人の場合、「はやえなっす」を特定する最短音素列は”ｈａ”、”ｈａｙａ”、”ｈａｙａｅ”等になり得る。もし最短音素列が”ｈａ”となる場合は、最短音素列が”ｏｈａ”になる人と比べてさらに速い応答が可能になる。このように、制御装置２は、識別対象毎に会話記録処理や分析学習処理を行うことにより、当該識別対象にとって最適な予測応答制御処理を行うことができるようになる。
【００７１】
実施の形態では、最短音素列の長さの時間で音声を切り出して音素列を比較したが、それに限らず、さまざまな変形が可能である。例えば、音声の切り出しを逐次行い、話し始めからの音素列が最短音素列と一致するかどうかで、予測応答制御処理における一致する音素列があるか否かの判定を行ってもよい。また、音素列に変換せず、直接、話し始めからの音声と、ジャスチャ動作に対応させて記憶した参照音声との比較を行い、類似する音声なら参照音声に対応するジェスチャを行う構成としてもよい。
【００７２】
実施の形態では、応答ジェスチャデータベースの登録の際に、音素列の長さの平均時間を計算して登録を行ったが、集計した時間のゆれが大きいものは、登録しないとしてもよい。実施の形態では、出現回数、音素列の長さのゆれを考慮せず登録を行う構成としているが、出現回数、音素列の長さのゆれが統計的に意味のある頻度になったら登録するとしてもよい。
【００７３】
実施の形態では、学習部２８で、所定の対象毎に発話文を特定する最短音素列とジェスチャ動作との対応を学習したが、所定の対象毎に応答ジェスチャデータベースを学習せず、例えば工場出荷前に予め作成した応答ジェスチャデータベースをロボット１のＲＯＭ（又は不揮発性のＲＡＭ）に記憶させてもよい。予め応答ジェスチャデータベースを作成するには、様々な発話文を集めた音声会話データベースもしくはロボットとの音声会話を集めたデータベース（音声会話を沢山集めたもの）を用意し、この用意したデータベースを用いて、図６の分析学習を行えばよい。その場合、当該応答ジェスチャデータベースに登録される最短音素列の長さは、想定される一般の対象の平均又は標準偏差を含む時間とすることができる。また、当該応答ジェスチャデータベースには、出現回数に代えて発話文の一般的な発生確率を含めてもよい。あるいは、当該応答ジェスチャデータベースを書き換え可能なＲＯＭ又は不揮発性のＲＡＭに記憶させておき、ロボット１が作動している間に、所定の対象の発話から出現回数をカウントして、当該応答ジェスチャデータベース内の出現回数の項目を更新していくようにしてもよい。
【００７４】
実施の形態では、発話の内容を「発話文」として規定したが、発話の内容は文に限定されない。例えば、「挨拶」（「おはよう」、「こんにちは」等）、「お礼」（「ありがとう」、「感謝しているよ」等）、「質問」（「ちょっと教えて」、「ひとつ聞いてもいい」等）、「評価」（「うまいね」、「よくわかったね」等）等の「発話のカテゴリ」（ここでは「発話の目的」）を発話の内容として規定してもよい。この場合、制御装置２は、それらの「発話のカテゴリ」それぞれに対して、ロボット１の非言語的な挙動の応答を定めておいて、その「発話のカテゴリ」を特定する最短音素列と非言語的な挙動の応答との対応を学習することができる。非言語的な挙動は、例えば、「挨拶」に対してはおじぎのジェスチャ、「お礼」又は「評価」に対しては手を横に振るジェスチャ、「質問」に対しては頭部１０１を傾げるジェスチャ等とすることができる。
【００７５】
ジェスチャに対応づけられる発話文（ジェスチャ対応文）は、日本語に限らず、外国語でもよい。制御装置２は、言語ごとの音素セットを用いて、分析学習処理及び予測応答処理を行うことができる。例えば、英語の発話文とジェスチャ動作を対応づけておいて、英語の音素セットを用いて、上述の分析学習処理及び予測応答制御処理を行うことができる。
【００７６】
その他、１つの発話文に対応する非言語的な挙動は、１つには限らない。例えば、１つの発話文（ジェスチャ対応文）に、複数のジェスチャ動作を含むジェスチャ動作群を対応づけておいて、その発話文の最短音素列を検出したときに、対応するジェスチャ動作群から１つのジェスチャ動作を選択して、ロボット１に実行させてもよい。その場合、ジェスチャ動作群からのジェスチャ動作の選択は、決まった確率又はランダムでもよいし、あるいは、最短音素列が発話されたときの音の高さ、発話の声の大きさ、音素列のうちのアクセントの位置、音素列の抑揚の違いなどの発話の変化に応じて、ジェスチャ動作群からジェスチャ動作を選択してもよい。さらに、発話の変化によって、ジェスチャ動作群からジェスチャ動作を選択する確率を変化させて、変化させた確率でジェスチャ動作を選択してもよい。
【００７７】
以上の構成の変化及び変形例のほか、さまざまな変形と派生が可能である。例えば、ロボット１の形状は、図１に示した形状に限らない。例えば、犬又は猫をはじめとして、ペットを模した形状とすることができる。ロボット１は、また、ぬいぐるみやアニメなどのキャラクタの形状であってもよい。
【００７８】
あるいはさらに、ロボット１は、スマートフォン又はタブレットなどの画面に表示されるアバターであってもよい。ロボット１がアバターである場合、制御装置２は、スマートフォン又はタブレットにインストールされるアプリケーションプログラムで実現することができる。制御装置２は、アバターが画面に表示されているスマートフォン又はタブレットが備えるマイクロフォン３から音声信号を取得し、画面に表示されているアバターに非言語的な応答を行わせ、そして、スマートフォン又はタブレットが備えるスピーカ４から、応答文を発話させる。
【００７９】
制御装置２は、制御部２０として、ＣＰＵの代わりに、例えばＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programmable Gate Array）、又は、各種制御回路等の専用のハードウェアを備え、専用のハードウェアが、図２に示した各部として機能してもよい。この場合、各部の機能それぞれを個別のハードウェアで実現してもよいし、各部の機能をまとめて単一のハードウェアで実現することもできる。また、各部の機能のうちの、一部を専用のハードウェアによって実現し、他の一部をソフトウェア又はファームウェアによって実現してもよい。
【００８０】
制御装置２の各機能を実現するプログラムは、例えば、フレキシブルディスク、ＣＤ（Compact Disc）−ＲＯＭ、ＤＶＤ（Digital Versatile Disc）−ＲＯＭ、メモリカード等のコンピュータ読み取り可能な記憶媒体に格納して適用できる。さらに、プログラムを搬送波に重畳し、インターネットなどの通信媒体を介して適用することもできる。例えば、通信ネットワーク上の掲示板（ＢＢＳ：Bulletin Board System）にプログラムを掲示して配信してもよい。そして、このプログラムを起動し、ＯＳ（Operating System）の制御下で、他のアプリケーションプログラムと同様に実行することにより、上記の処理を実行できるように構成してもよい。
【００８１】
以上、本発明の好ましい実施の形態について説明したが、本発明はかかる特定の実施の形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲とが含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【００８２】
（付記１）
対象に対して応答可能なロボットの制御装置であって、
前記対象の発話を取得する取得手段と、
前記対象が発話しているときに前記取得手段により取得された前記発話を部分的に解析する第１解析手段と、
前記ロボットによる応答であって、前記対象に対する非言語的な挙動を用いた第１応答を、前記第１解析手段による解析結果に応じて制御する第１制御手段と、
前記取得手段により取得された前記対象の発話を、前記第１解析手段により解析される発話の区間よりも長い区間で解析する第２解析手段と、
前記第２解析手段による解析結果に応じて、前記対象の前記発話に対する応答文を生成する生成手段と、
前記生成手段により生成された前記応答文に基づいて、前記ロボットによる言語を用いた第２応答を制御する第２制御手段と、
を備えることを特徴とするロボットの制御装置。
【００８３】
（付記２）
前記第１解析手段が解析する前記発話の音素列の長さは、前記第２解析手段が解析する前記発話の音素列の長さよりも短く設定されていることを特徴とする、付記１に記載のロボットの制御装置。
【００８４】
（付記３）
前記第１応答は複数の第１応答から成り、
前記複数の第１応答に対応する複数の参照音素列を記憶する記憶手段を更に備え、
前記第１解析手段は、前記対象が発話しているときに前記取得手段により取得された前記発話の一部の音素列が前記複数の参照音素列の何れかに一致するか否かを判別し、
前記第１制御手段は、前記第１解析手段により前記一部の音素列が前記複数の参照音素列の前記何れかに一致すると判別されたときには、前記複数の第１応答のうち、当該一致すると判別された前記複数の参照音素列の前記何れかに対応する第１応答を前記ロボットに実行させることを特徴とする、付記１又は２に記載のロボットの制御装置。
【００８５】
（付記４）
前記複数の参照音素列の各々は、前記対象の発話の内容を特定可能な最短の音素列に設定されていることを特徴とする、付記３に記載のロボットの制御装置。
【００８６】
（付記５）
前記ロボットは、前記対象として互いに異なる複数の対象に対して、前記第１応答及び前記第２応答を実行可能であり、
前記複数の対象の各々を識別する識別手段を更に備え、
前記取得手段は、前記識別された対象ごとに、当該対象の発話を取得し、
前記取得された対象の発話の内容を解析する解析手段と、
前記複数の第１応答から、前記解析手段による解析結果に応じた第１応答を特定する特定手段と、
前記解析手段による解析結果に基づいて、当該解析結果に対応する前記対象の発話の内容を特定可能な最短の音素列を前記参照音素列として、前記特定された第１応答に対応付けて、前記識別された対象ごとに学習する学習手段と、を更に備えることを特徴とする、付記３に記載のロボットの制御装置。
【００８７】
（付記６）
前記ロボットは、駆動可能な可動部を有し、
前記第１応答は、前記ロボットの前記可動部を駆動することによって実現されるジェスチャ動作による応答であり、前記第２応答は、前記対象に対して前記応答文を発話する応答であることを特徴とする、付記１から５の何れか１つに記載のロボットの制御装置。
【００８８】
（付記７）
対象に対して、前記第１応答と、前記第２応答とを実行可能に構成され、付記１から６の何れか１つに記載のロボットの制御装置を備えたロボット。
【００８９】
（付記８）
対象に対して応答可能なロボットの制御装置が実行するロボットの制御方法であって、
前記対象の発話を取得する取得ステップと、
前記対象が発話しているときに前記取得ステップにより取得された前記発話を部分的に解析する第１解析ステップと、
前記ロボットによる応答であって、前記対象に対する非言語的な挙動を用いた第１応答を、前記第１解析ステップによる解析結果に応じて制御する第１制御ステップと、
前記取得ステップにより取得された前記対象の発話を、前記第１解析ステップにより解析される発話の区間よりも長い区間で解析する第２解析ステップと、
前記第２解析ステップでの解析結果に応じて、前記対象の前記発話に対する応答文を生成する生成ステップと、
前記生成ステップで生成された前記応答文に基づいて、前記ロボットによる言語を用いた第２応答を制御する第２制御ステップと、
を備えることを特徴とするロボットの制御方法。
【００９０】
（付記９）
対象に対して応答可能なロボットを制御するコンピュータを、
前記対象の発話を取得する取得手段、
前記対象が発話しているときに前記取得手段により取得された前記発話を部分的に解析する第１解析手段、
前記ロボットによる応答であって、前記対象に対する非言語的な挙動を用いた第１応答を、前記第１解析手段による解析結果に応じて制御する第１制御手段、
前記取得手段により取得された前記対象の発話を、前記第１解析手段により解析される発話の区間よりも長い区間で解析する第２解析手段、
前記第２解析手段による解析結果に応じて、前記対象の前記発話に対する応答文を生成する生成手段、及び
前記生成手段により生成された前記応答文に基づいて、前記ロボットによる言語を用いた第２応答を制御する第２制御手段、
として機能させるためのプログラム。
【符号の説明】
【００９１】
１…ロボット、２…制御装置、３…マイクロフォン、４…スピーカ、５，６…関節、７…ジェスチャ作動部、２０…制御部、２１…音声取得部、２２…識別部、２３…部分解析部、２４…ジェスチャ応答制御部、２５…発話解析部、２６…応答文生成部、２７…言語応答制御部、２８…学習部、２９…特定部、３０…記憶部、１０１…頭部、１０２…胴体部、１０３…腕部
【図１】
2020190587.tif 000003
【図２】
2020190587.tif 000004
【図３Ａ】
2020190587.tif 000005
【図３Ｂ】
2020190587.tif 000006
【図３Ｃ】
2020190587.tif 000007
【図３Ｄ】
2020190587.tif 000008
【図３Ｅ】
2020190587.tif 000009
【図４】
2020190587.tif 000010
【図５】
2020190587.tif 000011
【図６】
2020190587.tif 000012
【図７】
2020190587.tif 000013
【図８】
2020190587.tif 000014
【図９】
2020190587.tif 000015
【図１０】
2020190587.tif 000016
【図１１】
2020190587.tif 000017
【図１２】
2020190587.tif 000018
【図１３】
2020190587.tif 000019
【図１４】
2020190587.tif 000020
【図１５】
2020190587.tif 000021
【図１６】
2020190587.tif 000022