(57)【要約】【課題】ロボット装置に多様な動きを行わせることができる。【解決手段】生成プログラムは、話者の音声から認識された文字列と、当該音声が発された期間に応じた期間における話者の動きを表すデータと、を取得し、取得した文字列と、動きを表すデータとを基に、文字列と動きとの対応関係を示す情報を生成する処理をコンピュータに実行させる。また、制御プログラムは、所定の文字列に基づく音声を発するようにロボット装置を制御する。そして、制御プログラムは、生成された文字列と動きとの対応関係を示す情報に基づき、所定の文字列に対応する動きを、ロボット装置による音声の発声に同期して行うようにロボット装置を制御する処理をコンピュータに実行させる。【選択図】図１
2018075657.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
話者の音声から認識された文字列と、当該音声が発された期間に応じた期間における前記話者の動きを表すデータと、を取得し、
取得した前記文字列と、前記動きを表すデータとを基に、文字列と動きとの対応関係を示す情報を生成する
処理を実行させることを特徴とする生成プログラム。
【請求項２】
前記取得する処理において、前記話者を識別するデータをさらに取得し、
前記生成する処理において、前記話者毎の前記対応関係を示す情報を生成することを特徴とする請求項１に記載の生成プログラム。
【請求項３】
前記取得する処理において、通話装置を用いる話者の音声から認識された文字列と、当該音声が発された期間に応じた期間における前記通話装置の傾きを表すデータと、を取得し
前記生成する処理において、文字列と傾きとの対応関係を示す情報を生成することを特徴とする請求項１又は２に記載の生成プログラム。
【請求項４】
話者の音声から認識された文字列と、当該音声が発された期間に応じた期間における前記話者の動きを表すデータと、を取得する取得部と、
取得した前記文字列と、前記動きを表すデータとを基に、文字列と動きとの対応関係を示す情報を生成する生成部と
を有することを特徴とする生成装置。
【請求項５】
コンピュータに、
所定の文字列に基づく音声を発するようにロボット装置を制御し、
話者の音声から認識された文字列と、当該音声が発された期間に応じた期間における前記話者の動作を表すデータと、を基に生成された文字列と動きとの対応関係を示す情報に基づき、前記所定の文字列に対応する動きを、前記ロボット装置による音声の発声に同期して行うように前記ロボット装置を制御する
処理を実行させることを特徴とする制御プログラム。
【請求項６】
前記動きを行うように制御する処理において、話者の音声から認識された文字列と、当該音声が発された期間に応じた期間における前記話者の動作を表すデータと、前記話者を識別するデータと、を基に生成された文字列と動きとの話者毎の対応関係を示す情報のうち、予め設定された特定の話者の対応関係を示す情報に基づき、前記所定の文字列に対応する動きを行うように前記ロボット装置を制御することを特徴とする請求項５に記載の制御プログラム。
【請求項７】
前記動きを行うように制御する処理において、通話装置を用いる話者の音声から認識された文字列と、当該音声が発された期間に応じた期間における前記通話装置の傾きを表すデータと、を基に生成された文字列と傾きとの対応関係を示す情報に基づき、前記ロボット装置の頭部の傾きが、前記所定の文字列に対応する傾きとなるように前記ロボット装置を制御することを特徴とする請求項５又は６に記載の制御プログラム。
【請求項８】
前記音声を発するように制御する処理において、前記ロボット装置と接続された通話装置に対して第１の話者が発した音声から認識された第１の文字列を発するように前記ロボット装置を制御し、
前記動きを行うように制御する処理において、前記第１の文字列に対応する動きを行うように前記ロボット装置を制御する処理を実行させることを特徴とする請求項５乃至７のいずれか１つに記載の制御プログラム。
【請求項９】
ロボット装置の制御プログラムにおいて、
通話装置から出力された音声データを受け付けると、受け付けた前記音声データに応じた音声を前記ロボット装置に出力させ、前記音声データに応じた動きデータを受け付けると、受け付けた前記動きデータに応じた動きを前記ロボット装置に実行させる、
処理をコンピュータに実行させることを特徴とする制御プログラム。
【請求項１０】
前記音声データに応じた動きデータは、前記音声データに応じた発話内容に対応付けられた動きデータである、
ことを特徴とする請求項９に記載の制御プログラム。
【請求項１１】
ロボット装置の制御プログラムにおいて、
通話装置から出力された音声データを受け付けると、受け付けた前記音声データに応じた音声を前記ロボット装置に出力させるとともに、音声データと動きデータとの対応関係を示す情報を記憶する記憶部を参照して、受け付けた前記音声データに対応付けられた動きデータを特定し、特定した前記動きデータに応じた動きを前記ロボット装置に実行させる、
処理をコンピュータに実行させることを特徴とする制御プログラム。
【請求項１２】
前記通話装置の話者を特定した場合、音声データと動きデータとの対応関係を示す情報を話者毎に記憶する外部記憶部から、特定した前記話者に応じた情報を取得し、
取得した前記情報を前記記憶部に記憶する、
ことを特徴とする請求項１１に記載の制御プログラム。
【請求項１３】
コンピュータが、
所定の文字列に基づく音声を発するようにロボット装置を制御し、
話者の音声から認識された文字列と、当該音声が発された期間に応じた期間における前記話者の動作を表すデータと、を基に生成された文字列と動きとの対応関係を示す情報に基づき、前記所定の文字列に対応する動きを、前記ロボット装置による音声の発声に同期して行うように前記ロボット装置を制御する
処理を実行することを特徴とする制御方法。
【請求項１４】
ロボット装置の制御方法において、
通話装置から出力された音声データを受け付けると、受け付けた前記音声データに応じた音声を前記ロボット装置に出力させ、前記音声データに応じた動きデータを受け付けると、受け付けた前記動きデータに応じた動きを前記ロボット装置に実行させる、
処理をコンピュータが実行することを特徴とする制御方法。
【請求項１５】
ロボット装置の制御方法において、
通話装置から出力された音声データを受け付けると、受け付けた前記音声データに応じた音声を前記ロボット装置に出力させるとともに、音声データと動きデータとの対応関係を示す情報を記憶する記憶部を参照して、受け付けた前記音声データに対応付けられた動きデータを特定し、特定した前記動きデータに応じた動きを前記ロボット装置に実行させる、
処理をコンピュータが実行することを特徴とする制御プログラム。
【請求項１６】
所定の文字列に基づく音声を発する発話部と、
話者の音声から認識された文字列と、前記音声が発された期間に応じた期間における前記話者の動作を表すデータと、を基に生成された文字列と動きとの対応関係を示す情報に基づき、前記所定の文字列に対応する動きを、前記発話部による音声の発声に同期して行う動作部と、
を有することを特徴とするロボット装置。
【請求項１７】
通話装置から出力された音声データを受け付けると、受け付けた前記音声データに応じた音声を出力する発話部と、
前記音声データに応じた動きデータを受け付けると、受け付けた前記動きデータに応じた動きを実行する動作部と、
を有することを特徴とするロボット装置。
【請求項１８】
通話装置から出力された音声データを受け付けると、受け付けた前記音声データに応じた音声を出力する発話部と、
前記発話部による音声の出力とともに、音声データと動きデータとの対応関係を示す情報を記憶する記憶部を参照して、受け付けた前記音声データに対応付けられた動きデータを特定し、特定した前記動きデータに応じた動きを実行する動作部と、
を有することを特徴とするロボット装置。
【請求項１９】
通話装置と、
ロボット装置と、
情報処理装置と、を備え、
前記通話装置は、
話者の音声を受け付けると、受け付けた前記音声に応じた音声データを、前記ロボット装置と前記情報処理装置とに送信し、
前記情報処理装置は、
前記通話装置から前記音声データを受信すると、発話内容と動きデータとの対応関係を示す情報を記憶する記憶部を参照して、受信した前記音声データに応じた発話内容に対応付けられた動きデータを取得し、
取得した前記動きデータを前記ロボット装置に送信し、
前記ロボット装置は、
前記通話装置から前記音声データを受信すると、受信した前記音声データに応じた音声を出力し、前記情報処理装置から前記動きデータを受信すると、受信した前記動きデータに応じた動きを実行する、
ことを特徴とする通話システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生成プログラム、生成装置、制御プログラム、制御方法、ロボット装置及び通話システムに関する。
【背景技術】
【０００２】
従来、音声を発し、人間との対話を行うロボット装置が知られている。また、このような対話を行うロボット装置の中には、対話の際に、顔や手足等の可動部を動作させ、自己表現や振る舞いを行うものがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２１６３６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の技術では、ロボット装置に多様な動きをさせることができない場合があるという問題がある。例えば、上記の技術におけるロボット装置は、予め設計された動きを、状況に応じて、又はランダムに実行する。このため、ロボット装置に、設計されていない動きをさせることができない。
【０００５】
一つの側面では、ロボット装置に多様な動きを行わせることができる生成プログラム、生成装置、制御プログラム、制御方法、通話システム、及び多様な動きを行うことができるロボット装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
一つの態様において、生成プログラムは、コンピュータに、話者の音声から認識された文字列と、当該音声が発された期間に応じた期間における話者の動きを表すデータと、を取得し、取得した文字列と、動きを表すデータとを基に、文字列と動きとの対応関係を示す情報を生成する処理を実行させることを特徴とする。
【発明の効果】
【０００７】
一つの態様によれば、ロボット装置に多様な動きを行わせることができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施例１における通話システムの構成例を説明する説明図である。
【図２】図２は、人とロボット装置との対話の一例を説明する図である。
【図３】図３は、実施例１における通話装置の機能ブロックの一例を示す図である。
【図４】図４は、実施例１における生成装置の機能ブロックの一例を示す図である。
【図５】図５は、取得データの一例を示す図である。
【図６】図６は、学習結果ＤＢの一例を示す図である。
【図７】図７は、実施例１におけるロボット装置の機能ブロックの一例を示す図である。
【図８】図８は、ロボット装置の外観の一例を説明する図である。
【図９】図９は、ロボット装置の駆動の一例を説明する図である。
【図１０】図１０は、ロボット装置の駆動期間の一例を説明する図である。
【図１１】図１１は、実施例１における生成処理の一例を説明する図である。
【図１２】図１２は、実施例１における応答処理の一例を説明する図である。
【図１３】図１３は、実施例２におけるロボット装置の機能ブロックの一例を示す図である。
【図１４】図１４は、実施例２における応答処理の一例を説明する図である。
【図１５】図１５は、生成装置のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【０００９】
以下に、本願の開示する生成プログラム、生成装置、制御プログラム、制御方法、ロボット装置及び通話システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、以下に示す各実施例は、矛盾を起こさない範囲で適宜組み合わせても良い。
【実施例１】
【００１０】
［システム概要］
まず、通話システム１の概要について、図１を用いて説明する。図１は、実施例１における通話システムの構成例を説明する説明図である。図１に示すように、通話システム１は、通話装置１００、生成装置２００及びロボット装置３００を有する。また、通話装置１００、生成装置２００及びロボット装置３００は、無線又は有線で構築された通信ネットワーク１０を介して互いに通信可能に接続されている。通信ネットワーク１０は、例えばインターネットである。なお、生成装置２００は、情報処理装置の一例である。
【００１１】
通話装置１００は、音声による通話機能を有する装置である。通話装置１００は、例えばスマートフォン等である。ロボット装置３００は、データ通信機能、周囲の音声を収集する機能、映像を撮影する機能、音声や映像の出力機能、音声認識機能、及び可動部を駆動する機能等を備えたヒューマン・インタフェース装置である。通話システム１は、ロボット装置３００に、ユーザＨ２０との対話を行わせる。図２に示すように、通話システム１によれば、ユーザＨ２０は、ロボット装置３００と対面し対話を行うことができる。図２は、人とロボット装置との対話の一例を説明する図である。
【００１２】
例えば、ロボット装置３００は、予め設定されたシナリオやプログラムに従って、自動的にユーザＨ２０と対話するようにしてもよい。この場合、例えば、ロボット装置３００は、ユーザＨ２０が発した音声を収集し、収集した音声から音声認識により文字列を抽出し、抽出した文字列への応答として、所定の音声を発する。
【００１３】
また、ロボット装置３００は、通話装置として機能するようにしてもよい。この場合、例えば、ロボット装置３００は、通話装置１００及び通信ネットワーク１０を介して、通話装置１００を使用するユーザＨ１０の音声を取得し、取得した音声を発する。また、ロボット装置３００は、ユーザＨ２０の音声を収集し、収集した音声を通信ネットワーク１０を介して通話装置１００に送信する。この場合、ユーザＨ２０は、ロボット装置３００と対話するかのように、ユーザＨ１０との通話を行うことができる。
【００１４】
また、ロボット装置３００は、音声を発するとともに、頭部や腕部等の可動部を駆動することで、対話時の人間の感情表現や振る舞いを疑似的に表現することができる。本実施例において、ロボット装置３００は、可動部をどのように駆動するかを決定する際に、予め人間の音声及び動き等に基づいて、機械学習等により生成された学習データを用いる。これにより、ロボット装置３００は多様な動きを行わせることが可能となる。なお、生成装置２００は、学習データを生成するための装置である。
【００１５】
［機能構成］
図３は、実施例１における通話装置の機能ブロックの一例を示す図である。図３に示す通話装置１００は、発話部１１０と、受話部１２０と、通信部１３０と、検知部１４０と、記憶部１５０と、制御部１６０とを有する。なお、通話装置１００は、図３に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の通信デバイス、入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。通話装置１００の一例としては、スマートフォン、通話機能を有するタブレット端末及びパーソナルコンピュータ等を採用できる。
【００１６】
発話部１１０は、音声を発する装置である。発話部１１０は、例えば、通話時に、通話相手の音声を発する。発話部１１０は、例えばスピーカである。また、受話部１２０は、音声を収集する装置である。受話部１２０は、例えば、通話時に、ユーザＨ１０の音声を収集する。受話部１２０は、例えばマイクロフォンである。
【００１７】
通信部１３０は、通信ネットワーク１０を経由して、その他のコンピュータとの通信を制御する。通信部１３０は、例えば、生成装置２００及びロボット装置３００との間でデータの送受信を行う。通信部１３０は、後述する検知部１４０によって取得された話者の動きに関するデータ、及び音声認識部１６１による音声認識の結果得られた文字列を、生成装置２００に送信する。
【００１８】
検知部１４０は、通話装置１００を用いて通話を行っている話者の動きを検知するセンサである。例えば、通話装置１００がスマートフォン等の携帯型の機器である場合、検知部１４０は、加速度センサやジャイロセンサといった、装置自体の動きを検知するセンサであってもよい。これは、通話装置１００が携帯型の機器である場合、通話中に話者と通話装置１００とが密着しており、話者の動きに合わせて通話装置１００自体が動くと考えられるためである。
【００１９】
また、検知部１４０は、カメラを備えていてもよい。この場合、検知部１４０は、カメラによって撮影された話者の画像を解析することで話者の動きに関するデータを取得することができる。
【００２０】
記憶部１５０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。また、記憶部１５０は、制御部１６０での処理に用いられる情報を記憶する。
【００２１】
制御部１６０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部１６０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されるようにしてもよい。制御部１６０は、音声認識部１６１を有し、以下に説明する情報処理の機能や作用を実現又は実行する。なお、制御部１６０の内部構成は、図３に示した構成に限られず、情報処理を行う構成であれば他の構成であってもよい。
【００２２】
音声認識部１６１は、音声認識を行う。具体的には、音声認識部１６１は、公知の音声認識技術を用いて、受話部１２０が収集した音声から人の音声を抽出する。そして、音声認識部１６１は、抽出した人の音声を基に、認識対象とする言葉の辞書データを参照することで、人の会話内容を文字列として抽出する。さらに、音声認識部１６１は、形態素解析等を用いて、抽出した文字列を単語等の単位に分解することもできる。
【００２３】
図４は、実施例１における生成装置の機能ブロックの一例を示す図である。図４に示す生成装置２００は、通信部２１０と、記憶部２２０と、制御部２３０とを有する。なお、生成装置２００は、図４に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の通信デバイス、入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。生成装置２００の一例としては、クラウド上に設置されたサーバ等を採用できる。
【００２４】
通信部２１０は、通信ネットワーク１０を経由して、その他のコンピュータとの通信を制御する。通信部２１０は、例えば、通話装置１００及びロボット装置３００との間でデータの送受信を行う。通信部２１０は、通話装置１００から、検知部１４０によって取得された話者の動きに関するデータ、及び音声認識部１６１による音声認識の結果得られた文字列を受信する。これにより、通信部２１０は、話者の音声から認識された文字列と、当該音声が発された期間に応じた期間における話者の動きを表すデータと、を取得する。なお、通信部２１０は、取得部の一例である。
【００２５】
記憶部２２０は、例えば、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部２２０は、学習結果ＤＢ２２１を有する。また、記憶部２２０は、制御部２３０での処理に用いられる情報を記憶する。
【００２６】
制御部２３０は、例えば、ＣＰＵやＭＰＵ等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部２３０は、例えば、ＡＳＩＣやＦＰＧＡ等の集積回路により実現されるようにしてもよい。制御部２３０は、生成部２３１を有し、以下に説明する情報処理の機能や作用を実現又は実行する。なお、制御部２３０の内部構成は、図４に示した構成に限られず、情報処理を行う構成であれば他の構成であってもよい。
【００２７】
生成部２３１は、取得した文字列と、話者の動きを表すデータとを基に、文字列と動きとの対応関係を示す情報を生成する。生成部２３１は、例えば、線形回帰、ＳＶＭ（サポートベクトルマシン）等の機械学習の手法を用いて学習データを生成し、生成したデータを学習結果ＤＢ２２１に保持させる。なお、生成部２３１が情報を生成し、生成した情報を学習結果ＤＢ２２１に保持させる一連の処理を学習と呼ぶ場合もある。
【００２８】
ここで、生成装置２００が通話装置１００から取得する取得データについて、図５を用いて説明する。図５は、取得データの一例を示す図である。図５に示すように、取得データは、「話者」、「入力文字列」、「応答文字列」、「開始時刻」、「終了時刻」、「動きデータ」、といった項目を有する。取得データは、形態素解析によって分解された単語毎のレコードを記憶する。なお、取得データは、文節毎や、文章毎のレコードを記憶しても良い。
【００２９】
図５において、「話者」は、通話装置１００を用いて通話を行ったユーザを識別するＩＤ等である。このように、通信部２１０は、話者を識別するデータを取得する。図５において、「入力文字列」は、話者が応答する直前に通話相手が発した音声に基づく単語である。図５において、「応答文字列」は、話者が発した音声に基づく単語である。図５において、「開始時刻」は、話者が「応答文字列」の音声を発し始めた時刻である。図５において、「終了時刻」は、話者が「応答文字列」の音声を発し終えた時刻である。図５において、「動きデータ」は、話者が「応答文字列」の音声を発し始めてから発し終えるまでの間の話者の動きを表すデータであり、検知部１４０によって取得されたデータである。
【００３０】
ここで、図５の「動きデータ」は、検知部１４０が検知したデータであり、所定の時間間隔で取得されたｘ軸回り、ｙ軸回り、ｚ軸回りそれぞれの回転角度（回転角度の範囲は−１８０°〜１８０°）である。例えば、ある時点に取得されたｘ軸回り、ｙ軸回り、ｚ軸回りの回転角度がそれぞれθｘ、θｙ、θｚであった場合、当該時点における傾きは、「（θｘ，θｙ，θｚ）」のように表される。また、「動きデータ」は、傾きの変化を表すデータであり、「（θｘ１，θｙ１，θｚ１），（θｘ２，θｙ２，θｚ２），…，（θｘｎ，θｙｎ，θｚｎ）」のように表される。
【００３１】
これにより、生成装置２００は、動きに関するデータをコンパクトな形式で受け取ることができる。また、生成装置２００は、動きに関するデータを、応答文字列、開始時刻及び終了時刻とともに受け取るため、発声と動きが正しく同期されたデータを受け取ることができる。
【００３２】
例えば、図５の取得データにおける１行目のレコードは、「こんにちは」という入力文字列に対し、話者「Ａ」が、「１３：３０：００」から「１３：３０：０３」にかけて、「こんにちは」という応答文字列の音声を発したことを表している。また、当該レコードは、検知部１４０が検知した傾きが、「（０，  ０，  ０），（１５，  ０，  ０），（２０，  ５，  ０），（３０，  ５，  ２）」のように変化したことを表している。
【００３３】
このように、通信部２１０は、通話装置１００を用いる話者の音声から認識された文字列と、当該音声が発された期間に応じた期間における通話装置１００の傾きを表すデータと、を取得する。この場合、生成部２３１は、文字列と傾きとの対応関係を示す情報を生成する。
【００３４】
また、取得データにおいて「入力文字列」は必須ではないため、取得データにおいて「入力文字列」が含まれないレコードが存在していてもよいし、全てのレコードに「入力文字列」が含まれていなくてもよい。また、取得データには、「開始時刻」及び「終了時刻」の代わりに、「応答文字列」の音声を発し始めてから発し終えるまでの時間が含まれていてもよい。また、「動きデータ」の表し方は、図５の例に限られず、任意の表し方とすることができる。
【００３５】
次に、生成装置２００の学習結果を記憶する学習結果ＤＢ２２１について、図６を用いて説明する。図６は、学習結果ＤＢの一例を示す図である。図６に示すように、学習結果ＤＢ２２１は、「応答文字列」、「動きデータ」、「時間」といった項目を有する。学習結果ＤＢ２２１は、応答文字列毎のレコードを記憶する。また、生成部２３１は、話者毎の対応関係を示す情報を生成するようにしてもよい。この場合、学習結果ＤＢ２２１に項目「話者」が追加される。
【００３６】
図６において、「応答文字列」は、ロボット装置３００が発する音声の文字列である。図６において、「動きデータ」は、ロボット装置３００が「応答文字列」の音声を発し始めてから発し終えるまでの間のロボット装置３００の動きを表すデータである。図６において、「時間」は、「動きデータ」に示す動きが行われる時間である。図６の「動きデータ」は、図５の「動きデータ」と同様に、ｘ軸回り、ｙ軸回り、ｚ軸回りそれぞれの回転角度（回転角度の範囲は−１８０°〜１８０°）である。ロボット装置３００は、可動部の回転角度が「動きデータ」に示す角度となるように駆動する。
【００３７】
例えば、図６の学習結果ＤＢにおける１行目のレコードは、ロボット装置３００が、「こんにちは」という応答文字列の音声を発する際に、「２．８」秒の時間をかけて、可動部の回転角度を変化させることを示している。このとき、ロボット装置３００は、回転角度を、「（０，  ０，  ０），（１５，  ０，  ０），（２０，  ０，  ０），（３０，  ０，  ０）」のように変化させる。なお、ロボット装置３００が駆動する可動部は、例えば頭部又は腕部等である。また、学習結果ＤＢ２２１は、可動部と対応付けて動きに関するデータを記憶するようにしてもよい。
【００３８】
図７は、実施例１におけるロボット装置の機能ブロックの一例を示す図である。図７に示すロボット装置３００は、発話部３１０と、受話部３２０と、通信部３３０と、可動部３４０と、記憶部３５０と、制御部３６０とを有する。なお、ロボット装置３００は、図７に示す機能部以外にも既知の対話型のロボット装置が有する各種の機能部、例えば発光デバイス、各種センサ等の機能部を有することとしてもかまわない。
【００３９】
発話部３１０は、所定の文字列に基づく音声を発する装置である。例えば、発話部３１０は、所定の方法で決定された応答文字列に基づいて生成された音声を発することができる。また、発話部３１０は、通話時において通話相手の音声を発することができる。発話部３１０は、例えばスピーカである。また、受話部３２０は、音声を収集する装置である。受話部３２０は、例えば、対話時に、ユーザＨ２０の音声を収集する。受話部３２０は、例えばマイクロフォンである。
【００４０】
通信部３３０は、通信ネットワーク１０を経由して、その他のコンピュータとの通信を制御する。通信部３３０は、例えば、通話装置１００及び生成装置２００との間でデータの送受信を行う。通信部３３０は、生成装置２００から、学習結果ＤＢ２２１に記憶されたデータを取得する。
【００４１】
可動部３４０は、ロボット装置３００に備えられた動作可能な部位である。例えば、可動部３４０は、備えた頭部、腕部、脚部等である。また、可動部３４０は、モータ等によって動作する。可動部３４０は、例えば所定の軸を中心とした回転動作を行うことができる。また、可動部３４０は、屈伸動作を行うようにしてもよい。
【００４２】
記憶部３５０は、例えば、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。また、記憶部３５０は、制御部３６０での処理に用いられる情報を記憶する。
【００４３】
制御部３６０は、例えば、ＣＰＵやＭＰＵ等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部３６０は、例えば、ＡＳＩＣやＦＰＧＡ等の集積回路により実現されるようにしてもよい。制御部３６０は、音声認識部３６１、決定部３６２と、取得部３６３と、駆動部３６４とを有し、以下に説明する情報処理の機能や作用を実現又は実行する。なお、制御部３６０の内部構成は、図７に示した構成に限られず、情報処理を行う構成であれば他の構成であってもよい。
【００４４】
音声認識部３６１は、通話装置１００の音声認識部１６１と同様に、音声認識を行う。具体的には、音声認識部３６１は、公知の音声認識技術を用いて、受話部３２０が収集した音声から人の音声を抽出する。そして、音声認識部３６１は、抽出した人の音声を基に、認識対象とする言葉の辞書データを参照することで、人の会話内容を文字列として抽出する。さらに、音声認識部３６１は、形態素解析等を用いて、抽出した文字列を単語等の単位に分解することもできる。
【００４５】
決定部３６２は、音声認識部３６１によって抽出された文字列を基に、発話部３１０が発する音声の文字列である応答文字列を決定する。例えば、音声認識部３６１によって抽出される単語毎に、所定の単語を応答文字列として記憶部３５０に記憶させておくようにしてもよい。また、決定部３６２は、既知の対話型のロボット装置で用いられている方法で応答文字列を決定するようにしてもよい。
【００４６】
取得部３６３は、決定部３６２によって決定された応答文字列を基に、可動部３４０を駆動するためのデータを取得する。具体的には、取得部３６３は、生成装置２００の学習結果ＤＢ２２１を参照し、決定部３６２によって決定された応答文字列が、項目「応答文字列」に合致するレコードの「動きデータ」及び「時間」を取得する。例えば、図６より、決定部３６２によって決定された応答文字列が「こんにちは」である場合、取得部３６３は、動きデータ「（０，  ０，  ０），（１５，  ０，  ０），（２０，  ０，  ０），（３０，  ０，  ０）」、及び時間「２．８」を取得する。
【００４７】
駆動部３６４は、取得部３６３によって取得された動きデータ及び時間に従って、可動部３４０を、発話部３１０による音声の発声に同期して駆動する。例えば、取得部３６３によって、動きデータ「（０，  ０，  ０），（１５，  ０，  ０），（２０，  ０，  ０），（３０，  ０，  ０）」、及び時間「２．８」が取得された場合、駆動部３６４は、「２．８」秒の時間をかけて、可動部３４０の回転角度を、「（０，  ０，  ０），（１５，  ０，  ０），（２０，  ０，  ０），（３０，  ０，  ０）」のように変化させる。
【００４８】
取得部３６３は、学習結果ＤＢ２２１から、話者の音声から認識された文字列と、音声が発された期間に応じた期間における話者の動作を表すデータと、を基に生成された文字列と動きとの対応関係を示す情報を取得する。そして、可動部３４０は、取得部３６３によって取得された対応関係示す情報をに基づき、所定の文字列に対応する動きを、発話部３１０による音声の発声に同期して行う。なお、可動部３４０は、動作部の一例である。
【００４９】
図８を用いて、ロボット装置３００の外観について説明する。図８は、ロボット装置の外観の一例を説明する図である。図８に示すように、ロボット装置３００は、胴体部３０１と、頭部３０２と、腕部３０３と、撮像部３０４と、音声入出力部３０５と、タッチパネル３０６とを有する。胴体部３０１、頭部３０２及び腕部３０３は、可動部３４０として機能することがきる。撮像部３０４は、映像を撮影するカメラである。音声入出力部３０５は、音声を収集するマイク及び音声を出力するスピーカである。タッチパネル３０６は、ユーザへの画面表示及びユーザからのタッチ操作を受け付ける。
【００５０】
なお、ロボット装置３００の構成は、一例であり、図示例に限定しない。例えば、ロボット装置３００は、胴体部３０１の下に車両装置や歩行装置を備え、撮像部３０４により撮像した画像をもとにユーザに追従して移動する自律走行型のロボットであってもよい。
【００５１】
図９を用いて、ロボット装置の駆動について説明する。図９は、ロボット装置の駆動の一例を説明する図である。図９は、可動部３４０がロボット装置３００の頭部３０２である場合の例を示している。図９に示すように、頭部３０２は、ｘ軸、ｙ軸、ｚ軸を中心として回転することができる。駆動部３６４は、可動部３４０の回転角度を変化させる。
【００５２】
ここで、駆動部３６４が、２．８秒で、頭部３０２の回転角度を（０，  ０，  ０），（１５，  ０，  ０），（２０，  ０，  ０），（３０，  ０，  ０）のように変化させる場合、ｘ軸を中心とした回転角度が増加していく。このとき、ロボット装置３００は、人が顔を上げる動きを表現することができる。
【００５３】
また、駆動部３６４は、発話部３１０による発声が開始されると同時に可動部３４０を駆動させてもよいし、任意のタイミングで駆動させてもよい。ここで、図１０を用いて、ロボット装置３００の駆動期間について説明する。図１０は、ロボット装置の駆動期間の一例を説明する図である。図１０の波形は、発話部３１０が所定の単語を表す文字列を発する際の音声を時系列で表したものである。また、ｔ０は、発話部３１０が音声を発し始めた時刻である。また、ｔ１は、発話部３１０が音声を発し終えた時刻である。
【００５４】
なお、人が音声を発しながら動きを行う場合、音声を発し始めるより前に動きを開始する場合や、音声を発し始めた後に動きを開始する場合がある。このため、可動部３４０が稼働を開始する時刻を、発話部３１０が発声を開始する時刻から前後させることで、ロボット装置３００により自然な動きを行わせることができる場合がある。
【００５５】
例えば、駆動部３６４は、図１０のＭ１に示す期間に可動部３４０を駆動してもよい。この場合、発話部３１０による発声及び可動部３４０による動きは、同時に始まり、同時に終わる。また、駆動部３６４は、図１０のＭ２に示す期間に可動部３４０を駆動してもよい。この場合、可動部３４０による動きは、発話部３１０による発声よりも前に開始される。また、駆動部３６４は、図１０のＭ３〜Ｍ５に示す期間に可動部３４０を駆動してもよいし、図１０に示されていない任意の期間に可動部３４０を駆動してもよい。
【００５６】
［処理の流れ］
図１１を用いて、本実施例における通話装置１００及び生成装置２００による生成処理の流れを説明する。図１１は、実施例１における生成処理の一例を説明する図である。図１１に示すように、通話装置１００は、通話が開始されるまで待機する（ステップＳ１０１：Ｎｏ）。通話装置１００の音声認識部１６１は、通話が開始されると（ステップＳ１０１：Ｙｅｓ）、受話部１２０によって収集された音声の音声認識を行う（ステップＳ１０２）。また、検知部１４０は、話者の動きを検知する（ステップＳ１０３）。そして、通信部１３０は、音声認識部１６１による音声認識の結果得られた文字列、及び、検知部１４０によって取得された話者の動きに関するデータを、生成装置２００に送信する（ステップＳ１０４）。
【００５７】
生成装置２００の通信部２１０は、通信部１３０によって送信された、文字列、及び、話者の動きに関するデータを受信する（ステップＳ１０５）。そして、生成部２３１は、文字列と話者の動きに関するデータとの対応関係を示す情報を生成し（ステップＳ１０６）、学習結果を記憶部２２０の学習結果ＤＢ２２１に保持する（ステップＳ１０７）。
【００５８】
ここで、通話が終了していない場合（ステップＳ１０８：Ｎｏ）、すなわち未学習のデータがある場合、生成装置２００は、通話装置１００によって送信されたデータをさらに受信し（ステップＳ１０５）、データを生成する。また、通話が終了している場合（ステップＳ１０８：Ｙｅｓ）、すなわち未学習のデータがない場合、生成装置２００は処理を終了する。なお、生成装置２００が通話が終了したか否かを判定するために、通話装置１００は、送信するデータに、当該データが最後のデータであるか否かを示すフラグを付するようにしてもよい。
【００５９】
さらに、通話装置１００は、通話が終了していない場合（ステップＳ１０９：Ｎｏ）、さらに音声認識を行う（ステップＳ１０２）。また、通話装置１００は、通話が終了している場合（ステップＳ１０９：Ｙｅｓ）、処理を終了する。
【００６０】
図１２を用いて、本実施例における生成装置２００及びロボット装置３００による応答処理の流れを説明する。図１２は、実施例１における応答処理の一例を説明する図である。図１２に示すように、ロボット装置３００は、対話が開始されるまで待機する（ステップＳ１２１：Ｎｏ）。ロボット装置３００の音声認識部３６１は、対話が開始されると（ステップＳ１２１：Ｙｅｓ）、受話部３２０によって収集された音声の音声認識を行う（ステップＳ１２２）。そして、決定部３６２は、音声認識部３６１によって認識された文字列を基に、応答文字列を決定する（ステップＳ１２３）。
【００６１】
生成装置２００は、取得部３６３からの要求に応じて、決定部３６２によって決定された応答文字列に対応する動きに関するデータを、ロボット装置３００に送信する（ステップＳ１２４）。そして、取得部３６３は、生成装置２００によって送信された動きに関するデータを受信する（ステップＳ１２５）。次に、発話部３１０は発声を行う。このとき、駆動部３６４は、生成装置２００によって送信された動きに関するデータを基に、駆動を行う（ステップＳ１２６）。
【００６２】
ここで、対話が終了していない場合（ステップＳ１２７：Ｎｏ）、ロボット装置３００は、さらにデータを受信する（ステップＳ１２５）。また、対話が終了した場合（ステップＳ１２７：Ｙｅｓ）、ロボット装置３００は処理を終了する。
【００６３】
［効果］
本実施例における生成装置２００によれば、通話装置１００を用いて通話を行うユーザの実際の音声及び動きを基に、音声と動きとの関係を学習することができる。このため、本実施例におけるロボット装置３００は、多様な動きを行うことが可能となる。例えば、本実施例によれば、ロボット装置３００は、より人間らしい振る舞いをすることが可能になる。また、これにより、本実施例によれば、遠地にいる家族同士がロボット装置３００を通して対話を行うことが可能となる。
【００６４】
また、本実施例によれば、学習データを増やすことにより、ロボット装置３００の動きを容易に増やすことが可能となる。また、通話装置１００の傾きを示すデータを動きに関するデータとすることで、スマートフォン等の機能を利用して容易にデータを収集することができる。
【実施例２】
【００６５】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。例えば、実施例１においては、ロボット装置３００の取得部３６３が、駆動部３６４による駆動のたびに生成装置２００から動きデータを取得する例を説明したが、これに限られない。
【００６６】
例えば、ロボット装置３００は、駆動に必要な動きに関するデータを、予め取得しておくようにしてもよい。この場合、ロボット装置３００の取得部３６３は、駆動部３６４による駆動のたびに生成装置２００から動きデータを取得する必要がなくなる。
【００６７】
本実施例におけるロボット装置３００は、記憶部３５０が話者指定学習結果ＤＢ３５１を有する他は、実施例１におけるロボット装置３００と同様の構成により実現される。図１３は、実施例２におけるロボット装置の機能ブロックの一例を示す図である。本実施例におけるロボット装置３００の処理を、ロボット装置３００が通話装置として機能している場合を例として説明する。また、本実施例では、生成装置２００は、話者毎に学習を行い、話者及び応答文字列毎の情報を生成する。また、学習結果ＤＢ２２１は、話者及び応答文字列毎のレコードを記憶する。
【００６８】
まず、通話相手がユーザＨ１０である場合、取得部３６３は、ユーザＨ１０を識別する情報を取得する。通話相手のユーザＨ１０を識別する情報は、例えばユーザＨ１０が用いる通話装置１００に設定された電話番号とすることができる。そして、取得部３６３は、生成装置２００の学習結果ＤＢ２２１から、話者がユーザＨ１０である応答文字列、動きデータ及び時間を取得し、ロボット装置３００の話者指定学習結果ＤＢ３５１に記憶させる。以降、駆動部３６４による駆動が行われる場合、取得部３６３は、話者指定学習結果ＤＢ３５１から動きデータ等を取得する。
【００６９】
実施例２において、発話部３１０は、ロボット装置３００と接続された通話装置１００に対してユーザＨ１０が発した音声から認識された文字列を発する。このとき、ロボット装置３００の可動部３４０は、認識された文字列に対応する動きを行う。
【００７０】
このように、本実施例では、ロボット装置３００が動作を行う際には、記憶部３５０には、予め音声データと動きデータとの対応関係を示す情報が記憶されている。そこで、ロボット装置３００は、通話装置１００から出力された音声データを受け付けると、受け付けた音声データに応じた音声を出力し、音声データと動きデータとの対応関係を示す情報を記憶する記憶部３５０を参照して、受け付けた音声データに対応付けられた動きデータを特定し、特定した動きデータに応じた動きを実行する。
【００７１】
また、ロボット装置３００は、通話装置１００の話者を特定した場合、音声データと動きデータとの対応関係を示す情報を話者毎に記憶する生成装置２００の記憶部２２０から、特定した話者に応じた情報を取得し、取得した情報を記憶部３５０に記憶する。なお、この場合において、生成装置２００の記憶部２２０は、外部記憶部の一例である。
【００７２】
［処理の流れ］
図１４を用いて、本実施例における生成装置２００及びロボット装置３００による応答処理の流れを説明する。図１４は、実施例２における応答処理の一例を説明する図である。なお、図１４に示す応答処理は、ロボット装置３００を用いるユーザＨ２０と、通話装置１００を用いるユーザＨ１０との通話が行われる場合の例である。
【００７３】
図１４に示すように、ロボット装置３００は、通話が開始されるまで待機する（ステップＳ２０１：Ｎｏ）。そして、通話が開始されると（ステップＳ２０１：Ｙｅｓ）、ロボット装置３００は処理を開始する。このとき、生成装置２００は、ロボット装置３００の取得部３６３からの要求に応じて、学習結果ＤＢ２２１に記憶されている動きに関するデータのうち、話者がユーザＨ１０であるデータをロボット装置３００に送信する（ステップＳ２０２）。そして、取得部３６３は、生成装置２００によって送信された動きに関するデータを受信し（ステップＳ２０３）、受信したデータを記憶部３５０の話者指定学習結果ＤＢ３５１に記憶させる。
【００７４】
通話中、通話装置１００は、ユーザＨ１０の音声をロボット装置３００に送信する（ステップＳ２０４）。ロボット装置３００は、通話装置１００によって送信された音声を受信する（ステップＳ２０５）。音声認識部３６１は、通話装置１００によって送信された音声の音声認識を行う（ステップＳ２０６）。取得部３６３は、話者指定学習結果ＤＢ３５１から、音声認識部３６１によって認識された文字列に対応する動きに関するデータを取得する（ステップＳ２０７）。次に、発話部３１０は発声を行う。このとき、駆動部３６４は、取得部３６３によって取得された動きに関するデータを基に、駆動を行う（ステップＳ２０８）。
【００７５】
ここで、通話が終了していない場合（ステップＳ２０９：Ｎｏ）、ロボット装置３００は、さらに音声を受信する（ステップＳ２０５）。また、対話が終了した場合（ステップＳ２０９：Ｙｅｓ）、ロボット装置３００は処理を終了する。
【００７６】
［効果］
本実施例では、通話の際に、ロボット装置３００は予め通話相手の動きに関するデータを生成装置２００から取得しておく。このため、ロボット装置３００及び生成装置２００の通信回数を削減することができる。
【実施例３】
【００７７】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。例えば、通話装置１００の検知部１４０は、通話装置１００とは別の装置とすることができる。この場合、検知部１４０として機能する装置は、通話装置１００を用いて通話を行うユーザをカメラ等で撮影し、撮影した画像を基に動きを検知することができる。また、検知部１４０は、装着したユーザの動きを検知可能なウェアラブル機器であってもよい。
【００７８】
また、生成装置２００は、通話装置１００から、ユーザの特徴や属性に関する情報をさらに取得してもよい。この場合、生成装置２００は、ユーザの特徴や属性毎に情報を生成することができる。例えば、ユーザの性別や年齢によって、発声の際の動きが大きく異なることが考えられる。このため、生成装置２００は、通話装置１００からユーザの性別や年齢を取得することで、男女別や年代別の動きに関するデータを生成することができる。これにより、ロボット装置３００は、さらに多様な動きを実現することが可能となる。
【００７９】
また、通話装置１００とロボット装置３００との間で通話が行われる際に、生成装置２００は、通話装置１００に入力された音声に対応した動きデータをロボット装置３００に送信するようにしてもよい。この場合、通話装置１００は、話者の音声を受け付けると、受け付けた音声に応じた音声データを、ロボット装置３００と生成装置２００とに送信する。そして、生成装置２００は、通話装置１００から音声データを受信すると、発話内容と動きデータとの対応関係を示す情報を記憶する学習結果ＤＢ２２１を参照して、受信した音声データに応じた動きデータを取得し、取得した動きデータをロボット装置３００に送信する。そして、ロボット装置３００は、通話装置１００から音声データを受信すると、受信した音声データに応じた音声を出力し、生成装置２００から動きデータを受信すると、受信した動きデータに応じた動きを実行する。これにより、ロボット装置３００が通話装置１００との間で通話を行う際に送受信されるデータを削減することが可能となる。また、このとき、生成装置２００によって取得される音声データに応じた動きデータは、例えば、当該音声データに応じた発話内容に対応付けられた動きデータである。
【００８０】
また、生成装置２００で行われる各種処理機能は、ＣＰＵ（又はＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部又は任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（又はＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしてもよいことは言うまでもない。また、生成装置２００で行われる各種処理機能は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
【００８１】
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータ（ハードウェア）の一例を説明する。図１５は、生成装置のハードウェア構成の一例を示すブロック図である。なお、図１５においては、生成装置２００について説明するが、通話装置１００やロボット装置３００についても同様のコンピュータにより実現することができる。
【００８２】
図１５に示すように、生成装置２００は、各種演算処理を実行するＣＰＵ５０１と、データ入力を受け付ける入力装置５０２と、モニタ５０３と、スピーカ５０４とを有する。また、生成装置２００は、記憶媒体からプログラム等を読み取る媒体読取装置５０５と、各種装置と接続するためのインタフェース装置５０６と、有線又は無線により外部機器と通信接続するための通信装置５０７とを有する。また、生成装置２００は、各種情報を一時記憶するＲＡＭ５０８と、ハードディスク装置５０９とを有する。また、生成装置２００内の各部（５０１〜５０９）は、バス５１０に接続される。
【００８３】
ハードディスク装置５０９には、上記の実施例で説明した生成部２３１における各種の処理を実行するためのプログラム５１１が記憶される。また、ハードディスク装置５０９には、プログラム５１１が参照する各種データ５１２（学習結果ＤＢ２２１等）が記憶される。入力装置５０２は、例えば、操作者から操作情報の入力を受け付ける。モニタ５０３は、例えば、操作者が操作する各種画面を表示する。インタフェース装置５０６は、例えば印刷装置等が接続される。通信装置５０７は、ＬＡＮ（Local  Area  Network）等の通信ネットワーク１０と接続され、通信ネットワーク１０を介した外部機器との間で各種情報をやりとりする。
【００８４】
ＣＰＵ５０１は、ハードディスク装置５０９に記憶されたプログラム５１１を読み出して、ＲＡＭ５０８に展開して実行することで、各種の処理を行う。なお、プログラム５１１は、ハードディスク装置５０９に記憶されていなくてもよい。例えば、生成装置２００が読み取り可能な記憶媒体に記憶されたプログラム５１１を読み出して実行するようにしてもよい。生成装置２００が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこのプログラム５１１を記憶させておき、生成装置２００がこれらからプログラム５１１を読み出して実行するようにしてもよい。
【符号の説明】
【００８５】
１００  通話装置
１１０、３１０  発話部
１２０、３２０  受話部
１３０、２１０、３３０  通信部
１４０  検知部
１５０、２２０、３５０  記憶部
１６０、２３０、３６０  制御部
１６１  音声認識部
２００  生成装置
２２１  学習結果ＤＢ
２３１  生成部
３００  ロボット装置
３５１  話者指定学習結果ＤＢ
３４０  可動部
３６１  音声認識部
３６２  決定部
３６３  取得部
３６４  駆動部
Ｈ１０、Ｈ２０  ユーザ
【図１】
2018075657.tif 000003
【図２】
2018075657.tif 000004
【図３】
2018075657.tif 000005
【図４】
2018075657.tif 000006
【図５】
2018075657.tif 000007
【図６】
2018075657.tif 000008
【図７】
2018075657.tif 000009
【図８】
2018075657.tif 000010
【図９】
2018075657.tif 000011
【図１０】
2018075657.tif 000012
【図１１】
2018075657.tif 000013
【図１２】
2018075657.tif 000014
【図１３】
2018075657.tif 000015
【図１４】
2018075657.tif 000016
【図１５】
2018075657.tif 000017